为什么库函数不应该用于创建一个操作系统?

时间:2015-03-01 04:31:25

标签: c operating-system

我打算研究操作系统。我遇到了两个疑问。为什么我们不应该在创建操作系统时使用库函数? 它的缺点是什么?

1 个答案:

答案 0 :(得分:3)

  

为什么我们不应该在创建操作系统时使用库函数?它的缺点是什么?

这取决于“库函数”的含义。

例如,你绝对应该尝试使用别人的<string.h>函数版本。如果您正在编写操作系统,那么您有很多工作要做,为什么要用strcpy之类的简单方法重新发明轮子?

您应该使用没有依赖关系的任何开源代码。我的意思是简单的“叶子”函数,如strcpy,没有依赖关系。如果查看Linux内核源代码,您肯定会看到标准库函数,如memcpystrlen等。但您还会看到strncpy_from_user之类的内容适用于内核中的特殊用法(在这种情况下,将字符串从用户空间复制到内核空间)。

不应尝试使用的内容(如果已经不明显),则为fopen之类的内容。 fopen是一些代码的包装器,它使系统调用到内核来处理文件的实际打开。很明显,如果 内核,则不能在内核中使用它。