2 lcz2017 lcz2017 于 2016.09.20 15:19 提问

为什么操作系统都是用c或者c++程序写的,而不用Java呢?

为什么操作系统都是用c或者c++程序写的,而不用Java呢?求高手指教,谢谢。

9个回答

qq_34789629
qq_34789629   2016.09.20 15:26

java是高级语言 不和底层打交道,比如寄存器。这些都交给java虚拟机了 所以要写操作系统就必须得直接和底层打交到 java好学就是因为少了这部分 缺点也是因为这部分.

u014559880
u014559880   2016.09.20 15:25

用C/C++的原因很简单:具有贴近底层硬件的能力。设想使用Java来写操作系统的话,你必须把jvm那一套做在硬件上。

qq_34543024
qq_34543024   2016.09.20 15:26

只能说是大多数,不是所有的操作系统都用的是C。

原因简单说两点:
1.效率,C的效率比其他语言高,可以达到汇编的80%。相对于解释型的编程语言要快
2.底层,C语言更接近机器底层,使用C指针可以直接访问内存

shen_wei
shen_wei   Ds   Rxr 2016.09.20 15:28

效率问题和兼容型。。。Java 需要环境,C#这个更不用说了。。

guwei4037
guwei4037   Ds   Rxr 2016.09.20 15:34

因为语言设计之初定位就不同。java的特点是oop,执行效率相比较c/c++较低,java开发效率高,适合编写应用和网页。c/c++的特点是指针,能够直接跟内存打交道,适合性能要求较高的场合。某些场合c的性能还不能满足要求的话,可以用更低级的汇编语言。

lx624909677
lx624909677   Ds   Rxr 2016.09.20 16:23

因为java的底层虚拟机就是纯C写的,如果用JAVA写个操作系统,执行的过程就是java-C-汇编-机器指令这样了,就是效率问题,别说操作系统了,就是windows上跑的程序,都几乎没java写的,99%是C++写的,100%的图形处理程序是C++写的

hi_chen_xingwang
hi_chen_xingwang   Rxr 2016.09.20 15:20

Android 用的java 谢谢

hi_chen_xingwang
hi_chen_xingwang 回复androiosymbian: JX OS
接近 2 年之前 回复
hi_chen_xingwang
hi_chen_xingwang 回复androiosymbian: 那 Android用C写的
接近 2 年之前 回复
u014559880
u014559880 呵呵,不懂别瞎说好吗
接近 2 年之前 回复
sinat_26761191
sinat_26761191   2016.09.20 15:27

老牌的程序,很多功能c已经写好了,用别的语言再写只是重复造轮子,最多在底层是c的基础上 封装自己的语言, 既然别人已经把功能写好了,为什么还要自己用语言重新写系统呢,还有这太绝对了,还有很多事不是c的

lcz2017
lcz2017   2016.09.20 17:49

谢谢各位,很有收获。。。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
写操作系统只能用汇编和C语言吗
作者:北极 链接:http://www.zhihu.com/question/26834043/answer/34245822 来源:知乎 著作权归作者所有,转载请联系作者获得授权。 理论上说,大部分语言都可以用来写操作系统内核。 但是为什么大部分操作系统内核都只用C语言来写?因为目前所有的语言的开发环境里,C语言能做到编译成不依赖操作系统的形式二进制代码,C语言的各种脱离系统的
操作系统内核为啥用C语言?(C语言特点)
世界上绝大部分的操作系统内核都是用C语言编写的,然而这是为什么喃? 这个问题我们就必须结合C语言的特点了! C语言有三大特点: 1 非常好的可移植性 可移植性就是指与软件从某一环境转移到另一环境下的难易程度。也就是更换不同体系结构的软/硬件平台,修改的代码越少越好。因为不同机器的C语言源码(主要是函数库中的函数名和其参数)都是差不多的,所以C语言的可移植性好。 2
为什么游戏引擎大多选择使用 C++ 而不是 C 开发?
作者:crazybie链接:https://www.zhihu.com/question/26591038/answer/89407866来源:知乎著作权归作者所有,转载请联系作者获得授权。在育碧干这么些年,我也来顺便说一下。先说说几个案例吧1 id soft是业界知名的游戏先驱,在前几代游戏开发上几乎全部都是纯C(doom系列等等),卡尔马克是3D图形界响当当的明星。最近几代也开始转C++。他的
Linux内核的创始人Linus Torvalds 说明了内核开发需要使用C语言而非C++的理由
Linux内核的创始人Linus Torvalds最 近在一封邮件中说明了内核开发需要使用C语言而非C++的理由
用C语言写操作系统
尽管我的题目是“用C语言写操作系统”,但是,仅仅使用C语言是写不出操作系统的。我看到很多篇关于自己动手开发操作系统的文章,几乎全来自一篇叫“Write Your Own Operating System Tutorial”英文文章,而且,使用的全是汇编语言。如今能够精通汇编语言的人已属凤毛麟角,而且现代操作系统的主体部分是用C语言写的,难道所谓的“Own Operating System”只能用汇
写操作系统只能用C语言和汇编语言吗
刚刚在学习MFC的时候感到很多编程都是基于系统的,用了系统的API,那么一开始的操作系统如何编写出来的呢。 第一个操作系统一定是用机器语言或者汇编语言直接编写的。之后就写编译器,有了编译器之后就能用高级语言写操作系统,之后编译为机器代码——能和硬件直接交互。所以,写操作系统应该用什么语言,看到了一篇文章。 原文地址  知乎 理论上说,大部分语言都可以用来写操作系统内核。 但是为什么大部分操
为什么不用C++写游戏
当今世界上绝大多数游戏都是C++写的,为什么要说不呢?要做什么?写游戏。写游戏首先要考虑些什么?做什么样的游戏,图形、音效、游戏逻辑如何实现。用C++要先考虑什么?定义跨平台数据类型抽象,实现常用集合类,设计宏实现RTTI,写一个支持Unicode并可以和其他多种字符串类型互相转换的字符串类,自定义内存分配器,写个shared_ptr,组织预编译头文件,设计实现Object
为什么是C语言编程,而不是Java编程
1.4 为什么是C语言编程,而不是Java编程现在Java特别流行,Linux也特别流行,在Linux下运行Java程序或在Linux下搭建网站也特别流行,但是Java是跨平台的语言,在Windows和Linux下编程都差不多,所以Java编程是Java的一亩三分地,不是Unix/Linux的责任,本笔记不涉及这方面的内容。编程浪子:不在其位,不谋齐政。1.5 为什么是C语言编程,而不
学习笔记(C/C++,汇编,操作系统)
都是关于技术方面整理的资料 请不要删除,至少保留1天,谢谢了!
为什么要选择Python语言实现机器学习算法
基于以下三个原因,我们选择Python作为实现机器学习算法的编程语言:(1) Python的语法清晰;(2) 易于操作纯文本文件;(3) 使用广泛,存在大量的开发文档。 可执行伪代码 Python具有清晰的语法结构,大家也把它称作可执行伪代码(executable pseudo-code)。默认安装的Python开发环境已经附带了很多高级数据类型,如列表、元组、字典、集合、队列等,无需