linux系统启动流程:
linux系统启动流程,按层次分的话,可以分为内核空间的启动与用户空间的启动。
下面先说说内核空间的启动流程。
一个linux要跑起来,在最简陋的情况下,必须有:kernel , lib ,application
kernel功能:加载驱动程序,内存管理,进程管理,文件系统,网络管理,安全管理,glibc
库: 是一个函数的集合,每个库文件是一个依赖于其他应用程序才能运行起来的代码片段。
库头文件:一个库中有多少函数,不同函数之差接受的参数,类型不同,这些特点需要有一个文件来对其进行描述,这种对库中的函数的描述性文件就称为库文件。
application:就是平时我们用的二进制程序了
要了解linux的启动流程,就要先了解下面的几个概念。
内核的设计流派:
单内核:紧密,效率高,牵一发而动全身。一个小的故障全局崩溃。
微内核:离散设计,效率相对低,子系统故障不会影响全局。
linux为单内核。
虽是单内核,但却充分吸引微内核设计思想,将能选择的功能,统统做成功能模块。即使是内核,自己也被做成模块。一般为.ko结尾的文件。ko即kernel object。 用户空间的功能模块称为share object,以.so结尾
支持模块的在线装卸。
内核组成部分:
1:核心文件:/boot/vmlinuz-version-release
2: 模块文件: /lib/modules/version-release
ramdisk: 基于内存的磁盘。将硬盘中的mbr载入内存,得到文件系统驱动程序,加载grub。进入grub菜单。
内核空间系统启动流程解析:
post –> bios –> bootloader(引导从哪块硬盘加载) –> mbr –> 加载stage2中的grub —> kernel –> init
post: poweron self test 加电自检。自检的过程由主板上的rom芯片自己定义。rom芯片就是传说中的cmos。
bios : base input output system. 也是装在rom中的一个简单的程序,主要作用就是按用户设置的引导顺序,从指定的设备加载写有bootloader的设备。
mbr:加载指定的设备后,根据mbr内容中的stage1的指向,得知stage2的位置,并且加载stage1_5到内存中,得到stage2所在硬件设备的驱动程序,加载驱动后能读到stage2的内容,即grub。
grub: grand uniform bootloader 。统一加载器。grub会提供一个菜单,给用户选择要启动的操作系统的kernel。
kernel: kernel加载到内存中后,自解压,自初始化,探测各硬件后装载硬件的驱动程序,以只读方式挂载根文件系统,并启动init进程。
至此,内核空间的启动完成了。剩下的就是用户空间的启动了。
Linux系统启动流程探讨
发表于:2017-08-08
作者:运维部落
来源:
 相关文章
Linux入门指南:轻松掌握基础,开启你... 一图看懂 Linux 文件系统的组成 在Linux服务器上部署容器化的企业级文... 在Linux服务器上部署容器化的分布式缓... 利用Linux中断处理机制提高系统性能 利用Linux虚拟化技术实现资源隔离和管理- 周排行
- 月排行
-   途游邹轶:中小公司的运维怎么做?
-   强大!Nginx配置在线一键生成“神器”
-   性能调优第一步:如何搞定服务器硬件...
-   推荐4款Linux系统漏洞扫描、评估工具
-   一张思维导图,包罗全面监控体系建设要点
-   关于运维,阿里云、字节、华科的专家...
-   用这个开源工具让你的数据对老板友好起来
-   一张思维导图,包罗全面监控体系建设要点
-   强大!Nginx配置在线一键生成“神器”
-   韩晓光:系统运维体系架构规划
-   HBase最佳实践——用好你的操作系统
-   硬核:值得尝试的DevOps兵器库
-   Serverless 技术的六大发展趋势
-   利用Linux中断处理机制提高系统性能