OpenBSD PC 平台引导分析
2009-05-13 11:55:50来源:未知 阅读 ()
i386和amd64处理器上电或者复位后进行一系列的初始化,然后执行ROM中固化的程序,即我们通常所说的BIOS程序;
[url=javascript:;]硬盘[/url]
[url=javascript:;]启动[/url]
的情况下,BIOS程序尝试将引导硬盘的0柱面0磁道1扇区—称为
[url=javascript:;]引导扇区[/url]
内容读入
[url=javascript:;]内存[/url]
0x07C00处,如果检查到特定的标志就跳转到0x07C00处继续执行。
引导扇区中保存的数据则称为MBR(MasterBootRecord)—包含了系统启动所需的代码和重要的数据;MBR会加载PBR(PartitionBootRecord)—其中也包含了引导程序和信息;
[url=javascript:;]OpenBSD[/url]
的i386和amd64平台上,PBR并不直接引导
[url=javascript:;]内核[/url]
而是加载/boot程序;最终,/boot程序完成引导内核的功能,引导过程至此结束。
上述描述中忽略了很多细节问题,但对于理解OpenBSD的引导过程已经足够,感兴趣的读者可以查阅处理器、硬盘结构和硬盘分区相关的资料以获得更详细的信息。
阅读实际的代码之前,最好浏览一遍biosboot(8)、boot(8)、booti386(8)和bootamd64(8)以及工具installboot(8)的手册,了解引导流程以及各个引导程序的功能。
OpenBSD的汇编代码采用的是AT&T风格,跟常见的IBMPC汇编不同,所以最好先行阅读一些相关的文档。
2 MBR引导
3初级引导
4次级引导
4次级引导
5小结
操作系统引导部分并不是操作系统的范围,因此,常常被人忽略。
笔者本意是分析一下OpenBSD-amd64的启动过程,点到即可。虽然OpenBSD的代码注释做的非常好,但是想理解代码的细节还是需要做很多的相关工作,这样一来分析NetBSD的事情就搁置下来了。
当笔者分析到PBR的时候,分析NetBSD引导的时候一些疑问也突然解开;而分析到/boot引导的时候,很多代码跟内核的代码已经完全一致了,例如ELF文件的加载以及内存管理等,本想继续深入却又想起NetBSD的教训,索性将大致的流程走完,等有机会分析内核的时候再仔细考虑。
在分析OpenBSD引导的过程还算顺利,因为分析NetBSD引导期间做了很多的准备,但是,反过来分析OpenBSD又解开了NetBSD的一些疑问,我想多数情况下,事情都是这样的。
写这篇文章,算是抛砖吧,我也希望能看到有更多好文章,也希望能与感兴趣的朋友互相交流。
希望BSD发展的更好。
内容很长,详见附件
openbsd引导过程.zip(231 KB)
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/4206/showart_501232.html
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- OpenBSD 4.5 发布 2009-05-13
- 在windows下 grub4dos硬盘安装 不解开iso 就差一步啊 2009-05-13
- 分析squid的日志,罗列出一天最多的点击url 2009-05-13
- 分析工作迁移到 NetBSD 5.0 2009-05-13
- 制作可启动的FreeBSD映像,实现从硬盘、U盘引导安装 2009-05-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash