几乎所有的操作系统内核都是用C语言写的,你知道为什么吗?

Posted 电子工程师笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了几乎所有的操作系统内核都是用C语言写的,你知道为什么吗?相关的知识,希望对你有一定的参考价值。

嵌入式开发为什么选择C语言?


1.从语言特点来说

①C语言有出色的可移植性,能在多种不同体系结构的软/硬平台上运行。

②简洁紧凑,使用灵活的语法机制,并能直接访问硬件能够直接访问硬件的语言有:汇编和C语言汇编属于低级语言,难以完成一些复杂的功能,但是汇编比C语言访问硬件的效率更高。

所以,一般将硬件初始化的工作交给汇编,比较复杂的操作交给C语言。

③C语言具有很高的运行效率。


2.嵌入式开发中的地位——开发工具


3.高级语言中的低级语言:面向过程VS面向对象


面向过程:

“面向过程”(Procedure Oriented)是一种以过程为中心的编程思想。“面向过程”也可称之为“面向记录”编程思想,他们不支持丰富的“面向对象”特性(比如继承、多态),并且它们不允许混合持久化状态和域逻辑。


面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。面向过程其实是最为实际的一种思考方式,就算是面向对象的方法也是含有面向过程的思想。


可以说面向过程是一种基础的方法,它考虑的是实际地实现。一般的面向过程是从上往下步步求精,所以面向过程最重要的是模块化的思想方法。


面向对象:

面向对象的分析根据抽象关键的问题域来分解系统。面向对象的设计是一种提供符号设计系统的面向对象的实现过程,它用非常接近实际领域术语的方法把系统构造成“现实世界”的对象。


面向对象程序设计可以看作一种在程序中包含各种独立而又互相调用的对象的思想,这与传统的思想刚好相反:传统的程序设计主张将程序看作一系列函数的集合,或者直接就是一系列对电脑下达的指令。面向对象程序设计中的每一个对象都应该能够接受数据、处理数据并将数据传达给其它对象,因此它们都可以被看作一个小型的“机器”,即对象。


面向过程和面向对象的区别:

以一个人从A地到B地为例,面向过程就是需要规划路线,了解路况,自己做好一系列的准备;而面向对象就是坐上一辆出租车,告诉司机我要去B地就可以了,不用关心其他的事情。


最后,C语言也有他自身的缺陷,比如代码的复用性差,代码的维护性差,扩展性(新增代码时不改变原来的代码)很差。

本文转自网络,版权归原作者,如果您觉得不好,请联系我们删除!

以上是关于几乎所有的操作系统内核都是用C语言写的,你知道为什么吗?的主要内容,如果未能解决你的问题,请参考以下文章

编写脚本用的语言是C语言吗?

整理:著名软件是使用什么语言写的?

你知道第一个 C 语言编译器是如何诞生的吗?

看看一些著名软件都是用什么语言写的

谁知道WOW的插件,或者说UI接口的大多数是用啥语言写的

《操作系统真象还原》ELF文件