【发布时间】:2013-10-21 04:36:06
【问题描述】:
我正在阅读有关如何编写极简内核的 this 教程。我在这之间读到了这篇文章:
运行时库
为您的操作系统编写代码的主要部分是重写运行时库,也称为 libc。这是因为 RTL 是编译器包中最依赖操作系统的部分:C RTL 提供了足够的功能让您编写可移植的 程序,但 RTL 的内部工作依赖于操作系统 使用。事实上,编译器供应商经常为相同的内容使用不同的 RTL 操作系统:Microsoft Visual C++ 为各种不同的应用程序提供不同的库 调试/多线程/DLL 和旧版 MS-DOS 的组合 编译器为多达 6 种不同的内存提供运行时库 模型。
我对这部分有点困惑。假设我用 C 代码编写我的内核,并根据建议使用内置的 printf() 函数来打印一些东西。最后我的代码将被翻译成机器码。当它被执行时,处理器将直接运行它。作者为什么这么说:
RTL 的内部工作方式取决于所使用的操作系统?
【问题讨论】:
标签: c operating-system kernel osdev