系统的加载过程
POST-->BIOS(BOOT sequence) --> MBR(bootloader,446)-->kernel(将kernel加载到内存并解压,利用虚根系统加载硬盘驱动(当伪文件系统退出时,需将/dev,/sys,/proc目录搬运至新根))-->initrd(RHLE5)/initramfs(RHEL6)-->init进程(用户空间的主导程序)
POST-->BIOS(boot squence)-->MBR(bootloader)-->kernl-->initrd--(rootfs)/sbin/init
虚根系统:
一般是将内存的一段空间做为磁盘使用(RHLE5叫ramdisk-->名称叫initrd,RHLE6叫rmfs
-->名称叫initramfs)
bootloader加载内核的同时,也加载initrd
kernel功能:
文件管理
进程管理
内存管理
网络管理
安全功能
驱动程序
内核设计风格:
单内核:所有功能都做进内核,即单内核。linux使用的内核方式。linux上线程叫LWP.(轻量进 程)
模块化的设计:
核心:KO(kernel object),readhat suse可以实现动态加载模块功能 内核命名:vmlinuz-2.6.32-->/boot/vmlinuz-*(单内核)
/lib/modules/2.6.32* (包含了外围模块等内容)
外围模块:内核路径:/lib/modules/”内核版本号命名的目录“下
微内核:只是核心,外围功能都做成子系统,需要用的时候,由内核高度使用,windows,solaris
微内核真正支持多线程的
/lib/modules/2.6.32-279.e16.X86_64/kernel目录模块:
arch:平台
crypto:加密
drivers:驱动
fs:文件系统
kernel:内核自身的额外功能
lib:库
mm:内存管理
net:网络
sound:声卡
chroot命令:将root切换至一个指定的目录
chroot /path/to/temprootdir [command...] 默认是运行bash
1、创建指定目录
2、复制bash到指定目录下的/bin目录下
3、使用ldd命令,查看bash的依赖库,并复制到/lib目录下
4、chroot /path/to/tmeprootdir
ldd命令
ldd /path/to/binary_file:显示二进制文件所依赖的共享库
[[email protected] kernel]# ldd /bin/bash linux-vdso.so.1 => (0x00007fff3a1fe000)(虚的,不需要复制) libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00007f15df7df000) libdl.so.2 => /lib64/libdl.so.2 (0x00007f15df5db000) libc.so.6 => /lib64/libc.so.6 (0x00007f15df219000) /lib64/ld-linux-x86-64.so.2 (0x00007f15dfa1d000)
运行级别:0-6
0:halt
1:single user mode(单用户模式,直接登陆管理员,不需要密码)
2:multi user mode(多用户模式,不启动nfs功能)
3:multi user mode (多用户模式,文本格式,text mode)
4:reseved(保留级别)
5: multi user mode ,graphic mode(多用户模式,图形界面)
6:reboot
/etc/inittab:定义了系统启动的默认级别
详解启动过程