fdfdfwe 发表于 2015-5-8 08:38:21

系统启动流程 chroot ldd,linux运行级别

系统的加载过程
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 默认是运行bash
    1、创建指定目录

    2、复制bash到指定目录下的/bin目录下

    3、使用ldd命令,查看bash的依赖库,并复制到/lib目录下

    4、chroot /path/to/tmeprootdir


ldd命令ldd /path/to/binary_file:显示二进制文件所依赖的共享库   
1
2
3
4
5
6
# 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:定义了系统启动的默认级别


页: [1]
查看完整版本: 系统启动流程 chroot ldd,linux运行级别