Linux内核的主要功能:
- 系统内存管理,
- 软件程序管理,
- 硬件设备管理,
- 文件系统管理,
1.系统内存管理:
2.软件程序管理:
Linux操作系统将运行中的程序称为进程,
内核创建了第一个进程:init,
init进程用来启动系统上所有其他进程。当内核启动时,会将init进程加载到虚拟内存中。
内核在启动其他任何进程时,都会在虚拟内存中给新进程分配一块专有区域来存储该进程用到的数据和代码。
一些Linux发行版使用一个表来管理在系统开机时要自动启动的进程。在Linux系统上,这个表通常位于专门文件:/etc/inittab中。
在Ubuntu Linux中则是/etc/init.d目录,将开机时启动或停止某个应用的脚本放在这个目录下。这些脚本通过/etc/rcX.d目录下的入口启动。
这里X代表:运行级,Linux操作系统有5个启动运行级。
其中:
- 运行级=1,表示为单用户模式:
只启动基本的系统进程以及一个控制台终端进程,通常用来在系统有问题时进行紧急的文件系统维护。
- 运行级=3,表示标准的启动模式:
大多数应用软件,比如网络支持程序,都会启动。
- 运行级=5,在这个运行级上系统会启动图形化的X window系统,允许用户通过图形化桌面窗口登录系统。
3.硬件设备管理:
Linux内核中有两种方法用于插入设备驱动代码:
- 编译近内核的设备驱动代码;
- 可插入内核的设备驱动模块;
驱动模块插入法更加方便的扩充系统功能,可插入也可移除。
Linux系统将硬件设备当成特殊的文件,称为设备文件,分为3类:
- 字符型设备文件;
- 块设备文件;
- 网络设备文件;
Linux为系统上的每个设备都创建一种称为节点的特殊文件。
与设备的所有通信都通过设备节点完成。每个节点都有唯一的数值对,供Linux内核标识它。
数值对=<主设备号,次设备号 >
4.文件系统管理:
内核必须在编译时就加入对所有可能用到的文件系统的支持。
Linux内核采用虚拟文件系统(Virtual File System,VFS)作为和每个文件系统交互的接口。