复习 LINUX启动流程
LINUX启动流程
首先需要了解以下知识:
定时模式:此模式下,地址访问的都是真实内存地址存在的位置,软件不受限制的操作所有地址的空间与I/O设备
保护模式:全部使用虚拟内存、段页式等对内存进行保护
BIOS:BIOS存储在ROM中,起始位置大家可以自行查阅,BIOS主要包括内存映射
Boot.img:由boot.s编译而成,512字节,安装在启动盘的第一个扇区(MBR),由于空间大小有限,代码简单,起引导作用
一:从电源启动启动开始到BIOS
按下电源->主板向电源组发出信号->主板接收到电源正常启动信号后->主板启动CPU,CPU会重置寄存器并初始化数据,同时定时模式->内存段管理
二:BIOS到Bootloader
BIOS选择一个启动设备将控制权交给启动扇区代码,主要工作是使用中断向量与中断服务程序完成整个Bootloader的加载,最终将boot.img加载到xxxx位置启动,linux内核通过对Boot protocol定义实现引导程序
三:Bootloader加载流程
boot.img->core.img->NTFS->/boot/
加载core之后启动main(),初始化控制台,计算模块基地址,设置root设备,获取grub配置文件,加载模块
总结:按下电源,加载完毕bootloader,后面分析从实时模式进入保护模式,从而启动内核创建0、1、2号进程的整个流程。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具