LDK3读书笔记(第一章:LINUX内核简史)
操作系统:
操作系统是指在整个系统中负责完成基本功能和系统管理的那些部分。包括内核、设备驱动程序、启动引导程序、用户界面、基本的文件管理工具和系统工具。内核基本组成:
- 负责响应中断的中断服务程序
- 负责管理多个进程从而分享处理器时间的调度程序
- 负责管理进程地址空间的内存管理程序
- 网络
- 进程间通信服务程序
- 内核空间:处于系统态并被保护起来的内存空间。
应用程序的工作方式:
当一个应用程序执行一条系统调用,我们说内核正在代其执行。如果进一步解释,在这种情况下,应用程序被称为通过系统调用在内核空间运行,而内核被称为运行于进程上下文中。这种交互关系(应用程序通过系统调用界面陷入内核)是应用程序完成其工作的基本行为方式。我们可以将每个处理器在任何指定时间点上的活动必然概括为下列三者之一:
- 运行于用户空间,执行用户进程;
- 运行于内核空间,处于进程上下文,代表某个特定的进程执行;
- 运行于内核空间,处于中断上下文,与任何进程无关,处理某个特定的中断。
以上所列几乎包括所有情况,即使边边角角的情况也不例外。例如,当CPU空闲时,内核就运行一个空进程,处于进程上下文,但运行于内核空间。
中断机制:
当硬件设备想和系统通信的时候,它首先要发出一个异步的中断信号去打断处理器的执行,继而打断内核的执行。中断通常对应着一个中断号,内核通过这个中断号查找相应的中断服务程序,并调用这个程序相应和处理中断。eg: 当你敲击键盘的时候,键盘控制器发送一个中断信号告知系统,键盘缓冲区有数据到来。内核注意到这个中断对应的中断号,调用相应的中断服务程序。该服务程序处理键盘数据然后通知键盘控制器可以继续输入数据了。
为了保证同步,内核可以停用中止——既可以停止所有的中断也可以有选择的停止某个中断号对应的中断。许多操作系统的中断服务程序,包括linux的,都不在进程上下文中执行。它们在一个与所有进程无关的、专门的中断上下文中运行。之所以存在这么一个专门的执行环境,就是为了保证中断服务程序能够在第一时间响应和处理中断请求,然后快速的退出。单内核与微内核的设计比较:
- 单内核:所谓单内核就是把它从整体上作为一个单独的大过程来实现,同时也运行在一个单独的地址空间上。优点:内核可以直接调用函数,简单、性能高。
- 微内核:微内核的功能被划分为多个独立的过程,每个过程叫做一个服务器。所有的服务器都保持独立并运行在各自的地址空间上,而且大多数都运行在用户空间。因此,内核不能直接调用函数,而是通过消息传递处理微内核通信。
- 消息传递:微系统采用了进程间通信(IPC)机制,因此各个服务器之间通过IPC机制互通消息,互换”服务“。
- 优点:服务器的各自独立有效的避免了一个服务器的失效祸及另外一个。
- 缺点:IPC机制的开销多于函数调用,又涉及内核空间与用户空间的上下文切换,因此,消息传递需要一定的周期。
Linux与“单内核”和“微内核”的关系:
Linux是一个单内核,但是她汲取了微内核的精华:模块化设计、抢占式内核、支持内核线程以及动态装载内核模块的能力。不仅如此,Linux还避开了微内核性能损失的设计缺陷,让所有事情都运行在内核态,直接调用函数,无需消息传递。
LDK3读书笔记(第一章:LINUX内核简史)相关推荐
- Android群英传神兵利器读书笔记——第一章:程序员小窝——搭建高效的开发环境
Android群英传神兵利器读书笔记--第一章:程序员小窝--搭建高效的开发环境 目录 1.1 搭建高效的开发环境之操作系统 1.2 搭建开发环境之高效配置 基本环境配置 基本开发工具 1.3 搭建程 ...
- 《MAC OS X 技术内幕》读书笔记第一章:MAC OS X的起源
<MAC OS X 技术内幕>读书笔记第一章:MAC OS X的起源 前言 1 System x.x系列 1.1System 1.0(1984年1月24日) 1.2System 2.x(1 ...
- 《Linux命令行与shell脚本编程大全》读书笔记————第一章 初识Linux shell
本章内容 1.什么是Linux 2.Linux内核的组成 1.1 什么是Linux Linux课划分为以下四部分 a)Linux内核 b)GNU工具 c)图形化桌面环境 d)应用软件 1.1.1 深入 ...
- linux鸟叔私房菜读后感,鸟叔的Linux私房菜 读书笔记 第一章
目录dom 硬盘数学 第一章 计算机概论 知识点总结 计算机的定义为:接受使用者输入指令与资料,经由中央处理器的数学与逻辑单元运算处理后,以产生或储存成有用的资讯:程序 电脑的五大单元包括:输入单元. ...
- Linux多线程服务端编程笔记,陈硕Linux多线程服务端编程读书笔记 —— 第一章 线程安全的对象生命周期管理...
muduo书第一章的思维导图(新窗口打开可以看大图) 线程安全的对象析构和回调(使用shared_ptr和weak_ptr) 注释是英文的(工地英语-) StockFactory.h // in mu ...
- 深入理解计算机系统第四版_《深入理解计算机系统》读书笔记 —— 第一章 计算机系统漫游...
本书第一章沿着一个程序的生命周期,简要地介绍一些逐步出现的关键概念.专业术语和组成部分. 一.信息就是位+上下文 在计算机系统中所有的信息都由一串比特来表示. 一串相同的比特(或者几个相同的字节)可以 ...
- UNP读书笔记第一章
#第一章 1.客户端和服务器间通过协议(如TCP)进行通讯,一个具体的例子代码中包括①头文件②命令行参数③创建TCP套接字(socket)④指定服务器的IP地址和端口⑤建立与服务器的连接(connec ...
- 读书笔记:《Linux内核源代码情景分析》
第1章 预备知识 1.1 Linux内核简介 Unix.Minix.Linux Micro-Kernel.Macro-Kernel 1.2 Inter X86 CPU系列的寻址方式
- 流畅的python读书笔记-第一章Python 数据模型
第一章 python数据类型 1 隐式方法 利用collections.namedtuple 快速生成类 import collectionsCard = collections.namedtuple ...
- 《MongoDB权威指南》读书笔记 第一章 简介
第一章 1.面向文档的数据库,不是关系形数据库 2.面向文档的数据模型可使数据在多台服务器之间分割,平衡集群的数据和负载 3.具有的功能:索引.聚合.固定集合.文件存储 4.卓越的性能,把逻辑尽量交给 ...
最新文章
- JAVASE8流库Stream学习总结(三)
- 怎么添加本地音乐_展示 | 传一学员优秀项目之音乐播放器
- C# 对Outlook联系人的增、删、查
- P4068 [SDOI2016]数字配对
- 听听一个院士的故事,你也能找到自己的路。
- 产品不简单之产品设计方法论整理
- 根据时间戳生成编号_VLOOKUP函数制作产品报价单,能自动生成价格
- 操作员界面图形设计的基本原则
- 【前端模板之路】二、人肉非智举,让代码帮我们写代码才是王道
- Ubuntu下libmodbus的应用
- python爬取图虫网图库
- 世界各国时区表以及与北京时差
- 经典的日语歌曲被翻唱成国语
- Python u,b,r前缀的作用及应用
- XGRegressor参数设置
- jieba分词统计红楼梦出现名字前20名
- python爬虫学习 之 定向爬取 淘宝商品价格
- python不属于ipo模型的是_以下不属于IPO模型的是
- 运用python进行熵值法综合评价
- PHP 中 foreach和for循环哪个效率更高