开启辅助访问
 找回密码
 立即注册

鸿蒙系统用什么语言?如何评价?

0519 回答数10 浏览数1758
鸿蒙系统用什么语言?如何评价?
使用道具 举报
| 来自湖北 用Deepseek满血版问问看
clw-1981 | 来自上海
    鸿蒙、安卓、IOS的共同祖先是UNIX,而UNIX是C语言开发的,“鸿蒙”操作系统必然是C语言编写的。“鸿蒙”操作系统提供给应用开发商的开发工具很可能是Java,下文具体说一说。





    “鸿蒙”操作系统的组成

    华为的“鸿蒙”操作系统由四部分部分组成:Linux内核+麒麟处理器的运行库+编译器+虚拟机。


    Linux内核:Linux内核是开源的,由linux内核团队维护,而linux的内核采用了C语言,而不是很多认为的C++,C语言的执行效率要远高于面向对象的编程语言C++。


    运行库:运行库在Linux基础上,针对不同的处理器,运行库需要进行适配。比如麒麟处理器指令集和高通处理器的指令集可能存在差异,不是完全相同,那么就存在一台适配的问题,而程序库通常情况下采用C语言编写。



    虚拟机:虚拟机用于沟通操作系统和硬件,是两者之间的桥梁,屏蔽了不同系统之间的差异性,可以实现跨平台,同时很大程度上降低了应用开发难度。目前,普遍使用的虚拟机是Java虚拟机。


    编译器:编译器将Java编写的代码转换成虚拟机机器码或者硬件可以直接认识的机器码。华为的方舟编译器实现了代码的静态编译,相比传统安卓应用流畅度提升了60%。


    “鸿蒙”和安卓的差异

    鸿蒙操作系统兼容安卓应用,那么“鸿蒙”操作系统和安卓有什么区别呢?
    1)架构不同
    鸿蒙操作系统是微内核设计,而安卓系统是基于linux的宏内核设计,相比来说,微内核开发难度大,但是系统稳定性高。



    宏内核,内核包含了操作系统绝大多数的功能,而且这些功能和模块具有最高的权限,好处是系统开发难度低,但是各模块具有最高权限,一台模块出错,整个系统崩溃,这也是安卓系统容易崩溃的原因。
    微内核,内核仅包括了操作系统必要的功能模块(任务管理、内存分配等),其他模块不具有最高权限,系统稳定性得到了提升。


    2)跨平台支持
    鸿蒙操作系统同时支持手机、电脑、智能穿戴设备、智能家居,形成一台无缝的、统一的操作系统,并且兼容所有的安卓应用。这个操作系统与谷歌正在研发的Fuchsia思路一致,是为5G和物联网时代准备的,华为的“鸿蒙”操作系统提前发布,可能给华为一台反客为主的机会,按照余承东的说法“塞翁失马,焉知非福”。



<hr/>    总之,华为的“鸿蒙”操作系统,底层(Linux内核、运行库)是用C语言编写的,虚拟机可能采用了C或者C++语言;面向应用开发商的开发环境很可能是Java语言。
用Deepseek满血版问问看
回复
使用道具 举报
xzx2209 | 来自北京
华为开发者大会刚结束不久,目前不用猜测华为鸿蒙系统的什么语言了。
实际上绝大数大型操作系统的开发都离不开C/C++、汇编语言这三种。
汇编语言效率最高,但开发太晦涩难懂了,C语言可以直接操作计算机硬件、更接近计算机的本质,效率也很高。
C++提供更多高级特性且性能与 C 语言十分相近,现代的大型系统,那还有说是纯粹的C语言开发,基本上都是C语言与C++的相互协同,如UNIX,Linux,Windows,安卓等,鸿蒙操作系统是以Linux为基础的,所以鸿蒙操作系统开发语言也离不开这三种。
至于面向应用级开发者的语言,目前已经公布了,支持Java和JS(Java也是C语言编写的),其实支持Java并不意外,安卓开发也是Java,开发人员学习成本低才更有利于鸿蒙发展。
目前,华为推出的鸿蒙系统仅支持编写内存在128M以下的智能手表,电视机等设备的程序
不过,在开发者大会上,余承东说今年 12 月份将会发布鸿蒙手机版本,明年华为手机将全面升级支持鸿蒙2.0。所以,手机的系统还要等一等,拭目以待吧。
那么我们来看看华为目前公布的鸿蒙2.0的设计思想是怎样的呢?


上图是华为对鸿蒙系统的定义,可以看到华为的野心或是相当大的,华为打算做一款打通各种终端的分布式操作系统。
简单说就是基于微内核,适配不同终端,我个人理解就像是地基是鸿蒙微内核,然后各种功能组件好比是各方面的建筑材料。
至于上面要盖什么建筑,给什么设备使用,就可以按照组件化的思想,聚集这些需要的建筑材料,来搭建合适的建筑。底层是一样的,能大大提高应用的移植性。


上图是鸿蒙系统应用软件包的组织形式,可以看到目前来说和安卓没太大区别,除了配置文件从xml改成了json。
华为目前也给了开发的IDE,SDK,有比较详细的文档,和一台hello world的小例子。
IDE是集成开发环境,鸿蒙系统开发IDE是DevEco Studio,目前DevEco Studio只支持Windows。


使用华为提供的远程模拟器是需要注册华为开发者账号的,接下来的流程也很简单,按照步骤操作就可以了,一台简单的鸿蒙应用hello world就跑起来了。




目前来说呢,harmonyOS还比较简陋,至于华为推崇的微内核,并没有实际体验到有何具体的效用,还有分布式这些目前来说也仅存于概念上。
不过这第一步华为算是走出来了,而且后续华为还会上线更多的例子供大家学习,不管如何说,或是比较期待鸿蒙手机系统的,希望到时候不会推迟


有想体验一下鸿蒙系统的可以搜华为开发者联盟,文档程序下载入口都能在里面找到。要说的一点是,鸿蒙系统也是开源的,开源在gitee上,目前star已经达到了6.1k,有兴趣的可以去看看。


<hr/>以上是个人观点,欢迎大家评论交流!
回复
使用道具 举报
破晓. | 来自北京
根据华为公布的方舟编译器资料 可以推测鸿蒙系统是用C、C++语言编写

先来看华为公布的方舟编译器原理图









从上面的华为方舟编译器资料可知:
1、鸿蒙系统和方舟编译器的思路应该是一样:直接使用机器语言编写app,取消安卓系统的ART虚拟机,直接编译为二进制机器码;
这样的好处是:不需要中转,执行速度快;劣势是:必须要有大量的静态方案、内存空间要求更高。
2、由于是用C、C++进行编写app,对软件开发人员要求高,提高了建设生态链的技术门槛。
3、由于华为目前有芯片、系统等软件和硬件基础,华为鸿蒙系统若走苹果IOS封闭系统模式,虽然路途漫长但前途可观。
但华为主业是通讯,并非手机,这和苹果主业是手机的特点不同。华为没有办法全身心投入开发封闭式的鸿蒙系统。
华为因为手机并非主业,只能走开源之路。但作为手机制造商的华为,如何让其他手机制造商使用的系统,将是一台巨大的难题。
毕竟没有一台手机制造商去帮助一台依是裁判员又是运动员的手机系统发展,导致自个的市场份额缩减。
<hr/>可以预见的鸿蒙系统

1、除华为外其他国产手机公司不会安装或重视。由于google禁售的是华为,对于小米等其他国产手机公司不禁售,因此小米等其他国产公司不会安装鸿蒙系统,即便出于公共形象的压力而安装,也不会真正重视,最多就是做个样子。
反正,内斗内行吧——除非华为让渡鸿蒙系统的控制权!
2、鸿蒙系统即便能够兼容安卓应用,在过了新鲜期之后,如何提升用户体验度是关键。如果像阿里OS一样可以远程删除用户的app,就直接死翘翘吧。
保持软件开发商的利益和用户体验度的平衡,是鸿蒙系统能否生存的关键。开发商没有得到利益,不会开发鸿蒙系统的app;用户体验度差,用户就不会用鸿蒙系统。




每天原创,给你有价值的观点!
随手关注,你的支持才是动力!
回复
使用道具 举报
雪骄 | 来自北京
首先做一台科普:
什么是计算机语言呢?
一般计算机语言分为机器语言和汇编语言还有高级语言!
1、机器语言就是二进制代码,就是只有0和1组成的代码!有时候你在电脑上面打开一些文件,里面只显示了0和1,这些文件就是电脑可以直接执行的文件,目前一般都没有什么人去写这个文件了,因为开发难度太大了!
2、汇编语言,这个语言就是把0与1的集合用特殊的字母或者符号来表示,比如01000001代表的是A,01100001代表a,所以人们就有字母和符号来表达一大堆的0与1,比如0100000101100001直接使用Aa来表示即可,所以汇编大大简化了二进制代码,给我们编写代码带来了极大的省事!但是计算机是不认识这些字母和符号的,所以需要一台专门的程序来把这些字母和符号来转换成0与1的代码,计算机才会执行,这个转换的程序就是编译器!
3、高级语言,由于汇编语言代码可读性非常差,比如ADD表示加法,MOV表示数据传输,人为的创造出一些指令符号,让人记忆起来非常的困难,虽然比0与1简单多了,但是复杂的程序依然无法通俗易懂!比如c语言中的代码段:int c=a+b;在汇编里面就是
00401036 mov eax,dword ptr [ebp-4]
00401039 add eax,dword ptr [ebp-8]
0040103C mov dword ptr [ebp-0Ch],eax
显然大型的项目开发起来效率就非常低了,所以高级语言就出现了,当然高级语言也还没有达到我们一看就懂的地步,但是int c=a+b要比后面那一大串要容易理解的太多了!
所以目前c语言,Java,c#,PHP之类的都是高级语言!
了解了语言,我们再说说电脑!
电脑就是在生活中帮助人处理一部分事情都计算机集合!
比如说,一台电脑可以帮我们处理文字,声音,视频,图像等,要处理这些事情电脑需要一台cpu,内存,硬盘,主板,声卡显卡来控制,而这些内存cpu又是由各个晶片来控制的,这些晶片是有一台一台电容控制的,对应上面的语言,二进制代码是控制各个电容,汇编控制着晶片,高级语言控制着这些设备!
这个时候操作系统就登场了,操作系统就是控制这些设备该什么时候运行的程序!
所以操作系统是用高级语言编写的!
操作系统大部分都是用c语言或者c++语言写的,由于c语言是执行效率最高的高级语言,所以操作系统的关键代码都是c语言写的,c++是继承了c语言的优点而发展出了的一台语言,运行速度不如标准的纯c语言,但是c++的类库比纯c的要丰富,所以c++开发程序的效率要比C的效率要高一点,但是关键的代码或是必须使用纯C编写,所以为了开发效率,一般都是C语言加上C++一起来结合起来开发的!
而华为这个系统也不能改变这个规律,所以就是用c语言来写的!
因为c语言是所以高级语言的鼻祖,不存在任何版权问题!
这个系统要想做起来就必须要有自个的生态,简单的说就是要有人在你的系统里面开发app,如果这个鸿蒙系统可以兼容安卓苹果微软的app,那么这个系统就可以飞起来了!但是难度很大!
好这个就回答到这里!欢迎留言评论!
回复
使用道具 举报
大虾521 | 来自北京
上干货,我写过OS,编程语言一开始需要汇编语言(Nasm,GAS等),我本人习惯GAS,用汇编完成引导后,就可以跳入用C写的内核,C和汇编其实是一回事,只是写法不一样,最后都是ELF格式的二进制文件。
启动过程很简单,一开始准备一台软盘,Linux dd命令可以生成,第一扇区的最后2个字节分别是0x55和0xaa,链接器把程序入口放在第一扇区的0x7c00处,一开机BIOS自检后就会跳入0x7c00处执行引导程序,至于为啥是0x7c00,因为它是工业规范。
2、如上截图是我用GAS +C写的一台简单的多任务操作系统(参考了tinix),引导过程用了Grub的multiloader协议,grub已经完成了A20地址线的初始化以及进入保护模式的GDT设置,而我们内核要干的事,就是初始化timer,文件系统(广义的文件,不仅仅是磁盘文件,所有的FD都是文件)、进程管理、系统调用、shell等等。  上图的九九乘法表就是我在自个OS上看开发的一台应用程序demo,它跟内核是分开的。
最后,开发操作系统,最基础的是汇编语言和C,其它的应用程序语言如java等还拍不上用场,而用C写程序,还不能乱调用API,因为此刻你的OS里可能都没有实现标准的C语言运行时库。 OS开发,最难的不是如何编程,而是如何实现各种工业规范








回复
使用道具 举报
awiz | 来自北京
华为鸿蒙操作系统如果与安卓一样,是基于Linux(开源)开发的,源码是C语言,鸿蒙系统的编程语言不可能是本土的易语言、易安卓,很有可能是C语言、JAVA等。但是早期已经有消息称,华为是基于谷歌的Fuchsia OS,谷歌也想以该系统取代问题频发的安卓系统。Fuchsia不再使用Linux内核,而是Magenta内核(谷歌已经改名为Zircon),使用的开发语言是谷歌Dart语言。据悉,华为麒麟970处理器一直在与Fuchsia OS测试兼容性。
操作系统这个事,中国企业早晚得开发出来,否则用别人的总是提心吊胆的,只有自个掌握核心技术的自个研发出来的操作系统,使用起来心里才踏实,虽然刚开始肯定不如成熟的苹果,安卓系统啦,但中国有十四亿的大市场啊,边使用边提高,逐步完善吗,前几年,微软操作系统升级,把中国所谓的不是直接购买微软系统软件的,升级后通通都给黑屏啦,这就是教训,看来确实是人家在后台能控制你啊。
华为的“鸿蒙”操作系统由四部分部分组成:Linux内核+麒麟处理器的运行库+编译器+虚拟机。
Linux内核:Linux内核是开源的,由linux内核团队维护,而linux的内核采用了C语言,而不是很多认为的C++,C语言的执行效率要远高于面向对象的编程语言C++。
运行库:运行库在Linux基础上,针对不同的处理器,运行库需要进行适配。比如麒麟处理器指令集和高通处理器的指令集可能存在差异,不是完全相同,那么就存在一台适配的问题,而程序库通常情况下采用C语言编写。
虚拟机:虚拟机用于沟通操作系统和硬件,是两者之间的桥梁,屏蔽了不同系统之间的差异性,可以实现跨平台,同时很大程度上降低了应用开发难度。目前,普遍使用的虚拟机是Java虚拟机。
编译器:编译器将Java编写的代码转换成虚拟机机器码或者硬件可以直接认识的机器码。华为的方舟编译器实现了代码的静态编译,相比传统安卓应用流畅度提升了60%。
“鸿蒙”和安卓的差异
鸿蒙操作系统兼容安卓应用,那么“鸿蒙”操作系统和安卓有什么区别呢?
1)架构不同
鸿蒙操作系统是微内核设计,而安卓系统是基于linux的宏内核设计,相比来说,微内核开发难度大,但是系统稳定性高。
宏内核,内核包含了操作系统绝大多数的功能,而且这些功能和模块具有最高的权限,好处是系统开发难度低,但是各模块具有最高权限,一台模块出错,整个系统崩溃,这也是安卓系统容易崩溃的原因。
微内核,内核仅包括了操作系统必要的功能模块(任务管理、内存分配等),其他模块不具有最高权限,系统稳定性得到了提升。
看到这种严谨的问题时,我告诉自个不能去瞎猜,瞎写,于是去网上查证了2个小时。找到了比较可靠的答案,分析如下。
张汝京博士是中芯国际的创始人,在中国半导体业界是绝对的权威人士。最近他接受采访明确表示:华为的鸿蒙系统是“微内核设计”,完全推到重来,基于5G平台,从新开发的系统。和以前安卓,IOS,完全不一样,也不基于传统的Linux宏内核和UNIX。(资料来源:微博.工信布)
这种“微内核设计”的鸿蒙系统,我认为很大可能是最基层的C和C++语言来编写,因为历史上目前出现的微内核系统基本都是这两种语言来编写。
这么看来华为从2012年上马的自主操作系统研发,确实是大招,非常用心,完全是从最底层的语言开发,谁也不能卡脖子。目前想想寓言“鸿蒙开天辟地”,简直就是量身定做的名字!
如何评价鸿蒙系统?
鸿蒙系统是华为秘密研发几年的操作系统,是战略试武器,防止竞争对手卡脖子,是迫于无奈,防守反击推出的。
但是我们根本不用担心鸿蒙系统国内适配问题,很明显它的特征网上已经说的非常清楚了,兼容安卓,而华为也是安卓底层的主要贡献者之一。这次鸿蒙系统会采用EMUI9.1上的方舟编译器升级版本,可以得到快速优化适配,第三方厂家无论优化安卓或是无成本用方舟编译器复制APP,都能迅速建立鸿蒙系统的生态。
回复
使用道具 举报
dksg | 来自广东
1.操作系统一般都是c或者c++去编写,c是一种高级语言。最接近机器语言的高级语言。c可以直接去访问硬件。所以操作系统的底层和核心都是c来编写。unix具有里程碑式发展是当C发明出来之后。也可以说C是为了发明强壮操作系统而开发出的语言。但是c不能面向对象开发起来难度大。c++去开发一些功能模块又是必须的。同时c++完美的兼容C。所以二者配合是相当默契。至于大家说的Java,Java语言虽然是开源。但是逐步走向闭源。Java的虚拟机这些甲骨文所有。Java运行其实效率还不如c++那些兄弟们,为了跨平台做的取舍。python的话。做一些应用,服务器程序,计算是强项。其实开发一台操作系统远没有那些编辑们想得那么简单。编辑们看到一台ppt,就开始编,开始臆想。关于操作系统。远没有那些一行代码没有写过那些人想得那么简单。





回复
使用道具 举报
hx19860703 | 来自北京
大家都知道,谷歌安卓系统是以Linux为基础开发的,而华为鸿蒙系统也是基于Linux进行开发,因为Linux从一开始就是开源软件,所以任何人都可以免费的使用,也正因此安卓系统可以做到免费和开放,成为全球用户群最大的手机系统。



鸿蒙系统作为华为的备用方案,首先必须要考虑的就是兼容性和开放性,这样更加自由的Linux自然就是首选,由于Linux可以运行在多种硬件平台上,所以基于此开发的鸿蒙系统可以尽可能的兼容适配更多的硬件设备,开发者在上面开发应用相对来说也会更简单一些。
所以从系统内核和编程语言上来说,鸿蒙系统应该就是Linux+Java,这样做可以最大化的减少鸿蒙系统的生态建设成本,意味着安卓生态现有的应用资源可以兼容到鸿蒙,在系统应用初期能很大程度解决没有软件可用的问题,这一点对于鸿蒙来说至关重要。任正非也说过,制作操作系统并不难,最难的是在于生态环境搭建。



然而Linux尽管自由度够高,但是比起UNIX这种闭源式内核来说仍然效率偏低,华为为了更好的适配环境和兼容性不得已继续使用Linux内核,但是华为这几年也没闲着,开发的方舟编译器可以在底层代码上进行大幅度优化,未来随着鸿蒙系统+方舟编译器+麒麟CPU的软硬件组合,华为产品的性能和效率可能会超过现有的所有安卓手机,这意味着华为可以垂直整合优化整个系统,未来潜力很大。
回复
使用道具 举报
presario1500 | 未知
鸿蒙系统2.0的源码我没有拿到。我从开放原子开源基金会的官网下载了鸿蒙系统1.0的源代码。本文的分析都是基于鸿蒙系统1.0的源码来进行的。下文不再特意注明该点。
鸿蒙系统1.0压缩包约225M。它的内核是实时操作系统RTOS的内核,主要面向IoT领域。它的内核是用C语言写的。它的内核根据CPU架构的不同分为两个版本:liteos_a和liteos_m。其中liteos_a主要针对Cortex-A系列处理器,而liteos_m则主要针对Cortex-M系列处理器。Liteos_a内核有777个文件,大小约13M。Liteos_m内核有119个文件,大小约863KB。
鸿蒙系统1.0的DFX框架是用C语言写的。
鸿蒙系统1.0的XTS认证模块是C语言和C++混合编写的。
鸿蒙系统1.0中也有一些模块是用C++语言编写的,例如JS应用开发框架。
简单的说,鸿蒙系统的内核是C语言编写的,其他模块有的是C语言写的,有的是C++编写的,有的是混合了这两种语言。
鸿蒙系统1.0支持在128K-128M设备上运行,可以说它是微内核的操作系统,适用范围或是很广的。



回复
使用道具 举报
12下一页
快速回复
您需要登录后才可以回帖 登录 | 立即注册

当贝投影