第一章 Bios
启动电源--Initial北桥--将程序装入内存--读南桥COMS data--建立SMBIOS--POST
北桥控制CPU、内存
南桥控制所有外设
BIOS(Basic Input Output System)的主要作用:
自动检测并进行初始化;
记录系统设置值(如onboard显卡内存大小);
中断处理;
加载操作系统。
Power on阶段:
·Port 80信息
·哗哗的警报声
·POST(Power On Self Test)硬件检查
CPU:列出CPU的基本信息,如速度、Cache大小。
RAM:检查内存大小,以及有无损坏
HDD:以排线所接的顺序依次列出。
CDROM:和硬盘一样顺序依次列出
BIOS选项设置:
·快速开机:可跳过某些POST阶段的测试
·开机顺序:HDD、CD/DVD ROM,USB或网卡开机
·BIOS密码
·Onboard VGA内存大小:其RAM占物理内存,可调
硬盘的主导扇区:(MBR)--硬盘的第零轨,其中开机管理程序可以将指针带到系统核心的地方,512字节
Bootloader
Partition table
Magic Number
446字节
64字节
2 字节
Bootloader(存储开机管理程序):加载扇区、指向kernel
·加载扇区
boot sector(扇区引导):每个分区的第一个扇区(512字节)
··第一个开机画面Bootload提供,第二个界面/选项由Partition中的文件或boot sector所提供的。
·加载kernel
Partion table(存储硬盘分区表)
Magic Number (55AA),使bootloader管理程序辨认出MBR
·Linux得到内存大小直接硬件参考,不经BIOS。
主引导分区程序:
可以利用bios的驱动,软中断形式提供
第二章 开机管理程序
GRUB(GRand Unified Bootloader):(GRUB是一种bootloader)
stage1(MBR中bootloader的备份文件)
·基本的硬件初始化,包括屏蔽所有的中断、设置 CPU 的速度和时钟频率、RAM 初始
化、初始化 LED、关闭 CPU 内部指令和数据 cache 灯。
· 为加载 stage2 准备 RAM 空间,通常为了获得更快的执行速度, 通常把 stage2 加载到
RAM 空间中来执行, 因此必须为加载 Bootloader 的 stage2 准备好一段可用的 RAM 空间范围。
· 拷贝 stage2 到 RAM 中,在这里要确定两点:①stage2 的可执行映像在固态存储设备
的存放起始地址和终止地址;②RAM 空间的起始地址。
· 设置堆栈指针 sp,这是为执行 stage2 的 C 语言代码做好准备。
e2fs_stage_1_5(加载后可访问文件系统目录):硬盘紧接着的32k
stage2(操作系统加载、新增参数、修改选项):提供选项、访问设置文件、连接下一个boot sector。grub.conf
· 由于 stage2 的代码通常用 C 语言来实现, 目的是实现更复杂的功能和取得更好的代码可
读性和可移植性。但是与普通 C 语言应用程序不同的是,在编译和链接 Bootloader 这样的程
序时,不能使用 glibc 库中的任何支持函数。
·初始化本阶段要使用到的硬件设备,包括初始化串口、初始化计时器等。在初始化这
些设备之前、可以输出一些打印信息。
· 检测系统的内存映射,所谓内存映射就是指在整个 4GB 物理地址空间中有指出哪些
地址范围被分配用来寻址系统的 RAM 单元。
· 加载内核映像和根文件系统映像, 这里包括规划内存占用的布局和从 Flash 上拷贝
数据。
· 设置内核的启动参数。
多个操作系统:stage1+stage2得到操作系统kernel的存放位置
grub.conf 结构:
A 批注区
B 开机设置:
hiddenmenu(注释掉,开机倒数);
Default = 0;
Timeout = 5(-1不倒数);
splashimage =(hd0.0)/boot/grub/splashxpm.gz(开机背景图片)
password(grub-md5-crypt 设定密码)
C 开机选项
·title(操作系统名称 ,可设置)
·root 系统使用Kernel及intrd文件存在哪一块硬盘 。hd(0.0)第1块硬盘的第一个分区
·kernel(加载kernel的位置)
·intrd(加载intrd的位置)
stage2找kernel(Bios实体位置,hd(0.0) )
kernel找根文件系统(Linux文件系统格式/dev/sda1)
多重开机管理
·GRUB操作方式:
直接加载
连接加载:直接指向boot sector
**Windows + Linux先装Windows(Windows开机强迫写入MBR及第1分区boot sector,Windows启动修改boot.ini)
·重新安装操作系统:替换MBR的bootloader