首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么C语言被用作操作系统的主要编程语言?

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

Stack Overflow用户
提问于 2013-12-30 20:13:41
回答 2查看 9.8K关注 0票数 6

我想知道为什么编程语言C被用来为操作系统编程。与其他语言相比,它在操作系统开发方面有什么优势?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-30 23:51:24

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

以下是C语言的一些特性,这些特性在许多其他语言中是不存在的,这些特性使它适合于OS开发:

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

Stack Overflow用户

发布于 2013-12-30 20:20:08

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20839352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档