日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Android從按下開機鍵到啟動發生了什么

瀏覽:25日期:2022-09-27 13:50:33

作為一個Android開發者,了解整個系統架構是必須的,所以這篇就總結一下Android手機從按下開機鍵到啟動這一過程發生了什么。

要了解Android手機啟動過程,我們先來了解一下基于linux系統的電腦從按下電源鍵的那一刻起,發生了什么,這樣類比可以更好的理解Android手機的啟動過程。

基于Linux的pc啟動過程

我們都知道,所有的程序軟件包括操作系統都是運行在內存中的,然而我們的操作系統一般是存放在硬盤上的,當我們按下開機鍵的時候,此時內存中什么程序也沒有,因此需要借助某種方式,將操作系統加載到內存中,而完成這項任務的就是BIOS

裝過系統的人一定知道BIOS這個東西,那么它究竟是什么呢?

BIOS:Basic Input/Output System(基本輸入輸出系統),在IBM PC兼容系統上,是一種業界標準的固件接口(來自維基百科)。有點難以理解,其實BIOS是我們電腦啟動時加載的第一個程序,這個程序不是由Java語言編寫也不是由C語言編寫,一般是匯編程序。

BIOS程序固化在主板上的一塊芯片上,是連接計算機硬件與操作系統的橋梁,它保存著計算機最重要的基本輸入輸出的程序、開機后自檢程序和系統自啟動程序。

那么問題來了,BIOS程序又是怎么啟動的?BIOS的啟動,是由硬件完成的,Intel 80x86系列的cpu的硬件都設計為加電(即開機瞬間)就進入16位實模式狀態運行,此時將cpu的硬件邏輯設計為強行將CS的值設置為0xFFFF,IP的值設置為0x0000,這樣CS:IP就指向了0xFFFF0這個位置,而這個位置就是BIOS程序的入口地址。

因此這是一個硬件廠商之間的約定,所有的BIOS程序入口地址均為0xFFFF0,這樣在開機的時候,就找到這個地址,如果該地址并沒有代碼段,那么計算機將會死機,如果這個地址處有代碼段,將會執行這個代碼段,并由此執行下去,即BIOS程序開始啟動。

補充:CS:代碼段寄存器,存在于CPU中,指向CPU當前執行代碼在內存中所在的區域。

IP:指令寄存器,存在于CPU中,記錄將要執行的指令在代碼段內的偏移地址,與CS組合即為將要執行的指令的內存地址。

當BIOS程序啟動時,就會檢測硬件設備,比如我們的顯卡、內存等信息。BIOS會在內存中建立中斷向量表和中斷服務程序。中斷向量表中有256個中斷向量,每個中斷向量占4個字節,每個中斷向量指向一個中斷服務程序,這些中斷服務程序完成了將操作系統由硬盤加載到內存中的任務。

基于linux的操作系統而言,計算機將分三批逐次加載操作系統的代碼,第一批由BIOS中斷int 0x19將第一扇區bootsect的內容加載到內存;第二批和第三批在bootsect的指揮下,分別加載后面扇區的內容到內存中。

經過執行一系列的BIOS代碼后,計算機完成了自檢等操作,計算機硬件體系會與BIOS聯合操作,讓cpu接收到一個int 0x19中斷,cpu接收到這個中斷后,會立即在中斷向量表中找到int 0x19中斷向量,此時會找到對應的中斷服務程序,并由該中斷服務程序將硬盤中第一個扇區的引導程序加在到內存中的指定位置。

隨后,在引導程序的作用下,陸續將操作系統的其他程序載入內存,完成實模式到保護模式的轉變,為執行操作系統的入口函數main做準備,后面就是操作系統的初始化工作了,最后完成計算機的啟動。

Android手機的啟動過程

Android系統雖然也是基于linux系統的,但是由于Android屬于嵌入式設備,并沒有像pc那樣的BIOS程序。

取而代之的是Bootloader——系統啟動加載器。它類似于BIOS,在系統加載前,用以初始化硬件設備,建立內存空間的映像圖,為最終調用系統內核準備好環境。

在Android里沒有硬盤,而是ROM,它類似于硬盤存放操作系統,用戶程序等。ROM跟硬盤一樣也會劃分為不同的區域,用于放置不同的程序,在Android中主要劃分為一下幾個分區:

/boot:存放引導程序,包括內核和內存操作程序

/system:相當于電腦c盤,存放Android系統及系統應用

/recovery:恢復分區,可以進入該分區進行系統恢復

/data:用戶數據區,包含了用戶的數據:聯系人、短信、設置、用戶安裝的程序

/cache:安卓系統緩存區,保存系統最常訪問的數據和應用程序

/misc:包含一些雜項內容,如系統設置和系統功能啟用禁用設置

/sdcard:用戶自己的存儲區,可以存放照片,音樂,視頻等文件

那么Bootloader是如何被加載的呢?我們可以想到,應該跟pc一樣,當開機加電的時候,cpu會從cpu制造廠商預設的地址上取指令,這個地址是各廠商約定俗稱的,類似于上面80x86架構里的0xFFFF0地址,因此Android手機會將固態存儲設備ROM預先映射到該地址上,當開機加電的時候,cpu就會從該地址執行/boot分區下的Bootloader程序,載入linux內核到RAM中。

當linux內核啟動后會初始化各種軟硬件環境,加載驅動程序,掛載根文件系統,并開始執行根文件系統的init程序,init程序是Android啟動過程中最重要的核心程序。

init進程是Android系統中用戶進程的鼻祖進程。init進程會啟動各種系統本地服務,如:Media Server、Service Manager、bootanim(開機動畫)等。init進程會在解析init.rc文件后fork出Zygote,而Zygote是所有Java進程的父進程,我們的App都是由Zygote fork出來的。

Zygote進程主要包含:

加載ZygoteInit類,注冊Zygote Socket服務端套接字;

加載虛擬機;

預加載Android核心類

預加載系統資源

隨后Zygote進程會fork出System Server進程,System Server進程負責啟動和管理整個framework,包括Activity Manager,PowerManager等服務。

當System Server將系統服務啟動就緒后,就會通知ActivityManager啟動首個Android程序Home即我們看到的桌面程序。

至此,從Android手機開機到看到桌面程序所有過程分析完了。

最后附一張整體流程圖,幫助更好理解(出處在下面參考鏈接中)

Android從按下開機鍵到啟動發生了什么

參考:http://blog.chinaunix.net/uid-26569496-id-3891554.html http://ticktick.blog.51cto.com/823160/1659473http://gityuan.com/2016/01/30/android-boot/

標簽: Android
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
麻豆中文一区二区| 亚洲人成精品久久久| 欧美激情精品| 日本一区福利在线| 日韩欧美在线精品| 日韩和欧美一区二区| 五月激情久久| 国产不卡精品| 亲子伦视频一区二区三区| 日本亚洲不卡| 久热re这里精品视频在线6| 久久99视频| 国产探花在线精品| 欧美91在线|欧美| 麻豆久久久久久久| 中文字幕高清在线播放| 日本中文字幕视频一区| 成人国产精品一区二区网站| 午夜久久影院| 好吊一区二区三区| 视频在线观看91| 婷婷成人av| 日本成人精品| 精品一区二区三区的国产在线观看| 成人av二区| 不卡在线一区| 日韩综合一区二区三区| 午夜精品成人av| 久久精品一区二区不卡| 国产精久久久| 97国产成人高清在线观看| 亚洲精选久久| 日韩免费精品| 国产精品高清一区二区| 日韩中文字幕91| 免费在线成人网| 国产免费播放一区二区| 久久xxxx精品视频| 日韩激情视频网站| 韩国一区二区三区视频| 免费不卡在线观看| 日韩av中文字幕一区二区三区| 香蕉精品久久| 亚洲精品网址| 日本综合视频| 一区二区精品伦理...| 国产欧美91| 欧美日韩国产观看视频| 国产精品久久久一区二区| 国产精品日韩| 日韩三级精品| 丝袜美腿一区| 日韩国产欧美一区二区三区| 视频一区国产视频| 91精品一区| 日韩伦理一区| 日韩不卡一区二区三区| 视频一区国产视频| 国产极品嫩模在线观看91精品| 日本不卡高清| 成人污污视频| 国产精品三上| 福利在线一区| 日韩激情视频网站| 999久久久精品国产| 亚洲高清久久| 日韩国产91| 免费观看久久av| 亚洲精品乱码久久久久久蜜桃麻豆| 制服诱惑一区二区| 国产伦精品一区二区三区千人斩| 日韩极品在线观看| 理论片午夜视频在线观看| 国产成人久久精品麻豆二区 | 国产一区一一区高清不卡| 欧美日韩伊人| 亚洲国产一区二区三区在线播放| 久久精品国产68国产精品亚洲| 91一区二区| 婷婷亚洲成人| 在线综合欧美| 99视频精品视频高清免费| 日韩精品麻豆| 国产毛片一区二区三区| 精品黄色一级片| 欧美日韩国产亚洲一区| 九九久久电影| 国产精品视频首页| 精品日韩毛片| 激情综合五月| 欧美日本不卡| 免费观看在线综合色| 日韩三区四区| 亚洲二区三区不卡| 欧美成a人免费观看久久| 亚洲免费观看| 麻豆成全视频免费观看在线看| 久久毛片亚洲| 国产精品一区二区精品视频观看| 国产成人在线中文字幕| 福利一区二区免费视频| 久久青草久久| 你懂的亚洲视频| 欧美私人啪啪vps| 偷拍亚洲精品| 免费在线观看一区二区三区| 日本一区二区三区视频在线看| 国产欧美日韩视频在线 | 伊人精品在线| 亚洲精品成人图区| 国产a亚洲精品| 久久av免费看| 欧美激情视频一区二区三区免费 | 欧美天堂视频| 国产高清亚洲| 国产精品一级| 国产欧美在线观看免费| 在线看片福利| 美女久久精品| 久久的色偷偷| 国产精品天天看天天狠| 久久精品免费一区二区三区| 天堂va蜜桃一区二区三区| 国产欧美69| 亚洲精品免费观看| 亚洲一区二区三区久久久| 精品视频网站| 国产亚洲欧美日韩在线观看一区二区| 一二三区精品| 日本午夜精品久久久久| www.com.cn成人| 国产一区二区精品福利地址| 另类激情亚洲| 亚洲精品极品少妇16p| 国产精品视频一区二区三区四蜜臂| 给我免费播放日韩视频| 亚洲成人三区| 欧美性感美女一区二区| 午夜亚洲福利| 亚洲免费观看高清完整版在线观| 国产一区国产二区国产三区| 婷婷亚洲五月色综合| 97se亚洲| 欧美日韩亚洲一区三区| 欧美日韩国产免费观看| 国产日产一区| 久久爱www.| 天堂√8在线中文| 特黄毛片在线观看| 亚洲成人va| 亚洲欧美日韩国产一区二区| 成人精品国产亚洲| 日韩在线中文| 91精品1区| 亚洲欧洲日韩精品在线| 日本精品在线中文字幕| 国产精品视频一区二区三区综合 | 国产亚洲激情| 美女精品在线| 国产精品主播| 精品国模一区二区三区| 欧美日韩夜夜| 精品理论电影在线| 国产一区日韩一区| 国产不卡av一区二区| 久久国产人妖系列| 麻豆国产精品777777在线| 亚洲免费观看高清完整版在线观| 神马午夜久久| 国产精品日本| 日韩二区三区在线观看| 欧美精品黄色| 日本午夜精品| 涩涩av在线| 亚洲欧美专区| 成人国产精品一区二区网站| 欧美日韩一视频区二区| 视频一区中文字幕| 国产精品一区二区精品视频观看| 亚洲免费毛片| 国产精品115| 亚洲大全视频| 国产精品高清一区二区| 久久精品99国产精品| 中文字幕一区二区三区四区久久 | 老牛国内精品亚洲成av人片| 亚洲精品综合| 麻豆精品视频在线| 一本一本久久| 精品一区二区三区免费看| 国产精品99久久久久久董美香| 亚洲精品乱码久久久久久蜜桃麻豆| 激情婷婷久久| 日韩精品免费一区二区夜夜嗨| 亚洲一区二区三区在线免费| 蜜桃成人av| 欧美日韩亚洲一区二区三区在线| 欧美视频二区| 欧美aa在线观看| 7777精品|