操作系统内核设计

操作系统内核设计

ID:34016766

大小:253.60 KB

页数:17页

时间:2019-03-03

操作系统内核设计_第1页
操作系统内核设计_第2页
操作系统内核设计_第3页
操作系统内核设计_第4页
操作系统内核设计_第5页
资源描述:

《操作系统内核设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、操作系统内核设计胡亦遂2002年8月-11月写在前面这是我的梦想。出于各种原因,有来自兴趣爱好的、有来自对现状的感慨、有来自外界的激励……我曾经怀着一腔热血,坚定地说“我要写OS”。进了大学,我学到了很多、看到了很多,忽然发现自己己不像以前那样富有激情,我的热情正逐渐被理智取代,我不再说那句话,我感觉自己似乎不会这么做。时间证明了世界上有那么多“巧”的事情。我曾经费劲心思寻找IA-32方而的资料,但一无所获,加上测试简单的保护模式代码而频繁重启计算机的恶劣环境和极低的效率,更大地打击了我的信心,“OS,那是一件遥远的事情……”。2002年7月,就在暑假开始之前,我

2、在图书馆无意中发现了《IntelPentiumUser'sManualVolume3》内容涵盖了全部的IA编程细节,这个没什么大不了的,其实我早有了《IA-32SoftwareDeveloper'sManual^Volume1-3电子版我打算冋家去看看,总比看电子版舒服吧。不久,同学介绍给我一个软件一一VirtualPC,我第一次看到如此好玩的东西,有了它,我就可以玩转各种操作系统,轻松安全。但是我总觉得用它玩现成的OS缺了点什么,VirtualPC不仅提供我们多操作系统的管理能力,更重要的是它提供了我们一个方便安全的实验坏境一一忽然间,OS又近在眼前!似乎我注定

3、要写一个OS。于是,我开始写OS。我不清楚为什么要这么做,可能原因太多了。这是一个全新的环境,我看到了许多我从未看到也是我在以前这种传统环境下不可能看到的东西,也解决了许多无法解决的问题。我又重新找回了我刚开始学电脑时的感觉,那种感觉,现在看起来真的太好了,以至于我不再愿意编写其他的基于现有平台之上的应用程序,“那些,不过如此如此,没什么意思”。OS的世界是一个曲曲折折世界(现在是,可能以前不是),在微软大行其道一统天下的今天,从头做一个OS意味着什么?我从未多想这些问题,因为他们会阻止我继续写我的OSo当我再次反省自己为什么写OS的时候,我发现自己的动机特别单纯

4、,为了兴趣、为了学习、为了我曾经的梦想。和Linus这样的高手相比,我什么都不是,我无法如此轻松地说一句“Justforfun”,现实一点,我还是说"Justforstudy”。时代给了我们很多机会,现在写OS并不是一件很I木I难的事,至少可以看看Linux源码。我们现在用得多的是Windows,分析Windows也不困难,有了足够的Windows编程经验,读些微软的文档,加上现在琳琅满目跟踪工具(首推SoftICE),不难发现Windows的很多Solutions是很不错的。我的设计来自于实践、学习和思考,我充分借鉴了Linux和Windows的一些处理方法,根

5、据自己的理解,设计自己的解决方案。在具体操作时,我的内核中会有一些Linux和Windows的影子,但一切都是基于我自己的理解和设计。这部分仅讨论OS内核的问题,事实上关于OS,那是一个涉及而很广的话题,内核仅是其中的很小一部分,以下将以OSKernel代表本文的主角。目录系统概述基本组成和行为内存格局任务调度文件系统其他内存管理逻辑页线性页表映射动态请页机制页管理虚存管理内存格局内存映射任务调度调度模型进程与线程模型中断与Critical-Section问题内核机制文件系统资源集屮与统一资源汇集资源管理模块本地文件系统VFS接口高速缓存XSFS文件系统设计思想文

6、件系统结构数据块位图流目录结构系统概述OSKernel是一个基于IA-32的纯32位内核,根据最初的设计,OSKernel将基于IntelPentium或更新的CPU。出于设计背景和目标考虑,OSKernel将放弃所有兼容性(当然,会遵循现有的标准),以实验为冃的,追求架构的合理和更优化。在最初的设计过程中,将基本遵循常规操作系统行为特征,除此Z外,设计者可以加入合理、新颖的特性,总Z,OSKernel首先是个实验平台。一、基本组成和行为OSKernel的设计目标是一个可扩展的微内核架构的操作系统内核,因此,这部分只包含必需的功能模块。根据第一期设计,包含模块如下

7、:内存管理:负责内核与用户进程的内存管理,包括页管理、堆管理和维护模块;内核控制台:内核初始化吋用到的控制台,负责屏幕的输出和键盘输入;虚拟文件系统:整个系统唯一的文件系统,管理了绝大多数的系统资源;本地文件系统:提供了本地文件系统(NativeFS)层的支持(XSFS文件系统);任务调度:硬件层(CPU层)的任务调度;设备管理:提供统一的设备访问接口;基本设备驱动:系统初始化吋必备的设备驱动;进程管理:用户进程、线程的管理;内核调试器:提供对整个系统的调试支持;其他:包括•一致性维护、冲突控制、异常处理等,以及常用的工具函数。OSKernel的任务是完成操作系统

8、初始化,装

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。