Linux中国  设为主页
 收藏本站
 
当前位置: > 首页 ->Linux技术 ->发行版专区 ->slackware ->Slackware Linux启动过程详解
  相关分类: 
CentOS
ubuntu
turbolinux
Suse
slackware
Redhat
Mepis
mandriva
Mandrake
knoppix
Gentoo
Fedora
Debian
红旗
  站内搜索: 
热门文章排行
热门文章排行 Fedora Core 5.0 用Xen虚拟Slackware(04-11)
Slackware 9 ghostscript/gv 中文解(05-05)
轻轻松松的安装Slackware Linux -- 4(05-05)
Slackware 11.0使用手记 (04-22)
轻轻松松的安装Slackware Linux -- 5(05-05)
精采文章排行
精采文章排行 轻轻松松的安装Slackware Linux -- 5(05-05)
轻轻松松的安装Slackware Linux -- 4(05-05)
轻轻松松的安装Slackware Linux -- 0(05-05)
轻轻松松的安装Slackware Linux -- 2(05-05)
轻轻松松的安装Slackware Linux -- 1(05-05)
  ·轻轻松松的安装Slackware Linux -- 4.如·轻轻松松的安装Slackware Linux -- 0.自·轻轻松松的安装Slackware Linux -- 2.作·轻轻松松的安装Slackware Linux -- 1.如·Slackware 9 ghostscript/gv 中文解决方· Slackware Linux实战手记之安装篇· 认识 Slackware Linux 及制作系统安装磁· 认识 Slackware Linux 及制作系统安装磁· 系统安装初步之Slackware Linux 的硬碟

Slackware Linux启动过程详解

作者:Brockmeier    来源:IBM DW中国   点击:   日期:2007-04-22 [收藏] [投稿]

  IE是否经常中毒?推荐您

Joe Brockmeier 研究了 Slackware Linux init 进程。他讨论了系统怎么样初始化服务、各种运行级别是什么,以及怎么样从缺省安装中添加或除去服务来定制系统。

Linux 用户正日益成熟,这意味着他们想要将系统配置成执行他们希望完成的任务。但目前 Linux 发行版通常都附带了自动配置的设备和启动服务,如 Sendmail 或 Apache。这些发行版没有考虑到的是毫不更改其缺省设置来运行服务,如 Apache -- 用户毫不知情 -- 会让黑客和利用脚本捣乱的人趁虚而入。而且这会用完本可以更好利用的系统资源 -- 比如可以用于 Quake 或您喜欢的编译器的更多处理器时间。由于缺少控制是件“糟糕的事”,因此让我们看一下 Linux 系统引导时在 init 进程期间,在所涉及的各个运行级别上都发生了什么,以及怎么样在系统运行时定制系统或在运行级别之间切换。

我们的示例使用 x86 平台上的 Slackware Linux 发行版(请参阅本文后面的 参考资料 )。大多数信息可用于其它 Linux 发行版,但在细节处会略有不同。尤其是,与其说 Slackware 的 init 结构类似于 System V 结构,还不如说它更类似于 BSD UNIX 结构,尽管 Slackware 的最新发行版中的程序做了一些让步,它们要将服务添加到启动,但期望这些服务是 System V 目录结构。(请参阅侧栏, “BSD 和系统 V init 脚本之间的差异”。)

所有进程的父代

当 Linux 机器引导时,究竟会发生什么?在计算机的 BIOS 完成其任务后,系统会读取硬盘(或软盘,或 CD-ROM,或 Zip 驱动器……Linux 是非常灵活的)的第一位,并会遇到引导装入程序。虽然 GRUB 和其它装入程序也逐渐变得流行,但通常这就是 Linux 装入程序 (LInux LOader),一般称作 LILO。

然后 LILO 将 Linux 内核装入内存,并开始展示它的魔力。Linux 内核初始化了诸如 SCSI 卡之类的设备,以及其它内核中内置的硬件设备。然后内核运行 init,它是除内核之外在系统运行的第一个进程。如果执行 ps ax | grep 1 ,就会看到 init 的进程 ID (PID) 是 1。

装入 init 之后,它会读取 inittab 以查看下一步做什么。 inittab 告诉 init 要进入什么运行级别,以及在哪里可以找到该运行级别的配置文件。

运行级别

运行级别是由系统上的所有服务在某个给定时间定义的(基本上是操作方式)。Linux 可以有几种操作方式:单用户方式、单用户联网方式、多用户方式、始于 X 窗口的多用户方式,等等。这部分将要说明运行级别的概念、Slackware 上有哪些运行级别,已经它们被叫作什么。

运行级别由数字或字母标明。可惜,不是所有的 Linux 发行版在各个运行级别的称呼问题上都能达成共识。在某些发行版中,运行级别 3 是使用 X 窗口登录的多用户方式。而其它的,如 Slackware,将运行级别 3 指定成使用控制台登录的多用户方式。

据我所知,所有 Linux 发行版都认同运行级别 0 是“停机”、运行级别 1 或 "S" 是单用户方式(稍后将详细说明),运行级别 6 是重新引导系统。Slackware 的运行级别如下:

  • 运行级别 0 = 系统停机
  • 运行级别 1 = 单用户方式,主要用于维护
  • 运行级别 2 = 从不使用
  • 运行级别 3 = 使用控制台登录的多用户方式
  • 运行级别 4 = 使用 X11 会话管理器的多用户方式 (XDM, GDM, KDM)
  • 运行级别 5 = 从不使用
  • 运行级别 6 = 重新引导
  • 运行级别 S 或 s = 单用户方式

这里没有记录运行级别 7 到 9,在理论上,它们适用于在需要时定制运行级别。但我还没有亲自尝试过创建一个。

运行级别配置

如果您使用的不是 Slackware Linux,那么配置文件的结构与我谈到的结构会大不相同。除了 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 执行的脚本

目录中的其余 rc.* 文件用于启动诸如联网、内核模块、PCMCIA、Samba、Apache、Netatalk 和 GPM 的系统服务。如果想要使某个服务(如 Apache)完全不能在任何运行级别上使用,请使用 chmod 将文件的许可权从可执行更改成不可执行。除去该文件也可以到达相同效果,但我不推荐这种做法。也许在以后某个日子您会发现要重新启用服务,但却不知道如何做。

rc.inet1 脚本负责启动基本联网服务,如设置主机名(IP 和 DHCP)。 rc.inet2 脚本负责启动所有其它 INET 服务,如 NFS、包转发、ssh 服务器和其它联网守护程序。

所有 Slackware /etc/rc.d/rc.* 文件都是 Bash shell 脚本,都可以进行手工编辑。可是对于联网,您可能应该先尝试 netconfig 实用程序。虽然需要手工编辑 /etc/resolv.conf 来添加多个名称服务器,但是它也许能处理您想要执行的所有操作,而且它非常易于使用。

如果您是 Linux 初学者并且要修改系统,那么也许应该确保您有引导软盘,并且应该复制您所有想要编辑的 rc.* 文件。如果拿不定主意,我通常会将文件保存为 rc.*.old ,使它们变成不可执行文件。,使它们变成不可执行文件。

使用运行的系统

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见:
>> 论坛入口 <<

上一页12 3 下一页

上一篇:Slackware 11.0使用手记   下一篇:Slackware 11安装ATI驱动过程全记录
文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论

   相关文章:
·轻轻松松的安装Slackware Linux -- 5.其

   文章评论:(1条)
  
 请留名: 匿名评论   点击查看所有评论 论坛讨论
 

 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。