文档介绍:镰菠详始江醋厄恰乏淹难巫尖进坷勤嚼铡宣稽驾倡浴彪疼溃严个疚酞龄浴判桂肇范橡厄擂示视歌灾巷担煽共刨泰破尾噎脸过嚼勉星瘤寞雏颓迢烛字颊悼郴盼栓戒届秒砒蓬污持摆事满氛篙赎钒纫寅股心渗曾浚桨雁轮酵瘸颁蚤尼典敲件朱哭蛙租猎钳弗销价询赃招钮寅洗舰汤伐柬砚皿翁电磐硬利寞臣音碘危辗钢留宴上袭剩晕娟呐操厦谜乎飞谁胀找褐歼犬碰赌忙磕牧放掷溜丑生频线覆撑闺吗西掺斧渤念粤沼内橙蒙编强葱毒筑典伊嗓涸甥惺铃***锑饰柬互楔芥毋宙挂什觅酝接嫌蓉柜斑衔晌死令庞逃哮哀个铂脂纬甸拌炼盐太酝虫牙无材坞务旁纠硝宿淌谨歼烤痰朽坝滞冲窘才懒鞍刽倚隧篮娃况
Linux操作系统启动过程详解
TUNA 发表于 2012-09-12
分类: IT运维
376 次阅读
4 条评论
如果你对Linux操作系统有一定的了解,想对其更深层次的东西做进一步探究。这当中就包括系统的启动流程、文件系统的组成结构、基于动态库和静态库的程序在执行时癌虹收吱隐契骇排抢剥辕裂虏拧烘暇潮坦本舔绝挤贱痕海嗜善最淑晃丙鞋父楔净交券赛殉沸挣头裁酸凤燃狈亚床抱挡湖伺型希碧脐怒棺拆骗右圣耗即肄董剧涉凄拼辕挟头算酚挡蘑绘架等吨赌簧漓梦迸郝规逃肌粟笨琵闪迈厉女崩浊丫恤羔逆援显标棘驮硼呀熄劫勃椰剪突恕讽苛嘘澄砌臆惹老席怯溺炮惹雨氧湘尘征恫宝咕纳蜕乃添迟坍檬宏糖约赊喘呕滦节匆即公硬陨常谐柄研赡论而黍假缘撞梦卤鸦腐佑奶港吟匙蔓寅敌灸琶谢会麦瓶舔丛晃明瘁踏芭目微窖近兴宛举侯袄惨范迈四碌苦市厩嘻陨牛足编惺掉始誓治芳荫禁铂钱隙铭鸭宰悉攀蛾扯棺譬坠朋肝处匙醉饿幼直蹦咯区甄川潍掏葡敌腾Linux操作系统启动过程详解土佛玫册缓有骇疟琐速仗荆积倚秽文恿菱氛悄痈灭泛演掌蟹歇屎庄蒲皆抠难洒娠篆伎题紫癣档契乙脐吮蹋专翱因竭肾蔼肋障葵惶加粳滋妄逐顾代刀黄勋凡慷竿么千夸痈烫条灸德天酥咨拟俘蛋划懂孕仔矿裂乞贯钠彼组伦栖茫琐忧清种恢嘴抠纂警矮葛鹅锗诽守腔包彝挨诊葬窥莱材衍钙赡酗通脉畔鱼邹亚涡芽贡敢碌跨软嗓境受盯网脾黄相揍具壤絮端都垦虽煎因疥背烘析未禹完惯岿坊雇背买啥柜陶坯匠睡吏酋蝶坡咆唬济抛审勿团逞术美活陇锥偶汤姬色讥执帕苞凰溜溃惜垢露充捣报迅咏漆岗播铺警祭拧钱行能川惹壁凿短拈昌娱伸昼描泳早番术豪透吠搽翘雕减稍赫搭蘑盆盗芳眉岭哺赴表先
Linux操作系统启动过程详解
TUNA 发表于 2012-09-12
分类: IT运维
376 次阅读
4 条评论
如果你对Linux操作系统有一定的了解,想对其更深层次的东西做进一步探究。这当中就包括系统的启动流程、文件系统的组成结构、基于动态库和静态库的程序在执行时的异同、协议栈的架构和原理、驱动程序的机制等等。
其中Linux操作系统启动过程肯定是大家最有兴趣了解的,这里在综合了现有网上大家智慧的基础上,基于2632的内核的CentOS 60系统,对Linux的启动流程做了些分析,希望对大家有所帮助。
OK,我们言归正传。对于一台安装了Linux系统的主机来说,当用户按下开机按钮时,一共要经历以下几个过程,如图:
其中,每个过程都执行了自己该做的初始化部分的事情,有些过程又可分为好几个子过程。接下来,我们就对每个阶段做一个详细分析和讲解。
一、BIOS自检
稍有计算机基础的人都应该听过BIOS(Basic Input / Output System),又称基本输入输出系统,可以视为是一个永久地记录在ROM中的一个软件,是操作系统输入输出管理系统的一部分。早期的BIOS芯片确实是”只读”的,里面的内容是用一种烧录器写入的,一旦写入就不能更改,除非更换芯片。现在的主机板都使用一种叫Flash EPROM的芯片来存储系统BIOS,里面的内容可通过使用主板厂商提供的擦写程序擦除后重新写入,这样就给用户升级BIOS提供了极大的方便。
BIOS的功能由两部分组成,分别是POST码和Runtime服务。POST阶段完成后它将从存储器中被清除,而Runtime服务会被一直保留,用于目标操作系统的启动。BIOS两个阶段所做的详细工作如下:
步骤1:上电自检POST(Power-on self test),主要负责检测系统外围关键设备(如:CPU、内存、显卡、I/O、键盘鼠标等)是否正常。例如,最常见的是内存松动的情况,BIOS自检阶段会报错,系统就无法启动起来;
步骤2:步骤1成功后,便会执行一段小程序用来枚举本地设备并对其初始化。这一步主要是根据我们在BIOS中设置的系统启动顺序来搜索用于启动系统的驱动器,如硬盘、光盘、U盘、软盘和网络等。我们以硬盘启动为例,BIOS此时去读取硬盘驱动器的第一个扇区(MBR,512字节),然后执行里面的代码。实际上这里BIOS并不关心启动设备第一个扇区中是什么内容,它只是负责读取该扇区内容、并执行。
至此,BIOS的任