linux系统启动流程、内核设计风格、ldd

本文详细解析Linux系统的启动流程,从POST到BIOS,再到MBR与内核加载,直至initrd与根文件系统挂载。阐述了不同运行级别的含义及作用,深入探讨了grub启动配置与kernel初始化过程,包括设备探测、驱动初始化、根文件系统挂载及init进程启动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

启动流程

POST-->BIOS(Boot Sequence)-->MBR(bootloader,446)-->Kernel-->initrd-->(ROOTFS)/sbin/init

启动的服务不同

         运行级别:0-6

                  0:halt

                  1:single user mode,直接以管理员身份切入

                  2:multi user mode,no NFS

                  3:multi user mode,text mode

                  4:seserved                    

                  5:multi user mode,graphic mode       

                  6:reboot 

详解启动过程

bootloader(MBR)

  

核心:动态加载 内核模块

内核:/lib/modules/"内核版本号命名的目录"/

ldd:显示文件的依赖库

runlevel和who -r显示当前运行级别

查看内核release版本号

uname -r

安装grub stage1

#grub

grub> root (hd0,0)

grub>set (hd0)

 

 

grub下启动系统

grub>find

grub>root (hd#,N)

grub>kernel /PATH/TOKERNEL_FILE

grub>initrd /PATH/TO/INITRD_FILE

grub>boot

 

kernel初始化的过程

1、设备探测

2、驱动初始化(可能会从initrd(initramfs)文件中装载驱动模块)

3、以只读挂载根文件系统:

4、装载第一个进程init(PID:1)

/sbin/init:(/etc/inittab)

       upstart:ubuntu,d-bus,event-driven

       systemd:

id:runlevels:action:process

id:标识符

runlevels:在哪个级别运行此行

action:在什么情况下执行此行:

process:要运行程序;

id:3initdefault:

 

ACTION:

initdefault:设定默认运行级别

sysinit:系统初始化

wait:等待级别切换至此级别时执行

respawn:一旦程序终止,会重新启动

 

/etc/rc.d/rc.sysinit完成的任务:

1、激活udev和selinux:

2、根据/etc/sysctl.conf文件,来设定内核参数

3、设定系统时钟

4、装载键盘映射

5、启用交换分区

6、设置主机名

7、根据文件系统检测,并以读写方式重新挂载

8、激活RAID和LVM设备

9、启用磁盘配额

10、根据/etc/fstab,检查并挂载其他文件系统

11、清理过期的锁和PID文件

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值