天天看点

第2次作业—— 谈谈鸿蒙操作系统

鸿蒙系统:

开发背景:鸿蒙OS发布于2019年,但是最早可以追溯到2012年,彼时任正非与华为2012实验室的专家座谈时提出,华为要自研操作系统做备份,哪怕几十年都用不上也一定要做。否则一旦操作系统“断粮”对华为就是数千亿美元的损失。2019 年,美国政府禁止美国向华为出口,这切断了该公司与大多数芯片和软件供应商的联系。如果无法访问关键部件和应用程序,就很难构建手机。数字化新时代的到来需要新的操作系统;oT 与 5G:5G物联网时代的到来对操作系统提出了新的要求;大数据与云计算:TB、PB级的大数据需要一个能够提供多机互联的操作系统;为了适应时代的发展需求,面对美国对华为的封锁。华为公司具有前瞻的战略意识,居安思危。最终开发了鸿蒙系统。

开发历史:2012年9月,华为开始规划自有操作系统“鸿蒙”。华为“2012诺亚方舟实验室”专家座谈会上,任正非提出了要做终端操作系统防范于未然,要在“断了我们粮食的时候,备份系统要能用得上。”

2017年,鸿蒙内核 1.0

2018年,鸿蒙内核 2.0

2019年,鸿蒙OS 1.0

2019年5月24日,国家知识产权局商标局网站显示,华为已申请“华为鸿蒙”商标,申请日期是2018年8月24日,注册公告日期是2019年5月14日,专用权限期是从2019年5月14日到2029年5月13日。

2019年5月17日,由某教授领导的华为操作系统团队开发了自主产权操作系统——鸿蒙。

2019年8月9日,华为正式发布鸿蒙系统(HongmengOS),实行开源。

2020年,鸿蒙OS 2.0

2020年9月10日,华为在HDC开发者大会上如约发布鸿蒙 2.0,并面向应用开发者发布Beta版本。明年鸿蒙将全面支持华为手机。鸿蒙HarmonyOS正式开源,今年年底首先对国内开发者发布针对智能手机的HarmonyOS beta版本。

二:关于鸿蒙是否套壳的争议:

华为鸿蒙操作系统是基于ASOP开发的。ASOP:Android Open Source Project,中文名:安卓开源项目。谷歌的安卓系统,实际上是基于linux的ASOP+GMS,即安卓开源项目和谷歌移动服务包组合成了安卓系统,而国内基本上GMS都被阉割的,卖到海外的国产手机,除了华为被制裁,其余的国产手机系统是有GMS的。

所以,鸿蒙之所以可以支持安卓的APP就可以理解了,因为还是基于ASOP进行的再次开发,但又不能说鸿蒙就是安卓系统的换壳,因为鸿蒙是ASOP+HMS,即安卓开源项目+华为移动服务。在ASOP这个项目里,任何机构和企业都有义务为开源社区贡献代码,也能够使用和下载开源代码,并基于开源项目做二次开发。所以ASOP的代码并不全是谷歌写的,华为也是ASOP的重要贡献者。

世界上许多创新都是在已有的技术跟知识层面上进行创新的,人类技术的发展是一步一步起来的,不可能一蹴而就。鸿蒙系统合理的运用安卓开源项目,进行技术创新。最终搭建起了鸿蒙系统。

三:代码风格分析:

“...

package stdx; 

2

3

import java.io.*; 

4

import java.util.*; 

5

6

public class ConfigFile implements Closeable{ 

7

class Data{ 

8

public String key = ""; 

9

public String val = ""; 

10

public String info = ""; 

11

12

public Data(String key, String val){ 

13

this(key, val, ""); 

14

15

public Data(String key, String val, String info){ 

16

this.key = key; 

17

this.val = val; 

18

this.info = info; 

19

20

}

...”

分析:Java语言是一种纯面向对象的程序设计语言。其代码清晰易读,排版干净利索。Import导入类。Public修饰类与数据权限,this在构造方法中就代表了当前对象,思路清晰,便于理解。

from SimpleXMLRPCServer import SimpleXMLRPCServer

def add(a, b):

return a + b

def start_rpc_server():

s = SimpleXMLRPCServer(("", 1989))

s.register_function(add)

s.serve_forever()

分析:Pythony语言import导入SimliexXMLRPCServer.add对数据操作简单明了,数据输出简单。代码可读性高。

time.sleep(1)

s.close()

21

def simple_call_rpc():

22

serv_addr = ('136.24.8.45', 1989)

23

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

24

s.connect(serv_addr)

25

program_name = "R2319Cfm" 

26

cmd = "find /crmbak -name %s.log.gz -mtime 30 2>/dev/null |xargs ls -l --block-size=1024 |grep %s.log.gz$ 2>/dev/null |awk '{sum+=$5}END{print sum}'" % (program_name, program_name)

27

s.send(cmd)

28

data = s.recv(1024)

29

print 80 * '-' 

30

print "cmd:", cmd

31

print "data:", data

32

33

34

35

if __name__ == '__main__':

start_chat()

36

simple_call_rpc()

37

#start_chat()

分析:调用time()这个方法没有Import相应的包。可读性差,

上一篇: 第二次作业
下一篇: Linux作业