怎样自己写一个简单的操作系统
1个回答
浙江启扬智能科技有限公司
2019-05-20
展开全部
只要你学过汇编和C,只满足于写个“简单的操作系统",一两天就能搞定。
随便把你写过的小程序,用直接写硬盘软件(或者自己编一个,调用winapi的WriteFile函数就可以),写进硬盘/U盘引导区。记住,起始地址是7c00。
这就好了。注意,引导区只有440个字节给你用,程序不能太大,所以这部分基本要用汇编写。440字节后面是硬盘/U盘分区信息,不可以乱动。乱动以后bios可能没法识别硬盘/U盘。
引导区最后两个字节必须是55AA,不过一般你不用管,硬盘/U盘格式化的时候都已经给你写好了。
这样你的程序就在开机的时候直接运行了。
想调用大程序也没问题,你需要写个不超过440字节的程序,负责把第二个扇区的内容载入内存并执行,由第二个扇区的代码负责把所有代码载入内存。后面的部分用C写或者别的高级语言写都没什么问题了。
至于你想要具体作什么,就写什么,屏幕上画个画,管管硬盘上的文件,和用户互动一下,你随意。和你平常写程序没啥两样。总之一个能完成任务的简单操作系统就完事了。
最多几天时间你就能搞定。这差不多能搞个接近dos1.0的“简单操作系统”。
不过接下来才是你真正要学的。例如文件管理,内存管理,保护模式,进程管理啥的。麻烦归麻烦,但解放了自由了,终于可以编写内核态才准用的代码了,做的事情全部都是用户态下面不让做的事情。操作系统的学习,从这里才算真正开始。
随便把你写过的小程序,用直接写硬盘软件(或者自己编一个,调用winapi的WriteFile函数就可以),写进硬盘/U盘引导区。记住,起始地址是7c00。
这就好了。注意,引导区只有440个字节给你用,程序不能太大,所以这部分基本要用汇编写。440字节后面是硬盘/U盘分区信息,不可以乱动。乱动以后bios可能没法识别硬盘/U盘。
引导区最后两个字节必须是55AA,不过一般你不用管,硬盘/U盘格式化的时候都已经给你写好了。
这样你的程序就在开机的时候直接运行了。
想调用大程序也没问题,你需要写个不超过440字节的程序,负责把第二个扇区的内容载入内存并执行,由第二个扇区的代码负责把所有代码载入内存。后面的部分用C写或者别的高级语言写都没什么问题了。
至于你想要具体作什么,就写什么,屏幕上画个画,管管硬盘上的文件,和用户互动一下,你随意。和你平常写程序没啥两样。总之一个能完成任务的简单操作系统就完事了。
最多几天时间你就能搞定。这差不多能搞个接近dos1.0的“简单操作系统”。
不过接下来才是你真正要学的。例如文件管理,内存管理,保护模式,进程管理啥的。麻烦归麻烦,但解放了自由了,终于可以编写内核态才准用的代码了,做的事情全部都是用户态下面不让做的事情。操作系统的学习,从这里才算真正开始。
法本信息技术
2024-10-28 广告
2024-10-28 广告
深圳市法本信息技术股份有限公司在软件开发领域,广泛应用多种高效管理工具。这些工具不仅涵盖了需求管理、项目跟踪、代码版本控制等方面,还集成了缺陷追踪、自动化测试以及团队协作等关键功能。它们极大提升了软件开发流程的透明度与效率,确保团队成员能够...
点击进入详情页
本回答由法本信息技术提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询