我打算研究操作系统。我遇到了两个疑问。为什么我们不应该在创建操作系统时使用库函数? 它的缺点是什么?
答案 0 :(得分:3)
为什么我们不应该在创建操作系统时使用库函数?它的缺点是什么?
这取决于“库函数”的含义。
例如,你绝对应该尝试使用别人的<string.h>
函数版本。如果您正在编写操作系统,那么您有很多工作要做,为什么要用strcpy
之类的简单方法重新发明轮子?
您应该使用没有依赖关系的任何开源代码。我的意思是简单的“叶子”函数,如strcpy
,没有依赖关系。如果查看Linux内核源代码,您肯定会看到标准库函数,如memcpy
和strlen
等。但您还会看到strncpy_from_user
之类的内容适用于内核中的特殊用法(在这种情况下,将字符串从用户空间复制到内核空间)。
不应尝试使用的内容(如果已经不明显),则为fopen
之类的内容。 fopen
是一些代码的包装器,它使系统调用到内核来处理文件的实际打开。很明显,如果 内核,则不能在内核中使用它。