Linux系統是由什麼語言編寫,安卓為什麼是由Linux開發?

古情濃意


從事軟件開發多年,而且大多數情況都是在linux完成代碼的編寫,自從第一次接觸linux之後就再也離不開了,目前linux系統主要用在服務器端以及開發者使用,針對消費者的大眾這塊還是非常稀少,linux內核的代碼主要是C語言和彙編兩種編程語言完成,C語言本身語法沒有那麼複雜,但靈活性極強非常適合性能要求極高,所以很多性能要求的系統都喜歡用C語言來完成。

linux社區已經是開源社區裡面祖師爺級別了,很多開源項目也都是基於linux開發的,linux衍生的產品線在全球範圍內還是非常眾多,國內很多系統國產化其實很多都是開源的linux來完成的,linux在服務器端佔比已經佔據絕對性的優勢了,而且在客戶端的佔比也不低,安卓系統本身就是嫁接在linux上一套移動操作系統,對於linux內核做了一定程度的定製,使之能和安卓系統無縫對接,準確來講安卓不是由linux開發,安卓本身編程語言是C++,java,C語言多種開發語言完成的,C語言主要實現和操作系統對接的部分,C++主要作為安卓的早期代碼,java不但參與到框架編寫中還會參與到安卓的應用開發過程中。

安卓代碼早期java參與到框架設計中的比例非常高,後期為了性能安卓已經慢慢向著C++邁進,畢竟用戶對安卓性能的要求越來越高,早期的安卓系統經常性的出現假死狀態,谷歌在這方面下了很大的力氣一直在持續的優化過程中,加上本身硬件一直在提升,加上手機廠家也在持續不斷的努力,華為三星高端的手機的體驗上已經不弱於蘋果手機。前陣子華為因為美國的實體清單已經變相的把安卓系統一些優劣宣傳了一下,同時華為推出的方舟編譯器也是針對java系統解釋性語言進行優化,也是推動安卓性能提升一個重要措施。

安卓屬於宏內核架構,所有的部件都集中在一起調配,隨著手機功能提升不斷提升,外圍的部件越來越多宏內核架構已經顯示出來不足的之處,蘋果的手機之所以在性能上好於安卓系統,很大一部分原因是採用的微內核和宏內核互相結合的方式,從架構上區別於安卓系統,最新的華為鴻蒙系統也是採用微內核的架構,對於操作系統來講編程語言只是工具而已。

不懂的外行覺得懂很多編程語言就是高手的體現,實際情況並不是如此,編程思想和編程框架才是軟件框架的關鍵,編程語言的差異在於語法,像操作系統這種大的工程已經遠遠超過編程語言的限制了,安卓系統是在正確的時間點推廣出來的,開始推廣之初性能不是最好的,但一直在加強維護升級,逐漸在性能上距離蘋果系統近了,但由於本身集成的功能越來越多,在未來性能也是很大的一方面,對一個初級的程序員來講,首先從基礎的編程語言開始入手解決問題,也是無可厚非的事情,希望能幫到你。


大學生編程指南


基本上所有的操作系統都是C語言開發的,安卓為什麼要基於linux呢,因為linux運行了很多很多年非常成熟,安全穩定可靠,所以很多大企業包括像阿里巴巴,百度,facebook都是用的linux作為服務器系統,linux.還有完整的軟硬生態,,

比如蘋果為什麼可以不基於linux(ios基於unix是類unix),因為蘋果是封閉系統,ios不對個授權,也就是蘋果只需要與談好的硬件供應商做好系統與硬件的整合(比如驅動程序),

而軟件方面蘋果有自己的應用市場。

而安卓要兼容所有可能的硬件,重新開發不好辦,用有成熟的linux最好,因為很多硬件都原生支持linux。

為什麼安卓要用java呢,因為就不需要自己去開發一套編程語言了,會java語言稍學習就會安卓,這樣就能為安卓軟件生態的發展做好基礎,如果安卓不是java是門新語言,安卓的創始人們擔心開發者不願意重新為了安卓去學新語言,畢竟當時的安卓太小沒名氣,

當時安卓的創始團隊才不到十人,重新開發完整的系統不現實,windows 7有6000人的開發團隊200億美金投入,當時的安卓團隊是遠遠達不到的,所以奉行拿來主義。

後來谷歌收購安卓後,保留了安卓最早的思路,

後來才發現採用java和這些架框正是安卓慢的原因,到安卓1.5優化後才稍為可用,以前慢得沒法用,到安卓4.4才有覺得不慢的感覺,到了安卓8.0和9.0才有快的感覺。


Sheena


彙編語言和c語言編寫的

Linux是一個基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。它能運行主要的UNIX工具軟件、應用程序和網絡協議。它支持32位和64位硬件。Linux繼承了Unix以網絡為核心的設計思想,是一個性能穩定的多用戶網絡操作系統。它主要用於基於Intel x86系列CPU的計算機上。這個系統是由全世界各地的成千上萬的程序員設計和實現的。其目的是建立不受任何商品化軟件的版權制約的、全世界都能自由使用的Unix兼容產品。

安卓為什麼用Linux開發

因為是個系統就需要內核。Android 本質上是一個基於 Linux 內核上面運行的 java 虛擬機。

手機上 WM 系統內核是 WinCE ,Symbian 系統裡面 Symbian 就是內核,Nokia 的 S60 系統這個 S60 就是界面+功能函數庫。索尼愛立信之前的幾款手機也有 Symbian 的內核,但用戶界面是 UIQ 。

Android 不過就是藉助了 Linux 內核作為系統的基礎,配合自己的 Andriod 基礎二進制函數庫和一些開源軟件作為基礎功能支持,跑上自己的 Dalvik 虛擬機,實際看到的 Android 界面,其實是 Dalvik 虛擬機裡面運行的 java 程序。

Android = Linux 內核 + 功能函數庫 + Dalvik 虛擬機 + java 程序

從系統的開發分層和難度來說,既然有了開源的 Linux ,為什麼還要自己去開發內核?就好象大家玩的一些遊戲,有 Windows 系統可以直接跑,沒有幾個廠家會去重新開發底層系統。就連遊戲機,其實他的操作系統和功能庫也都是現成的,遊戲開發者只需要根據系統的功能寫程序就可以了。

這樣很好的減少了開發難度和成本。


山裡人阿七


先回答你第一個問題。Linux包括內核和組件系統。主體內核大部分是用C語言編寫的,還有部分是用匯編語言寫的,因為對於硬件上,彙編有更好的性能和速度。Linux的一些組件系統和附加應用程序是用C、C++、Python、perl等語言寫的。

第二個問題。任何系統都需要內核。Android 本質上是一個基於 Linux 內核上面運行的 java 虛擬機。LINUX 小巧,開源,成熟,安全是被安卓採用的原因。



生活咖啡


linux是服務器操作系統的一種,不是開發語言,而安卓是安卓手機的一種操作系統,類似於蘋果手機的操作系統是IOS,所以不能說安卓是linux開發的,因為這兩者完全不是一個概念!好吧!開發語言有很多種,比如C,C++,C#,java,php,Python,vb,等等,當然,安卓系統內核是基於Linux系統開發而來,但其內核編程語言卻是c/c++/java!另外安卓應用app,使用最多的也是java語言!



龍創優選


linux用C語言和少量彙編語言寫的,至於為什麼要基於linux,可能開發者希望讓安卓更快速的建立生態系統,畢竟原代碼開放,又有谷歌當金主


AlexanderG


Linux是由c語言編寫的,安卓操作系統分為安卓系統和Linux內核兩部分,安卓系統上有java虛擬機,用戶軟件運行在java虛擬機上。


NMLINUX


Linux系統是基於unix發展而來的,底層是由C語言編寫的


蒙太奇影視


linux由c開發,安卓底層內核其實就是linux內核


快樂騎士之光


c語言


分享到:


相關文章: