一些OS前置知识(linux)

type
status
date
slug
tags
summary
category
icon
password

计算机启动

计算机系统的启动过程
BIOS-MBS:
  • 计算机通电,硬件初始化
  • 执行BIOS,进行硬件检测,确定启动设备
  • 主引导记录(MBR),包含引导操作系统的相关信息
  • 启动加载器,开始于MBR中的加载程序,结束于操作系统运行
  • 执行操作系统内核,计算机完成启动
notion image
 

计算机通电

计算机通电后,CPU中的执行地址会初始化为BIOS的地址,然后开始加载执行BIOS程序。这里面的BIOS程序是笔记本厂商出厂时写入ROM中的。ROM中BIOS的执行地址,是根据处理器手册约定值进行设定的
不同CPU在执行BIOS前操作不同,x86指令地址由CS:IP两个寄存器构成,CS:IP初始化时指向ROM中的一条指令,该指令是跳转指令,跳到BIOS的地址。且需要从实模式到保护模式的转变
 

BIOS

输入输出系统(Basic Input/Output System)
  • 提供硬件接口,如基本的输入、输出功能:通过中断的方式实现,例如INT 10h: 字符显示INT 13h: 磁盘扇区读写INT 15h: 检测内存大小INT 16h: 键盘输入
  • 进行硬件检测,读取硬件信息:BIOS运行时首先进行通电自检,检查CPU、内存等设备有无异常,然后对硬件初始化,例如初始化内存让CPU可以访问以及监听I/O总线,识别连接到计算机上的硬盘、网卡、PCI等设备
  • 查找并加载可启动设备:完成通电检测后,BIOS寻找第一个启动设备,启动设备里存放操作系统代码和启动配置信息。可以有多个启动设备,如硬盘、U盘、DVD、网络启动设备等
    • 读取启动设备第一个扇区内容到内存,并跳转到该地址执行扇区中的启动代码
    • 如果设备内容不合法,则回到BIOS,按照启动顺序加载下一个启动设备。直到找到可启动的设备,如果没有,则发出异常
 

主引导记录

  • BIOS-MBR启动中,启动设备的第一个扇区的内容称为主引导记录(MBR,Master Boot Record)结构如下:
notion image
  • 过程
    • 启动代码(Bootstrap Code):将扇区的操作系统代码加载到内存,然后执行操作系统代码
    • 设备分区表(Partition Table):描述4个主分区的详细信息,包括该分区的起始位置、文件系统和可用状态
    • 主引导记录签名(Boot Signature):标志当前扇区是否合法,不合法就跳到寻找下一个启动设备
启动管理器(BootLoader):把操作系统代码加载到内存,然后跳转到内存执行操作系统代码,如果启动过程比较简单,比如MBR中的启动代码直接加载执行操作系统代码,那么MBR中的启动代码就可以理解为启动管理器;对于复杂的启动过程,加载操作系统代码由一系列软件完成,我们认为这一系列软件构成启动管理器,它开始于MBR的启动代码,结束于操作系统内核的启动
 

操作系统

内存中的操作系统开始执行,首先运行的是内核程序。以linux为例,内核加载成功后,第一个运行的程序是/sbin/init ,它根据配置文件(Debian系统是/etc/initab)产生init进程。这是linux启动后第一个进程,pid进程编号为1,其它进程都是它的后代
然后,init线程加载系统的各个模块,比如窗口管理器和网络管理器,直至执行用户登录程序,跳出登录界面,等待用户输入用户名和密码,至此启动过程完成
 
 
 
 
 
上一篇
ICBC
下一篇
一些OS前置知识(android)
Loading...
文章列表
Hi~, I ‘m moyao
reverse
pwn
pentest
iot
android
others
ctf
iOS