Android系統(tǒng)與Linux內核是什么關系?Linux內核發(fā)行版介紹
Linux內核是非常重要的,同時Linux內核也是非常復雜的,Linux內核超過千萬行代碼。為增進大家對Linux內核的認識,本文將對Linux內核發(fā)行版以及Android系統(tǒng)和Linux內核的關系予以介紹。如果你對Linux內核具有興趣,不妨和小編一起繼續(xù)往下閱讀哦。
一、Linux內核發(fā)行版
Linux內核的發(fā)展過程中,我們還不得不提一下各種Linux發(fā)行版的作用,因為正是它們推動了Linux的應用,從而也讓更多的人開始關注Linux。一些組織或廠家,將Linux系統(tǒng)的內核與外圍實用程序(Utilities)軟件和文檔包裝起來,并提供一些系統(tǒng)安裝界面和系統(tǒng)配置、設定與管理工具,就構成了一種發(fā)行版本(distribution),Linux的發(fā)行版本其實就是Linux核心再加上外圍的實用程序組成的一個大軟件包而已。相對于Linux操作系統(tǒng)內核版本,發(fā)行版本的版本號隨發(fā)布者的不同而不同,與Linux系統(tǒng)內核的版本號是相對獨立的。因此把SUSE、RedHat、Ubuntu、Slackware等直接說成是Linux是不確切的,它們是Linux的發(fā)行版本,更確切地說,應該叫做“以Linux為核心的操作系統(tǒng)軟件包”。根據GPL準則,這些發(fā)行版本雖然都源自一個內核,并且都有自己各自的貢獻,但都沒有自己的版權。Linux的各個發(fā)行版本(distribution),都是使用Linus主導開發(fā)并發(fā)布的同一個Linux內核,因此在內核層不存在什么兼容性問題。每個版本都不一樣的感覺,只是在發(fā)行版本的最外層才有所體現(xiàn),而絕不是Linux本身特別是內核不統(tǒng)一或是不兼容。
90年代初期Linux開始出現(xiàn)的時候,僅僅是以源代碼形式出現(xiàn),用戶需要在其他操作系統(tǒng)下進行編譯才能使用。后來出現(xiàn)了一些正式版本。最流行的幾個正式版本有:SUSE、RedHat、Fedora、Debian、Ubuntu、CentOS、Gentoo,等等。用戶可根據自己的經驗和喜好選用合適的Linux發(fā)行版。
原先Linus Torvalds將Linux置于一個禁止任何商業(yè)行為的條例之下,但之后改用GNU通用公共許可證第二版。該協(xié)議允許任何人對軟件進行修改或發(fā)行,包括商業(yè)行為,只要其遵守該協(xié)議,所有基于Linux的軟件也必須以該協(xié)議的形式發(fā)表,并提供源代碼。
Linus Torvalds曾經公開聲稱將Linux置于GNU通用公共許可證之下是他一生中所做的“最好的決定”。
二、Android系統(tǒng)與Linux內核的關系
通過上面的介紹,想必大家對Linux內核的發(fā)行版已經具備了清晰的認識。在這部分,我們主要來了解下Android系統(tǒng)和Linux內核之間的關系。
對Android感興趣的朋友都知道,Android系統(tǒng)是建立在Linux內核之上的。那么Linux內核和Android什么關系?
Android雖然建立在Linux內核之上,但是他對內核進行了一些擴展,增加了一些驅動。比如Binder,loger等等驅動??梢阅肁ndroid內核代碼和其Baseline版本進行對比。可以看到Android對Linux內核的所有擴展。
熟悉Linux啟動的朋友知道,首先Linux引導完成之后,會啟動用戶態(tài)的init進程(pid為0),這個進程在整個系統(tǒng)運行過程中起著非常重要的作用,如果你對init進程不了解請查相關資料。init完成系統(tǒng)的初始化工作,然后進入shell,接收用戶的輸入。
Android啟動也沒有什么神秘的,就是用自己的init進程替換了Linux內核的init進程,完成自己初始化工作(設備,文件系統(tǒng)等等初始化)。然后啟動自己的虛擬機,程序等等的東西。Android的init進程的代碼位于system/core/init/init.c下面,可以去查看其源碼,來了解Android啟動詳細流程。Android啟動流程的資料網上已經比較多,這里就不贅述了。
可以看到移植Android過程中,調試init非常重要。因為所有和硬件平臺相關的東西都這里初始化,所以init進程有可能需要移植或者配置。其他的進程都是和硬件無關的,理論上不需要修改就應該能夠運行起來。
經過上面的描述可以看出,Android的init進程起著一個承上啟下的作用。承上——自動由Linux內核調用;啟下——初始化Android各種設備和資源,然后啟動Android相關的進程,直到引導起整個Android系統(tǒng)。
以上便是此次小編帶來的Linux內核相關內容,通過本文,希望大家對Linux內核發(fā)行版以及Android系統(tǒng)和Linux內核的關系具備一定的了解。如果你喜歡本文,不妨持續(xù)關注我們網站哦,小編將于后期帶來更多精彩內容。最后,十分感謝大家的閱讀,have a nice day!