几天前我开始研究操作系统概念,但我已经遇到了一些问题。主要是我对系统调用很好奇。我了解到每个操作系统都提供了它自己的 API(例如 Windows 用于 Windows API,Linux 用于 libc 等)
我开始感到困惑的是包装函数。例如 Linux 有一个 fork() 包装函数。这是否意味着该函数内部的算法基于操作系统的系统调用表执行系统调用例程?我不明白它是用 C 语言编写的。这是否意味着它使用的是 C 标准库?还是只是 C 编译器?此外,即使有不同种类的编译器,如 GCC windows C 编译器等,C 编译器如何编译它的标准库?我很好奇的是,C 标准库函数也调用系统调用对吗?但它可能必须调用不同的系统调用才能在不同的操作系统中获得相同的输出,对吗?这是否意味着,即使它是相同的标准 C 函数,内部实现的系统调用因每个操作系统而异?
我真的想要一个系统调用的好概念 plz :)