Linux操作系统之奥秘笔记(前两章BIOS和开机管理程序)


Linux操作系统之奥秘笔记(前两章BIOS和开机管理程序)
 
第一章 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 
 

相关内容

    暂无相关文章