Chinaunix首页 | 论坛 | 博客
  • 博客访问: 394659
  • 博文数量: 112
  • 博客积分: 4535
  • 博客等级: 上校
  • 技术积分: 1120
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-12 10:57
文章分类

全部博文(112)

文章存档

2014年(1)

2013年(1)

2012年(18)

2011年(10)

2010年(16)

2009年(48)

2008年(9)

2007年(9)

我的朋友

分类: LINUX

2009-10-29 12:29:16

ubuntu启动过程

原文:http://hi.baidu.com/sxpspace/blog/item/cd207cdea7c05a5eccbf1a16.html

一直都不了解ubuntu的开机启动过程。说实话,要真正的说了解很是很困难的,单单说内核加载可以说就够折腾的。

ubuntu系统启动过程和其它linux distros本质上没有什么区别,大体可以分为以下过程。

1,加载系统引导程序,如grub的grldr

2,加载kernel
--->kernel 初始化
--->peripherals初始化

3,init进程

因为传统的System V 的 init daemon (Sysvinit)无法很好地处理现代硬件,如热插拔设备、USB硬盘、网络文件系统等,Ubuntu 使用了Upstart init daemon。
upstart 使用了基于事件的模型,而不是简单的将各个 daemon 并行化,这个架构上的突破也是具有革命性的

System V 的 init daemon 通过改变运行级别来启动或停止服务。而使用 Upstart init daemon 的 Ubuntu 系统没有运行级别的概念。为了将基于运行级别的系统平滑移植到基于事件的系统,并为面向其他发布版的软件提供一定的兼容性,Ubuntu 使用 Upstart 模拟了运行级别。

/etc/event.d/是upstart的事件启动目录。

启动目录有一系列的文件,默认运行的当然是/etc/event.d/rc-default了,简单的分析就可以看到如果在 menu.lst 中给内核加了参数 single 就会以单用户模式启动,如果有 inittab 文件,则启动它定义的运行级别,否则运行级别为2。像 Ubuntu 这样,运行级别 2-5 这种多用户模式都是图形界面的。如果想只在 inittab 中加入级别3并不能达到你想直接进入字符界面的要求,你还得把 rc3.d 中的启动图形界面的服务去掉,比如把 /etc/rc3.d/S30gdm 中的S改为K,这样就可以不启动图形界面了。

4,登录
ubuntu默认的登录是图形界面的,那是因为启动时默认启动了gdm登录方式。可以用

sudo /etc/init.d/gdm stop

来结束gdm 进程,当然也可在开机时不启动它,login 后用startX来进入桌面。

可以参考下面的两篇文章:
linux启动过程综述
http://www.ibm.com/developerworks/cn/linux/kernel/startup/index.html

Upstart与ubuntu启动过程,简单原理


Upstart: Ubuntu 的基于事件的启动进程


关于ubuntu图形界面的启动我也写了点东西,看来把它完全搞懂不易啊。呵呵。不过相对windows式的黑盒子系统对它好像容易理解得多。
阅读(1020) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~