作为一个不合时宜的项目,我目前正在开发一个内核,试图更好地理解实际操作系统的所有方面。到目前为止,我已经完成了一个平面物理内存模型,支持分页和基本中断(键盘和下一个触控板/鼠标)。我认为前进的步骤是实现一个文件系统,我对ext2很感兴趣。我环顾四周,即使是在SO,但没有任何明确的回答我的问题:
如果问题和细节听起来有点无知,我仍然道歉,但我还在学习过程中。
谢谢:)
答案 0 :(得分:1)
我会尝试给你一些提示/提示 - 一个明确的答案并不那么简单:
用C编写的ext2文件系统只是C.C只是一种编程语言 - 你可以使用C ++,普通程序集或其他一些(一些os'dever使用D) - 但不是“托管”语言等。但是,你必须对这种语言有一个坚如磐石的理解。在我看来,程序集是必须的(看看操作系统中的调度程序 - >普通程序集)
你真的想写一个USB驱动程序吗?它不仅仅是一个简单的USB驱动程序(抽象层)。为什么USB驱动程序而不是软盘或CD驱动程序(相信我 - 32位保护模式下的软盘驱动程序并不那么难)?
请关注您的项目。当然Linux(早期版本)和Minix都有示例代码,但要注意设计结构(Monolithic / Microkernel或混合内核) - 不要混用它,编写自己的代码。
请一步一步地完成。你写了一个基本的IRQ处理,计划是写一个键盘/鼠标驱动程序 - 编写键盘驱动程序!不要梦想加载和执行文件(Rom不是在一天内构建的)。
您必须阅读文档,例如英特尔手册或其他“书籍”。一个非常受欢迎的论坛是osdev.org - 看一下wiki。正如twalberg所说,这是一个非常庞大的模块 - 专注于操作系统的主要部分。
我知道,这不是你问题的答案 - 但重要的是不要走错方向,梦想有一个奇特的用户界面或类似的东西;)
osdev.org forum
osdev.org wiki
Intel manuals
你可以在这里找到我书架上的其他几本书(Tanenbaum,Silberschatz和Peter Galvin - 很棒的书!):