如何在没有C本机编译器的情况下创建C编译器
这是一个简单的问题。如果要编译C编译器,需要一个C编译器。。。也许直接用汇编代码?也许内核提供了一个基本的工具来将C转换成汇编程序,并创建一个升级的基础设施?这也是一个愚蠢的问题,但我真的对如何从0设计一个操作系统(不是我)来与CPU和内存交互感兴趣。听起来这是小型C编译器tcc的任务 这是我所知道的最小的C编译器,一旦你移植了它,它就可以编译一个更大的C编译器,而且有很多关于如何将它移植到自定义系统的指南。Bootstrapping 如果你想查一查的话,这句话来源于“通过你的引导让你自己站起来”。引导是一个简单的过程,但它需要大量的工作如何在没有C本机编译器的情况下创建C编译器,c,assembly,compiler-construction,C,Assembly,Compiler Construction,这是一个简单的问题。如果要编译C编译器,需要一个C编译器。。。也许直接用汇编代码?也许内核提供了一个基本的工具来将C转换成汇编程序,并创建一个升级的基础设施?这也是一个愚蠢的问题,但我真的对如何从0设计一个操作系统(不是我)来与CPU和内存交互感兴趣。听起来这是小型C编译器tcc的任务 这是我所知道的最小的C编译器,一旦你移植了它,它就可以编译一个更大的C编译器,而且有很多关于如何将它移植到自定义系统的指南。Bootstrapping 如果你想查一查的话,这句话来源于“通过你的引导让你自己站起来
这与操作系统无关。如果你正在设计一个操作系统,你已经有足够的工作要做了。如果您的新操作系统还没有C编译器,则可以从其他操作系统交叉编译编译器。这项工作要少得多——可能是几个小时或几天,而不是几个月或几年。听起来你对“引导”这个主题很感兴趣。我建议你用谷歌搜索一下,看看这是否会引发更多的具体问题。现在你可能可以编写一个交叉编译器了。维基百科关于的文章应该会很有帮助。+1对于C编译内核模块的想法(Linus会喜欢的)以及“升级基础设施”的概念都很有用。相关:。另外,tcc非常简单,可以“编译”手动将其转换为x86汇编/操作码。这是我有一天想做的疯狂的项目之一:得到一个旧的穿孔卡片阅读器和穿孔卡片,用一个手动“编译并链接”的tcc穿孔它们,并用一个由分立元件制成的适配器将其连接到现代计算机的LPC接口,仅仅为了它。你有一种奇怪的乐趣,我的朋友:P