本文系列分析android在到底是個(gè)什么挂捻。它是怎么做到的作為一個(gè)手機(jī)系統(tǒng)蒋譬。
總所周知android是基于Linux內(nèi)核2.6版本的号胚。而Linux的內(nèi)核是基于GPL開(kāi)源協(xié)議的。所以android在設(shè)計(jì)的時(shí)候取了一些巧.這一章主要說(shuō)android的一個(gè)啟動(dòng)過(guò)程酸役。
在看之前你需要明白Linux的fork 和exec 函數(shù) 如果你不知道 請(qǐng)自己百度住诸。
首先是Linux 的init zygote進(jìn)程啟動(dòng) 。然后這個(gè)進(jìn)程會(huì)去啟動(dòng)Android的一些列文件 都是作為進(jìn)程來(lái)fork 出來(lái)的涣澡。都是屬于init 的子進(jìn)程贱呐。我們的4大組件 我們的formwork 層 。還有l(wèi)ib層 都是作為一個(gè)個(gè)子進(jìn)程 來(lái)運(yùn)行的入桂。有很多子進(jìn)程奄薇。
注意 重點(diǎn)在這個(gè)時(shí)候 我們linux的fork的原理要知道 首先是fork 很快。但是為什么這么快 是因?yàn)?我們fork的時(shí)候是沒(méi)有分配物理地址的抗愁。只有在作出改變的時(shí)候才分配馁蒂。Fokr() 函數(shù)之后會(huì)執(zhí)行exec 函數(shù) 然后來(lái)創(chuàng)建一個(gè)獨(dú)立的子進(jìn)程 然后在創(chuàng)建的時(shí)候?yàn)榱吮WCfrok的速度使用 優(yōu)化用戶(hù)體驗(yàn) 采用了一種寫(xiě)時(shí)拷貝技術(shù) (copy-on-write)
而且我們感覺(jué)開(kāi)啟一個(gè)app 很快 是因?yàn)閒rok 的開(kāi)銷(xiāo)是就是父進(jìn)程的頁(yè)表呵晚。以及子進(jìn)程創(chuàng)建唯一的進(jìn)程描述符 就是pid 可以理解為創(chuàng)建了一個(gè)幾個(gè)字段的一個(gè)說(shuō)明而已。所以我們啟動(dòng)很多app 所以在linux下的一個(gè)狀態(tài)就是 所有的沒(méi)有改變的地方 因?yàn)?我們引用了很多系統(tǒng)資源 4大組件 這些 都是系統(tǒng)的 然后其物理地址 其實(shí)就一份 因?yàn)橹挥幸粋€(gè)系統(tǒng)嘛 所以原生的顯示很快 因?yàn)檫M(jìn)程的復(fù)制和調(diào)用 都是已經(jīng)分配好了的 直接調(diào)用就好了 因?yàn)殚_(kāi)機(jī) init 就啟動(dòng)了系統(tǒng)啊沫屡。所以我之前的疑問(wèn) 就是 有很多虛擬機(jī)嘛 事實(shí)上虛擬機(jī) 都是一樣的 在linux 都是萬(wàn)物皆文件的饵隙。所以說(shuō) 這些都是一個(gè)虛擬機(jī) 實(shí)際上 在物理地址上 只是 我們 在內(nèi)存中多了一個(gè)引用而已 參照java 的對(duì)象的淺拷貝。
在很多文章都會(huì)說(shuō)沮脖。我們android是沙盒機(jī)制金矛。然后是app 崩潰其中一個(gè) 不會(huì)影響其他的app.看完這個(gè)文章你應(yīng)該明白他是怎么做的。不同的app 都有自己調(diào)用虛擬機(jī)的勺届。然后根據(jù)不同的描述符 標(biāo)識(shí)不同的結(jié)果驶俊。就是我們所看到的那種。其實(shí)虛擬機(jī)只有一個(gè) 只是不同的app 在使用而已涮因。這一點(diǎn)我們可以看手機(jī)內(nèi)存就知道了废睦。多個(gè)app內(nèi)存會(huì)減少。關(guān)于這個(gè)結(jié)果你需要明白一些基礎(chǔ)的原理就是cpu 的構(gòu)成养泡。我們平時(shí)說(shuō)的堆 棧 寄存器 靜態(tài)運(yùn)行和動(dòng)態(tài)運(yùn)行的幾個(gè)概念嗜湃。jvm是基于棧 的 而dvm是基于寄存器的。寄存器是屬于cpu 的一部分 而堆棧 是屬于內(nèi)存中的一種數(shù)據(jù)結(jié)構(gòu)而已澜掩。
下一章 我們說(shuō)android的 進(jìn)程間的通信
Android 內(nèi)核分析
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門(mén)蝙云,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人路召,你說(shuō)我怎么就攤上這事勃刨。” “怎么了股淡?”我有些...
- 文/不壞的土叔 我叫張陵身隐,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我唯灵,道長(zhǎng)贾铝,這世上最難降的妖魔是什么? 我笑而不...
- 正文 為了忘掉前任,我火速辦了婚禮垢揩,結(jié)果婚禮上大脉,老公的妹妹穿的比我還像新娘。我一直安慰自己水孩,他們只是感情好,可當(dāng)我...
- 文/花漫 我一把揭開(kāi)白布琐驴。 她就那樣靜靜地躺著俘种,像睡著了一般。 火紅的嫁衣襯著肌膚如雪绝淡。 梳的紋絲不亂的頭發(fā)上宙刘,一...
- 那天,我揣著相機(jī)與錄音牢酵,去河邊找鬼悬包。 笑死,一個(gè)胖子當(dāng)著我的面吹牛馍乙,可吹牛的內(nèi)容都是我干的布近。 我是一名探鬼主播,決...
- 文/蒼蘭香墨 我猛地睜開(kāi)眼丝格,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼撑瞧!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起显蝌,我...
- 序言:老撾萬(wàn)榮一對(duì)情侶失蹤预伺,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后曼尊,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體酬诀,經(jīng)...
- 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
- 正文 我和宋清朗相戀三年骆撇,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了瞒御。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
- 正文 年R本政府宣布,位于F島的核電站爷怀,受9級(jí)特大地震影響阻肩,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒙蒙 一烤惊、第九天 我趴在偏房一處隱蔽的房頂上張望乔煞。 院中可真熱鬧,春花似錦柒室、人聲如沸渡贾。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)空骚。三九已至,卻和暖如春擂仍,著一層夾襖步出監(jiān)牢的瞬間囤屹,已是汗流浹背。 一陣腳步聲響...
- 正文 我出身青樓肃廓,卻偏偏與公主長(zhǎng)得像智厌,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子亿昏,可洞房花燭夜當(dāng)晚...