当前位置: 首页 > 图文教程 > 操作系统 > Unix/Linux > RedHat 开机起动流程

Unix/Linux
如何在linux下面运行招商银行专业版
Windows和Linux系统共存 完美解决方案
Linux 和对称多处理应用程序介绍
Red Hat Linux 附加引导和内核引导选项
Linux 2.6.11内核文件IO系统调用详解
走向高手之路 Linux系统内核技术解读
菜鸟乐园 Linux系统内核代码特色一览
Linux内核和传统Unix内核的比较
内核中的物理内存分配函数kernel api
使用 Linux 系统调用的内核命令
详细解析 Linux内核的主要配置选项
内核操作 Linux2.6内核驱动移植参考
Linux内存中Swap和Buffer Cache机制
高手进阶 更换Fedora Core 6的内核
高手风范 Linux操作系统内核编码风格
Linux操作系统内核中工作队列的操作
揭开Linux系统内核调试器的神秘面纱
系统“大挪移” Linux服务器迁移大法
高手进阶 重新编译Linux操作系统的内核
Ubuntu系统关于驱动模块命令的一些使用

Unix/Linux 中的 RedHat 开机起动流程


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 154 ::
收藏到网摘: n/a

 
# 版权宣告: 1999 Copyright OLS3 All rights reserved.

# 作者: OLS3 (卧龙小三)
# 本讲义仅供台南县 87 学年度网路管理进阶研习班上课之用.
# 学员可保存一份自用, 供日後网管时参考备查.
# 作者保有一切形式的着作权.
# 欲作其它用途者, 需经作者授权同意.
# 未经作者授权同意之前, 请勿转载刊登.

RedHat 开机起动流程 :

1. LILO 取得控制权.

PC 起动时, 会读取开机磁碟第一条 cylinder 的第一个 sector(此即 MBR), 然後它会试着将读取到的程式码载入记忆体中并且予以执行. 这些程式码, 就是 LILO. 记不记得, 当初我们安装时, 曾选择将 LILO 放入MBR 呢?!

2. 载入 kernel

Red Hat 的 kernel 放在 /boot 中, 通常档名类似 vmlinuz-2.0.34-0.6, vmlinuz-2.2.5-15

3. kernel 执行第一支程式 /sbin/init

init 会根据 /etc/inittab 这个 initialization table 来决定不同的 run-level 应该如何设定系统.

Red Hat 的 run-level 有以下 7 层: (定义在 /etc/inittab 中)

0 --- halt : 关机 level 
1 --- Single user mode : 单人模式, 如果你忘记 root 密码, 这是补救的方式之一. 
2 --- Multiuser, without NFS : 多人使用模式, 但没有 NFS 功能, 如果安装时没有使用网路功能, 那麽 level 3 是一样的. 
3 --- Full multiuser mode : 这是预定的 run-level 
4 --- unused : 这个 run-level 目前尚未定义使用 
5 --- X11 : X Windows 使用的 level 
6 --- reboot : 重新开机时使用的 level 
Linux 系统开机时, 最重要的观念便是这个 run-level , run-level 可以说是 Linux 的系统状态(system states of Linux), 根据不同的情况进入不同的系统状态, 以执行不同的初始化动作.

另外一点, Linux 虽然融合了 System V 及 BSD 的特色, 但在开机起动的部份, 比较接近 System V 的作法, 并且这种方式几乎已成为 Linux 世界的一项标准. 因为它具有容易使用, 功能强大以及富有弹性的特色. 

其目录档案结构如下:

/etc/rc.d 中包含:

目录 script 档案 
/etc/rc.d/init.d 
/etc/rc.d/rc0.d 
/etc/rc.d/rc1.d 
/etc/rc.d/rc2.d 
/etc/rc.d/rc3.d 
/etc/rc.d/rc4.d 
/etc/rc.d/rc5.d 
/etc/rc.d/rc6.d 
 rc 
rc.local 
rc.sysinit 
 

rc0.d 便是 run-level 0 起动 script 存放的目录, rc3.d 是 run-level 3, 其它依此类推

不过, rc0.d ~ rc6.d 中的 script 并不是各自独立的, 其实它们都是 symbolic file, 连结到 /etc/rc.d/init.d 中的 script.

比如 rc3.d 目录中的档案列表如下:

total 0
lrwxrwxrwx  1 root  root  20 May 23 15:56 K15postgresql -> ../init.d/postgresql
lrwxrwxrwx  1 root  root  17 May 23 15:56 K20rusersd -> ../init.d/rusersd
lrwxrwxrwx  1 root  root  15 May 23 15:56 K20rwhod -> ../init.d/rwhod
lrwxrwxrwx  1 root  root  16 May 23 15:56 K55routed -> ../init.d/routed
lrwxrwxrwx  1 root  root  17 May 23 15:56 S01kerneld ->