c - 将 GNU C 库移植到最小的爱好操作系统

标签 c assembly operating-system osdev hobby-os

所以我有一个没有太多功能的最小操作系统。有一个引导加载程序,它以 32 位保护模式加载基本的 C 内核。如何移植到 C 库中,以便可以使用 printf 之类的东西?我正在寻找使用 GNU C 库。任何地方都有教程吗?

最佳答案

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

你基本上需要:

  • 使用交叉编译器编译库(例如 Newlib)
  • 为内核中的一系列系统函数(如 fork、fstat 等)提供 stub 实现
  • 将库和内核链接在一起

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

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

    相关文章:

    python - 从零开始的操作系统

    Leetcode "Two Sums"的C解决方案有运行时错误

    c - 避免在头文件中为弱引用重新定义别名变量

    assembly @@标签问题

    c - 为什么像这样初始化二维数组会更糟​​?

    c - 如何执行放在栈上的机器指令

    在C中创建头文件

    c - 从提供的 Key 获取消息队列 ID

    linux-kernel - 为什么不推荐使用 yielding mutex 实现?

    operating-system - 使用 Minix 2 或 3 学习操作系统开发?