歡迎關(guān)注博主 Mindtechnist 或加入【智能科技社區(qū)】一起學(xué)習(xí)和分享Linux、C、C++、Python、Matlab,機(jī)器人運(yùn)動控制、多機(jī)器人協(xié)作,智能優(yōu)化算法,濾波估計(jì)、多傳感器信息融合,機(jī)器學(xué)習(xí),人工智能等相關(guān)領(lǐng)域的知識和技術(shù)。關(guān)注公粽號 《機(jī)器和智能》 回復(fù)關(guān)鍵詞 “python項(xiàng)目實(shí)戰(zhàn)” 即可獲取美哆商城視頻資源!
博主介紹:
CSDN博客專家,CSDN優(yōu)質(zhì)創(chuàng)作者,CSDN實(shí)力新星,CSDN內(nèi)容合伙人;
阿里云社區(qū)專家博主;
華為云社區(qū)云享專家;
51CTO社區(qū)入駐博主,掘金社區(qū)入駐博主,支付寶社區(qū)入駐博主,博客園博主。
?????????? 重磅福利 ??????????
??本次送2套書 ,評論區(qū)抽2位小伙伴送書
??活動時間:截止到 2024-02-2710:00:00
??抽獎方式:評論區(qū)隨機(jī)抽獎。
??參與方式:關(guān)注博主、點(diǎn)贊、收藏,評論。
?注意:一定要關(guān)注博主,不然中獎后將無效!
??通知方式:通過私信聯(lián)系中獎粉絲。
??提示:有任何疑問請私信公粽號 《機(jī)器和智能》
《Linux運(yùn)維從入門到精通》 Linux運(yùn)維,運(yùn)維工程師的入行選擇。詳解Linux系統(tǒng)管理+93個運(yùn)維實(shí)例,精通數(shù)據(jù)與架構(gòu)+6大類服務(wù)器搭建。。
專欄:《Linux內(nèi)核設(shè)計(jì)思想與源碼分析》
? 通用計(jì)算機(jī)啟動過程
1??一個基礎(chǔ)固件:BIOS
一個基礎(chǔ)固件:BIOS→基本IO系統(tǒng),它提供以下功能:
- 上電后自檢功能 Power-On Self-Test,即POST:上電后,識別硬件配置并對其進(jìn)行自檢,保證正常運(yùn)行和初始化;
- 基本IO驅(qū)動與事件處理功能:初始化并驅(qū)動硬件,如顯示器、串口、鍵盤等接口,使能基本的中斷;
- 啟動參數(shù)設(shè)置功能:過程中允許通過熱鍵啟動設(shè)置界面,進(jìn)而對CMOS RAM中的啟動參數(shù)進(jìn)行配置。CMOS RAM等效于BBSRAM,存放啟動配置數(shù)據(jù),電池掉電后數(shù)據(jù)丟失;
- 系統(tǒng)自動裝載功能:在系統(tǒng)自檢成功后,根據(jù)啟動順序,將相應(yīng)啟動設(shè)備主引導(dǎo)記錄MBR(一般位于0磁道的0扇區(qū),大小為512字節(jié))的引導(dǎo)程序裝入內(nèi)存并從入口地址運(yùn)行;
2??WIndows操作系統(tǒng)啟動過程
① 系統(tǒng)上電或復(fù)位,X86處理器復(fù)位——代碼段寄存器CS為0xFFFF,指令指針寄存器IP為)0x0000,CS:IP地址存放下一條跳轉(zhuǎn)指令,跳轉(zhuǎn)至ROM中BIOS入口地址0xFFFFFFF0(復(fù)位向量地址),并啟動BIOS。
② BIOS上電自檢,若出現(xiàn)錯誤則初始化基本硬件,允許用戶進(jìn)行參數(shù)配置。
③ BIOS將第1個啟動設(shè)備的第1個扇區(qū)加載到系統(tǒng)RAM的0x7C000地址,啟動MBR中的引導(dǎo)程序,進(jìn)入引導(dǎo)的第一個階段。
④ 調(diào)用 Windows MBR Loader 或 LILO GRUB WinGrub等引導(dǎo)程序,進(jìn)入引導(dǎo)的第二個階段。
⑤ 引導(dǎo)程序調(diào)用 OS Boot Loader 把用戶選擇的操作系統(tǒng)內(nèi)核加載到內(nèi)存,并跳轉(zhuǎn)到操作系統(tǒng)入口地址開始執(zhí)行。
此時,計(jì)算機(jī)的控制權(quán)交給了操作系統(tǒng),基本啟動過程完成。
? 嵌入式系統(tǒng)啟動過程
MCS-51 MCU 上電復(fù)位后,PC寄存器的初值為0x0000。0000H,0001H,0002H這三個單元存放了一條無條件跳轉(zhuǎn)指令,當(dāng)從該地址執(zhí)行時將直接跳轉(zhuǎn)到主程序的入口地址。
arm處理器復(fù)位后將從0x00000000地址處開始執(zhí)行指令。
1??處理器片內(nèi)集成啟動固件——嵌入式系統(tǒng)啟動
① 上電程序引導(dǎo)
片內(nèi)集成獨(dú)立 Boot ROM (Brom),代碼 Rom Boot Loader (RBL) 支持從 NAND Flash、SPI、UART 等外部接口啟動。
- 加電后,處理器將從該ROM的復(fù)位向量地址開始執(zhí)行,RBL通過判斷處理器特定引腳的電平來進(jìn)入正常啟動模式或開發(fā)模式;
- RBL獲取下一步要執(zhí)行的代碼,并將其復(fù)制到SRAM或SDRAM中引導(dǎo)執(zhí)行;
② 嵌入式操作系統(tǒng)裝載
嵌入式操作系統(tǒng)的引導(dǎo)也需要特定的機(jī)制和軟件支持,即 Boot Loader。
- 復(fù)位后,將 Boot Loader 代碼從Flash 拷貝到SDRAM的特定區(qū)間并引導(dǎo)執(zhí)行;
- Boot Loader 程序執(zhí)行一系列基本的硬件初始化工作;
- 將自身拷貝到SDRAM中,RAM中的 Boot Loader 繼續(xù)執(zhí)行,為操作系統(tǒng)的運(yùn)行做好環(huán)境準(zhǔn)備,并將外部存儲器中的操作系統(tǒng)內(nèi)核映像及根文件系統(tǒng)映像拷貝到內(nèi)存中的代碼,數(shù)據(jù)空間,設(shè)置內(nèi)核啟動參數(shù);
- 跳轉(zhuǎn)至內(nèi)核入口地址開始執(zhí)行。
2??裸機(jī)
直接部署在嵌入式硬件上的軟件稱為裸機(jī)代碼,或裸機(jī)(應(yīng)用)軟件。一般來說都是些無限循環(huán)結(jié)構(gòu),比如空調(diào)、冰箱等嵌入式系統(tǒng)。通過板級支持包BSP,向下屏蔽硬件的細(xì)節(jié),向上提供統(tǒng)一的服務(wù)和接口。沒有操作系統(tǒng),通過中斷來實(shí)現(xiàn)多任務(wù)運(yùn)行。
? Linux系統(tǒng)啟動過程
計(jì)算機(jī)接通電源上電后,需要經(jīng)過BIOS加電自檢、MBR系統(tǒng)引導(dǎo)、加載內(nèi)核三步之后,操作系統(tǒng)才會啟動。
1??BIOS加電自檢
- BIOS全稱 Basic Input/Output System,即基本輸入輸出系統(tǒng),它是一個被永久刻錄在ROM中的軟件,加電自檢是指 Power On Self Test,POST,屬于BIOS的主要組成部分。
- 計(jì)算機(jī)在接通電源后,BIOS通過POST來加載硬件信息,進(jìn)行內(nèi)存、CPU、主板等檢測,如果硬件設(shè)備正常工作,BIOS會尋找硬盤第一個扇區(qū)中存儲的數(shù)據(jù),并使用MBR中的數(shù)據(jù)激活引導(dǎo)加載程序。
2??MBR系統(tǒng)引導(dǎo)
- MBR全程 Master Boot Recode,是一種磁盤分區(qū)格式,也是以此種格式的磁盤中0盤片0扇區(qū)中存儲的一段記錄——主引導(dǎo)記錄。磁盤中扇區(qū)的大小為512byte,主引導(dǎo)記錄MBR占據(jù)第一個扇區(qū)的前446字節(jié),剩余的空間依次存儲一個64字節(jié)的磁盤分區(qū)表,和一個用于標(biāo)識MBR是否有效的2字節(jié)的模數(shù)。
- 主引導(dǎo)記錄MBR中包含一個實(shí)現(xiàn)引導(dǎo)加載功能的程序——Boot Loader。由于BIOS只能訪問很少量的數(shù)據(jù),所以MBR中的引導(dǎo)加載程序其實(shí)只是一段初始程序的加載程序 Initial Program Loader,IPL,這段程序唯一的功能就是定位并加載 Boot Loader 的主體程序。
- 加載引導(dǎo)分為兩個階段
- 第一階段,BIOS引導(dǎo)IPL獲取 Boot Loader 主題程序在磁盤中的位置,此時系統(tǒng)啟動的控制權(quán)由BIOS轉(zhuǎn)移到MBR;
- 第二階段,Boot Loader 主題程序與操作系統(tǒng)對應(yīng)的內(nèi)核,定位到內(nèi)核文件所在的位置,并將其加載到計(jì)算機(jī)內(nèi)存中,此時系統(tǒng)啟動的控制權(quán)由MBR轉(zhuǎn)移到內(nèi)核。
3??加載內(nèi)核
- 內(nèi)核是操作系統(tǒng)的核心,Linux操作系統(tǒng)的內(nèi)核就是Linux。內(nèi)核以一種自解壓的壓縮格式壓縮,它與一個初始化的內(nèi)存映像和存儲設(shè)備映像表一起存儲在 /boot 目錄下。
- 在選定的內(nèi)核被加載到內(nèi)存中并開始執(zhí)行前需要先從壓縮格式中解壓,一旦內(nèi)核自解壓完成,systemd進(jìn)程(也就是早期版本中的init進(jìn)程)便被啟動。
- systemd進(jìn)程的啟動標(biāo)識著引導(dǎo)過程的結(jié)束,也標(biāo)識著啟動過程的開始。在系統(tǒng)啟動之初,由于系統(tǒng)中沒有除systemd之外的程序執(zhí)行,系統(tǒng)初始化工作尚未完成,因此計(jì)算機(jī)不能執(zhí)行任何和用戶相關(guān)的功能性工作。
- 系統(tǒng)初始化需要進(jìn)行掛載文件系統(tǒng)、啟動后臺服務(wù)等等一系列工作,這些初始化工作全部由systemd進(jìn)程完成。對于用戶來說,系統(tǒng)初始化完成后,系統(tǒng)才算正式啟動。
4??附:init進(jìn)程啟動級別
系統(tǒng)啟動流程:
BIOS → MBR → boot loader → kernel → init
BIOS → MBR → GRUB → kernel → init
- BIOS:找到啟動介質(zhì) - 移動硬盤、磁盤、U盤等,找到啟動介質(zhì)后讀取其中的第一個扇區(qū);
- MBR:第一個扇區(qū)(512字節(jié))稱為主引導(dǎo)記錄。主引導(dǎo)記錄分為3部分,前446byte是引導(dǎo)信息,后64byte是磁盤分區(qū)信息,最后2byte是標(biāo)志位。MBR的作用是找到 boot loader 。
- GRUP:是一種 boot loader ,用于加載kernel核心信息。
- kernel:內(nèi)核。
- init:內(nèi)核的第一個程序,分為7個啟動級別。
查看啟動級別配置文件
cat /etc/inittab #查看啟動級別相關(guān)的配置文件
inti命令可以切換系統(tǒng)的啟動級別
inti 0/1/2/3/4/5/6
- 0表示關(guān)機(jī)(不能設(shè)置為開機(jī)默認(rèn)啟動級別)
- 1表示單用戶
- 2表示多用戶(無網(wǎng)絡(luò)的3級別)
- 3多用戶(命令行模式,字符終端)
- 4用于開發(fā)
- 5圖形界面,默認(rèn)啟動方式
- 6reboot(不能設(shè)置為開機(jī)默認(rèn)啟動級別)
runlevel #查看系統(tǒng)的啟動級別
《Linux運(yùn)維從入門到精通》購買鏈接:鏈接1 | 鏈接2
《Linux運(yùn)維從入門到精通》從初學(xué)者角度出發(fā),通過通俗易懂的語言、清晰明了的操作步驟,詳細(xì)介紹了Linux系統(tǒng)管理與運(yùn)維相關(guān)的技術(shù)。全書分為3篇,共19章,包括運(yùn)維工作、服務(wù)器、Linux系統(tǒng)、Linux文件目錄命令、Linux軟件安裝、Linux文本編輯、用戶和用戶組、文件管理與進(jìn)程、Linux文件系統(tǒng)、Linux磁盤管理、Linux網(wǎng)絡(luò)、防火墻、FTP服務(wù)器的搭建與應(yīng)用、NFS服務(wù)器的搭建與應(yīng)用、搭建Tomcat應(yīng)用服務(wù)器、企業(yè)級Nginx應(yīng)用服務(wù)器搭建、搭建基于LAMP架構(gòu)服務(wù)、Linux數(shù)據(jù)服務(wù)、Linux shell腳本等內(nèi)容。本書所有知識都結(jié)合具體應(yīng)用場景和操作步驟進(jìn)行介紹,可以使讀者輕松領(lǐng)會Linux系統(tǒng)運(yùn)維的精髓,快速提高運(yùn)維技能。 本書可作為系統(tǒng)運(yùn)維入門者的自學(xué)用書,也可作為高等院校相關(guān)專業(yè)的教學(xué)參考書,還可供開發(fā)人員查閱參考。
作者簡介:明日科技,全稱是吉林省明日科技有限公司,是一家專業(yè)從事軟件開發(fā)、教育培訓(xùn)以及軟件開發(fā)教育資源整合的高科技公司,其編寫的教材非常注重選取軟件開發(fā)中的必需、常用內(nèi)容,同時也很注重內(nèi)容的易學(xué)、方便性以及相關(guān)知識的拓展性,深受讀者喜愛。其教材多次榮獲“全行業(yè)優(yōu)秀暢銷品種”“全國高校出版社優(yōu)秀暢銷書”等獎項(xiàng),多個品種長期位居同類圖書銷售排行榜的前列。
叢書說明:“軟件開發(fā)視頻大講堂”叢書第1版于2008年8月出版,因其編寫細(xì)膩、易學(xué)實(shí)用、配備海量學(xué)習(xí)資源和全程視頻等,在軟件開發(fā)類圖書市場上產(chǎn)生了很大反響,絕大部分品種在全國軟件開發(fā)零售圖書排行榜中名列前茅,2009年多個品種被評為“全國優(yōu)秀暢銷書”。
“軟件開發(fā)視頻大講堂”叢書第2版于2010年8月出版,第3版于2012年8月出版,第4版于2016年10月出版,第5版于2019年3月出版,第6版于2021年7月出版。十五年間反復(fù)錘煉,打造經(jīng)典。叢書迄今累計(jì)重印680多次,銷售400多萬冊,不僅深受廣大程序員的喜愛,還被百余所高校選為計(jì)算機(jī)、軟件等相關(guān)專業(yè)的教學(xué)參考用書。
“軟件開發(fā)視頻大講堂”叢書第7版在繼承前6版所有優(yōu)點(diǎn)的基礎(chǔ)上,進(jìn)行了大幅度的修訂。第一,根據(jù)當(dāng)前的技術(shù)趨勢與熱點(diǎn)需求調(diào)整品種,拓寬了程序員崗位就業(yè)技能用書;第二,對圖書內(nèi)容進(jìn)行了深度更新、優(yōu)化,如優(yōu)化了內(nèi)容布置,彌補(bǔ)了講解疏漏,將開發(fā)環(huán)境和工具更新為新版本,增加了對新技術(shù)點(diǎn)的剖析,將項(xiàng)目替換為更能體現(xiàn)當(dāng)今IT開發(fā)現(xiàn)狀的熱門項(xiàng)目等,使其更與時俱進(jìn),更適合讀者學(xué)習(xí);第三,改進(jìn)了教學(xué)視頻,為讀者提供更好的學(xué)習(xí)體驗(yàn);第四,升級了開發(fā)資源庫,提供了程序員“入門學(xué)習(xí)→技巧掌握→實(shí)例訓(xùn)練→項(xiàng)目開發(fā)→求職面試”等各階段的海量學(xué)習(xí)資源;第五,為了方便教學(xué),制作了全新的教學(xué)課件PPT。
文章來源:http://www.zghlxwxcb.cn/news/detail-830775.html
???重要????關(guān)注下方公粽號 《機(jī)器和智能》 回復(fù)關(guān)鍵詞 “python項(xiàng)目實(shí)戰(zhàn)” 即可獲取美哆商城視頻資源!文章來源地址http://www.zghlxwxcb.cn/news/detail-830775.html
到了這里,關(guān)于【文末送書】Linux/Windows/嵌入式系統(tǒng)的啟動過程的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!