Ben*_*man 5 c assembly operating-system
操作系统的核心(设备交互级别)是用C语言编写的,还是"用C语言编写"意味着只有大部分操作系统是用C语言编写的,与设备的交互是用asm编写的?
为什么我这样问:
好.那我到底怎么样?我无法想象如何与控制器硬盘或USB控制器或其他一些我们应该发送信号的实际内容进行交互而不用(或少量)asm.毕竟,谢谢.我将看看其他一些网络来源.
PS(洪水)很可惜我们在大学没有操作系统课程,尽管MIPT是麻省理工学院的俄罗斯双胞胎,我发现没人在这里写像minix这样的操作系统.
Unix中的基本思想是用C编写几乎所有东西.所以最初,99%的东西是C,它就是重点,主要目标是可移植性.
所以为了回答你的问题,与设备的交互也用C编写,是的.即使非常低级的东西也是用C语言编写的,特别是在Unix中.但是用汇编语言编写的部分仍然很少.例如,在x86上,任何操作系统的引导加载程序都将包含汇编程序中的某些部分.您可能使用汇编语言编写设备驱动程序的一小部分.但它并不常见,即使它已经完成,它通常只是最低级别代码的一小部分.多少完全取决于实现.例如,NetBSD可以运行在几十种不同的体系结构上,因此它们不惜一切代价避免使用汇编语言; 相反,Apple并不关心可移植性,所以MacOS libc的一个不错的部分是用汇编语言编写的.
这取决于。
具有简单 CPU 的小型嵌入式设备的操作系统可以完全用 C(或 C++)编写。
对于更复杂的操作系统,例如当前的Windows或Linux,很可能存在用汇编语言编写的小部分。我最希望它们出现在任务调度程序中,因为它对特殊的 CPU 寄存器有一些棘手的处理,并且可能需要使用编译器通常不会生成的一些特殊指令。
设备驱动程序几乎总是可以完全用 C 语言编写。
| 归档时间: |
|
| 查看次数: |
386 次 |
| 最近记录: |