关闭

Linux的启动过程

710人阅读 评论(0) 收藏 举报
简单综合了一下网上看到的文章

启动过程
  1. 系统自检
  2. 加载启动扇区(x86系统下由bios完成)
  3. MBR加载系统内核
  4. 内核加载,加载驱动,挂载文件系统等
  5. 启动第一个用户级程序init的方式,完成引导进程。init始终是第一个进程(其PID始终为1)。内核会在过去曾使用过init的几个地方查找它,它的正确位置(对Linux系统来说)是/sbin/init。    init进程建立用户环境。
  6. 运行启动脚本
在debian系统下,/etc/init.d/rcS.d/目录下的启动启动脚本先运行,然后,init进程检查/etc/inittab文件里的运行级别设置(各个版本的linux的设置是不一样的),然后根据默认的运行级别运行相应的脚本。比如,运行级别是2, 就运行/etc/rc2.d目录下链接的脚本。

在redhat系统下, /etc/rc.d/rc.sysinit先运行,然后是相应的运行级别脚本

ubuntu7.10,/etc/ini.d/rc.local是系统实际设置的最后启动的脚本。 但用户可以编辑/etc/rc.local来设置要启动的程序, 因为/etc/init.d/rc.local脚本是设定系统, 运行/etc/rc.local

PS:  /etc/rc.d/rc?.d/ 下的脚本是指向 /etc/rc.d/init.d/ 的链接,这样,一个脚本不需要运行时只要删除相应的链接就可以了。

        7.一般地,/etc/rc.d/rc.local会运行。因为,比如,redhat 9,"/etc/rc.d/rc3.d/S99.local是一个指向             
            /etc/rc.d/rc.local的链接. 可以通过rc.local指定一些系统准备好以后的命令, 比如运行一些应用程序,设定 
           网络连接
      

其他一些问题
:-自启动服务是在哪个阶段启动的?
 - - 自启动服务由 /etc/init.d目录掌控。并且,这些服务可以通过命令设置:
/etc/init.d/apache start
/etc/init.d/apache stop
/etc/init.d/apache restart
    sysv-rc-conf这个工具也可以控制自启动服务的运行
   

   自启动服务可以通过命令update-rc.d(debian), service(redhat)命令来设置


:-文件系统如何挂载
  - - 虽然Linux 系统中的所有文件组成一棵完整的目录树,但文件本身驻留于不同的存储设备,如磁盘,CD-ROM等.为了访问某个文件系统,需要将一个存储设备上的文件系统放到主目录结构中,这就是设备文件加载.我们可以使用mount命令手工加载一个文件系统,也可以通过在配置文件/etc/fstab中设置加载信息项来自动完成某些加载工作.如前所述,初始化脚本/etc/rc.d/rc.sysinit会完成文件系统的检查与加载, 它实际使用命令: mount -a 来加载所期望加载的文件系统,而正是/etc/fstab定义了在系统启动时要加载那些文件系统.(http://blog.csdn.net/stevensincn/archive/2004/10/15/138026.aspx)

一说:系统在/bin/或者/sbin目录下找到init程式,然后根据它的配置文件/etc/fstab进行
初始化,最后调用mingetty程式启动login完成引导.(http://blog.csdn.net/ender049/archive/2007/08/16/1746797.aspx)

待查证,清楚这个问题的兄弟请留言


:-运行级
- - 运行级0,1,6在所有的系统中是一致定义的(至少在我见过的系统下),0级是挂起系统,1级是单用户模式
6级是重启系统。
     运行级S 或者 s 是特指系统进入1级状态运行的脚本。
     运行级7-9也是有效的运行级别(在inittab中并没有出现),具体应用不清楚。(翻译自unix man page)

链接
查清楚一个东西其实挺不容易,问题中又有问题

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:89869次
    • 积分:1488
    • 等级:
    • 排名:千里之外
    • 原创:56篇
    • 转载:14篇
    • 译文:0篇
    • 评论:5条
    最新评论
    C Programming