c语言开发操作系统 c语言管理系统设计
其实c语言开发操作系统的问题并不复杂,但是又很多的朋友都不太了解c语言管理系统设计,因此呢,今天小编就来为大家分享c语言开发操作系统的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!
用C语言可以写操作系统吗
C语言当然是可以写操作系统的,但是操作系统的编写一般都不仅仅只是用C语言编写的。
写操作系统需要编程语言提供以下几个特征:
1、跨平台,不能是只在某个平台下编译(VB就不行);
2、必须是编译型语言(PHP就不行),或者有一个非常高效的解释器;
3、必须有方便的操作硬件的功能,容易嵌入汇编(Java就不行);
4、兼容性要好,最好不同编译器编译的符号要基本相同,容易链接(C++不行,如果放弃Class的话C++基本可以);
5、编译器本身最好是由该语言自己完成的(大部分语言的编译器都是用C/C++写的);
6、开发者可以很方便的扩展、改造、或者使用第三方的运行库(大部分语言的库都无法修改);
7、开发者众多(小众语言就不行);
8、该语言开发操作系统的资料要足够完善。
所以总结下来,C语言是首选。
为什么现在的操作系统基本上用C语言来实现
因为如果要在开发时间和软件效率之间取一个平衡点的话,开发操作系统的平衡点就是C语言。
除了C语言以外,其它语言都不具备某些特性、不够方便、软件效率不高。
写操作系统需要编程语言提供以下几个特征:
1、跨平台,不能是只在某个平台下编译(VB就不行);
2、必须是编译型语言(PHP就不行),或者有一个非常高效的解释器;
3、必须有方便的操作硬件的功能,容易嵌入汇编(Java就不行);
4、兼容性要好,最好不同编译器编译的符号要基本相同,容易链接(C++不行,如果放弃Class的话C++基本可以);
5、编译器本身最好是由该语言自己完成的(大部分语言的编译器都是用C/C++写的);
6、开发者可以很方便的扩展、改造、或者使用第三方的运行库(大部分语言的库都无法修改);
7、开发者众多(小众语言就不行);
8、该语言开发操作系统的资料要足够完善。
所以总结下来,C语言是首选。
当然了,不是说其它语言一定不行,只是其它语言开发操作系统时会有各种各样的不方便的地方,因为有人就用Java+汇编来实现一个操作系统,也不是不可以,只是很麻烦。(参见写操作系统只能用汇编和C语言?-北极的回答)
而由于最早开发操作系统的时候选用了C语言,而且一直延续了下来。不管是习惯还是语言特性,C语言一直都很符合条件,因此没有必要冒着各种风险换一种语言来开发。
补充,如果使用C++写操作系统,并不是特别困难。C++的问题在于混合编译时符号表比较麻烦(VC和GCC生成的全局符号名字不一样),C++的运行效率略低于C,所以一般没有人用C++去写内核。
但是Windows里确实存在着使用C++写的驱动,也算是属于操作系统的一部分吧。
c语言是怎么开发出来的
C语言的开发目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
以下是C语言的发展历史,由此不难看出C语言的开发过程:
1967年,剑桥大学的Martin Richards对CPL语言进行了简化,于是产生了BCPL(Basic Combined Programming Language)语言。
20世纪60年代,美国AT&T公司贝尔实验室(AT&T Bell Laboratory)的研究员Ken Thompson闲来无事,手痒难耐,想玩一个他自己编的,模拟在太阳系航行的电子游戏——Space Travel。他背着老板,找到了台空闲的机器——PDP-7。但这台机器没有操作系统,而游戏必须使用操作系统的一些功能,于是他着手为PDP-7开发操作系统。后来,这个操作系统被命名为——UNIX。
1970年,美国贝尔实验室的 Ken Thompson,以BCPL语言为基础,设计出很简单且很接近硬件的B语言(取BCPL的首字母)。并且他用B语言写了第一个UNIX操作系统。
1971年,同样酷爱Space Travel的Dennis M.Ritchie为了能早点儿玩上游戏,加入了Thompson的开发项目,合作开发UNIX。他的主要工作是改造B语言,使其更成熟。
1972年,美国贝尔实验室的 D.M.Ritchie在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。
关于c语言开发操作系统,c语言管理系统设计的介绍到此结束,希望对大家有所帮助。