内核启动1-启动流程总述/bootlader学习
来源:互联网 发布:淘宝店免费代理货源 编辑:程序博客网 时间:2024/06/11 15:56
跟着导师做的项目一直在分析sel4微内核的启动流程,每次听学长讲的时候都晕晕乎乎,有些名词听了很多遍也不太理解,就打算自己研究一下内核启动。
根据《鸟叔的linux》学习
第20章
系统启动流程
1.加载BIOS的硬件信息、进行硬件自我测试、并依据设置得到第一个可以启动设备
2.读取并执行第一个启动设备内MBR的boot loader
3.依据boot loader设置加载kernel,kernel会检测硬件、加载驱动
4.硬件驱动成功后,kernel主动调用init进程,init会取得run-level
5.init执行…
笔记:
1.BIOS:
(1)系统加载BIOS,BIOS加载CMOS,CMOS取得主机的各项硬件配置。
(2)取得信息后,BIOS开机自检,并进行硬件检测的初始化后,可对启动设备进行数据存取。
(3)指定设备来读取磁盘中的操作系统内核文件。
不同操作系统的文件系统格式不同,所以要不同的boot loader(引导装载程序)来处理内核文件加载load的问题
2.boot loader:
(1)loader的主要功能是认识操作系统的文件格式并据以加载内核到内存中去执行
不同操作系统的文件格式不同,所以每种OS都有自己的boot loader
(2)多系统问题:
1.问题:bl放在MBR中,系统的MBR只有一个,如何在同一主机上安装多个boot loader?
2.boot loader放置的位置
有两个地方放置有
(1)MBR中:图中左上角标有的123代表了不同的bl。windows默认在MBR中安装bl,LINUX可安可不安。
(2)boot sector(文件系统的引导扇区):每个大正方形左下角的小正方形就放着各loader。
question:MBR与boot sector的关系
(3)MBR只有一个,如何选择执行哪个bl?
boot loader的功能:提供菜单(不同启动选项)
加载内核文件(直接指向可启动的程序区段)
转交其他loader(使其他loader进行引导装载)
假设我的MBR使用的linux bl中已经有了3个菜单(左下角方块)
1.直接指向Linux的内核文件加载
2.windows的loader接管启动流程
3.使用LINUX的boot sector内的引导加载程序,跳出新菜单
4.加载kernel(涉及挂载目录、以后再看)
- 内核启动1-启动流程总述/bootlader学习
- ARM处理器启动流程及bootlader架构设计
- 学习笔记:内核启动流程
- 内核:Linux2.6内核启动流程学习
- 内核:Linux2.6内核启动流程学习
- 内核:Linux2.6内核启动流程学习
- 内核:Linux2.6内核启动流程学习
- Linux2.6内核启动流程学习
- linux内核启动流程
- Linux内核启动流程
- 内核启动流程
- linux内核启动流程
- linux内核启动流程
- 内核启动流程
- linux内核启动流程
- Wince5内核启动流程
- Linux内核启动流程
- Wince5内核启动流程
- Druid 介绍及配置
- 动态内存函数
- vmware12及vmware14注册码
- IOS系统
- SSM+EasyUI分页脚本简用
- 内核启动1-启动流程总述/bootlader学习
- AndroidStudio低版本sdkversion开发 Error:Minimum supported Gradle version is 4.1 Current version is 2.14.1
- Spark (一)
- Linux安装ftp组件
- 几款VSCODE上好用的插件
- C++构造函数、析构函数与抛出异常
- android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@4
- ToLua源码分析:启动流程
- C语言变量内存分配