天天看點

第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作業