我知道写一个操作系统非常复杂,尤其是一个人。
我不指望能建立下一个Linux或Windows。
我知道它会很糟糕、很多错误,并且无法正常工作,但这没关系。
我想用Assembly、C和(一些)C++自己编写所有东西。
这是一个未来的项目,因为我现在忙于其他事情,没有立即的时间,但我想我现在就问一下,这样也许我可以得到很多答案,它可以积累起来成为这种方法的一个有用的资源(我所看到的其他所有内容都涉及构建minix,使用现有的引导程序,或在虚拟启动程序中构建,等等)。
我想用一个旧的桌面计算机配上显示器、键盘和鼠标开始工作,在一个空白的硬盘上。
我想学习如何编写我的自己的引导程序(我已经找到很多关于此的资源,但为了完整性,请仍然添加一些好的资源),我的USB驱动程序(如果需要的话),CD驱动程序(如果需要的话)等等。从头开始编写一切。
我如何将代码放入计算机?最好用软盘吗?大多数计算机可以使用USB驱动器吗?
我需要哪些驱动程序,并且您能推荐建立这些驱动程序的参考资料吗?
引导程序之后-然后呢?我如何进入保护模式等等。
如何在没有操作系统的情况下管理内存?我只需使用任何我想要的地址吗?不需要初始化吗?
我肯定会遇到什么困扰我迷惑的问题?
如何使它成为命令行操作系统和图形化操作系统?
一个图形化操作系统是建立在什么基础上的?比如,我该怎样做出一个带有字体和顶部图片的命令行界面?
在哪里可以阅读有关设置多任务环境的资料?(例如,同时运行两个类似图形化的命令行)
我该如何设置窗口管理系统?一旦简单的多任务处理设置好了,如何在屏幕上显示图形?
相信我,我知道这是个非常复杂的项目,而且我可能永远都不会完成它或写出任何有用的东西。
还有许多其他方面我没有提到,如果你想到了什么,请随意添加。
请每个答案只回答一个主题,例如USB驱动程序,然后列出资源、注意事项等。
另外,请不要建议建立在其他操作系统或现有代码的基础上。我知道我会阅读很多现有的代码(例如Linux内核、示例资源、现有的驱动程序等),但最终我想自己编写所有内容。我知道我应该建立在别的东西的基础上,而且也有许多其他关于这方面的问题,如果我改变主意并采用那种方法,我可以阅读这些问题。但是这个问题是关于从零开始完成整个项目的。
有没有关于如何获得图形化界面的建议?不同的视频模式以及如何使用它们等等?