读书笔记.linux内核设计与实现|读书笔记.linux内核设计与实现 .1
写在前面的话
以前读书都只局限于看过,没有输出的过程,忘得很快,现在想试试这样整理之后输出,会不会好点。
一直以来对Linux的内核都是走马观花式学习,毫无深入,但以后可能要频繁用到,得构建一下自己的知识体系,希望能多多记录吧。
内核定义
- 内核是操作系统的核心,由负责响应中断的中断服务程序,调度程序(管理多个进程共享处理器时间),进程地址空间的内存管理程序,以及网络、进程间通信等系统服务程序共同组成。
- 处于系统态,拥有受保护的内存空间和访问硬件设备的所有权限。即内核空间。
- 用户空间只能以进程为视角,只能看到他被允许调用的部分系统资源,和自己的内存空间。
- Linux充分吸收了微内核的概念(服务模块化管理,抢占式内核,支持内核线程,以及动态加载内核模块的能力)。inmod,rmmod,
- 微内核的定义,其实在学校里的时候老师强调过,真正的微内核指的的是内核只保留无法从内核中去掉的必要服务,如调度服务和中断服务等。其他服务包括fs,driver模块都能从内核中去掉。微内核设计的重要目的之一是安全。因为我们很容易就可以知道许多bug和受攻击面都是来自于内核所搭载的模块服务,进而导致整个系统的安全泄漏和崩溃。
- 但微内核的弊端也很明显。因为各个服务模块化加载之后运行在不同的地址空间,无法进行直接的函数调用,而采用了IPC(inter-process communication),需要进行上下文的切换导致不必要的开销。
- 所以Linux仍旧是单内核,所有服务模块运行在一个地址空间,可以直接调用函数。实用至上。
- Linux支持对称多处理机制SMP。
- 抢占式preemptive内核。允许在内核运行的任务优先执行的能力。其他大部分Unix不支持抢占。
- Linux内核并不区分线程和一般进程: 所有进程都一样,只是其中一些共享资源。
- Linux提供具有设备类的面向对象的设备模型、热插拔事件,以及用户空间的设备文件系统sysfs
- 忽略Unix过时标准和不必要特性。
- 运行于用户空间,执行用户进程
- 运行于内核空间,处于进程上下文,代表某一次系统调用。
- 运行于内核空间,处于中断上下文,与任何进程无关,处于某个特定中断。
系统调用
- 通过调用库,让内核完成不同任务,但通常内核调用只是库调用的一个步骤。printf(), 提供数据缓存和格式化操作,调用write()系统调用只是他的一个动作。 但open()等是一一对应。 strcpy()不用系统调用。
- 通过系统调用进入内核态,我们称为内核代其执行,内核运行于进程的上下文中。
中断服务【读书笔记.linux内核设计与实现|读书笔记.linux内核设计与实现 .1】中断的典型代表是来自硬件设备的中断。内核通过中断号查找中断服务程序,调用服务程序处理中断,在中断上下文中运行。保证中断服务能够第一时间处理和退出。
推荐阅读
- sony笔记本重装系统教程
- 笔记本无法连接无线网络,本文教您笔记本无线网络连接不上如何处理
- 笔记本屏幕暗,本文教您笔记本屏幕暗怎样调亮
- 笔记本win7系统,本文教您笔记本怎样重装win7系统
- 华硕笔记本蓝屏,本文教您华硕笔记本蓝屏怎样处理
- 笔记本检测不到电池,本文教您笔记本检测不到电池怎样办
- 笔记本怎样还原系统,本文教您笔记本还原win7系统的设置
- 笔记本鼠标,本文教您电脑鼠标失灵怎样办
- 笔记本电脑按键错乱,本文教您笔记本电脑键盘按键错乱怎样办
- 笔记本电脑如何重装系统