第一步 : 当启动电源时计算机首先会从CMOS(CMOS是主板上的一块可读写的RAM芯片,是用来保存BIOS的硬件配置和用户对某些参数的设定)
加载BIOS(BIOS设置程序主要对计算机的基本输入输出系统进行管理和设置,使系统运行在最好状态下),并且检查内存数量,基本的硬件信息,
处理器速度,和硬盘转速等.然后BIOS就会寻找是否有系统引导磁盘,若没就会查找硬盘上的MBR(硬盘的主引导记录),并执行记录MBR上的程序,通常
这个就是操作系统的引导程序.Linux上有grub和lilo。
若系统由MBR执行Linux的引导程序开始,在执行之后便会加载linux kernel,而由它负责接下来的工作。
读取固件(firmware)中信息
固件本来应该是一段软件控制程序;
但是这段程序和操作系统无关,固化到主板上;
(CMOS/BIOS)
目的:
安全设置----设置密码
设置引导介质顺序-----定义光盘启动
电源管理------加电自检(网卡、显卡、CPU、硬盘等是否正常)
时钟---设置
硬件时钟:hwclock—hard ware clock
软件时钟:date
如果时钟之间不一致
hwclock --help
#hwclock --set --date=”月/日/年 时:分:秒”
man date
#date 1213113211.52
12月13日11点32分2011年52秒
第二步:自举程序BootLoader(GRUB: 多操作系统启动程序)
GRUB/LILO(LILO代表Linux加载程序)在进入grub/lilo的步骤后,系统会出现一个LINUX或多重操作系统的开机菜单。
目的:载入linux内核(boot)
第三步:加载Linux Kernel (操作系统内核) 在grub/lilo的阶段若选择启动linux,系统就会开始加载内核程序,此时可以说是正式进入linux的控制,linxu首先会搜索硬件并且驱动它们,同时在画面显示出来,用户借此可了解一切硬件设备是否都成功的驱动.也可以在开机后,打开/var/log/dmesg文件来检查所有的开机信息,
第一个目的:
驱动和该操作系统相关的硬件设备
内核文件/boot/vmlinuz-2.4.20-8
主要保存了各种驱动程序
例如:u盘 mp3 手机
第二个目的:
开启进程init /etc/inittab
开启或关闭哪些服务
运行级别
0:关机
1:单用户模式,只允许root用户登陆
2、3:字符型界面
4:被保留级别
5:图形化界面
6:重启
当前默认运行级别:5
切换运行级别: # init n
语法:
Id:run-level:action:process
Id:序号
Run-level:指定运行等级
action:状态
process:指定要运行的脚本/命令
id:5:initdefault:
开机后默认运行级别是5(X11)
si::sysinit:/etc/rc.d/rc.sysinit
si表示id,序号
::表示所有等级都需要执行最后的命令
Sysinit :系统初始化
/etc/rc.d/rc.sysinit :要执行的文件
系统服务程序的开启,环境变量的设置、时钟、加载字体、文件系统、日志文件等
配置文件扩展名称
服务器 apache *.conf
系统 init
第四步:
/etc/rc.d/rc:判断运行级别并开启响应目录下的指令
根据其参数指定的运行模式来执行相应目录下的脚本。凡是以Kxx开头的,都以stop为参数来调用;凡是以Sxx开头的,都以start为参数来调用。调用的顺序按xx从小到大来执行。
rcn.d n=0-6
#ls -l rc5.d
K01samba 操作类型+优先顺序+脚本名称
# cd /etc/rc.d/rc5.d
#ln -s S100script /home/zhy/script1
总结:
开电源---firmware(硬件的识别)--bootloader(操作系统选择菜单)---加载内核(运行驱动)--开启服务(init)—
Initdefault---/etc/rc.d/rc.sysinit---/etc/rc.d/rcn.d—login : passwd
Rc0.d : 该目录下包含两类文件
K:kill 杀死 (关闭服务)
S:start 开启服务
第五步:init在等待/etc/rc.d/rc执行完毕之后(因为在/etc/inittab中/etc/rc.d/rc的action是wait),将在指定的各个虚拟终端上运行/sbin/mingetty,等待用户的登录。至此,LINUX的启动结束。