6.3.1. 简介¶
Linux内核在1991年首次被Linus发布,采用GPL(GNU General Public License)许可证开源。
Linux内核采用单内核结构,也借鉴类微内核的优点:模块、抢占式内核、支持内核线程以及动态装载内核模块。
Linux的版本以 kernel_version.major_revision.minor_revision
的格式表示,其中偶数 major_revision
代表稳定版,奇数代表开发版。
Linux的所有历史版本都可以在 这里 找到。
6.3.1.1. 启动¶
接通电源后,计算机加载BIOS或UEFI,进行相应的启动程序。
而后BIOS/UEFI加载MBR,MBR调用GRUB,而后调用Linux内核,调用内核文件,之后执行 init
作为所有系统进程的起点。 init
读取配置文件 /etc/inittab
,并根据 inittab
执行相应程序。
其中常见的内核文件有:
- vmlinux
编译出来的最原始的内核文件,未压缩。
- zImage
vmlinux经过gzip压缩后的文件。
zImage解压缩内核到低端内存(第一个640K)
- bzImage
bz表示
big zImage
bzImage解压缩内核到高端内存(1M以上)
- uImage
U-boot专用的映像文件,在zImage之前加上一个长度为0x40的tag
- vmlinuz
bzImage/zImage文件的拷贝或指向bzImage/zImage的链接。
- initrd
initial ramdisk
的简写一般被用来临时的引导硬件到实际内核vmlinuz能够接管并继续引导的状态
然后根据不同的运行级别执行 /etc/rcX.d/
目录下的文件, 例如运行级别为5时,执行 /etc/rc5.d/
下的文件,接着执行 /etc/rc.d/rc.local
,最后设置好tty,为用户登录做准备。
6.3.1.2. 内核功能划分¶
进程管理:进程管理负责创建和销毁进程,不同进程之间的通信也有内核处理。
内存管理:内存是计算机的主要资源之一。
文件系统:类Unix系统的对象几乎都可以当作文件处理。
设备控制:几乎所有系统操作都会映射到物理设备上,需要通过相应的代码完成,这段代码被称为驱动程序。
网络功能:操作系统通过在应用程序和网络接口之间传递数据包,并根据网络活动控制程序执行。