Chinaunix首页 | 论坛 | 博客
  • 博客访问: 70161
  • 博文数量: 24
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 245
  • 用 户 组: 普通用户
  • 注册时间: 2014-12-10 08:06
文章分类
文章存档

2015年(24)

我的朋友

分类: LINUX

2015-04-03 10:27:31

linux系统启动流程
                                    BIOS  系统加电自检)

                        MBR:BOOT CODE  (在硬盘上)
                                 
执行引导程序:GRUB
                                          加载内核   
                                          执行INIT(PID为1)
                                         RUNLEVEL
1、BIOS

BIOS(basic in/out system),基本输入输出系统,一般保存在BIOS芯片中。
计算机启动首先运行BIOS,其功能是负责检查硬件(检查CPU、磁盘、显卡出现故障会发出滴滴的响声并查找可启动设备,比如USB(系统U盘)、CD-ROM(系统光盘)、HD(系统硬盘)等,这些启动设备都有引导信息。
2、MBR(Master Boot Recorder 主引导记录)
系统自检完之后,就开始读取磁盘上的数据,首先读取的是MBR。
MBR位于磁盘的零柱面,零磁头,1扇区。
MBR包含了3个部分:
(1)bootloader,又称为自举程序。
(2)partition lable, 分区列表

(3)magic number,结束标识字
MBR位于系统盘的前512B,最后2Byte为0x55、0xAA。系统会在启动设备上查找第一个512Byte的最后2Byte是否为0x55、0xAA,如果是那么该设备将作为启动设备。在用U盘安装系统时,U盘就是第一启动设备,MBR位于U盘上。在MBR中前446Byte为简单的引导代码。
3
执行GRUB
在grub中会指出/boot所在分区,内核的位置以及相应的内核参数,
MBR的引导代码负责查找并加载linux内核
4、KERNEL
启动过程,linux内核的作用主要是驱动硬件,启动进程 init
linux的内核保存在/boot/vmlinux-..........
还会加载内核模块打包文件 /boot/initramfs.......
为了保持linux内核的精简,通常会将一些不常用的驱动编译成模块,在需要时再动态加载,这些模块被保存在initramfs中。
早期linux使用的是initrd,现在用initramfs代替,initramfs更加精简、节省空间。

命令dmesg可以查看本次启动时的内核输出信息,同样可以在/var/log/dmesg中查看;在内核出错时查看。

5、INIT
init是linux的第一个进程,是所有进程的父进程,PID恒为1,PID为0的进程称为内核调度器。调用/etc/rc.d/rc.sysinit负责对系统进行初始化,挂载文件系统,并根据运行级别启动相应服务。
linux的运行级别
 0      关机
1      单用户模式
2      不带界面的多用户模式,无NFS
3      不带界面的多用户模式
4      未使用
5      xII图形化模式
 6      重新启动
可以通过/ect/inittab修改默认的运行级别
每个级别对应的启动服务保存在/etc/rc.d/rc[0...6].d
命令runlevel可显示出上次和当前运行级别
init命令可以修改运行级别
运行级别切换:init [123456Ss]    telinit [123456Ss],其中telinit是init的软连接。

当父进程终止时,子进程由于某种原因仍然存活,该子进程称为孤儿进程,系统会将init进程作为孤儿进程的父进程。

单用户修改ROOT密码 
为内核传递参数“|”或“single”可使系统进入单用户模式。
单用户模式下不启动任何服务
单用户模式直接以root身份登录无需密码
可以使用passwd来修改密码


GRUB加密
加密后的密码可由grub-md5-crypt生成
通过在grub.conf中的启动配置中加入如下参数即可对grub进行加密:
passwd --dm5 $................................

hwclock
查看硬件时间


阅读(695) | 评论(0) | 转发(0) |
0

上一篇:linux管道及重定向

下一篇:STM32多机通信

给主人留下些什么吧!~~