系统启动流程 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 [command...] 默认是运行bash

    1、创建指定目录

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

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

    4、chroot /path/to/tmeprootdir

 

ldd命令

ldd /path/to/binary_file:显示二进制文件所依赖的共享库     

[root@localhost 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:定义了系统启动的默认级别


详解启动过程

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。