1.POST --> BIOS(Boot Sequence[检查启动次序]) --> MBR(MBR只是存储空间,bootloader加载到MBR上[找到硬盘上装有系统的分区,并加载系统的内核],446Byte)  --> Kernel(bootloader将内核加载到内存后,内核就获得了系统控制权,探测硬件,加载驱动) --> initrd (虚拟根,也是由bootloader加载,被kernel使用)--> init(/sbin/init 用户空间主导程序,/etc/inittab)


2.kernel加载:文件系统、进程管理、内存管理、网络管理、安全功能、驱动程序


3.存放根/的文件系统叫 rootfs根文件系统


4.内核初始化完成后必须加载根文件系统,之后找到根,才能加载/sbin/init


5.内核设计风格:

单内核:把所有功能都做进内核,Linux (LWP)

内核包括核心和外围模块(/lib/modules/内核版本号)

核心: ko(kernel object)可以动态加载各种外围内核模块,需要哪个装载哪个,保证内核足够小

微内核:支持多线程 Windows,Solaris


6.chroot : chroot /PATH/TO/TEMPROOT [COMMAND...]   : 根切换

chroot /test/virroot /bin/bash


7.ldd /PATH/TO/BINARY_FILE : 显示二进制文件所依赖的共享库


8.启动的服务不同:

运行级别:0-6

0:halt 关机

1:single user mode 直接以管理员身份切入

2:multi user mode, no NFS 接近正常模式,但是不启用NFS

3:multi user mode, text mode 命令模式

4:reseved 尚未定义,保留级别

5:multi user mode, graphic mode 图形界面

5:reboot 重启


9.详解启动过程

bootloader(是个程序,在MBR中)

LILI: linux loader 过时,不能引导大磁盘,不过在嵌入式系统能用

GRUB: Grand Unitfied Bootloader

Stage1: MBR   (第一阶段引导第二阶段)

Stage1_5

Stage2: /boot/grub/


10./etc/grub.conf


default=0   # 是定默认启动的title,从0开始

timeout=5  # 等待用户选择的超时市场,单位秒

splashp_w_picpath=(hd0,0)/grub/splash.xpm.gz    #  grub的背景图片

hiddenmenu   #  隐藏菜单

password --md5 $1$UAVMI$TSWjrlLHJKsucedSsmWDf/

title godben linux   # 内和标题,或操作系统名称,字符串,可自由修改

root (hd0,0)    # 内和文件所在的设备:对grub而言,所有类型硬盘一律hd,格式为(hd#,N) hd#,#表示第几个磁盘,最后的N表示对应磁盘的分区

kernel /vmlinuz-2.6.32-131.0.15.el6.i686 ro root=UUID=fe0c9033-3c0f-4dad-8903-8060ecdbe789 rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=zh_CN.UTF-8 KEYBOARDTYPE=pc KEYTABLE=us crashkernel=auto rhgb quiet   # 内和文件路径,及传递给内核的参数

initrd /initramfs-2.6.32-131.0.15.el6.i686.img    # ramdisk文件路径,虚根