當(dāng)前位置:首頁 > 公眾號精選 > 嵌入式微處理器
[導(dǎo)讀]計算機(jī)為什么需要操作系統(tǒng)?大部分人認(rèn)為,操作系統(tǒng)本來就是與計算機(jī)(IT設(shè)備)一體的。究竟計算機(jī)為什么需要操作系統(tǒng)?可能我們并不會去特意想這個問題。


1、計算機(jī)為什么需要操作系統(tǒng)?


大部分人認(rèn)為,操作系統(tǒng)本來就是與計算機(jī)(IT設(shè)備)一體的。究竟計算機(jī)為什么需要操作系統(tǒng)?可能我們并不會去特意想這個問題。


其實,對于IT產(chǎn)品而言,操作系統(tǒng)的角色,就像我們?nèi)祟惿眢w中,大腦的角色一樣。我們每天面對大量的或大或小、或簡單或復(fù)雜、或緊迫或?qū)捤傻氖虑?。大腦如何處理這些事情的處理的先后順序和邏輯關(guān)系。


來源:計算機(jī)教程


我們先了解一下,操作系統(tǒng)為什么是計算機(jī) (IT設(shè)備)一個核心必備軟件系統(tǒng)?


為了了解操作系統(tǒng)的必要性,我們先看幾個簡單的場景案例。


1)計算機(jī)(任何IT產(chǎn)品)其實就是一個利用IT資源(計算資源、存儲資源、網(wǎng)絡(luò)資源)對各種數(shù)據(jù)進(jìn)行處理的設(shè)備。而在計算機(jī)處理數(shù)據(jù)的時候,會遇到IT資源如何分配的問題。比如,如果同時有幾個應(yīng)用程序發(fā)出運(yùn)行請求,各個程序之間運(yùn)行的先后邏輯是什么?哪個程序優(yōu)先運(yùn)行,哪個程序后運(yùn)行?每個程序又該分配多少計算資源?這些都是需要解決的問題。如果沒有操作系統(tǒng),多個程序同時運(yùn)行,就會出現(xiàn)各個應(yīng)用程序相互擠占計算資源,最終都無法運(yùn)行的情況。


2)在同一個計算機(jī)(IT設(shè)備)中,其運(yùn)行著各種各樣的應(yīng)用程序。而在應(yīng)用程序開發(fā)的時候,開發(fā)者關(guān)注的是自己的應(yīng)用程序是基于什么操作系統(tǒng)開發(fā)的(這也是應(yīng)用程序與操作系統(tǒng)之間的耦合關(guān)系),而不會去關(guān)注自己的程序是否會受到其他應(yīng)用程序的影響。對于操作系統(tǒng)來說,就需要解決不同應(yīng)用程序之間是否會相互干擾的問題。


3)計算機(jī)(IT設(shè)備)是由硬件和軟件組成。操作系統(tǒng)和在其之上運(yùn)行的應(yīng)用程序都是軟件。由于硬件種類很多,同一硬件產(chǎn)品也都有不同的生產(chǎn)設(shè)計產(chǎn)商。對于這樣的一個看似非標(biāo)準(zhǔn)化的硬件環(huán)境,如何能讓應(yīng)用程序都能適應(yīng)這些硬件環(huán)境,不會出現(xiàn)某個應(yīng)用程序只能在某一個硬件環(huán)境下運(yùn)行,換一個硬件環(huán)境就無法運(yùn)行的情況。


解決以上問題的核心途徑,就是采用操作系統(tǒng)。


1)操作系統(tǒng),可以對應(yīng)用程序進(jìn)行計算資源分配、運(yùn)行管理、調(diào)用權(quán)限審核等。目的就是讓各種應(yīng)用程序都能夠有序、快速地運(yùn)行。計算機(jī)資源分配包括:CPU的運(yùn)算資源,內(nèi)存條的主存容量,硬盤的讀寫流量,網(wǎng)卡的網(wǎng)絡(luò)傳輸流量,主線的內(nèi)部數(shù)據(jù)流量等。


2)操作系統(tǒng),可以將不同硬件造成的運(yùn)行環(huán)境的差異進(jìn)行標(biāo)準(zhǔn)化。無論什么樣的底層硬件,上層應(yīng)用程序運(yùn)行的環(huán)境都是一樣的。這就極大便利了應(yīng)用程序開發(fā)者,可以將精力主要用在優(yōu)化自身產(chǎn)品方面,而不用擔(dān)心底層的計算環(huán)境。


3)操作系統(tǒng),可以進(jìn)行多任務(wù)管理,控制程序并發(fā)運(yùn)行。操作系統(tǒng)可以針對幾個應(yīng)用程序提出的并發(fā)運(yùn)行請求,進(jìn)行合理處理,安排優(yōu)先級。合理有序?qū)ζ溥M(jìn)行計算、存儲、網(wǎng)絡(luò)等各種IT資源的分配。

來源:計算機(jī)教程


2、鴻蒙OS解讀


對于鴻蒙OS,大家印象比較深刻的是幾個關(guān)鍵詞:全場景、分布式、微內(nèi)核、跨終端。這些都是鴻蒙OS相比傳統(tǒng)其他OS不同的地方,當(dāng)然也是鴻蒙OS的賣點所在。


而華為對鴻蒙OS介紹中,花了大量篇幅來介紹鴻蒙OS的四大技術(shù)特性。說實話,這四大技術(shù)特性,對于非專業(yè)IT人士而言,可能大致能明白其表達(dá)的核心意思,但對于其背后的體現(xiàn)的IT內(nèi)涵和程序模塊間的邏輯關(guān)系,可能并不一定有多理解。而這些也正是鴻蒙OS相比其他操作系統(tǒng)的不同或者說優(yōu)勢所在。


為了更好地理解鴻蒙OS,我們將圍繞華為對鴻蒙OS四大技術(shù)特性的官方描述展開,來進(jìn)一步理解其背后的IT邏輯關(guān)系和含義。


鴻蒙OS,具備四大技術(shù)特性:


鴻蒙OS技術(shù)特性一:分布式架構(gòu)首次用于終端OS,實現(xiàn)跨終端無縫協(xié)同體驗


這里有個關(guān)鍵詞,就是“分布式架構(gòu)”,什么是操作系統(tǒng)的分布式架構(gòu)?


華為在介紹這一部分內(nèi)容時,特別提到了兩個專業(yè)術(shù)語“分布式OS架構(gòu)”和“分布式軟總線技術(shù)”。對于以上這種“分布式”的作用,華為的描述是通過公共通信平臺,分布式數(shù)據(jù)管理,分布式能力調(diào)度和虛擬外設(shè)四大能力,將相應(yīng)分布式應(yīng)用的底層技術(shù)實現(xiàn)難度對應(yīng)用開發(fā)者屏蔽,使開發(fā)者能夠聚焦自身業(yè)務(wù)邏輯,像開發(fā)同一終端一樣開發(fā)跨終端分布式應(yīng)用,也使最終消費者享受到強(qiáng)大的跨終端業(yè)務(wù)協(xié)同能力為各使用場景帶來的無縫體驗?!?/span>


那我們先了解下,操作系統(tǒng)的分布式架構(gòu)是怎樣的架構(gòu)?


分布式操作系統(tǒng)架構(gòu),是相對于集中式操作系統(tǒng)架構(gòu)而言的。根據(jù)以上,我們知道,操作系統(tǒng)分別經(jīng)歷了從CP/M系統(tǒng)、DOC系統(tǒng)、集中式操作系統(tǒng),到現(xiàn)在的分布式操作系統(tǒng)。


分布式架構(gòu)操作系統(tǒng),能夠?qū)τ嬎銠C(jī)的資源進(jìn)行動態(tài)分配,并有效控制和協(xié)調(diào)操作系統(tǒng)中各任務(wù)的并行執(zhí)行。分布式架構(gòu)的操作系統(tǒng),除了具備傳統(tǒng)操作系統(tǒng)功能之外,還提供分布式進(jìn)程通信、分布式文件系統(tǒng)、分布式進(jìn)程遷移、分布式進(jìn)程同步和分布式進(jìn)程死鎖等功能。


分布式操作系統(tǒng)的特點是:分布性和穩(wěn)定性。分布式操作系統(tǒng)中的微內(nèi)核和其他應(yīng)用程序,可以以多副本的方式運(yùn)行,一旦系統(tǒng)中某一個部分發(fā)生故障,該分布式操作系統(tǒng)仍能夠正常運(yùn)行,保障了系統(tǒng)的穩(wěn)定性。


另外,分布式操作系統(tǒng)一般采用微內(nèi)核及核外輔以若干實用程序的結(jié)構(gòu)。而此次鴻蒙OS特別提到,其利用的是微內(nèi)核


微內(nèi)核是一種具有有限功能的較小的操作系統(tǒng)內(nèi)核。我們可以將其理解為是一個功能縮小版的內(nèi)核。微內(nèi)核主要負(fù)責(zé)原來內(nèi)核中幾個基礎(chǔ)的功能,包括中斷、通信、調(diào)度等,其他的系統(tǒng)功能分配給微內(nèi)核外的使用程度來執(zhí)行。在分布式操作系統(tǒng)中,一臺計算機(jī)對應(yīng)配置一個微內(nèi)核我,分布式系統(tǒng)之上運(yùn)行的實用程序可以不同。這樣可以使得,整個架構(gòu)更加靈活,節(jié)省系統(tǒng)資源,保證系統(tǒng)的穩(wěn)定性。


同時,分布式操作系統(tǒng),對應(yīng)用程序開發(fā)者,將相應(yīng)分布式應(yīng)用的底層技術(shù)實現(xiàn)難度進(jìn)行屏蔽,使開發(fā)者能夠聚焦自身業(yè)務(wù)邏輯,像開發(fā)同一終端一樣開發(fā)跨終端分布式應(yīng)用。?以上是我們對“分布式架構(gòu)OS”的理解。

來源:計算機(jī)教程



另外一個就是“分布式軟總線技術(shù)”


要了解分布式軟件總線技術(shù),我們需要一層一層的剝開。要知道分布式軟件總線,需要了解軟件總線,進(jìn)而需要了解軟插件,進(jìn)而需要了解軟件復(fù)用的概念。


軟件復(fù)用,是利用現(xiàn)有的軟件成分(資源)來構(gòu)造新的軟件系統(tǒng)。該軟件成分可以是已有的軟件,也可以是專門開發(fā)的可以復(fù)用的軟件構(gòu)件。


軟件復(fù)用技術(shù)分為組裝技術(shù)和生產(chǎn)技術(shù)。

組裝技術(shù),是對已有的軟件構(gòu)件不做修改或者少做修改,直接將其插裝在一起,來構(gòu)造出一個新的軟件系統(tǒng)。

生成技術(shù),是利用程序編譯器來完成對軟件結(jié)構(gòu)模式的復(fù)用。例如V c++等。


軟插件模型,軟插件技術(shù)從本質(zhì)來講是一種軟件集成技術(shù)。對于一個新的軟件系統(tǒng),其中有大部分的工作量是用在重復(fù)編寫已有軟件部分。軟插件是一種具有一組外接插頭。如果構(gòu)造一個軟件系統(tǒng)的軟插件都已存在,那開發(fā)者只需要對整個系統(tǒng)的構(gòu)造策略和原則進(jìn)行制定即可,從而提升軟件生產(chǎn)效率。軟件插件的特征包括:模塊化好、獨立性強(qiáng)、高可靠性、鏈接簡單、封裝功能等。


軟件總線,解決的是軟插件的交互問題,以支持軟件工廠總裝期間和運(yùn)行階段的高級通信問題。并解決軟件系統(tǒng)內(nèi)部各個軟插件的互操作問題。


分布式軟件總線。在分布式操作系統(tǒng)下,大量易購網(wǎng)絡(luò)以及各個廠商推出的軟硬件產(chǎn)品,帶來分布式系統(tǒng)各個層次都存在互操作問題。如果將軟件總線與操作系統(tǒng)、網(wǎng)絡(luò)通信機(jī)制結(jié)合起來,就能夠比較好的處理分布式系統(tǒng)的互操作問題。


華為給出的關(guān)于分布式軟總線的關(guān)鍵指標(biāo),這將有利于我們對其的理解。主要包括:1)低時延:端到端時延小于20毫秒。2)高吞吐:有效圖吞吐高達(dá)1.2Gbps。3)高可靠:抗丟包率高達(dá)25%。


來源:計算機(jī)教程



鴻蒙OS技術(shù)特性二:確定時延引擎和高性能IPC技術(shù),實現(xiàn)系統(tǒng)天生流暢


華為對改性能的解釋為:鴻蒙 OS通過使用確定時延引擎和高性能IPC兩大技術(shù)解決現(xiàn)有系統(tǒng)性能不足的問題。確定時延引擎,可在任務(wù)執(zhí)行前,分配系統(tǒng)中任務(wù)執(zhí)行優(yōu)先級及時限進(jìn)行調(diào)度處理,優(yōu)先級高的任務(wù)資源將優(yōu)先保障調(diào)度,應(yīng)用響應(yīng)時延降低25.7%。鴻蒙微內(nèi)核結(jié)構(gòu)小巧的特性使IPC(進(jìn)程間通信)性能大大提高,進(jìn)程通信效率較現(xiàn)有系統(tǒng)提升5倍。


高性能IPC。IPC指的是進(jìn)程間通信,Inter process communication。IPC是一組編程接口,讓程序員能夠協(xié)調(diào)不同的進(jìn)程,使之能在一個操作系統(tǒng)里同時運(yùn)行,并相互傳遞、交換信息。


為什么需要進(jìn)程間通信?


在計算機(jī)實際運(yùn)行過程中,可能會出現(xiàn)一個系統(tǒng)中好幾個進(jìn)程同時在進(jìn)行的情況。這時,不同進(jìn)程之間需要相互協(xié)作、相互溝通,以便更好的完成工作。而由于不同進(jìn)程之間的相互獨立性,進(jìn)程間的溝通就變得比較困難。因此,就產(chǎn)生了不同進(jìn)程間的通信方式,來解決不同進(jìn)程之間的通信問題。


因此,基于以上的解釋,我們可以理解進(jìn)程間通信的目的:


1)數(shù)據(jù)傳輸:一個進(jìn)程需要將它的數(shù)據(jù)發(fā)送給另一個進(jìn)程。

2)資源共享:多個進(jìn)程間共享同樣的資源。

3)通知事件:一個進(jìn)程需要向另一個或一組進(jìn)程發(fā)消息,通知它們發(fā)生了某種事件(如進(jìn)程終止時要通知父進(jìn)程)。

4)進(jìn)程控制:有些進(jìn)程希望完全控制另一個進(jìn)程的執(zhí)行(如Debug進(jìn)程),此時控制進(jìn)程希望能夠攔截另一個進(jìn)程的所有陷入和異常,并能夠及時知道它的狀態(tài)改變。


而對于華為鴻蒙OS而言,其進(jìn)程間通信(IPC)性能大幅提升,我們可以理解為不同進(jìn)程之間的對話和溝通效率大幅提升。



鴻蒙OS技術(shù)特性三:基于微內(nèi)核架構(gòu),重塑終端設(shè)備可信安全


華為對該功能的描述為“鴻蒙OS采用全新的微內(nèi)核設(shè)計,擁有更強(qiáng)的安全特性和低時延等特點。微內(nèi)核設(shè)計的基本思想是簡化內(nèi)核功能,在內(nèi)核之外的用戶態(tài)盡可能多地實現(xiàn)系統(tǒng)服務(wù),同時加入相互之間的安全保護(hù)。微內(nèi)核只提供最基礎(chǔ)的服務(wù),比如多進(jìn)程調(diào)度和多進(jìn)程通信等。


這其中的一個關(guān)鍵詞是:微內(nèi)核。這也是鴻蒙OS的關(guān)鍵特性之一。


在上面,我們提到了分布式操作系統(tǒng)與微內(nèi)核的關(guān)系。一般分布式操作系統(tǒng)通過微內(nèi)核的方式來實現(xiàn)。


在理解微內(nèi)核之前,我們先理解下,什么是內(nèi)核?


操作系統(tǒng)中的“內(nèi)核”,內(nèi)核是操作系統(tǒng)的核心部分,它管理著系統(tǒng)的各種資源,我們可以把他比作連接應(yīng)用程序和硬件的一座橋梁,是直接運(yùn)行在硬件上的最基礎(chǔ)的軟件實體。


微內(nèi)核的概念,是由Richard Rashid在卡內(nèi)基梅隆(Carnegie-Mellon)大學(xué)開發(fā)Mach操作系統(tǒng)時提出的,目標(biāo)是建立一個基于消息傳送(message passing)機(jī)制的最小內(nèi)核,以便在此基礎(chǔ)上建造對其它操作系統(tǒng)的模擬層來模擬其它操作系統(tǒng)的特性。


微內(nèi)核(Microkernel),是一種內(nèi)核的設(shè)計架構(gòu),由一組盡可能將數(shù)量最小化的軟件程序組成,它們負(fù)責(zé)提供、實現(xiàn)一個操作系統(tǒng)所需要的各種機(jī)制與功能。這些最基礎(chǔ)的機(jī)制,包括了底層地址空間管理,線程管理,與行程間通信(IPC)。


內(nèi)核的設(shè)計理念,是將系統(tǒng)服務(wù)的實現(xiàn),與系統(tǒng)的基本操作規(guī)則區(qū)分開來。它實現(xiàn)的方式,是將核心功能模塊化,劃分成幾個獨立的行程,各自運(yùn)行,這些行程被稱為服務(wù)(service)。所有的服務(wù)行程,都運(yùn)行在不同的地址空間。只有需要絕對特權(quán)的行程,才能在具特權(quán)的運(yùn)行模式下運(yùn)行,其余的行程則在用戶空間運(yùn)行。


微內(nèi)核提供一組“最基本”的服務(wù),如進(jìn)程調(diào)度、進(jìn)程間通信、存儲管理、處理I/O設(shè)備。其他服務(wù),如文件管理、網(wǎng)絡(luò)支持等通過接口連到微內(nèi)核。而在傳統(tǒng)的內(nèi)核情況下,內(nèi)核集成了大量的基礎(chǔ)服務(wù)和其他服務(wù),這樣,內(nèi)核顯得就更加的笨重。


微內(nèi)核的功能:微內(nèi)核設(shè)計帶來了良好的兼容性、擴(kuò)充性、靈活性、移植性、可靠性和網(wǎng)絡(luò)支持。


但是,微內(nèi)核設(shè)計有一個重要缺點:由于微內(nèi)核操作系統(tǒng)使用進(jìn)程來隔離系統(tǒng)組件,這些組件之間的通信使用了消息傳遞方式來實現(xiàn)一個組件對另一個組件的調(diào)用-這實際上是進(jìn)行了一次RPC(例如在NT上是LPC)調(diào)用。但這種類似RPC的方式是通過進(jìn)程間通信(IPC)機(jī)制實現(xiàn)的,其性能一般低于傳統(tǒng)操作系統(tǒng)的系統(tǒng)調(diào)用的性能。由于微內(nèi)核操作系統(tǒng)的類似RPC調(diào)用是通過消息傳送機(jī)制實現(xiàn)的,而傳統(tǒng)操作系統(tǒng)的系統(tǒng)調(diào)用一般是通過類似trap的方法實現(xiàn)。相比于trap方法,通過消息傳送機(jī)制實現(xiàn)的這種類RPC調(diào)用的方式較慢。



鴻蒙OS技術(shù)特性四:通過統(tǒng)一IDE支撐一次開發(fā),多端部署,實現(xiàn)跨終端生態(tài)共享


華為對此性能的官方描述為“鴻蒙OS憑借多終端開發(fā)IDE,多語言統(tǒng)一編譯,分布式架構(gòu)Kit提供屏幕布局控件以及交互的自動適配,支持控件拖拽,面向預(yù)覽的可視化編程,從而使開發(fā)者可以基于同一工程高效構(gòu)建多端自動運(yùn)行App,實現(xiàn)真正的一次開發(fā),多端部署,在跨設(shè)備之間實現(xiàn)共享生態(tài)。華為方舟編譯器是首個取代Android虛擬機(jī)模式的靜態(tài)編譯器,可供開發(fā)者在開發(fā)環(huán)境中一次性將高級語言編譯為機(jī)器碼。此外,方舟編譯器未來將支持多語言統(tǒng)一編譯,可大幅提高開發(fā)效率?!?/span>


下面我們逐句來進(jìn)行解讀


1)IDE,Integrated Development Environment ,即集成開發(fā)環(huán)境。IDE是一種編程軟件,是集成了程序員語言開發(fā)中會需要的一些基本工具、基本環(huán)境和其他輔助功能的應(yīng)用軟件。IDE一般包含三個主要組件:源代碼編輯器(Editor)、編譯器、解釋器(Compiler、Interpreter)和調(diào)試器(Debugger)集成了代碼編寫功能、分析功能、編譯功能、調(diào)試功能等一體化的開發(fā)軟件服務(wù)套件。


開發(fā)人員可以通過圖形用戶界面訪問這些組件,并且實現(xiàn)整個代碼編譯、調(diào)試和執(zhí)行的過程?,F(xiàn)在的IDE也提供其他幫助程序員提供開發(fā)效率的一些高級輔助功能,比如代碼高亮,代碼補(bǔ)全和提示,語法錯誤提示,函數(shù)追蹤,斷點調(diào)試等。



現(xiàn)在有大量的免費開源的和商用的IDE,包括:


1、微軟 Visual Studio(VS)VS支持創(chuàng)建各種類型的程序,包括從桌面應(yīng)用、Web應(yīng)用、移動APP、到視頻游戲。對于初學(xué)者到高級專業(yè)開發(fā)人員來說都是最棒的開發(fā)工具。VS有可定制儀表板和可??康拇翱凇KС侄啻?6種不同的編程語言,如:ASP.NET、DHTML、JavaScript、Jscript、Visual Basic、Visual C#、Visual C ++、Visual F#,XAML等。


2、NetBeans:是一個免費開源的Java集成的開發(fā)環(huán)境軟件,主要用于Java開發(fā)。適合從零開始或者對已有工程進(jìn)行開發(fā)。NetBeans支持多種編譯器,如CLang/LLVM、Cygwin(GNU)、MinGW和Oracle Solaris Studio等。


3、PyCharm:是著名編程語言Python的IDE,由知名的IDE開發(fā)商JetBrains出品。除了Python之外,PyCharm還支持其他Web開發(fā)語言:JavaScript、Node.js、CoffeeScript、TypeScript、Dart、CSS、HTML等。


除此之外,典型的IDE還包括:IntelliJ IDEA,Eclipse,Code:: Blocks,Aptana Studio 3,CodeLite等。



2)多語言統(tǒng)一編譯


不同的集成開發(fā)環(huán)境IDE,支持不同的開發(fā)語言。比如,上面提到的微軟Visual Studio 支持的編程語言包括:ASP.NET、DHTML、JavaScript、Jscript、Visual Basic、Visual C#、Visual C ++、Visual F#,XAML等。


而鴻蒙OS 可以支持多語言統(tǒng)一編譯,而這很大程度上是依賴于華為開發(fā)的方舟編譯器。上面,我們提到,編譯器是計算機(jī)(IT設(shè)備)系統(tǒng)軟件中一個基礎(chǔ)和核心軟件。方舟編譯器與鴻蒙OS結(jié)合,應(yīng)用程序開發(fā)者可以利用方舟編譯器來進(jìn)行多語言同一編譯。這在一定程度上能夠顯著提升開發(fā)展的開發(fā)效率。


3)分布式架構(gòu)Kit。Kit在IT行業(yè)指的軟件工具包。我們認(rèn)為,這里的分布式架構(gòu)的工具包,是與鴻蒙OS的分布式架構(gòu)自成一體的。分布式架構(gòu)的思想體現(xiàn)在整個鴻蒙OS的各個組件當(dāng)中。其能夠帶來分分布式架構(gòu)OS的所帶來的便利和功能。




而以上鴻蒙OS的這一性能的核心意思是:通過華為提供的集成開發(fā)環(huán)境,和支持多語言統(tǒng)一編譯的方舟編譯器,應(yīng)用程序開發(fā)人員,可以大幅提高軟件開發(fā)效率,包括縮短應(yīng)用程序開發(fā)周期、語言模塊調(diào)用、應(yīng)用程序的自動調(diào)優(yōu)等。而且,通過華為提供的開發(fā)環(huán)境和編譯器開發(fā)的應(yīng)用程序,可以適應(yīng)于多種不同類型的終端,包括手機(jī)、PC、汽車以及其他各種智能終端。


鴻蒙OS之所以要要想盡一切辦法,來給軟件開發(fā)人員帶來便利和效率,核心還是打造基于鴻蒙OS的IT生態(tài)。因為最終這些應(yīng)用軟件都要在鴻蒙OS上來運(yùn)行。



3、方舟編譯器


通過以上,我們看到鴻蒙OS之所以能夠為軟件開發(fā)者提供支持多語言統(tǒng)一編譯的極大便利,核心還是基于方舟編譯器的應(yīng)用。


首先,我們解釋一下,什么是編譯器?


編譯器,是將“一種語言(通常為高級語言)”翻譯為“另一種語言(通常為低級語言)”的程序。編譯器的主要工作流程:源代碼 (source code) → 預(yù)處理器 (preprocessor) → 編譯器 (compiler) → 目標(biāo)代碼 (object code) → 鏈接器 (Linker) → 可執(zhí)行程序 (executables)。


之所以需要編譯器,只因為計算機(jī)是一個二級制單位,是通過0和1的組合來實現(xiàn)不同的操作。而人類的編程語言,從較早的匯編語言,到C、C++,再到我們現(xiàn)在看到的Java語言等。


說的簡單通俗點:編譯器就是想一個翻譯官一樣,將人類的邏輯語言,翻譯為機(jī)器可識別可理解可執(zhí)行的機(jī)器語言。翻譯的快慢可以影響溝通交流的效率,同樣,編譯器的效率也就影響了程序運(yùn)行的效率。



關(guān)于方舟編譯器的發(fā)展歷程


2019年4月,在華為P30系列國內(nèi)發(fā)布會上,華為首次發(fā)布了方舟編譯器。方舟編譯器是基于GCC開發(fā)的交叉編譯器套件,它包括了C、C++、Fortran的前端,也包括了這些語言的庫(如libstdc++、libgcc等)。


方舟編譯器,是對傳統(tǒng)Android操作系統(tǒng)編譯器的改進(jìn)和突破。


1)方舟編譯器,可以實現(xiàn)多語言聯(lián)合優(yōu)化編譯,大幅提升運(yùn)行效率


我們知道,在Android操作系統(tǒng)中,使用的語言是Java語言。而Android操作系統(tǒng)之上運(yùn)行的各種各樣的應(yīng)用程序,其開發(fā)語言既有Java語言,也有C和C++。這就使得操作系統(tǒng)的Java語言與應(yīng)用程序的各種語言進(jìn)行交互。這種交互的接口就是JNI(Java Native Interface)。在數(shù)據(jù)訪問、函數(shù)調(diào)用、生命周期維護(hù)、異常處理時,需要這兩種語言交互,進(jìn)行相互調(diào)用。而在相互調(diào)用過程中,會占用一定的系統(tǒng)資源。使得系統(tǒng)之上的應(yīng)用程序運(yùn)行效率降低。


方舟編譯器,是業(yè)界首個多語言聯(lián)合優(yōu)化的編譯器,開發(fā)者在開發(fā)環(huán)境中可以一次性將多語言統(tǒng)一編譯為一套機(jī)器碼,運(yùn)行時無需產(chǎn)生跨語言帶來的額外消耗,并可以進(jìn)行跨語言的聯(lián)合優(yōu)化。




2)方舟編譯器直接編譯出機(jī)器指令,無需繁瑣的虛擬機(jī)運(yùn)行


在Android系統(tǒng)中,程序的運(yùn)行,需要借助ART虛擬機(jī)來執(zhí)行,編譯器是把源程序的每一條語句都編譯成機(jī)器語言并保存成二進(jìn)制文件,解釋器在執(zhí)行程序時,一條一條地解釋成機(jī)器語言來讓計算機(jī)執(zhí)行。而在這個動態(tài)編譯和解釋過程中,消耗了大量的系統(tǒng)資源。


方舟編譯器,可以在開發(fā)環(huán)境中,就可以完成全部代碼的編譯。所以在手機(jī)運(yùn)營環(huán)境中,應(yīng)用程序并不需要將進(jìn)行語言的編譯和解釋,可以直接讀取運(yùn)行,提升運(yùn)行效率。





3)方舟編譯器提供高效的內(nèi)存回收機(jī)制


早期C、C++需要開發(fā)人員自己管理程序,對系統(tǒng)內(nèi)存的實用和釋放,影響開發(fā)效率。Java的虛擬機(jī)模式提供了內(nèi)存GC(垃圾回收)機(jī)制,但需要短暫中斷應(yīng)用,成為隨機(jī)卡頓的根因之一。


方舟編譯器,可以對內(nèi)存進(jìn)行隨時回收,而是回收時,并不需要暫停應(yīng)用,保證了系統(tǒng)和應(yīng)用程序運(yùn)行的流暢性和高效性。



全 文 總 結(jié)


1、鴻蒙OS,只是冰山一角

我們認(rèn)為,鴻蒙OS只是華為建立自身IT生態(tài)體系的冰山一角。我們在之前的文章中分析了華為產(chǎn)品發(fā)展的邏輯。從IT產(chǎn)品形態(tài)角度來講,華為經(jīng)歷了從早期的硬件產(chǎn)品向軟件產(chǎn)品的演進(jìn)。而在軟件領(lǐng)域的不斷突破,逐步奠定了華為在IT產(chǎn)業(yè)的核心地位。特別是在基礎(chǔ)軟件領(lǐng)域,華為的默默進(jìn)取,在基礎(chǔ)軟件核心環(huán)節(jié)不斷取得新的成就。


目前我們看到的是鴻蒙OS和方舟編譯器,都只是華為自身IT生態(tài)底層軟件的一小部分在芯片、數(shù)據(jù)庫等領(lǐng)域,華為同樣取得了一些突破性進(jìn)展。我們知道,如果在一套新的IT生態(tài)中,讓基礎(chǔ)軟件都能充分發(fā)揮其最高性能,需要各個基礎(chǔ)軟件不斷適配和完善,最終達(dá)到完美耦合。這也是我們在PC時代看到的Wintel以及移動時代看到Android+ARM堅不可破的原因。因此,我們可以想象,華為自身開發(fā)的這些基礎(chǔ)軟件,從一開始就是高度耦合的。


2、技術(shù)變革,帶來產(chǎn)業(yè)格局變化

每一次的重大技術(shù)變革都會預(yù)示著產(chǎn)業(yè)格局的演變,甚至對產(chǎn)業(yè)鏈進(jìn)行重構(gòu),促進(jìn)主流企業(yè)的重新洗牌。目前,我們看到華為已經(jīng)在多個IT領(lǐng)域進(jìn)行了產(chǎn)業(yè)格局的重構(gòu),從早期的路由器,到現(xiàn)在手機(jī)、存儲等市場。而以上我們看到的只是硬件部分。其實,更重要的是隨著5G逐步商用,華為正逐步在最為艱難的核心底層基礎(chǔ)軟件部分,來對市場格局進(jìn)行重構(gòu)。目前,我們已經(jīng)看到華為在5G通信領(lǐng)域占據(jù)了全球產(chǎn)業(yè)鏈的話語主導(dǎo)權(quán)。未來,我們有望看到在芯片、操作系統(tǒng)、數(shù)據(jù)庫等領(lǐng)域的不斷崛起。


3、硬件企業(yè),軟件化

硬件企業(yè)逐步向軟件方向延伸,在IT領(lǐng)域我們經(jīng)常看到這樣的例子。這也是硬件企業(yè)發(fā)展到一定階段的必然選擇。而在這個演化方向上,往往只有行業(yè)的領(lǐng)導(dǎo)者才有可能取得一定成功。至于從硬件到軟件轉(zhuǎn)化的原因,我們的理解:


1)硬件發(fā)展到一定階段,技術(shù)和架構(gòu)逐步成熟,不同企業(yè)的硬件產(chǎn)品逐步趨同。對于IT產(chǎn)品而言,只有差異化(有價值的差異化)才能獲取高額利潤。趨同帶來的利潤降低迫使行業(yè)領(lǐng)導(dǎo)者不斷加快新技術(shù)的應(yīng)用,即通過軟件來增加硬件的功能或者提升硬件的性能。即硬件發(fā)展到一定階段,可能決定硬件競爭力的倒不是硬件本身,而是軟件。


2)從技術(shù)角度來看,硬件產(chǎn)品的迭代速度較慢,迭代慢帶來的結(jié)果是,客戶采購新產(chǎn)品的動力和需求降低。通過軟件的應(yīng)用來加快硬件產(chǎn)品的迭代速度,縮短客戶的采購周期


3)在原來IT產(chǎn)業(yè)分工下,硬件和軟件可以由不同的公司來提供,彼此發(fā)揮相對比較優(yōu)勢。但在現(xiàn)有的IT階段下,硬件和軟件的適配要求明顯提高;在某些領(lǐng)域,硬件與軟件只有做到相互定制、相互融合,其整體性能才能得到最大化釋放。


1、操作系統(tǒng)與芯片的耦合度

鴻蒙OS的目標(biāo)無疑是下一代5G通信技術(shù)下的核心操作系統(tǒng)。從IT底層軟件發(fā)展規(guī)律來看,操作系統(tǒng)作用的發(fā)揮,需要與芯片進(jìn)行長期、不斷、反復(fù)的適配、修改和完善,以達(dá)到最大限度的相互耦合。這樣才能最大發(fā)揮操作系統(tǒng)和芯片雙方的功能。比如,PC時代的Windows操作系統(tǒng)與Intel芯片經(jīng)歷了幾十年的適配,移動互聯(lián)網(wǎng)時代的Android操作系統(tǒng)與ARM芯片也達(dá)到了高度耦合。對于鴻蒙OS操作系統(tǒng),如果未來在5G時代發(fā)揮作用,需要不斷與底層的芯片進(jìn)行適配耦合。如果是華為自身開發(fā)的芯片,耦合度會非常高。如果是其他廠商的芯片,雙方需要一段時間的適配過程。


2、鴻蒙OS的微內(nèi)核

微內(nèi)核本身不是新鮮事物,相比安卓系統(tǒng),華為鴻蒙OS將各種硬件驅(qū)動拿到核外進(jìn)行處理,這在一定程度上帶來了架構(gòu)的靈活性。但凡事都是有利有弊,靈活性和擴(kuò)展性增加的同時,對核內(nèi)與核外之間的通信要求更高。未來鴻蒙OS在對全場景跨終端的適用方面,可能也需要與硬件廠商的產(chǎn)品不斷進(jìn)行適配。


3、鴻蒙OS全場景的適配,也需要不斷迭代過程

鴻蒙OS的目標(biāo)適用主題是全場景的IOT領(lǐng)域。客觀來講,這個適配的場景確實挺大的。從目前我們看到的歷史操作系統(tǒng)來看,能夠廣泛適用這么多樣化智能終端的的操作系統(tǒng)并不多。比如,PC、手機(jī)和汽車中適用的操作系統(tǒng)都是不一樣的。蒙OS要達(dá)到在每一個應(yīng)用場景都能高效運(yùn)行,需要其不斷的根據(jù)不用應(yīng)用場景對計算需求的特點,而不斷改進(jìn)和完善自身架構(gòu)和性能。這是IT產(chǎn)品長期迭代的過程。


4、開放、開源,而不要打造封閉系統(tǒng)

核心底層基礎(chǔ)軟件的開發(fā)和應(yīng)用,一方面是開發(fā)難度較大,更重要的是能否建立起以該基礎(chǔ)軟件為核心的一套完整的產(chǎn)業(yè)鏈,形成正向循環(huán)的產(chǎn)業(yè)生態(tài)體系。在全球IT發(fā)展歷史上,我們既看到過封閉生態(tài)體系,比如蘋果的產(chǎn)品;也看到開放生態(tài)體系,比如谷歌、微軟的產(chǎn)品等。而對于未來的IT產(chǎn)業(yè)發(fā)展而言,只有不斷開放,更加開放,才能與生態(tài)伙伴一起成長。


而從PC歷史發(fā)展來看,目前還沒有看到通過封閉系統(tǒng),來持續(xù)獲得不斷擴(kuò)大的業(yè)務(wù)規(guī)模的。對于華為而言,目前正在逐步建立自己的核心底層生態(tài)體現(xiàn),從芯片、算法到操作系統(tǒng)、數(shù)據(jù)庫,更不用說早期發(fā)展起來的服務(wù)器、存儲和網(wǎng)絡(luò)設(shè)備。而對于未來5G產(chǎn)業(yè),只有不斷開放、開源,才能獲得人生的“開掛”。


END


版權(quán)歸原作者所有,如有侵權(quán),請聯(lián)系刪除。

推薦閱讀

飛機(jī)上一般是什么操作系統(tǒng)?

高速CAN、容錯CAN、LIN總線有什么區(qū)別?

大佬終于把鴻蒙OS講明白了,收藏了!

免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

嵌入式ARM

掃描二維碼,關(guān)注更多精彩內(nèi)容

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉