19-. Linux Boot, Modules and Loaders

19-. Linux 开机、模块 与 Loader

系统开机其实是一项非常复杂的程序,因为核心得要侦测硬件并加载适当的驱动程序后, 接下来则必须要呼叫程序来准 备好系统运作的环境,以让使用者能够顺利的操作整部主机系统。

grub2 :Linux 底下优秀的开机管理程序 (boot loader)。

系统运作期间:管理核心模块

1. 开机流程分析

  1. 加载 BIOS 的硬件信息与进行自我测试,并依据设定取得第一个可开机的装置;

  2. 读取并执行第一个开机装置内 MBR 的 boot Loader (亦即是 grub2, spfdisk 等程序);

  3. 依据 boot loader 的设定加载 Kernel ,Kernel 会开始侦测硬件与加载驱动程序;

  4. 在硬件驱动成功后,Kernel 会主动呼叫 systemd 程序,并以 default.target 流程开机;

    1. systemd 执行 sysinit.target 初始化系统及 basic.target 准备操作系统;

    2. systemd 启动 multi-user.target 下的本机与服务器服务;

    3. systemd 执行 multi-user.target 下的 /etc/rc.d/rc.local 文件;

    4. systemd 执行 multi-user.target 下的 getty.target 及登入服务;

    5. systemd 执行 graphical 需要的服务

2. 核心 与 核心模块

核心(Kernel) 与 模块(modules)

2.1. Linux 核心

是操作系统的核心部分,它直接与硬件交互,管理系统的各种资源,包括 CPU、内存、输入输出设备等。核心是操作系统的基础,提供了以下功能:

主要功能

  1. 进程管理 核心负责创建、调度和管理进程(包括线程)。它通过进程调度算法分配 CPU 时间,确保多个进程可以高效地运行。

  2. 内存管理 核心管理系统的物理内存和虚拟内存,包括内存分配、页面置换、内存映射等。它通过虚拟内存机制为每个进程提供独立的地址空间。

  3. 文件系统管理 核心提供了对文件系统的支持,包括文件的创建、删除、读写等操作。它支持多种文件系统(如 ext4、XFS、NTFS 等)。

  4. 设备驱动 核心通过设备驱动程序与硬件设备进行通信。设备驱动是核心的一部分,负责管理硬件设备的具体操作。

  5. 网络管理 核心提供了网络协议栈,支持 TCP/IP、UDP/IP 等协议,管理网络接口和网络通信。

  6. 系统调用接口 核心提供了系统调用接口(System Call Interface),允许用户空间程序请求核心服务。例如, open 、 read 、 write 、 fork 等系统调用。

核心的组成

  • 内核代码(Kernel Code):核心的主要代码,负责实现上述功能。

  • 内核模块(Kernel Modules):动态加载到核心中的代码片段,用于扩展核心的功能。

2.2. Linux 模块

模块(Module) 是指可以动态加载到内核中的代码片段,通常用于扩展内核的功能。模块是内核的一部分,但它们不是内核的固定组成部分,而是可以在运行时动态加载或卸载的独立代码单元。这种设计使得 Linux 内核具有高度的灵活性和可扩展性。

2.3. 核心模块

模块是可以动态加载到核心中的代码片段。它们是核心的一部分,但不是核心的固定组成部分。核心模块可以扩展核心的功能,例如添加新的设备驱动、文件系统支持或网络协议等。

主要特点

  1. 动态加载与卸载 核心模块可以在系统运行时动态加载或卸载,而不需要重新启动系统。这使得系统管理员可以灵活地扩展或修改核心的功能。

  2. 独立性 核心模块是独立的代码片段,通常以 .ko 文件的形式存在。它们可以独立于核心代码进行开发和维护。

  3. 功能扩展 核心模块用于扩展核心的功能,例如:

    • 设备驱动:为新的硬件设备提供支持。

    • 文件系统:支持新的文件系统格式。

    • 网络协议:支持新的网络协议。

使用 lsmod 之后,系统会显示出目前已经存在于核心当中的模块,显示的内容包括有:

  • 模块名称(Module);

  • 模块的大小(size);

  • 此模块是否被其他模块所使用 (Used by)。

3. Boot Loader: Grub2

boot loader:载入核心的重要工具。

4. Others

Linux 不可以随意关机,会造成文件系统错乱 或 无法开机问题

Last updated