在OS中使用编译器

时间:2013-07-16 14:29:22

标签: c assembly

您好我一直在关注剑桥计算机实验室:Baking Pi指南,您可以在这里为ARM CPU构建自己的简单操作系统,以便进行覆盆子组装。我的问题是你如何能够实现一个简单的C编译器,这样我就可以在操作系统中运行基本的C程序(如果没有必要的头文件,你怎么能编译?你需要自己实现它们吗?)< / p>

2 个答案:

答案 0 :(得分:3)

嗯,这是 巨大的 任务......

  1. 编写ARM汇编程序。 C程序(通常)被翻译成装配然后组装。无论如何,你需要为C编译器执行此步骤,因此拥有一个单独的汇编程序是个好主意,因此您可以准备另一个工具。汇编程序相对容易编写。
  2. 编写一个C编译器(这里开始有趣)。这应该将C代码转换为汇编。
  3. 为您的C程序构建标准C库以供使用。该库必须与您的操作系统连接。我建议你的操作系统遵循一些操作系统标准(如POSIX)。这将使这部分更简单。
  4. 编写链接器。这将获取汇编程序生成的目标文件,并将它们与相应的库(如果有)链接。
  5. ???
  6. 利润

答案 1 :(得分:0)

您必须将c库编译为另一台计算机上ARM cpu的程序集文件。然后你留下一个二进制文件,你加载到ARM机器的内存中,如果你想开始运行它,你可以将pc寄存器设置为编译器的开头。您必须知道指针位于指向源文件的位置的语义等。 http://www.osdev.org/有很多关于引导c编译器的信息。