ubuntu10.04启动过程-----请高手解决

启动讨论 grub/grub2/syslinux/grub4dos/Lilo
回复
yhui1286
帖子: 25
注册时间: 2008-03-20 21:46

ubuntu10.04启动过程-----请高手解决

#1

帖子 yhui1286 » 2010-05-05 7:53

从ubuntu9.10开始你,原俩ubuntu下的/event.d文件就消失了,那么请问ubuntu是如何启动的呢??? :em09
yhui1286
帖子: 25
注册时间: 2008-03-20 21:46

Re: ubuntu10.04启动过程-----请高手解决

#2

帖子 yhui1286 » 2010-05-05 8:03

:em05 :em05 :em05 :em05 :em05 :em05 :em05 自己顶一下
头像
黄美姬
帖子: 8428
注册时间: 2009-10-08 11:15
来自: 大城市铁岭

Re: ubuntu10.04启动过程-----请高手解决

#3

帖子 黄美姬 » 2010-05-05 8:16

启动桌面无,肯定是启动GDM KDM啦

代码: 全选

 /etc/init.d/XX start
我们是命运的妓女,它把我们都嫖了

N卡驱动:http://www.nvidia.cn/Download/index.aspx?lang=cn
极品飞车:http://www.geforce.cn/optimize/optimal- ... ts-450-ops
孤岛危机优化设置:http://www.geforce.cn/optimize/optimal- ... tx-450-ops
:cp /etc/skel/.bashrc ~/
PS1="\[\e]2;\u@\H \w\a\e[32;1m\]\T$\[\e[0m\] "
http://cdimage.ubuntu.com/
http://releases.ubuntu.com/
yhui1286
帖子: 25
注册时间: 2008-03-20 21:46

Re: ubuntu10.04启动过程-----请高手解决

#4

帖子 yhui1286 » 2010-05-05 8:34

谢谢阿。能不能解释下内核调用init之后到启动桌面的过程是怎样的 :em06
头像
黄美姬
帖子: 8428
注册时间: 2009-10-08 11:15
来自: 大城市铁岭

Re: ubuntu10.04启动过程-----请高手解决

#5

帖子 黄美姬 » 2010-05-05 8:39

你要了解这个干什么,那就看源码
我是不懂了,百度“linux起动过程”

这里有个视频http://tec.icbuy.com/train/trainDetail/train_id/347html
gsnapshot.png
4.执行init进程

init进程是系统所有进程的起点,内核在完成核内引导以后,即在本线程(进程)空间内加载init程序,它的进程号是1。init进程是所有进程的发起者和控制者。因为在任何基于UNIX的系统(比如 Linux)中,它都是第一个运行的进程,所以init进程的编号(Process ID,PID)永远是1。如果init出现了问题,系统的其余部分也就随之不可用。

init进程有两个作用:

① 扮演终结父进程的角色。因为init进程永远不会被终止,所以系统总是可以确信它的存在,并在必要的时候以它为参照。如果某个进程在它衍生出来的全部子进程结束之前被终止,就会出现必须以init为参照的情况。此时那些失去了父进程的子进程都会以init作为它们的父进程。快速执行一下“ps–af”命令,可以列出许多父进程的编号(Parent Process ID,PPID)为1的进程来。

② 在进入某个特定的运行级别(Runlevel)时运行相应的程序,以此对各种运行级别进行管理。它的这个作用是由/etc/inittab文件定义的。
5.通过/etc/inittab文件进行初始化

init的工作是根据/etc/inittab来执行相应的脚本进行系统初始化,如设置键盘、字体,装载模块,设置网络等。对于Red Hat Linux来说,按以下顺序执行。

(1)执行/etc/rc.d /rc.sysinit(由init执行的第一个脚本)

Red Hat Linux的/etc/rc.d/rc.sysinit要做在各个运行模式中相同的初始化工作,包括:

— 设置初始的$PATH变量。

— 配置网络。

— 为虚拟内存启动交换。

— 设置系统的主机名。

— 检查root文件系统,以进行必要的修复。

— 检查root文件系统的配额。

— 为root文件系统打开用户和组的配额。

— 以读/写的方式重新装载root文件系统。

— 清除被装载的文件系统表/etc/mtab。

— 把root文件系统输入到mtab。

— 使系统为装入模块做准备。

— 查找模块的相关文件。

— 检查文件系统,以进行必要的修复。

— 加载所有其他文件系统。

— 清除几个/etc文件,如/etc/mtab、/etc/fastboot和/etc/nologin。

— 删除UUCP的lock文件。

— 删除过时的子系统文件。

— 删除过时的pid文件。

— 设置系统时钟。

— 打开交换。

— 初始化串行端口。

— 装入模块。

(2)执行/etc/rc.d/rcX.d /[KS]

首先终止“K”开头的服务,然后启动“S”开头的服务。

对每一个运行级别来说,在/etc/rc.d子目录中都有一个对应的下级目录。这些运行级别的下级子目录的命名方法是rcX.d,其中X就是代表运行级别的数字。比如说,运行级别3的全部命令脚本程序都保存在/etc/rc.d/rc3.d子目录中。在各个运行级别的子目录中,都建立有到/etc/rc.d/init.d子目录中命令脚本程序的符号链接,但是,这些符号链接并不使用命令脚本程序在/etc/rc.d/init.d子目录中原来的名字。如果命令脚本程序是用来启动一个服务的,其符号链接的名字就以字母“S”打头;如果命令脚本程序是用来关闭一个服务的,其符号链接的名字就以字母“K”打头。

许多情况下,这些命令脚本程序的执行顺序都很重要。如果没有预先配置网络接口,就没有办法使用DNS服务解析主机名。为了安排执行顺序,在字母S或者K的后面紧跟着一个两位数字,数值小的在数值大的前面执行。比如:/etc/rc.d/rc3.d/S50inet就会在 /etc/rc.d/rc3.d/S55named之前执行。存放在/etc/rc.d/init.d子目录中的、被符号链接上的命令脚本程序是真正的实干家,是它们完成了启动或者停止服务的操作过程。当/etc/rc.d/rc通过每个特定的运行级别子目录的时候,它会根据数字的顺序依次调用各个命令脚本程序。它先运行以字母K打头的命令脚本程序,然后再运行以字母S打头的命令脚本程序。对以字母K打头的命令脚本程序来说,会传递Stop参数;类似地对以字母S打头的命令脚本程序来说,会传递Start参数。

(3)执行/etc/ec.d/rc.local

Red Hat Linux中的运行模式2、3、5都把/etc/rc.d/rc.local作为初始化脚本中的最后一个文件,所以用户可以自己在这个文件中添加一些需要在其他初始化工作之后,登录之前执行的命令。在维护Linux系统运转时,肯定会遇到需要系统管理员对开机或者关机命令脚本进行修改的情况。如果所做的修改只在引导开机的时候起作用,并且改动不大的话,可以考虑简单地编辑一下/etc/rc.d/rc.local脚本。这个命令脚本程序是在引导过程的最后一步执行的。

(4)执行/bin/login

login程序会提示使用者需输入账号及密码,接着编码并确认密码的正确性,若二者相合,则为使用者进行初始化环境,并将控制权交给shell,即等待用户登录。到此为止,Linux启动过程全部结束。如图4-1所示是Linux启动流程图。
我们是命运的妓女,它把我们都嫖了

N卡驱动:http://www.nvidia.cn/Download/index.aspx?lang=cn
极品飞车:http://www.geforce.cn/optimize/optimal- ... ts-450-ops
孤岛危机优化设置:http://www.geforce.cn/optimize/optimal- ... tx-450-ops
:cp /etc/skel/.bashrc ~/
PS1="\[\e]2;\u@\H \w\a\e[32;1m\]\T$\[\e[0m\] "
http://cdimage.ubuntu.com/
http://releases.ubuntu.com/
回复