我会尝试给你一些提示/提示 - 一个明确的答案并不那么简单:
用 C 编写的 ext2 文件系统只是 C。C 只是一种编程语言——你可以使用 C++、普通汇编或其他一些语言(一些操作系统使用 D)——但不是“托管”语言等。但它是重要的是您对这种语言有坚如磐石的理解。在我看来,程序集是必须的(看看操作系统中的调度程序 -> 普通程序集)
您真的要编写 USB 驱动程序吗?它“不仅仅是”一个简单的 USB 驱动程序(抽象层)。为什么是 USB 驱动程序而不是软盘或 CD 驱动程序(相信我 - 32 位保护模式下的软盘驱动程序并不难)?
请专注于您的项目。当然 Linux(早期版本)和 Minix 有示例代码,但要注意设计结构(Monolithic/Microkernel 或混合内核)——不要混合使用,编写自己的代码。
请一步一个脚印。您编写了一个基本的 IRQ 处理程序,并且计划编写键盘/鼠标驱动程序 - 编写键盘驱动程序!不要梦想加载和执行文件(Rom 不是一天建成的)。
You have to read documentations, for example the Intel manuals or other "books". A very popular forum is osdev.org - take a look at the wiki. As twalberg said, it's a very huge module - stay focused on the main parts of your operating system.
I know, this is not the answer to your question - but it's important not to go in the wrong direction and dream of a fancy UI or something like this ;)
osdev.org forum
osdev.org wiki
Intel manuals
And a few other books in my book shelf can you find here (Tanenbaum, Silberschatz with Peter Galvin - great books!):
Books