系统核心组成
https://www.kernel.org/ 内核官网
完整的Linux内核一般由5个部分组成:内存管理、进程管理、进程间通信、虚拟文件系统、网络接口
Linux内核中的虚拟文件系统用一个通用的文件模型表示各种不同的文件系统,这个文件模型屏蔽了很多具体文件系统的差异,使Linux内核支持很多不同的文件系统。虚拟文件系统可以分为逻辑文件系统和设备驱动程序
逻辑文件系统指Linux所支持的文件系统,如ext2、ext3、ext4、xfs和fat等;设备驱动程序指为每一种硬件控制器所编写的设备驱动程序模块。
网络接口提供了对各种网络标准的实现和各种网络硬件的支持。
网络接口一般分为网络协议和网络设备驱动程序。
网络协议部分负责实现每一种可能的网络传输协议。
网络设备驱动程序则主要负责与硬件设备进行通信,每一种可能的网络硬件设备都有相应的设备驱动程序。
3.4运行机制介绍
主要包括初始化init系统、系统的运行级别、系统的关闭方法等
启动首先从BIOS开始,接下来Linux引导程序将内核映像加载到内存,进行内核初始化,内核初始化的最后一步就是启动PID为1的init进程。这个进程是系统的第一个进程,它负责产生其他所有用户进程。
仅仅将内核运行起来是毫无用途的,因此就需要一个系统能够定义、管理和控制init进程的行为,并负责组织和运行许多独立的或相关的初始化工作,从而让系统进入一个用户设定的运行模式中,这个系统就是init系统。
sysvinit 概念简单清晰,依赖shell脚本,但串行较慢
为了能更快地启动系统,开发者对sysvinit进行了不断的改进,先后出现了upstart和systemd这两个主要的新一代init系统,以Ubuntu为代表的Linux发行版就采用的是upstart方式,而在RHEL 7.x/CentOS 7.x版本中,已经默认开始采用systemd来管理系统。upstart出现很早,而systemd出现较晚,但发展更快,大有取代upstart的趋势。
runlevel:7种运行级别。在/etc/inittab文件中指定