c - Linux内核: What kind of C Linux kernel is using?

标签 c linux kernel

我在这里很困惑。他们说linux内核是用C开发的。但据我所知,C库是建立在Linux内核之上的,所以在内核领域,应该还没有C。再说一次,我从 GitHub 上看到的内核代码都是用 C 编写的,并且都带有那些奇怪的包含!对我来说,这就像经典的鸡与蛋的谜题一样。哪一个先存在?

预先感谢您对我愚蠢的问题的耐心。

最佳答案

C 不是构建在 Linux 之上的。 C 本身是一种编译型编程语言,编译器将其转换为机器代码。根据您的操作系统,编译器可能会采取不同的方式(对于某些 C 代码)。

但是 C 语言本身实际上只是一个很长的列表,列出了函数应该做的事情以及事情应该如何表现,而编译器只是遵守这些规则。这就是所谓的 C“标准”。有一个委员会制定它,并且有多个版本。

Linux 内核确实是用 C 语言编写的。因此有人编写了它,然后使用符合标准的 C 编译器对其进行了编译。

至于库,它们是可选的。 Linux 内核是在没有依赖关系的情况下开发的,这意味着它用纯 C 语言实现了它本身所需的一切。您看到的这些只是来自内核本身的文件,定义了它的函数、类型等。

关于c - Linux内核: What kind of C Linux kernel is using?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40781428/

相关文章:

c - 在 pro *C 中用早 1 分钟的时间更新日期时间字段

linux - 关闭源校验和检查 Yocto

c - 如何使用 C 在 Linux 中获取打开的套接字列表?

linux - dev_err() 函数定义

linux - 如何在 Linux 上同步多个独立应用程序的文件 I/O?

linux - 我如何在内核中打印当前时间?

c - 增加 FD_SETSIZE 的限制并选择

c - 我的 C 程序未提供预期输出

c - epoll 返回 0 个事件

android - 在 Android 之外实现 Wifi 感知应用程序