gpt4 book ai didi

c - 操作系统的核心(设备抽象级别)是否完全用 C 编写? (比如 : "UNIX is written in C")

转载 作者:太空狗 更新时间:2023-10-29 14:49:25 29 4
gpt4 key购买 nike

操作系统的核心(设备交互层)真的是用 C 写的吗,或者“用 C 写”意味着只有大部分操作系统是用 C 写的,而与设备的交互是用 asm 写的?

我为什么这么问:

  1. 如果核心是用 asm 编写的 - 它不能跨平台。
  2. 如果它是用 C 编写的——我无法想象它如何用 C 编写。

好的。那么 I\O 究竟如何——我无法想象如何在没有(或少量)asm 的情况下与 Controller HDD 或 USB Controller 或我们应该发送信号的其他一些真实的东西进行交互。毕竟,谢谢。我会看看其他一些网络资源。

PS (Flood) 很遗憾我们大学没有操作系统类(class),尽管 MIPT 是 MIT 的俄罗斯双胞胎,但我发现这里没有人像 minix 这样写操作系统。

最佳答案

Unix 的基本思想是用 C 编写几乎所有东西。所以最初,大约 99% 的东西是 C,这是重点,主要目标是可移植性。
因此,要回答您的问题,与设备的交互也是用 C 语言编写的,是的。即使是非常低级的东西也是用 C 编写的,尤其是在 Unix 中。但是用汇编语言写的部分还是很少。例如,在 x86 上,任何操作系统的引导加载程序都将包含汇编程序中的某些部分。您可能只有一小部分设备驱动程序是用汇编语言编写的。但它并不常见,即使完成了,它通常也只是最低级代码的一小部分。具体多少取决于实现。例如,NetBSD 可以在几十种不同的体系结构上运行,因此他们不惜一切代价避免使用汇编语言;相反,Apple 不关心可移植性,因此 MacOS libc 的相当一部分是用汇编语言编写的。

关于c - 操作系统的核心(设备抽象级别)是否完全用 C 编写? (比如 : "UNIX is written in C"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3968953/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com