Linux 内核简介
内核概念:操作系统的核心
内核有那几部分组成:
内核的组成部分:
1. 中断服务程序:响应中断的
2. 调度程序:管理多个进程分享处理器
3. 内存管理:管理进程的地址空间
4. 网络,进程通讯等系统服务
什么是内核空间:
内核空间:内核处于系统态,拥有受保护的内存空间和访问硬件设备的所有权限,这种被系统态保护起来的内存空间,成为内核空间
应用程序如何进入内核态呢:
应用程序通过系统调用进入内核态
什么是进程上下文:
应用程序通过系统调用在内核空间运行,内核被称为运行于进程上下文
什么是中断上下文:
例子:硬件想和系统通讯的时候,硬件发出异步的中断信号去打断内核正在执行的工作,中断对应于一个中断号的,内核通过中断号查找相应的中断服务程序,并调用这个程序相应处理中断。
为了保证同步,内核可以中止,既可以停止所有的中断,又可以选择的停止某个中断号对应的中断,许多操作系统的中断服务程序都不在进程上下文中。它们在一个与所有的进程都无关的,专门的中断上下文中运行,之所以存在这样一个专门的执行环境,就是为了保证中断服务程序能够在第一时间处理中断请求,然后快速退出。
这些上下文代表内核活动的范围,实际上我们可以将处理器在任何指定时间点上的活动范围概括如下
1. 运行于内核态,处于进程上下文,代表某个特定的进程执行
2. 运行于内核态,处于中断上下文,与任何进程无关,处理某个特定的中断
3. 运行于用户空间,执行用户进程
什么是单内核:
所谓单内核就是把它从整体上作为一个单独的大过程来实现,并同时运行于一个单独的地址空间
Linux 特性:
1. linux 支持动态加载内核模块,允许在需要的时候,动态地卸除和加载部分内核代码
2. 支持SMP
3. 内核可以抢占,允许在内核运行的任务优先执行的能力
4. 支持线程,内核不区分线程,进程,不过对于内核来说,所有的进程都一样,只不过其中的一些共享资源而已。
5. linux 提供具有设备类面向对象的设备模型,热插拔事件,以及用户空间的设备文件系统(sysfs)