服务器的启动流程
- 加电之后载入Bios(base input output system)
- 载入CMOS信息,此信息放在ROM中。CMOS中的信息由纽扣电池供电。
- 自我检测,检测硬件信息是否正常和完善
- 确定开机设备顺序
- 确定开机设备之后,到应的设备上找MBR(master boot record)分区(通过INT13信道中断查找硬盘的),找到MBR分区后,将后续的操作交给MBR,由MBR分区中的boot loader程序指导后续的流程。
linux:boot loader分为:
- LILO:Linux loader
- Grub:Grand unique BootLoader
- stage1:MBR
- stage1.5:识别常用的不同文件系统
- stage2:引导内核的
- 提供菜单,让用户选择从哪个loader启动。
- 载入内核,后续的所有操作由内核指导
- 转交loader,可以将loader转交给其他的loader(windows不提供转交也不让别人转交它,win8以后锁死MBR分区。只能安装windows的多系统,不能安装其他系统,不提供其他系统的loader选择权)
- loader通过根引用方式,找到内核文件,启动内核。内核启动之后,需要加载驱动,进一步需要识别硬盘信息,需要识别驱动信息就要加载驱动(死循环)。其实内核会加载一个虚拟文件系统(主要放的就是硬盘之类的驱动),识别到真实硬盘之后,重新挂载真实的根。
虚拟文件系统:
是系统安装完成后自动生成,里面主要包含驱动对应启动设备所需的驱动信息。它是一个文件,在内存中以硬盘的方式存在,故也成为ramdisk(red hat5) ramfs(red hat6)
ramdisk---initrd
ramfs------initramfs
linux 设计风格
单内核:打包成一起---半模块化(动态加载外围设备)---linux
- 内核KO kernel object
- 共享SO share object
微内核:模块化---windows、solaris
由于协调复杂,linux没有使用这种内核机制
linux运行级别
- 0:halt关机
- 1:单用户模式启动,直接以管理员身份切入
- 2:多用户模式,不启用NFS
- 3:多用户模式,不启动图形界面
- 4:保留模式
- 5:多用户模式,启动图形界面
- 6:reboot重启