为什么C被用作操作系统的主要编程语言?

时间:2013-12-30 12:13:41

标签: c operating-system programming-languages

我想知道为什么编程语言C用于编程操作系统。在OS开发中它比其他语言有什么优势?

2 个答案:

答案 0 :(得分:9)

C是最像机器代码的语言,同时仍然保持不同体系结构之间的可移植性。

以下是C的一些功能,这些功能在许多其他语言中都没有出现,使其适合于OS开发:

  • 直接内存访问。内存管理留给程序员,因此在OS开发中是一个优势,实际上所有有用的东西都涉及直接操作RAM区域。示例包括内存映射IO,DMA控制器,页表等。如果这些内容无法由C结构直接表示,则至少可以使用C指针访问它们。
  • 没有运行时依赖项。与C ++,Java,C#等不同,C绝对没有运行时依赖性。它不期望内存管理器,它不期望进程管理,它唯一的运行时依赖是调用main()函数。这意味着您可以编写一个直接在硬件上运行的C程序,而不需要某种内存管理器或输入或输出层。这当然意味着你必须实现自己的,但是这可能与其他语言不同。许多标准库不需要操作系统(即string.h),而那些可以在OS开发中由程序员最低限度地实现的部分。
  • 高效的字节级操作。 C非常适合高效的字节级操作。也就是说,将数据复制到不同的区域,翻转位并以少量处理数据。虽然这对程序员来说比较繁琐,但在使用RAM和处理时间方面效率要高得多,这在操作系统中是必不可少的。
  • 所有C代码都直接1-1转换为易于理解的机器代码。因此,C没有内置复杂的数据结构,如树或哈希表。这必须由程序员实现,其背后的前提是程序员应该能够看到任何C代码并确切知道它在硬件中的作用。这在其他语言(例如Python)中不会发生,例如“Dictionary”数据类型,其后端实现不一定为程序员所知。 C(和UNIX)的理念是程序员比语言更了解,这使得它非常适合在操作系统和系统开发中进行微调细节,并且没有内置方便结构的明显缺点。

答案 1 :(得分:4)

作为一种中级语言,C提供高级构造,同时仍然提供更接近汇编语言的低级细节,因此也就是系统。因此,在OS开发中使用C非常容易。这是它最常用的主要原因之一:因为C编程语言最初是为系统级和嵌入式软件开发而设计的。