【发布时间】:2010-11-16 12:19:15
【问题描述】:
这可能是徒劳的,因为我知道编写操作系统非常复杂(尤其是自己编写)。
我不希望构建下一个 linux 或 windows。
我知道这会很糟糕,而且有问题,而且不会工作,但没关系。
我想自己编写所有东西,用 Assembly、C 和(一些)C++。
这是一个未来的项目,因为我现在正忙于其他事情,没有时间,但我想我现在会问它,所以也许我可以得到很多答案,它可以构建并成为这种方法的有用资源(我所看到的所有其他事情都涉及构建 minix、使用现有的引导加载程序、在虚拟引导程序中构建它等等)。
我想用显示器、键盘和鼠标设置我的一台旧台式机,然后开始使用空白硬盘。
我想学习如何编写自己的引导加载程序(我找到了很多关于这方面的资源,但为了完整起见,仍然请添加一些好的),我自己的 USB 驱动程序(如果有必要的话),CD 驱动程序(如果有必要)等等。一切,从头开始。
如何将代码放到计算机上?最好用软盘来做吗?大多数计算机都可以通过 U 盘进行操作吗?
我需要哪些驱动程序,您能否提供构建这些驱动程序的参考?
在引导序列之后——然后呢?如何进入保护模式等。
如何在没有操作系统帮助的情况下管理内存?我只是使用我想要的任何地址吗?不需要初始化?
毫无疑问,我会遇到什么让我感到困惑的事情?
如何让它既是命令行操作系统,又是图形操作系统?
什么是图形操作系统?比如,我将如何做一个命令行、字体和顶部的图片?
在哪里可以阅读有关设置多任务环境的信息? (即,有两个类似图形的命令行并排运行)。
如何设置一种窗口系统?设置简单的多任务处理后,如何在屏幕上显示图形?
相信我,我知道这是一个非常复杂的项目,我可能永远不会完成它或在上面写任何有用的东西。
还有很多我没有提到的其他部分,如果您想到任何,也请随时添加。
请为每个答案添加一个“主题”——例如,USB 驱动程序,然后可能是资源列表、需要注意的事项等。
另外,请不要建议构建另一个操作系统或预先存在的代码。我知道我会阅读很多预先存在的代码(例如 linux 内核、示例资源、现有驱动程序等),但最终我想自己完成所有的编写工作。我知道我应该建立在其他东西的基础上,如果我改变主意并走那条路,我可以阅读关于 SO 的许多其他问题。但这就是从头开始做整个事情。
关于如何获得图形化的任何建议?不同的视频模式以及如何使用它们等?
【问题讨论】:
-
这是我最大的目标。我非常想写一个操作系统,只是为了好玩和学习……这几年我一直没能抽出时间。如果你想找人帮忙或者只是和你谈谈,你可以通过 gmail.com 的 schmeling88 给我发电子邮件
-
@Max 和@Tom,我也遇到了这个错误。我实际上正准备开始这一次:)
-
现在别想图形了。 Unix 从不直接支持图形,而且还不错。 :-) 但基本上没有简单便携的方法可以超越 800x600 IIRC。
-
为什么?这个问题很古老,不再产生任何活动。谁在乎?
标签: c operating-system bootstrapping osdev assembly