linux文件系统启动流程,linux 系统启动流程探讨

本文详细阐述了Linux系统从内核空间到用户空间的启动流程。内核空间启动涉及post自检、BIOS、MBR、GRUB加载、内核加载及init进程启动等步骤。Linux采用单内核设计,支持模块化,便于功能扩展。内核由核心文件和模块文件组成,通过ramdisk加载根文件系统。用户空间的启动将在内核空间启动之后进行。
摘要由CSDN通过智能技术生成

linux系统启动流程:

linux系统启动流程,按层次分的话,可以分为内核空间的启动与用户空间的启动。

下面先说说内核空间的启动流程。

一个linux要跑起来,在最简陋的情况下,必须有:kernel,lib,application

kernel功能:加载驱动程序,内存管理,进程管理,文件系统,网络管理,安全管理,glibc

库:是一个函数的集合,每个库文件是一个依赖于其他应用程序才能运行起来的代码片段。

库头文件:一个库中有多少函数,不同函数之差接受的参数,类型不同,这些特点需要有一个文件来对其进行描述,这种对库中的函数的描述性文件就称为库文件。

application:就是平时我们用的二进制程序了

要了解linux的启动流程,就要先了解下面的几个概念。

内核的设计流派:

单内核:紧密,效率高,牵一发而动全身。一个小的故障全局崩溃。

微内核:离散设计,效率相对低,子系统故障不会影响全局。

linux为单内核。

虽是单内核,但却充分吸引微内核设计思想,将能选择的功能,统统做成功能模块。即使是内核,自己也被做成模块。一般为.ko结尾的文件。ko即kernelobject。用户空间的功能模块称为shareobject,以.so结尾

支持模块的在线装卸。

内核组成部分:

1:核心文件:/boot/vmlinuz-version-release

2:模块文件:/lib/modules/version-release

ramdisk:基于内存的磁盘。将硬盘中的mbr载入内存,得到文件系统驱动程序,加载grub。进入grub菜单。

内核空间系统启动流程解析:

post–>bios–>bootloader(引导从哪块硬盘加载)–>mbr–>加载stage2中的grub—>kernel–>init

post:poweronselftest 加电自检。自检的过程由主板上的rom芯片自己定义。rom芯片就是传说中的cmos。

bios:baseinputoutputsystem.也是装在rom中的一个简单的程序,主要作用就是按用户设置的引导顺序,从指定的设备加载写有bootloader的设备。

mbr:加载指定的设备后,根据mbr内容中的stage1的指向,得知stage2的位置,并且加载stage1_5到内存中,得到stage2所在硬件设备的驱动程序,加载驱动后能读到stage2的内容,即grub。

grub:granduniformbootloader。统一加载器。grub会提供一个菜单,给用户选择要启动的操作系统的kernel。

kernel:kernel加载到内存中后,自解压,自初始化,探测各硬件后装载硬件的驱动程序,以只读方式挂载根文件系统,并启动init进程。

至此,内核空间的启动完成了。剩下的就是用户空间的启动了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值