lus开发计划.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
lus开发计划.doc

LouOS开发计划 开发团队:未定 开发人数:未定 开发小组长:未定 开发时间:1个月 版本号:0.0.1 ? 开发目标:一个支持多任务的控制台系统内核 内核模式:宏内核 代码估量:3k?lw行 开发难度:★★★ ?开发平台:Windows XP SP3 Professional 开发语言:汇编、C 开发工具: 编译工具(nasm或masm,C语言用gcc或cl.exe,链接工具用link.exe或推荐其 他的软件) 绝对磁盘读写工具(winhex或自己开发个能用的就行) 虚拟机(bochs、qemu,或者用更好的vmware) 调i式工具(系统A带的debug.exe或其他的第三方软件) 系统模块设计 该系统根据启动过程分为两个模块: 根据从属关系分为以下模块: 根据从属关系分为以下模块: 进程.调度 Process schedule进程通信 Process MessagelAl 存管理 进程.调度 Process schedule 进程通信 Process Message lAl 存管理 Memory Manager 运行时刻库Runtime Library 各模块详细说明 1、 引导程序(Bootsect) 该模块用于将系统内核加载到内存屮,尽量精简,能实现主要任务就好,不必在此消耗 大量代码。 2、 内核模块(Kernel) 我们的系统和传统的OS不同,在此我们的Kernel充当Loader使用,用于加载它附属的 子模块,由于引导程序还没进入保护模式,所以又kernel启动,具体过程如下: 通过中断调用获得内存大小(实模式) 初始化gdt (实模式) 进入保护模式(保护模式) 启动分页机制(保护模式) 设罝硬件屮断(保护模式) 用户退出os (实模式) Ps: kernel集成了四大模块的调用阑数和接口,所以不用加载。 3v 进程调度(Process Schedule) 进程调度算法采川时间轮转调度法,之所以不用优先权调用法是因为系统还未使用多级 权限,普通程序不必没置太麻烦,而且优先权转换繁琐,相对于我们这些菜鸟级的界易 出错。 使用一个数据结构描述进程信息: Struct task_strcut {Int pid;Char *p_name; Int start_time; Struct task_strcut { Int pid; Char *p_name; Int start_time; Int used_time; Char *file_path; //进程ID //进程名称 //开始运行吋间 //已经运行的时间 //进程文件主体 //进程的TSS Struct TSS; } TSS是描述进程运行吋的堆栈信息,具体结构如下 I/O Map Base Addr^sT I/O Map Base Addr^s T LDT Segment Selector GS FS DS SS cs ES EDI ESI EBP ESP EBX EDX ECX EAX EFLAGS EIP CR3(PDBR) SS2 ESP2 SS1 ESP1 S9D ESPO Previous Task Link 1CX) 96 oe 88 34 30 76 72 6ft 64 60 56 52 48 44 40 36 32 28 24 20 16 12 8 4 0 进程切换时先保存当前进程的TSS,在通过进程表切换到下一个进程,并恢复TSS。 4、内存管理(Memory Manager) 该模块只有儿个函数:分配和回收。功能类似于C语言提供的函数,只不过这个要我们 自己写并且要注意读写权限的问题。 功能描述: 进程调用时,为进程分配空闲的地址; 进程消亡时,自动将已分配的地址回收; 进程主动回收时,重建可分配的列表 5、文件系统(File System) 文件系统我们自己幵发个勉强够用的就行,包括创建、读写、删除。 相关可参考 fat 16 的原理开发:HYPERLINK http://baike.baidu.conVview/283439.htm baike.baidu.conVview/283439.htm 6、运行时刻库(Runtime Library) 顾名思义,和C语言的include文件夹里的内容差不多,都是提供函数调用的,我们的 库包含内容如下: 常用数学函数 常用输入输出函数 吋间函数 文件读写函数 进程访问函数 命令函数(系统级的,如echo, pause这些的) 本人还是一名高二学生,第一次写这篇文章,错漏之处还请谅解,更多建议也可联系本 人,OS开发等也是利用课余时间学的,有什么错误的地方还请批评指教! 由于阅历和水平关系,各模块的相关代码就无法提供了,需要大家以一去研究、发掘。 希望我们的合作能开发出一个属于我们自己的

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档