如何为现代PC电脑创建自己的x86操作系统

我想为x86 PC计算机创建一个新的操作系统。 我希望它是64位,但也可能以32位运行。

我有这些问题:

你开始从事哪些工作? 知道从哪里开始写自己的操作系统似乎是一个棘手的问题,所以我对你的输入感兴趣。

一般来说,如何制作自己的32位/ 64位操作系统,或者提供有关如何为x86计算机编写自己的操作系统的有用信息。 只要他们对我所做的事情仍然相关且有用,我就不在乎它们的来源。

我知道我会希望它具有直接访问外围硬件的内核驱动程序。 我应该在哪里寻找有关编程的建议和文档,并了解操作系统将与外设进行通信的接口? 我将需要了解操作系统将如何接收输入并与键盘,鼠标,计算机显示器,硬盘驱动器,USB等进行交互。这可能是我最不了解的地方。

我有英特尔指令集手册,并且已经越来越熟悉汇编编程,所以CPU的一面是我最了解的东西。

在这一点上,我认为我想在我的操作系统中实现Linux系统调用,以便在Linux上运行的程序可以在我的操作系统上运行。 我希望我的操作系统使用ELF二进制格式。 我想知道为了实现这种Linux兼容性,我必须克服哪些障碍。 实现Linux提供的系统调用和使用ELF格式的主要事情是什么? 还有什么?

我也对人们关于为什么制作自己的操作系统不太好的想法感兴趣,以及为什么制作自己的操作系统是一个好主意。

感谢您的任何意见。


您可能只想让它在虚拟机内运行以开始。 这是一个试图在实际硬件上开发操作系统的PITA(通过不断重启和串口调试)。

在虚拟机内部,您通常会获得一组简化(并且相对标准化)的硬件来支持,这也可以简化初始开发。 特别是,如果你想向别人展示你的操作系统,你只需要给他们一个.vhd文件,并相当有信心,如果它适合你,那么它也适用于他们。

您可能还想从最初已经运行的东西开始(例如,Microsoft的Singularity非常简洁)。 这样可以让你将所有无聊的启动加载器和基本的设备驱动程序排除在外,并且可以更快地使用“丰富的内容”。


你最好看看Linux的0.01源代码。 它是OS的第一个版本。 它非常简单和丰富。 这是一个开始的好地方


你会想要这本书:

替代文字http://ecx.images-amazon.com/images/I/5169V5J687L._SL500_AA300_.jpg

链接地址: http://www.djcxy.com/p/72395.html

上一篇: How To Create Your Own x86 Operating System for Modern PC Computers

下一篇: What is the fastest virtual machine design for x86?