如何在C ++中从头开始构建整个内核?
答案 0 :(得分:4)
事实上,你表达自己渴望开发“内核”的事实告诉我,在你准备好尝试任务之前,你需要了解很多。此任务具有大量子任务,每个子任务都需要对问题区域有深刻的理解。
通常,开发完整内核的人从问题空间的一小部分开始,使其工作,然后转移到另一部分。
例如,Linux最初是作为80386内存保护系统的实验开始的,包括“主管”和“用户”模式(或者x86架构上调用的任何模式)之间的区别。它慢慢增长了设备驱动程序和系统调用层以及用于处理进程和文件句柄的相关数据结构。
这需要很多人花费大量的时间和精力。
选择一个可实现的小目标。并选择一个激励其他人帮助的宏伟目标。一旦你完成了一个小而可实现的目标,转到下一个让你更接近你的宏伟目标的目标。
答案 1 :(得分:3)
编写操作系统内核是一项不容小觑的重大任务。您可以通过多种方式开发内核,但如果您想查看 a 方式,则可以下载Linux 1.0 source并从那里开始。
答案 2 :(得分:3)
这是一项非常重要的任务。首先,您应该考虑使用C语言。然后开始你可以使用模拟器来理解内核编程的基本原理,因为如果没有经验,在真机上启动会有点令人沮丧。 在这里你可以找到uMPS。 MIPS 3000架构的仿真器。您还可以找到学生制作的一些微内核实现。
使用模拟器可以通过提供禁用中断的可能性来帮助您(实现中断处理程序时没有任何支持的工作代码很痛苦,因为在实际系统中它们会连续且非常快地抛出),或者运行代码步骤逐步检查汇编代码。
答案 3 :(得分:1)
你正朝着一个非常有趣的地方前进,但它也很艰难。首先,在开始开发整个内核之前,您必须知道内核本身是什么。如果你已经对此有所了解,那么好人“你正朝着正确的方向前进”。从the Linux source code获得帮助。
去看看代码:
首先尝试在您的系统上编译新内核,然后您可以朝着开发它的方向前进。祝你好运,如果你遇到任何问题,请问。在内核开发中度过愉快的时光。
答案 4 :(得分:1)
答案 5 :(得分:1)
请参阅haiku os源代码
Haiku OS:系统的主要部分(包括大部分内核)都是 用C ++编写。这是BeOS的合理延续。
答案 6 :(得分:0)
最好的建议是研究你想要开发的架构,然后转到http://wiki.osdev.org/Main_Page获取资源和支持,每当你遇到问题时继续学习。
PS。这不是一项非常艰巨的任务
注意:这是一项非常艰巨的任务。