(十八)Linux启动流程
1.系统启动
(1)开启开机按钮,系统自动加载主板上的bios(基本输入输出系统)进行自检。
- 检测系统硬件链接,显卡,内存,磁盘。"检测目的是将设备信息提供给操作系统"。
- 寻找启动磁盘,(光盘启动)(硬盘启动)(软驱启动)采取优先级最高的启动向进行启动。
- 找到启动磁盘后,会找第一个启动扇区“主引导记录”(MBR)。
(2)MBR有512字节,由三个部分组成。
- 引导程序(446字节)加载bootloader(启动载入器,启动内核的小程序)bootloader有两种。
- ⑴lilo:被1024柱面限制,如果lilo改动后必须重启系统后成效。
- ⑵grub:修改后立即生效,已经取代了lilo。
- 分区表(64字节)每16做一个分区表,所以主分区加扩展分区最多只能做4个
- 校验码(2字节)
(3)内核启动,它会接管查看bios电脑上的硬件信息,提供给linux使用。它会将包含在内核的驱动,将它启动。
(4)内核启动成功后,系统会开始初始化,它会initt执行/etc/ab这个文件并执行n个初始化文件。
- 0关机,1单用户模式,2多用户模式不包括nfs,3完全多用户模式,4预留,5图形化,6重启。
- /etc/rc.d/rc.sysinit #定义所有启动文件的初始化文件。
- /etc/rc.d/* #下面会找到指定默认数字的所有文件。S开机自启动,K开机不启动,数字代表启动排名
- /etc/init/control-alt-delete.conf #设置了ctrl+a/t+delete重启文件
- /etc/rc.local #初始化最后加载的文件,自动执行下面命令。
(5)初始化后,用户登陆,会执行4个文件。
- /etc/bashrc #全局文件
- /etc/profile #全局文件
- /root/.bash_profile #环境变量文件
- /root/.bashrc #环境变量文件
2.bootloader程序位置:/boot/grub/stage1 #stager1通过连接工具stager1_5加载stage2 核心。
3.系统启动文件位置:/boot/grub/grub.conf
default=0 #0代表第一个title
timeout=5 #停留5秒钟启动
******************* #背景画面
hiddenmenu #隐藏菜单
title ************** #title启动名字
root (hd0,0) #指定boot分区在哪里,hd0代表第一块硬盘第一个分区。
kernel ************** #告诉相对路径下的内核位置
initrd ************** #系统静态驱动位置,内核有两部分(动态驱动,静态驱动
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!