Kernel

1.(BIOS)先启动BIOS基本的输入输出系统,一般保存在主板上的BIOS芯片中。作用:A.负责检查硬件并且;B.查找可启动设备(USB/CDROM/HD)
2.(MBR)BIOS找到可启动设备后执行其引导代码——》引导的代码为MBR的前446字节(作用是加载一个比较复杂的引导程序GRUB);
3.(Grub)是现在linux使用的主流引导程序;可以用来引导现在几乎所有OS;/boot/grub目录保存Grub引导程序文件;grub引导程序配置文件grub.conf
4.(KERNEL)MBR的引导代码将负责找到并加载Linux内核;Linux内核保存在/boot/vmlinuz-2.6XXX.x86_64; 
   一般还会加载内核模块化打包文件:/boot/initmfx-2.6.32.XXX.img;
   问题:我们的一些基本驱动打到内核中,要不启动内核的时候启动不起来内在键盘什么的;所有硬件驱动都要打到内核中,导致内核很臃肿; 
   解决:Linux为何保持联系Kernel的精简得一些不常用的驱动,功能编译成为模块,在需要的时候动态加载,而这些模块被打包保存为一个Initramfs文件。
   早期版本Linux使用initrd文件,initramfs是initrd的替代优化版本,比initrd更加节省空间,更加灵活的
   命令dmesg可以查看本次启动时内核程序的输出信息;
5.(INIT)是Linux系统中运行的第一个进程 ;调用/etc/rd.d/rc.sysinit负责对系统进行初始化,挂载文件系统,并且根据运行级别启动相应服务;
   Linux运行级别: - 0 关机  - 1 单用户模式 - 2 不带网络的多用户模式 -3 多用户模式  - 4未使用  -5 Xll图形化模式 - 6重新启动;
   所有进程的父进程
   可以通过/etc/inittab配置文件修改默认的运行级别
   每个级别对应的的启动服务保存在/etc/rc.d/rd[0|123456].d中
   命令runlevel可以显示当前及上一个运行级别
   命令init可用以改变当前运行级别
   /etc/grub.conf中添加password --md5 跟加密后的字符串 (使用grub-md5-crypt生成密码); 这样可以控制启动菜单中按e进行编辑, 加密后必须要输入密码;

猜你喜欢

转载自houshangxiao.iteye.com/blog/2110880