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文件路径,虚根