Slackware Linux操作系统启动过程详解

Slackware Linux操作系统启动过程详解

ID:39468228

大小:110.00 KB

页数:5页

时间:2019-07-04

Slackware Linux操作系统启动过程详解_第1页
Slackware Linux操作系统启动过程详解_第2页
Slackware Linux操作系统启动过程详解_第3页
Slackware Linux操作系统启动过程详解_第4页
Slackware Linux操作系统启动过程详解_第5页
资源描述:

《Slackware Linux操作系统启动过程详解》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、SlackwareLinux操作系统启动过程详解JoeBrockmeIEr研究了SlackwareLinuxinit进程。他讨论了系统如何初始化服务、各种运行级别是什么,以及如何从缺省安装中添加或除去服务来定制系统。我们的示例使用x86平台上的SlackwareLinux发行版(请参阅本文后面的参考资料)。大多数信息可用于其它Linux发行版,但在细节处会略有不同。尤其是,与其说Slackware的init结构类似于SystemV结构,还不如说它更类似于BSDUnix结构,尽管Slackware的最新发行版中的程序做了一些让步,它们要将服务添加到启动,但

2、期望这些服务是SystemV目录结构。(请参阅侧栏,“BSD和系统Vinit脚本之间的差异”。)所有进程的父代当Linux机器引导时,究竟会发生什么?在计算机的BIOS完成其任务后,系统会读取硬盘(或软盘,或CD-ROM,或Zip驱动器……Linux是非常灵活的)的第一位,并会遇到引导装入程序。虽然GRUB和其它装入程序也逐渐变得流行,但通常这就是Linux装入程序(LInuxLOader),一般称作LILO。然后LILO将Linux内核装入内存,并开始展示它的魔力。Linux内核初始化了诸如SCSI卡之类的设备,以及其它内核中内置的硬件设备。然后内核运

3、行init,它是除内核之外在系统运行的第一个进程。如果执行psax

4、grep1,就会看到init的进程ID(PID)是1。装入init之后,它会读取inittab以查看下一步做什么。inittab告诉init要进入什么运行级别,以及在哪里可以找到该运行级别的配置文件。运行级别运行级别是由系统上的所有服务在某个给定时间定义的(基本上是操作方式)。Linux可以有几种操作方式:单用户方式、单用户联网方式、多用户方式、始于X窗口的多用户方式,等等。这部分将要说明运行级别的概念、Slackware上有哪些运行级别,已经它们被叫作什么。据我所知,所有Linux发行

5、版都认同运行级别0是“停机”、运行级别1或"S"是单用户方式(稍后将详细说明),运行级别6是重新引导系统。Slackware的运行级别如下:●运行级别0=系统停机●运行级别1=单用户方式,主要用于维护●运行级别2=从不使用●运行级别3=使用控制台登录的多用户方式●运行级别4=使用X11会话管理器的多用户方式(XDM,GDM,KDM)●运行级别5=从不使用●运行级别6=重新引导●运行级别S或s=单用户方式这里没有记录运行级别7到9,在理论上,它们适用于在需要时定制运行级别。但我还没有亲自尝试过创建一个。运行级别配置如果您使用的不是SlackwareLinu

6、x,那么配置文件的结构与我谈到的结构会大不相同。除了inittab文件,所有Slackware的启动配置文件都在/etc/rc.d/目录中。缺省情况下,目录中有5个运行级别rc.*脚本,如果将symlink从rc.0加到rc.6,那么可有6个。运行级别init脚本是:●rc.0=rc.0文件是到rc.6的symlink●rc.M=多用户运行级别2、3和5的init脚本●rc.K=“管理”运行级别,单用户方式●rc.S=系统初始化脚本●rc.4=运行级别4(自动引导入所选择的X会话管理器)的init脚本●rc.6=重新引导或停止系统时由init执行的脚本目

7、录中的其余rc.*文件用于启动诸如联网、内核模块、PCMCIA、Samba、Apache、Netatalk和GPM的系统服务。如果想要使某个服务(如Apache)完全不能在任何运行级别上使用,请使用chmod将文件的许可权从可执行更改成不可执行。除去该文件也可以到达相同效果,但我不推荐这种做法。也许在以后某个日子您会发现要重新启用服务,但却不知道怎样做。rc.inet1脚本负责启动基本联网服务,如设置主机名(IP和DHCP)。rc.inet2脚本负责启动所有其它INET服务,如NFS、包转发、ssh服务器和其它联网守护程序。所有Slackware/etc

8、/rc.d/rc.*文件都是Bashshell脚本,都可以进行手工编辑。可是对于联网,您可能应该先尝试netconfig实用程序。虽然需要手工编辑/etc/resolv.conf来添加多个名称服务器,但是它也许能处理您想要执行的所有操作,而且它非常易于使用。如果您是Linux初学者并且要修改系统,那么也许应该确保您有引导软盘,并且应该复制您所有想要编辑的rc.*文件。如果拿不定主意,我通常会将文件保存为rc.*.old,使它们变成不可执行文件。,使它们变成不可执行文件。使用运行的系统好,现在系统已经运行,然而您需要在单用户方式中执行一些操作--该怎么做呢

9、?本文的下一部分将说明如何在系统运行时更改运行级别,而不是通过重新引导来更改运行

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。