- 博客(7)
- 资源 (2)
- 收藏
- 关注
原创 深入理解 GNU GRUB - 02 boot.S 2.5 MBR过程模拟实现
2.5 MBR过程模拟实现现在,我们对系统引导的第一步已经有了一个详细的认识。为了更深一步的理解MBR和这些BIOS调用,提供一些测试题目: 1) 开机后在屏幕上输出”Hello cppgp”,并在一定时间后重复输出。 2) 开机后紧跟着读取第二个扇区,并且显示整个扇区512字节到屏幕上。实现上述功能,编译生成512字节的IMG文件,设置虚拟机通过软盘引导,选择使用软盘镜像文件,设置镜像文件为我们编译生成的IMG文件,就可进行测试。下文首先简单介绍虚拟机配置,然后实现上述
2011-04-25 11:18:00 1645
原创 深入理解 GNU GRUB - 02 boot.S 2.2 MBR结构 2.3 boot.S代码结构
<br />转载注明出处(cppgp: http://blog.csdn.net/cppgp)<br /> <br />2.2 MBR结构<br />历史悠久的MBR结构自从IBM兼容PC出现以来一直就没变过(但是为支持2TiB以上硬盘而出现的GUID/EFI结构将更改MBR结构)。MBR结构分为三部分,分别是引导指令、分区表DPT (Disk Partition Table)、幻数Magic (Magic=0x55AA)。其中引导指令占用446字节(0~0x1BD),DPT占用64字节(0x1BE
2011-04-25 11:05:00 1940
原创 深入理解 GNU GRUB - 02 boot.S 2.1 相关BIOS例程
转载注明出处(cppgp: http://blog.csdn.net/cppgp)。2. boot.S: GRUB引导第一步boot.S位于目录boot/i386/pc/。这部分指令被加载到0x7C00~0x7DFF。主要工作包括:配置寄存器;设置堆栈;检测引导盘;检测引导盘读取模式;读取另一扇区指令。这个过程用到几个BIOS例程,并且对主引导记录(MBR, Master Boot Record)结构有很大的依赖。因此boot.S我们分作四步进行详细描述:1) 相关BIOS例程2)
2011-04-25 10:59:00 2466
原创 深入理解 GNU GRUB - 01
1. 概述1.1 GRUB是什么GNU GRUB是一款多重引导程序。简单来讲,引导程序是计算机开机运行的第一个软件,它的使命是装载操作系统并运行。实际上,由于平台、存储介质、操作系统、文件系统等的多样性,引导程序都很复杂,同时,引导程序要求有更高安全性、健壮性。GNU GRUB支持多平台(例如X86、PowerPC等)、多存储介质(例如硬盘、软盘、光盘、U盘)、多操作系统(例如Linux、Gnu Hurd等)、多重引导(例如Windows等)、多文件系统(例如Ext2、Ext3、Ext4、FAT32
2011-04-25 10:52:00 3970
原创 Linux总线驱动-02: struct bus_type 结构体
本文测试系统为:Ubuntu 10.10 x86_64 2.6.35-24-generic上节中,除了简单的框架,我们还看到了一个和总线驱动相关的结构体bus_type。这个结构体的定义在include/linux/device.h中。本节先简单介绍结构体中的成员,再对每个成员作详细描述。struct bus_type { const char *name; struct bus_attribute *bus_attrs; struct device_attribute *dev_attrs;
2011-04-19 13:41:00 7262
原创 Linux总线驱动-01: 一个简单的示例
本文测试系统为:Ubuntu 10.10 x86_64 2.6.35-24-generic在新的驱动核心支持下,实现一个什么都不做的总线驱动是很简单的。如下,拷贝代码并保存为ycbus.c:/* * ycbus: a software bus driver (virtual bus driver) * * a trivial ycbus driver */#include #include struct bus_type ycbus_type = { .name
2011-04-14 17:02:00 6708 1
TCP/IP Illustrated Volume 1.chm
2009-06-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人