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

linux启动过程
自己学习总结的linux启动过程,不准确的还请大家指教。

BIOS-->MBR-->init-->/etc/rc.d/rc.sysinit-->/etc/rc.d/rc-->/etc/rc.d/rcX.d/*和/etc/rc.d/rc.local-->/sbin/mingetty


MBR-->init都是由引导程序(GRUB)执行。

/etc/rc.d/rc.sysinit工作:
  • 启动热插拔设备(udev)和selinux
  • 设置kernel参数(/etc/sysctl.conf)
  • 设置系统时间
  • 设置键盘keymaps
  • 启用swap
  • 设置主机名(/etc/sysconfig/network)
  • 检查root filesystem并重新挂载成可读可写
  • 激活RAID和LVM
  • 启用disk quotes
  • 检查其他的filesystem并挂载
  • 清楚开机暂存内容


/etc/rc.d/rc工作:
  • 根据/etc/inittab的"id:X:initdefault",执行相应/etc/rc.d/rcX.d/*


/etc/rc.d/rcX.d/*工作:
  • 启动系统服务,这些启动脚本位于/etc/rc.d/init.d/,同时包括/etc/rc.d/rc.local。
  • 优先执行K打头的脚本,再执行S打开的脚本。


/sbin/mingetty工作:
  • 启动终端ttyX(默认启动1-6,6个)
1 楼 yongdi2 2010-04-20  
研究的很细。开始启动后,内核有个ID为0的init进程,为你做启动的工作。所有进程都是它的子进程