3572|0

58

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

ubuntu 10.04以及10.10启动流程分析 [复制链接]

ubuntu10.04以及10.10启动流程与以前的版本相比,启动流程有所不同。我也是初学,琢磨了一个下午,才理清他的工作流程。至于里面详细的脚本文件,简单的能看的懂,复杂的我也不太想去分析,我的目标是驱动程序的编写。
1.加电自检,BIOS找出存储设备中的MBR,加在MBR中的引导程序。
2.找出1-62扇区中的引导程序,并运行他。或者找出MBR中的磁盘分区表,找出活动的磁盘分区。加载并运行位于/或者/boot分区中的第二阶段引导程序
3.读取/boot/grub/grub.cfg配置文件,根据里面的配置,此时在控制台上会出现一个启动菜单。如果是双系统的话,此时让你选择启动windows还是Linux。
4.根据用户的选择,加载系统内核文件和磁盘内存映像文件,将控制权交给内核
5.解压磁盘内存映像文件到/dev/ram0设备中。释放磁盘内存映像占有的内存空间
6.安装/dev/ram0设备,把初始内存映像文件安装成一个临时/文件系统。
7.系统检查硬件环境,配置硬件驱动程序。根据需要加载各种驱动模块。
8.如果系统存在/linuxrc文件,以超级用户执行他。
9.卸载临时/文件系统,释放内存空间,安装实际的/文件系统。
10.访问/文件系统。运行/sbin/init程序,把引导控制权交给init进程。有init进程完成系统的生成过程。
11.init检索/etc/init目录,找出并运行其中的rc-sysinit.conf文件。设置默认的运行水平为2.在这里我们要根据倒数最后两行的脚本文件即:||etc/init.d/rcS这一句。以及下面的切换到默认的运行水平。我们可以看到在rcS脚本中只有一句命令:exec /etc/init.d/rc  S.执行/init.d中的rc脚本文件,参数为S。
12.rc脚本文件会根据传递的参数启动/etc/rcS.d中的shell脚本。我们可以看到rcS.d中全是以S和数字为开头的符号链接,脚本文件会根据符号链接执行相应的脚本。
13:执行完后,执行rc-sysinit.conf中的最后一句,即调度运行telinit程序。切换到默认运行水平
14:根据/etc/init/rc.conf脚本来执行相应运行水平的系统调用etc/init.d/rc  $runlevel
15:rc脚本文件会根据传递的参数启动/etc/rc"runlevel".d中的shell脚本.启动各种服务与进程,直到出现一个登录界面。
注:这是我结合以前的书籍,以自己的理解琢磨的,中间可能有误,等将来相关书籍出现以后,再进行修改。对于这个流程,现在只是进行一个直观的认识。对于下一步的嵌入式Linux学习,有一个直观的概念。以后在进行深入。
 
 
点赞 关注

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表