upstart 和ubuntu启动过程原理介绍

来源:chinaitlab        2009-06-18 14:55:00        点击:
收藏本页:


顶一下

ubuntu从6.10开始逐步用upstart代替原来的sysinit,进行服务进程的管理。也正是从6.10开始,ubuntu的启动过程开始变得有点“变幻莫测”。也没办法,这是正在开发中的ups

upstart 和ubuntu启动过程原理介绍 由Linux系统中文网(Linux521.com)编辑收集整理,除Linux521注明原创文章外,其版权归原作者所有。如果您在学习中遇到问题欢迎在下面的评论中留言,我们会尽全力解答您的问题。

ubuntu从6.10开始逐步用upstart代替原来的sysinit,进行服务进程的管理。也正是从6.10开始,ubuntu的启动过程开始变得有点“变幻莫测”。也没办法,这是正在开发中的upstart不可避免的。为了对原有的init实现向后兼容,upstart可以说是在表象上保留了大部分原来init的特性,因而目前linux初始化进程名仍然叫init,而改变的核心,乃是Event机制。理解并讲清楚这个改变的重要意义和内在机理可不是件容易的事,所以我只打算研究一下目前upstart(0.3.9, ubuntu 8.04)在系统启动中的表象行为。[注:据Scott James Remnant在其博客上所说,upstart 0.5.0版本将在未来几周发布。]

关于系统启动,熟悉Linux的人大多应该知道,init进程(PID=1)乃是所有进程的父进程,所有进程由它控制。init进程的运行时间是内核完成文件系统的加载后。那么init进程是如何开启系统中的其它进程的呢?在阐述这个问题之前,大致地说明一下目前ubuntu中与init相关的几个目录和应用程序,可以方便后面的论述。这些目录和程序包括:

init
telinit
runlevel
/etc/event.d/
/etc/init.d/
/etc/rcX.d/
前三个是应用程序(注意哦,它们都不是shell脚本),可以理解为是由内核调用的。关于它们的功能,从manpage查看就可以了。我们的重点是后面给出的三个目录。

首先是/etc/event.d/目录,这是upstart的核心,upstart不同于原有的init的地方就在于它引入了event机制。Event机制通俗的讲就是将所有进程的触发、停止等等都看作event(事件)。/etc/event.d/中就存放了目前upstart需要识别的event。这其中主要有三种rc-default, rcX(x=0,1,...6,S)以及ttyX。这rc-default就类似于那大名鼎鼎的inittab文件,它就是设置默认运行级别的[注:upstart中实际并没有运行级别的概念,这么称呼是为了init向后的兼容性]。现在你应该知道了ubuntu里没有了inittab文件后该到哪里设置默认运行级别的了吧!cat rc-default一下吧!rcX文件是发生相应运行级别事件(可以注意到event这个词在upstart里真是无处不见啊)时,需要运行程序的脚本,而ttyX则是设置伪终端数目的,也就是你Ctrl Alt F(1~6)调出的那个Console。我们以rc2为例,cat rc2:

内容来自www.linux521.com Linux系统中文网
《Linux系统中文网》欢迎原创作者投稿,请先注册成为会员,然后在后台 相应的栏目里提交你的文章,注意填写好相关信息点“保存”。我们将在24小时之内审核完毕。

我要评论: upstart 和ubuntu启动过程原理介绍
请务必尊重网上道德,遵守中华人民共和国的各项法律法规,承担一切因您的行为而直接或间接导致的法律责任。本站管理人员有权删除留言中的任意内容。

昵称  验证码  
热门
相关