Linux启动流程
2024-01-05 10:57:29 0 举报
AI智能生成
Linux启动流程是一个复杂但结构化的过程,主要包括BIOS自检、加载GRUB、加载内核、初始化系统及用户登录等步骤。 1. BIOS自检:计算机开机后,BIOS会检查硬件设备的完整性,如内存、硬盘等。 2. 加载GRUB:BIOS检查完成后,会加载GRUB(Grand Unified Bootloader)。GRUB用于选择要启动的操作系统。 3. 加载内核:GRUB根据配置文件选择要启动的内核,将内核加载到内存中,并启动内核。 4. 初始化系统:内核启动后,会初始化硬件设备、加载驱动程序、挂载文件系统,并启动系统第一个进程init。 5. 用户登录:init进程会启动getty程序,为用户提供登录界面。用户输入用户名和密码后,系统会验证用户身份,并启动shell程序。 以上就是Linux启动流程的基本描述。这个过程中,每个步骤都有特定的文件类型和修饰语,比如GRUB配置文件为grub.cfg,内核文件为vmlinuz等,这些文件都有特定的权限设置,以保证系统的安全性和稳定性。
作者其他创作
大纲/内容
CS 设置为 0xFFFF,将 IP 设置为 0x0000,所以第一条指令就会指向 0xFFFF0,开始运行
上电
CPU init
Chipset Init
...
Board Init
POST:初始化硬件
鼠标驱动
键盘驱动
显示驱动
驱动
PXE
硬盘
CDROM
USB
启动管理
BIOS
第一阶段:硬件启动
安装启动引导程序的地方,446字节
1.主引导记录
分区1
分区2
分区3
分区4
记录整个硬盘分区状态,64字节
分区表
2字节55aa
结束符
MBR
第二阶段:启动引导
启动完成后会把boot.img拷贝到内存0x7c00运行,加载core.img
boot.img
硬盘启动的话接下来加载diskboot.img
diskboot.img加载其他部分
kernel&module
core.img
第三阶段:GRUB引导
内核镜像
/boot/vmlinuz
INIT_TASK(init_task)
创建0号进程
trap_init()
中断初始化
mm_init()
内存初始化
sched_init()
调度初始化
vfs_caches_init()
内存文件系统初始化
start_kernel()初始化,启动1号进程,进入跨时代
其他部分初始化
第四阶段:内核引导
不同系统不一样/init 、/sbin/init、 /bin/init、 /bin/sh、/etc/init
init初始化
Centos5之前:sysv
Centos6:upstart
Centos7:systemd
init类型
Level 0系统停机
Level1单用户模式
Level2多用户模式(没有NFS)
Level3完全多用户模式
Level4保留
Level5图形界面
Level6正常关闭重启
Runlevel
/etc/fstab 开机自动挂载硬盘设备
fstab
命令行
ssh
图形化
用户登录
Ctrl+Alt+F1~F6
Linux预留了6个终端,tty1/tty2...tty6
用户切换
第五阶段:系统初始化
Linux启动流程
0 条评论
回复 删除
下一页