系统启动与控制.pdfVIP

  • 1
  • 0
  • 约1.48万字
  • 约 12页
  • 2019-07-06 发布于天津
  • 举报
Linux 系统工程师 —— Linux 系统管理 第九章 系统启动与控制 Linux 系统是如何启动的?如果出现故障,应该在什么模式下修复?Linux 启动 时会会启动哪些服务?要回到这一系列的问题,就应该阅读本章的内容。 Linux 系统是一个可订制的系统,它非常灵活。要深入理解 Linux 系统,我们必 须要理解它的启动过程以及相关脚本。 本章目标: 学习完本章你将能够 理解 Linux 的运行级别 熟悉 Linux 的启动过程 配置在不同的运行级别下启动的 服务 GRUB 引导器的配置 115 Version :1.0 Linux 系统工程师 —— Linux 系统管理 1. Linux 系统的启动过程 图 9-1 显示了 Linux 系统的启动过程。 图9-1 具体的步骤为: 1、开机自检 2 、从硬盘的MBR 中读取引导程序LILO 或 GRUB 3、引导程序根据配置文件显示引导菜单 4 、如果选择进入Linux 系统,此时引导程序加载Linux 内核文件。以RedHat Enterprise Linux AS4 为例,GRUB 程序将装载/boot/vmlinuz-2.6.9-22.EL 文件到内存中。 5、当内核全部载入内存后,GRUB 的任务完成,此时全部控制权限交给 Linux ,CPU 开 始执行 Linux 内核代码(初始化任务调度、分配内存、加载驱动等)。 6、内核代码执行完后,开始执行 Linux 系统的第一个进程 init 进程(如果在各个 Linux 发行版本中查看 Linux 进程,将会发现 init 进程的进程号都是 1)。 116 Version :1.0 Linux 系统工程师 —— Linux 系统管理 7、init 进程根据系统初始化配置文件/etc/inittab 文件,执行相应的系统初始化脚本(一般 都是/etc/rc.d/rc.sysinit )。 8、根据/etc/inittab 文件的配置,进入不同的运行级别。 9、启动或停止相应运行级别下的服务。 10、建立终端。 11、引导 login 进程,进入登录界面。 内核启动的参考(作为补充材料阅读): 当引导程序成功完成引导任务后,Linux 从它们手中接管了 CPU 的控制权,然 后 CPU 就开始执行 Linux 的核心映象代码,开始了 Linux 启动过程。这里使用了几 个汇编程序来引导 Linux ,这一步泛及到 Linux 源代码树中的“arch/i386/boot ”下的 这几个文件:bootsect.S 、setup.S 、video.S 等。 其中 bootsect.S 是生成引导扇区的汇编源码,它完成加载动作后直接跳转到 setup.S 的程序入口。setup.S 的主要功能就是将系统参数(包括内存、磁盘等,由 BIOS 返回)拷贝到特别内存中,以便以后这些参数被保护模式下的代码来读取。此 外,setup.S 还将 video.S 中的代码包含进来,检测和设置显示器和显示模式。最后, setup.S 将系统转换到保护模式,并跳转到 0x100000 。 那么 0x100000 这个内存地址中存放的是什么代码?而这些代码又是从何而来 的呢? 0x100000 这个内存地址存放的是解压后的内核,因为 Red Hat 提供的内核包含 了众多驱动和功能而显得比较大,所以在内核编译中使用了“makebzImage ”方式, 从而生成

文档评论(0)

1亿VIP精品文档

相关文档