Linux的启动过程

原创 2007年09月14日 02:31:00
简单综合了一下网上看到的文章

启动过程
  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)

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

ARM-Linux嵌入式系统启动流程

学习嵌入式
  • zy812248258
  • zy812248258
  • 2014年09月03日 12:58
  • 3230

浅析嵌入式Linux系统的构成和启动过程

在我们的周围,大量的嵌入式设备都是基于Linux系统来构建的,嵌入式Linux与主机Linux相比有着自己的一些特点,本文就嵌入式Linux系统的构成和启动过程做一些总结。  一、嵌入式Linux系统...
  • gary531
  • gary531
  • 2013年09月11日 14:08
  • 3976

linux系统启动过程分析

本文转载自:http://blog.chinaunix.net/uid-23069658-id-3142047.html 经过对Linux系统有了一定了解和熟悉后,想对其更深层次的东...
  • miss_acha
  • miss_acha
  • 2015年11月24日 00:03
  • 6970

linux启动流程概述

参考:《鸟哥的linux私房菜》 1、BIOS阶段 主板上的BIOS为块flash或EEPROM程序,他会从主板上的CMOS硬件资讯,这些硬件资讯是可以通过BIOS程序修改。、、 BIO...
  • javaUTU
  • javaUTU
  • 2011年11月26日 10:44
  • 782

linux 系统启动过程分析

Linux 3.10 版本,平台ARM7,uboot Linux系统的一般启动过程通常划分为内核引导、内核启动和应用程序启动3个阶段,如下图所示(摘自:ARM 嵌入式LINUX系统 开发 8.2节)...
  • liujiaoyage
  • liujiaoyage
  • 2014年07月18日 16:36
  • 2286

Linux 内核启动流程

转载自 http://wenku.baidu.com/link?url=KpOdULJu1CxP1swqRs_Szoyg5r_8rje4N08o4QtB5L9QlPjWesTYlrTPgkxPOriF...
  • zhqh100
  • zhqh100
  • 2015年06月18日 09:54
  • 1449

在linux启动过程打印调试信息

在linux内核启动入口打印调试信息 上网查到linux内核启动入口在head.S,例如我现在用的是arm,就是arch/arm/kernel/head.S。head.S里有一个过程stext。 ...
  • cmm20071020
  • cmm20071020
  • 2011年12月06日 16:46
  • 2048

关于嵌入式Linux系统的启动(很好的嵌入式linux启动过程分析)

lw:虽然zImage的开头是head_armv.S的8个空循环,但是实际是先执行compressed/head.S进行解压操作。=================================#1...
  • ryman
  • ryman
  • 2005年07月12日 21:26
  • 16309

《Linux内核分析》(三)——跟踪分析Linux内核的启动过程

作者:徐恒 原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ” 实验环境:c+Lin...
  • FIELDOFFIER
  • FIELDOFFIER
  • 2015年08月16日 21:29
  • 1971

linux开机到登陆的启动过程描述 【转】

文章来源:linux开机到登陆的启动过程描述(考试题答案系列) 1.描述linux系统从开机到登陆界面的启动过程(记时2分钟) 解答: 简述: 1.开机BIOS自检 ...
  • woshizhangliang999
  • woshizhangliang999
  • 2015年12月01日 12:13
  • 625
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux的启动过程
举报原因:
原因补充:

(最多只允许输入30个字)