第十章 Linux 的启动过程

第十章 Linux 的启动过程

一、 常见的三种 Linux 引导方式

① lilo/grub 引导,可实现多重系统引导,应用较普遍;

② loadlin 引导,可在 dos 下引导 linux;

例:将 loadlin.exe 和 vmlinuz 拷贝到一张 DOS 启动软盘上,

启动后执行:loadlin vmlinuz root=/dev/hda8

则可从软盘启动硬盘上根目录为/dev/hda8 的 Linux 系统。

(vmlinuz 是 Linux 的压缩内核文件,在/boot 目录下可找到)

③ linux 内核自带的 bootsect-loader,代码短小,但只能实现

linux 的引导,在普通的应用场合很少使用。

二、 启动过程简述⑴加电后执行 BIOS 自检,读取并执行 MBR 中的引导代码;

⑵由 mbr 中 lilo/grub 或其它引导器解压内核 vmlinuz 到内存;

⑶内核检测硬件设备,以只读方式挂装根目录以检测文件系

统,若无误则该用读写方式挂装文件系统;

⑷内核启动 init 进程,该进程 PID=1,是内核启动的唯一进程;

⑸init 进程读/etc/inittab 配置文件,获取默认的运行级。对于

安装了 x window 的系统通常是 id:5:initdefault;否则通常

是 id:3:initdefault;

⑹init 进程运行/etc/rc.d/rc.sysinit 脚本,完成激活交换分区,

检查磁盘,加载硬件模块、配置网络等一些系统初始化的工

作,以及其它一些需要优先执行任务;

⑺init 进程以运行级别为参数运行/etc/rc.d/rc 脚本,该脚本进

入与运行级别对应的目录(如/etc/rc5.d),先以 stop 为参数

顺序运行所有以 K 打头的脚本,停止相应服务,再以 start

为参数顺序运行所有以 S 打头的脚本文件,启动相应服务;

⑻运行/etc/rc.d/rc.local 脚本,该脚本缺省的情况下只有一条语

句:touch /var/lock/subsys/local。即修改该文件的时间属性;

⑼init 进程为每个终端运行一个/sbin/mingetty 的程序,该程序

在终端初显示提示符,等待用户登录;

⑽用户登录后,/sbin/mingetty 交控制权给 login 程序。Login

程序负责建立用户环境,并启动一个 shell,首先寻找执行

/etc/profile 和用户的主目录中的.bash_profile 脚本文件;

⑾ shell 负责解释执行用户命令。三、 自动运行程序

①开机启动时自动运行程序

修改放置在/etc/rc.d 或 /etc/rc?.d 目录下的脚本文件,可以

使 init 自动启动其它程序。例如:编辑 /etc/rc.d/rc.local 文

件,在文件最末加上一行“xinit”或“startx”,可以在开机

启动后直接进入 X-Window。

②登录时自动运行程序

用户登录时,bash 首先自动执行系统管理员建立的全局登

录 script :/ect/profile。然后 bash 在用户起始目录下按顺

序查找三个特殊文件中的一个:/.bash_profile、/.bash_login、

/.profile,但只执行最先找到的一个。因此,只需根据实际

需要在上述文件中加入命令就可以实现用户登录时自动运

行某些程序(类似于 DOS 下的 Autoexec.bat)。

③退出登录时自动运行程序

退出登录时, bash 自动执行个人的退出登录脚本

/.bash_logout。例如,在/.bash_logout 中加入命令“tar -

cvzf c.source.tgz *.c”,则在每次退出登录时自动执行

“tar” 命令备份 *.c 文件。

④定期自动运行程序

Linux 有一个称为 crond 的守护程序,主要功能是周期性地

检查 /var/spool/cron 目录下的一组命令文件的内容,并在

设定的时间执行这些文件中的命令。用户可以通过 crontab

命令来建立、修改、删除这些命令文件。 例如,建立文件 crondFile,内容为“00 9 23 Jan *

HappyBirthday”,运行“crontab cronFile”命令后,每当

元月 23 日上午 9:00 系统自动执行“HappyBirthday”的程

序(“*”表示不管当天是星期几)。

⑤定时自动运行程序一次

定时执行命令 at 与 crond 类似(但它只执行一次):命令

在给定的时间执行,但不自动重复。at 命令的一般格式为:

at [ -f file ] time ,在指定的时间执行 file 文件中所给出的

所有命令。也可直接从键盘输入命令:

$ at 12:00

at>mailto Roger -s ″Have a lunch″ < plan.txt

at>Ctr-D

Job 1 at 2000-11-09 12:00

2000-11-09 12:00 时候自动发一标题为“Have a lunch”,

内容为 plan.txt 文件内容的邮件给 Roger。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

傻傻的心动

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值