日期:2014-05-16  浏览次数:20692 次

linux系统的启动

Linux的启动流程:
??? 1.加载BOIS程序,获取硬件信息;
??? 2.读取MBR的kernel loader(核心引导程序,即grub,lilo等);
??? 3.加载内核的操作系统核心信息;
??? 4.内核执行init程序并获得运行时的信息;
??? 5.init程序执行/etc/rc.d/rc.sysinit文件;
??? 6.启动核心的外挂式模块(/etc/modules.conf);
??? 7.init执行一级的各个批处理文件;
??? 8.init执行/etc/rc.d/rc.local文件;
??? 9.执行/bin/login程序;
??? 10.登入之后开始以shell控管主机。

Kernel loader(核心引导程序)的作用:
??? 我们知道,windows和linux的文件格式不一样,那么,计算机怎样知道你的硬盘上有什么操作系统呢?这就是Kernel loader的主要功能。在你使用操作系统之前,首先需要加载内核,怎样让你的硬件认识内核,就是内核加载程序的主要功能。在这里有一点需要注意的是,Linux加载程序(grub,lilo等)可以认识windows的核心文件,但windows的加载程序不认识linux的核心文件,因此一个多操作系统(windows和linux)不能使用windows的Kernel loader。

启动相关的目录和文件:
??? 核心模块的放置目录:/lib/modules/'uname -r'/kernel/
??? 核心的文件格式模块:/lib/modules/'uname -r'/kernel/fs
??? 核心的网卡驱动程序模块:/lib/modules/'uname -r'/kernel/net
??? 核心的驱动程序放置目录:/lib/modules/'uname -r'/kernel/drivers
??? 启动信息文件:/var/log/dmesg

?