因此,我有一个最小的操作系统,并不能做很多事情。有一个引导加载程序,它以32位保护模式加载基本的C内核。如何移植到C库中,以便可以使用printf之类的东西?我正在寻找使用GNU C库的方法。哪里有教程?

最佳答案

好的,移植到C库并不难,我在内核中使用Newlib。这是一个开始的教程:http://wiki.osdev.org/Porting_Newlib

您基本上需要:

  • 使用交叉编译器
  • 编译库(例如Newlib)
  • 为内核
  • 中的系统功能列表(例如fork,fstat等)提供存根实现。
  • 将库和内核链接在一起

  • 如果要使用malloc或printf之类的函数(内部使用malloc),则需要某种内存管理和sbrk的最简单的工作实现。

    关于c - 将GNU C库移植到最小的爱好OS,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15578559/

    10-09 07:00