谷歌系統升級,安卓將採用Linux內核,滿足手機高性能需求,你怎麼看?

魚侃侃


首先作為一個前資深的 Android 程序員,一定要糾正一下這個問題,不是谷歌系統升級,安卓「將」採用 Linux 內核。不是:「將」。

而是 Android 一直就是採用的 Linux 內核。安卓(Android)本身就是一種基於 Linux 的自由及開放源代碼的操作系統。


系統內核

Android 是運行於 Linux kernel 之上,但並不是 GNU/Linux。因為在一般 GNU/Linux 裡支持的功能,Android 大都沒有支持,包括 Cairo、X11、Alsa、FFmpeg、GTK、Pango 及 Glibc 等都被移除掉了。Android 又以 Bionic 取代 Glibc、以 Skia 取代 Cairo、再以 opencore 取代 FFmpeg 等等。Android 為了達到商業應用,必須移除被 GNU GPL 授權證所約束的部份,例如 Android 將驅動程序移到 Userspace,使得 Linux driver 與 Linux kernel 徹底分開。Bionic/Libc/Kernel/ 並非標準的 Kernel header files。Android 的 Kernel header 是利用工具由 Linux Kernel header 所產生的,這樣做是為了保留常數、數據結構與宏。


Android 的 Linux kernel 控制包括安全(Security),存儲器管理(Memory Management),程序管理(Process Management),網絡堆棧(Network Stack), 驅動程序模型(Driver Model)等。下載 Android 源碼之前,先要安裝其構建工具 Repo 來初始化源碼。Repo 是 Android 用來輔助 Git 工作的一個工具。


通過上述我們就可以看出 Android 就是運行在 Linux Kernel 之上的,基於授權版權等原因,它只不過是沒有 GNU/Linux 功能那麼全面。

為什麼會出現這個問題?

Android 是基於 Linux 內核的操作系統,但是,運行在 Android 設備上的內核其實與 Google 選擇的 LTS 版本 Linux 內核有很大不同。


在到達每一臺 Android 設備前,內核會經歷三個階段的 fork:Google 會先選擇某個 LTS(長期支持)版本的 Linux 內核,打上 Android 操作系統的特定補丁,使其成為 Android 通用內核;緊接著,通用內核被交付給高通等 SoC 供應商,打上硬件補丁;最後,SoC 內核再被移交至設備製造商,打上設備特定的各類元件補丁,這也就構成到每臺設備中的設備內核。

這是一個及其漫長的過程,執行多重 fork 並處理數百萬行代碼大大減慢了整個開發速度。因此,Android 設備使用的內核相較於 Linux 內核主線要滯後兩到三年的時間。Google 於 10 月份最新發布了 Pixel 4,其 Linux 內核則是 2017 年 11 月發佈的 4.14 LTS 版本。並且由於過大的工作量,Android 設備通常不獲取內核更新,它將永遠停留在 4.14 版本上。


再者,各種設備的內核都不盡相同,一臺設備的特定內核無法在其他設備上工作。於是,Google 正試圖縮小各 Android 設備內核與主線 Linux 內核間的差距,讓設備內核更接近上游內核主線。


在今年的 Linux Plumbers Conference 上,Android 內核團隊負責人 Sandeep Patil 表示,他們的目標是從根本上找到 Android 運行所需要的、但不必在給定的硬件上運行的東西,然後將其引入上游並儘可能接近主線。


Google 的打算是複製其早期工作 Project Treble 以模塊化 Android。Project Treble 用於在 Android 和 HAL(硬件抽象層)之間創建穩定的接口。與此類似,Google 計劃穩定 Linux 的內核 ABI,從而提供一個穩定的寫入接口,使硬件供應商可以輕鬆地插入代碼,最終消除特定的設備內核。

Google 的高級軟件工程師 MatthiasMännich 展示了一幅預想中的內核體系結構圖。“下一代 Android 設備”內核將由通用內核鏡像(Generic Kernel Image,GKI)和多個 GKI 模塊構成,特定硬件的驅動程序(可能是閉源驅動)將作為內核模塊加載。總之在該設想中,所有東西都被模塊化了。


考慮到 Android 生態系統的技術壁壘和多樣性,這應該不是一件容易的事情。無論如何,將 Android 設備內核引入主線 Linux 內核肯定會使包括 Android 用戶、手機制造商和 Linux 社區等在內的不少人受益。


所以,最近有新聞爆出,谷歌計劃將 Android 內核統一至Linux內核主線上,後續其實還有很多工作要完成。


谷歌只是想將 Android 內核統一至Linux內核主線上,Linux內核主線上,Linux內核主線上,重要的事情說三遍,是主線上。其實 Android 一直都是基於 Linux 內核的操作系統。


不知道大家看明白了沒有?


非著名程序員


先糾正一個不準確的地方。安卓的系統一直採用的都是Linux的內核,只是在Linux的基礎上,谷歌做了很多內核代碼的修改。

2017年,谷歌就修改了超過6萬行Linux內核的代碼,2018年,谷歌又加入了32000行代碼,刪除了1500多行代碼。但是這並不能改變安卓是基於Linux來研發的事實。

這一次谷歌進行安卓的系統升級,只是對現有的安卓內核進行再一次的升級,讓安卓的內核能夠更接近於主流的Linux內核。而目的,是準備將安卓內核和應用程序與驅動分離,保持內核的獨立於純淨。

谷歌再次進行內核的優化,其核心的目的可能是為了谷歌的新系統Fuchsia鋪路。

谷歌很早就在研發自己的新系統Fuchsia,而這也是谷歌的第三個操作系統。Fuchsia已經毫無疑問的將會使用新的內核Zircon,而不再使用Linux內核。不過,Fuchsia將會兼容基於Linux內核的應用程序。

如果要想量Fuchsia擁有更好的兼容性,自然安卓的內核越接近Linux的主流內核,就能夠更好的進行兼容。越多的自定義內容,只會讓安卓進行Fuchsia的切換時,難度更加的大。

谷歌和甲骨文之間由於安卓系統的各種糾紛,一直讓谷歌很苦惱,安卓成為了最大的移動操作系統,但是卻使用了Java平臺的內容,其中就包括甲骨文沒有授權的源代碼修改,所以一直官司不斷。谷歌的一直想進行安卓的平穩切換,因此,Fuchsia是迫在眉睫的事情。

因此,谷歌在優化安卓的同時,將安卓的內核分離,並且讓內核更接近於主流的Linux,這對於谷歌未來的新系統切換有著重要的意義。


會技術的葛大爺


一、安卓本來就是採用linux內核

首先要說明的一點是,安卓是基於linux內核而來的,谷歌並沒有否認這一點。只是谷歌在linux內核的基礎上,做了很多的修改完善,然後成為了安卓系統。

下面這張圖很好的說明了這個問題,所有的系統其實都是基於nuix,然後再發展到linux,而安卓、華為鴻蒙基於linux,iOS基於unix。

二、谷歌這次是指讓安卓接近目前的主流Linux內核,意思是以後儘量少改,與linux內核儘量保持一致。

前面已經講過,安卓是linux修改而來的,所以雖然它採用的是linux內核,但卻做了修改,谷歌這次升級的意思是以後要儘量少修改,在內核上儘量與linux內核保持一致。

它為何要這麼做?有兩個原因:

1、同時物聯網的到來,linux系統的設備越來越多,它們使用linux內核,而安卓使用修改過的linux內核,之間還是有區別的,所以谷歌打算儘量統一起來,以達到各設備之間的兼容等等,以後大家要更換系統也容易簡單了,這樣安卓會有更多的機會。

2、谷歌準備將安卓內核和應用程序與驅動分離,保持內核的獨立、純淨。這個是基於目前目前linux內核已經很強大了的基礎來的。


互聯網亂侃秀


感謝您的閱讀!

難道安卓系統之前一直使用的是Unix系統?這讓我有點懵圈。瞭解下安卓系統——它是基於Linux的宏內核操作系統,它是由谷歌和開放手機聯盟共同開發,因此它是開源式的系統。

確實,隨著谷歌不斷加深對於安卓系統的升級,目前的安卓系統已經沒有了最早系統的卡頓:

  1. 安卓5.0,安卓引入了AOT安裝時靜態編譯,雖然安裝慢,但是安裝好後,能夠直接進行運行。
  2. 安卓7.0,使用JIT在運行時編譯。能夠讓App在安裝時速度快,安裝後的體積小。所以,這就是現在方舟編譯器攻擊的點,因為方舟編譯器是提前進行編譯,直接運行;而安卓是邊運行邊編譯。
  3. 安卓9.0,加速文件來加速運行。谷歌系統會自動上傳應用的高頻使用代碼位置,然後谷歌應用商店會根據這些上傳,編譯生成優化文件。當然,在國內因為沒有谷歌應用商店,一切都是白塔。
其實,雖然谷歌在努力,國內手機廠商的表現更不容小覷,這裡就說到了我們熟知的華為,我們知道華為通過使用全新的方舟編譯器,能夠讓運行的App,在安裝前就能進行編譯,讓它在系統操作上提升24%,響應速度提升44%,三方應用操作流暢度提升60%左右。



谷歌其實並非是加大安卓系統的力度,而是另闢蹊徑,開發了全新的系統flushia。當然,現在關於它的消息不多,據說是為了制約iPhone的系統。
我們更期待的是微內核的鴻蒙系統在手機中的應用,一旦解決生態問題,可能又是一種全新的紛爭。


LeoGo科技


這問題就看不懂了,android本身就是基於Linux內核開發的,而且android也已經滿足高性能需求了,雖然android有自己的缺點,但是Linux直接安裝在手機上的效果也並沒有很好。所以不明白題主想說什麼,android換用Linux內核不是就相當於沒換嘛。


榻榻米的榻榻


安卓系統架構分為四層,Linux內核,程序支持庫,硬件驅動和程序,UI。Linux內核基本不會換,要更改的也就只有程序支持庫。後面兩層那是手機廠家要動手的地方


葉綠綠16025889


安卓採用Linux內核,做好了,還要什麼電腦系統?未來手機電腦系統和形態全統一,既是手機,又是電腦,只需要解決電子可觸屏和電子鍵盤的問題。。我相信摺疊屏,柔性屏一定不是未來的趨勢,而電子屏幕必將在未來5年實現!


布梵修行者


手機行業在不斷的更新換代,硬件的不斷升級,軟件也是如此。最近,各個廠商也不斷的研發自己的系統,包括三星華為蘋果等,而作為安卓的設計廠商谷歌,同樣如此。

最近,谷歌將要在安卓系統上使用更加主流的 Linux內核,並加快自己的佈局,以適應未來時代對於手機性能的高要求。

在今年的 Linux Plumbers Conference 大會上,谷歌工程師在如何使 Android 系統底層更加接近主流 Linux 內核方面做了演講。隨著 Linux 內核的演變, Linux 內核更加適合在移動設備當中使用,因此谷歌已經不需要對目前主流的系統內核進行很大的改動。升級將會給安卓系統帶來更好的安全性和兼容性,給用戶帶來更好的體驗,還能節省谷歌在研發上面的費用。

谷歌也可以將許多 Android 系統內核的優勢加入到 Linux 系統內核當中,使 Linux 項目獲得整體收益。Android 系統在電源管理方面的優勢,可以讓基於 Arm 架構的 Linux 系統手機獲得更好續航和電池壽命。

計劃的第一步是將在 Android 內核方面的修改更多的迴歸主流 Linux 內核。與 Linux 4.14.0 內核相比,Android 通用內核插入了 32000 行代碼,並且刪除了 1500 多行代碼。與幾年前 60000 行代碼的插入量相比,谷歌已經大幅度減少了對內核代碼的修改程度。

對於芯片製造商與 OEM 商場的修改,谷歌在 2017 年推出了 Project Treble 項目,將驅動程序和應用程序與 Android 內核區分開,從而保持系統內核的純淨度。同時這個項目也是谷歌將 Android 內核迴歸主流 Linux 內核計劃的一部分。

值得一提的是,現在谷歌還在研發新系統,Fuchsia 系統將在未來成為安卓的替代品,這個系統將會採用自定義內核,打通 Linux和安卓的系統隔閡,突破技術限制,成為谷歌新的系統。

谷歌作為現在手機的最主流的系統服務商,決定著市場大份額的用戶系統,而安卓系統又是現在國內手機廠商所通用的手機系統。除了華為之外,小米ov魅族等幾乎都是採用的谷歌的安卓系統,這也就意味著國內大批用戶都是用的安卓系統。

在系統軟硬件上,被我們一直所熟知的就是不斷更新的高通驍龍芯片,但是卻對谷歌的安卓系統的更新知之甚少。而谷歌的系統更新將會徹底的改善現在的行業環境,在系統上面的提升也會提升消費者的實際體驗,提升谷歌系統的市場。而新的系統的推出也將會對現在的市場格局造成不小的衝擊,打通 Linux和安卓隔閡之後的全新系統,將會在未來的手機行業綻放新的光彩。


歐界科技


你這個問題讓我糊塗了,安卓本來就是Linux內核啊,什麼叫安卓將採用Linux內核呢?


十一狼L


這次谷歌版本升級是置換更主流的lunix內核版本,

安卓系統的核心本來就是lunix ➕ Java

但是舊版的安卓lunix核心並不是最主流的內核版本。

這次更換的lunix內核版本增強了網絡性能與內核架構的全面優化,是為了下一世代安卓系統的升級而準備的。


分享到:


相關文章: