【摘要】DOS是英文Disk Operating System的缩写,意思是“磁盘操作系统”。DOS是个人计算机上的一类操作系统。从1981年直到1995年的15年间,DOS在IBM PC 兼容机市场中占有举足轻重的地位。而且,若是把部分以DOS为基础的Microsoft Windows版本,如Windows 95、98和Me等都算进去的话,那么其商业寿命至少可以算到2000年。微软的所有后续版本中,DOS仍然被保留。
时至今日,DOS操作系统已经很少有人使用,但是作为操作系统的源头之一,研究其机理仍然有很大的意义。本文用C语言实现操作系统,并模拟其部分函数。
【关键词】DOS;操作系统;C语言
本文是在Windows环境下开发的,而不是大多数人选择的Linux环境。开发工具也是Microsoft公司的开发工具:masm615和VC15。微软公司的masm流传甚广,大家应该不陌生。对vc15可能较陌生,vc15堪称开发DOS程序的最“高档”编译器(尽管有很多BUG)。如果实在找不到这些开发工具,使用TASM、Turbo C或者Borland C++都是可以的。所给出的例子以masm615和vc15为准,转移到TASM、TC或BC平台,应该不难。有一条原则需要注意,在这里,源码必须使用TINY模式编译,也就是说,必须生成实模式代码。
将masm613和vc15的压缩包分别解压到e:masm615和e:msvc15目录下。你也可以放到其他目录下,根据自己的情况而定,但是下面用到的编译命令需要作相应的修改。也不需要添加或修改任何的环境变量。
这一部分内容已经是老生常谈了,但又不能不说。我们只说从硬盘引导的情况。
当BIOS经过POST(Power On Test Self)后,将硬盘MBR读到内存0x0000:0x7C00的位置,然后从这里开始执行。一般的情况,MBR将选择活动分区进行操作系统的启动。在MBR开始执行时,内存使用的情况如下图所示,地址数据用16进制表示:
这已经是老掉牙的内容了,但是,在20年前却十分流行。如果想更详细的了解这方面的内容,找本讲解DOS的书看看吧。
我们自己的操作系统将被加载到0x1000:0x0100。这不是必需或者必然的,是人为选择的,你也可以将其放在0x4321:1234等其他地方。但是,上图中注明有其他用途的内存区域,应该保留,否则,你会后悔的。
成品毕业设计 可以根据自己的要求, 自行浏览选购, 可以参考是否符合自己要求,找到满意的成品毕业设计 , 直接发送成品编号联系发你网址的工作人员进行交易, 我们会从QQ或者邮箱等方式发送毕业设计程序。
我们团队 , 可以根据用户的功能要求量 身定制毕业设计程序 (同样联系发你网址的 工作人员) , 需要用户提供详细的 , 功能要 求.开发技术要求(开发语言、开发工具、框 架等 ) . 我们会根据用户毕业设计的难易程 度 , 工作量大小等, 具体的给出一个报价,价格 协商一致过后,付下40%定金.我们开始开 发毕业设计, 做好过后先发送设计桌面演示录像 , 用户看后 满意付尾款, 我们再发程序源码压缩包!