. linus说,内核就是为上层应用程序提供运行环境并管理整个系统软硬件资源的一个程序。(管理和服务程序)
. 内核要完成如下功能:
(1)进程管理
进程(process)可以定义为"执行程序的一个实例"。系统中可以同时运行多个进程。
内核负责进程的创建、销毁,进程调度,进程间通信等。内核本身不是一个进程,而是进程的管理者
(2)内存管理
管理进程地址空间。每个进程都运行在它的私有地址空间。
在用户态下运行的进程涉及到私有栈、数据区和代码区。
当在内核态运行时,进程访问内核的数据区和代码区,但使用内核栈。
(3)提供文件系统支持
Unix中的所有东西几乎都可以当作文件来看待。文件的类型有:
. 普通文件
. 目录
. 符号链接(硬链接是目录中的文件名,而符号(软)链接是一个短文件,文件中包含路径)
. 面向块的设备文件
. 面向字符的设备文件
. 管道和命名管道(FIFO)
. 套接字(socket)
(4)设备控制
通过各类型的驱动程序来完成.
对硬件提供抽象接口.
(5)中断和异常响应
内核还要负责响应外部设备的中断请求,以及进程产生的异常
(6)网络功能
网络协议栈的实现.