这可能是徒劳的,因为我知道编写一个操作系统是极其复杂的(尤其是自己编写)。
我并不期望构建下一个 linux 或者 windows。
I know it will be horrible, and buggy, and won't work, but that's fine.
我想写一切自己,在 集合,C,和(一些) C + + 。
这是一个未来的项目,因为我现在正忙于其他一些事情,没有时间马上做,但是我想我现在就要问它,所以也许我可以得到很多答案,它可以构建并成为这种方法的有用资源(我看到的所有其他东西都涉及到构建 minix,使用现有的引导程序,在虚拟启动程序中构建它,等等)。
我想设置我的一个老台式机与显示器,键盘和鼠标,并开始工作的 空白硬盘驱动器。
我想学习如何编写自己的引导加载程序(我已经找到了很多关于这方面的资源,但为了完整性,请仍然添加一些好的) ,我自己的 USB 驱动程序(如果有必要的话) ,CD 驱动程序(如果有必要的话) ,等等。一切,从头开始。
我怎样把密码输入电脑?最好用软盘吗?大多数电脑能用 U 盘做到吗?
我需要什么样的驱动程序,你能提供一些构建这些驱动程序的参考资料吗?
After the booting sequence--then what? How do I get into protected mode etc.
如何在没有操作系统帮助的情况下管理内存?我想用什么地址就用什么地址吗?不需要初始化吗?
What will I undoubtedly run into that will confuse me?
如何使它既是一个命令行 O/S,又是一个图形化的?
图形化的操作系统是建立在什么基础上的?比如,我该怎么做,一个命令行,有字体,顶部有图片?
Where can I read about setting up a multitasking environment? (ie., having two graphical-like command lines running side-by-side).
我要怎么建立一个视窗系统?一旦设置了简单的多任务,我如何在屏幕上显示图形?
相信我,我明白这是一个复杂的 非常项目,我可能永远不会抽出时间来完成它或写任何有用的东西。
还有很多其他的作品我没有提到,如果你想到任何,随时添加这些。
请在每个答案中加入一个“主题”——例如,USB 驱动程序,然后可能是一个资源列表,需要注意的事项,等等。
此外,请不要建议建立了另一个 O/S 或预先存在的代码。我知道我将 读大量预先存在的代码(如 linux 内核,或示例资源,现有的驱动程序等) ,但最终我想做所有的写作自己。我知道我的 应该是建立在别的东西之上的,如果我改变主意,走那条路线,我可以读到很多关于这方面的问题。但这次是要从头开始。
Any suggestions on how to get it graphical? Different video modes and how to work with them, etc?