Boot Sequence翻译成中文是引导顺序、启动顺序,是学习linux的一个重要的知识点,也是一个基础的知识点,做下笔记。
Linux Boot Sequence:
1、load bios(hardware information)
加载BIOS(硬件信息),BIOS:Basic Input Output System(基本输入输出系统),是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、系统设置信息、开机后自检程序和系统自启动程序。详见百度百科
2、read MBR's config to find out the OS
读取MBR配置查找需要启动的操作系统,MBR: Master Boot Record(硬盘的主引导记录),它由三部分组成:主引导程序、硬盘分区表、硬盘有效标志。
3、load the kernel of the OS
加载操作系统的内核。注意这里有个一个选择操作系统的步骤。GRUB(the GRand Unified Bootloader),是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。GRUB可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数。
4、init process starts...
启动第一个进程init
5、execute /etc/rc.d/sysinit
init进程启动后,会执行/etc/rc.d目录下的sysinit命令
6、start other modules(etc/modules.conf)
加载其他模块,只有这些模块加载之后,网络、光驱等才可以使用。
7、execute the run level scripts
run level: linux内核启动完之后,后续的启动是分层次的。可以分任意层次进行启动,每个层次之间无直接关系,并且各层之间启动的程序不一样。
run level层次:
0) - 系统停机状态 /etc/rc.d/rc0.d/
1) - 单用户工作状态 /etc/rc.d/rc1.d/
2) - 多用户状态(没有NFS) /etc/rc.d/rc2.d/
3) - 多用户状态(有NFS) /etc/rc.d/rc3.d/
4) - 系统未使用 /etc/rc.d/rc4.d/
5) - 图形界面 /etc/rc.d/rc5.d/
6) - 系统正常关闭并重新启动 /etc/rc.d/rc6.d/
8、execute /etc/rc.d/rc.local
运行 /etc/rc.d/rc.local脚本。rc.local脚本主要用于自启动。
9、 execute /bin/login
执行/bin/login,展示系统登录界面。
10、shell started...
我们可以把这个步骤简化分为以下几个步骤:
1、BIOS Initialization
BIOS初始化
2、Boot Loader
1st Stage - small, resides in MBR or boot sector
2nd Stage - loaded from boot partition
3、Kernel initialization
内核初始化
4、init starts and enter desired run level by executing:
初始化启动,通过运行以下命令来执行run level
/etc/rc.d/rc.sysinit
/etc/rc.d/rc and /etc/rc.d/rc?.d/
/etc/rc.d/rc.local
X Display Manager if appropriate
基于BIOS、MBR、GRUB、Kernel、Init、run level六个概念,也有人将这个启动步骤分为这六部。关于Linux的启动,读者只需仔细理解研究这六个概念就可以了。
参考:
尚学堂科技轻松愉快LINUX视频教程
红帽RH133官方教程
6 Stages of Linux Boot Process
posted @ 2011-11-22 22:04 慢热君Kevin 阅读(80) 评论(0)
编辑
对于一个程序员来说,学习的重要性相信大家都能意识得到。如何才能有效地学习,高效地学习?探讨下这个问题,我认为很有必要。
每个人学习的方法和习惯可能都不尽相同,很多人习惯了在学校的学习方式,特别是很多刚出校门的人。在他们潜意识中,学习只是应付考试的一种手段,考完就一切OK了,全部还给老师了也无所谓,反正考完之后下次不会再考这么课程了(大学尤其如此)。长期的应试教育会让很多人以考试的心态来对待学习,我也是受害者之一,翻翻我硬盘中散落的各种语言编写的"hello world",各种半成品,它们就像一张张60分、80分的试卷悄无声息地躺在某个昏暗的角落里。
职业生涯的学习一个最大的特点是具有持续性,你需要在某个知识或技能上花费你大部分精力。这时候,应付考试的学习方法已经不再有效了,而知识积累显得尤为重要。如果没有积累,所有的学习的成果都是一张60分的试卷。当你下次使用所学知识的时候,你手头有的就只有那张60分的试卷,你的学习将重新从0开始,由于时间关系或其他原因,你这方面的学习可能在你达到可以考60分的水平时又戛然而止,当你后面又需要使用时,又从0开始学习...如此循环往复,一定时期内,你的水平将永远停留在0-60分中间。
职业生涯学习的另一个特点是,你有机会去教。“The best method to learn is to teach”,你可以将你的所学通过各种形式的分享传授给他人。通过教的方式你不仅能够巩固你所学的知识,更能够推销自己、结交志同道合的朋友。
那么,基于职业生涯学习的特点,应该养成哪些好习惯呢,本人愚见,提出几点:
积累:
1、使用note。比如evernote,one note(个人推荐神器evernote)。作为一名程序员,如果你不使用note的话,显然你已经out了。你可以使用note来在任意时间记录你的想法、学习笔记、分享、待办事项等等任意你想记录的。
2、经营好你自己的资产。你的作品、代码、idea、你搜集到的资料都是你的资产。对其进行分门别类,同步到网络硬盘(注意信息安全)、多备份都是很好的选择。
分享:
1、将自己的知识总结成ppt、写出demo。要养成这种意识,当你形成ppt、demo的过程中,你将站在更高的层次去看待你学过的知识、加深你的理解。当然,如果有机会一定要去讲,不管是何种级别的分享,哪怕是自己给自己讲或是讲给自己身边的朋友。
2、写技术博客。博客有很多种,对博客的定位,决定你写什么样的博文。如果你的博文每篇都作为一个研究课题来写,我相信你打造一个精品博客一定是早晚的事情。当然我们可能没有要求这么高,那么博客也可以当note来使用(记录你每天的所学所想),这样可能有好心的人会指出你博文中的错误,和你探讨相关的技术等等。
最后想谈下自己对技术书籍、博客订阅和技术社区、QQ群一些看法。现在社会的信息非常大,你可以通过很多渠道获得你想要的信息。但是,问题是信息的质量良莠不齐、信息量巨大,如果每天都把时间花在自己熟悉的信息上、每天都参与各种无意义的讨论(如语言之间的优劣),那么反而学不到东西还会把自己弄得心烦意乱。
技术书籍:技术书籍应该是最严肃的获取信息方式,你可以通过对优秀技术书籍的研读、思考(特别注意思考这个词),形成你知识的框架,这应该是一个稳固的结构。
技术博客和社区:这里是指订阅业界的博客,参与相关博客社区的技术交流。订阅业界、牛人的博客是获得最新、最前沿的知识和技术的方式,应该每隔一定时间段(如每天、每周2次等)研读这些文章、做好笔记。
QQ群(或其他即时通讯群组):即时通讯是最直接的技术交流工具。通过这种工具交流技术、扩大职业圈子是一个很好的选择。但是鉴于目前,很多技术群很少谈论技术、或技术含量较低等情况,建议加入后仔细甄别,不要因为大量垃圾信息浪费宝贵的时间。
posted @ 2011-11-22 18:01 慢热君Kevin 阅读(2763) 评论(18)
编辑