1. 程式人生 > 其它 >Android系統與Linux核心是什麼關係?Linux核心發行版介紹

Android系統與Linux核心是什麼關係?Linux核心發行版介紹

Linux核心是非常重要的,同時Linux核心也是非常複雜的,Linux核心超過千萬行程式碼。為增進大家對Linux核心的認識,本文將對Linux核心發行版以及Android系統和Linux核心的關係予以介紹。如果你對Linux核心具有興趣,不妨和小編一起繼續往下閱讀哦。

 

一、Linux核心發行版

Linux核心的發展過程中,我們還不得不提一下各種Linux發行版的作用,因為正是它們推動了Linux的應用,從而也讓更多的人開始關注Linux。一些組織或廠家,將Linux系統的核心與外圍實用程式(Utilities)軟體和文件包裝起來,並提供一些系統安裝介面和系統配置、設定與管理工具,就構成了一種發行版本(distribution),Linux的發行版本其實就是Linux核心再加上外圍的實用程式組成的一個大軟體包而已。相對於Linux作業系統核心版本,發行版本的版本號隨釋出者的不同而不同,與Linux系統核心的版本號是相對獨立的。因此把SUSE、RedHat、Ubuntu、Slackware等直接說成是Linux是不確切的,它們是Linux的發行版本,更確切地說,應該叫做“以Linux為核心的作業系統軟體包”。根據GPL準則,這些發行版本雖然都源自一個核心,並且都有自己各自的貢獻,但都沒有自己的版權。Linux的各個發行版本(distribution),都是使用Linus主導開發併發布的同一個Linux核心,因此在核心層不存在什麼相容性問題。每個版本都不一樣的感覺,只是在發行版本的最外層才有所體現,而絕不是Linux本身特別是核心不統一或是不相容。

90年代初期Linux開始出現的時候,僅僅是以原始碼形式出現,使用者需要在其他作業系統下進行編譯才能使用。後來出現了一些正式版本。最流行的幾個正式版本有:SUSE、RedHat、Fedora、Debian、Ubuntu、CentOS、Gentoo,等等。使用者可根據自己的經驗和喜好選用合適的Linux發行版。

原先Linus Torvalds將Linux置於一個禁止任何商業行為的條例之下,但之後改用GNU通用公共許可證第二版。該協議允許任何人對軟體進行修改或發行,包括商業行為,只要其遵守該協議,所有基於Linux的軟體也必須以該協議的形式發表,並提供原始碼。

Linus Torvalds曾經公開聲稱將Linux置於GNU通用公共許可證之下是他一生中所做的“最好的決定”。

 

二、Android系統與Linux核心的關係

通過上面的介紹,想必大家對Linux核心的發行版已經具備了清晰的認識。在這部分,我們主要來了解下Android系統和Linux核心之間的關係。

對Android感興趣的朋友都知道,Android系統是建立在Linux核心之上的。那麼Linux核心和Android什麼關係?

Android雖然建立在Linux核心之上,但是他對核心進行了一些擴充套件,增加了一些驅動。比如Binder,loger等等驅動。可以拿Android核心程式碼和其Baseline版本進行對比。可以看到Android對Linux核心的所有擴充套件。

熟悉Linux啟動的朋友知道,首先Linux引導完成之後,會啟動使用者態的init程序(pid為0),這個程序在整個系統執行過程中起著非常重要的作用,如果你對init程序不瞭解請查相關資料。init完成系統的初始化工作,然後進入shell,接收使用者的輸入。

Android啟動也沒有什麼神祕的,就是用自己的init程序替換了Linux核心的init程序,完成自己初始化工作(裝置,檔案系統等等初始化)。然後啟動自己的虛擬機器,程式等等的東西。Android的init程序的程式碼位於system/core/init/init.c下面,可以去檢視其原始碼,來了解Android啟動詳細流程。Android啟動流程的資料網上已經比較多,這裡就不贅述了。

可以看到移植Android過程中,除錯init非常重要。因為所有和硬體平臺相關的東西都這裡初始化,所以init程序有可能需要移植或者配置。其他的程序都是和硬體無關的,理論上不需要修改就應該能夠執行起來。

經過上面的描述可以看出,Android的init程序起著一個承上啟下的作用。承上——自動由Linux核心呼叫;啟下——初始化Android各種裝置和資源,然後啟動Android相關的程序,直到引導起整個Android系統。

以上便是此次小編帶來的Linux核心相關內容,通過本文,希望大家對Linux核心發行版以及Android系統和Linux核心的關係具備一定的瞭解。