從今天開始,我們來進行一個微型的操作系統(tǒng)(基于 x86 架構)的編寫。當然了,也是跟著別人學習,只是為了做個總結。將之記錄下來,和大家一起學習,也方便日后進行復習。
科爾沁網(wǎng)站建設公司創(chuàng)新互聯(lián),科爾沁網(wǎng)站設計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為科爾沁上千余家提供企業(yè)網(wǎng)站建設服務。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務好的科爾沁做網(wǎng)站的公司定做!
那么什么是操作系統(tǒng)呢?我們常見的操作系統(tǒng)有:Windows、Unix、Linux、Mac OS、Android 以及 iOS 等。簡單來說,操作系統(tǒng)是直接運行于硬件之上的計算機程序。它的一個作用是用于管理和控制計算機的硬件與軟件資源;另一個重要的作用是為用戶軟件的開發(fā)提供必要的服務和接口。下來我們來看看現(xiàn)代計算機系統(tǒng)的架構,如下圖所示
我們看到在最上層是應用層,也就是我們平時所說的軟件開發(fā)層。而軟件開發(fā)又分為兩種:用戶軟件開發(fā)和編譯軟件的開發(fā)。接下來便是操作系統(tǒng)了,操作系統(tǒng)提供了軟件運行的環(huán)境和各種服務與接口。再往下便是 BIOS,對于這個詞,我們裝過電腦系統(tǒng)的人都知道,后面會進行詳細的分析。最底下便是硬件層了,它為操作系統(tǒng)提供所必需的硬件環(huán)境。
我們下來來看看 BIOS,它的全名為 "Basic Input & Output System"。BIOS 的本質(zhì)也是一段程序,它是計算機上電后第一個運行的程序。它所做的工作主要分為以下幾個:a> 首先檢測硬件狀態(tài),檢測通過后立即進行硬件初始化;b> 它會在內(nèi)存中建立中斷向量表,其作用是提供硬件訪問的方法;c> 最后便是將控制權交由主引導程序執(zhí)行,進入操作系統(tǒng)。注意:BIOS 不是軟件(Software),而是固件(firmware)!那么什么是固件呢?固件是固化于硬件中的程序,在硬件出廠前已經(jīng)燒寫固定。
下來我們來看看 x86 架構的系統(tǒng)啟動流程,如下圖所示
我們看到先是系統(tǒng)硬件上電,接著運行 BIOS,初始化硬件;緊接著建立中斷向量表,加載運行主引導程序;軟件初始化,加載運行操作系統(tǒng)內(nèi)核,最后是系統(tǒng)初始化。那么 BIOS 是如何被運行起來的呢?下來我們來看看 BIOS 的運行機制。BIOS 存儲于 ROM 中,地址映射為 0xF0000 - 0xFFFFF(物理地址),它的入口地址為 0xFFFF0。那么在硬件電路的特殊設計下,會使得系統(tǒng)在開機后,CPU 從 0xFFFF0處開始執(zhí)行。BIOS 會按照用戶設置來掃描各個存儲介質(zhì)(光驅(qū)、軟驅(qū)、U 盤等),在發(fā)現(xiàn)主引導區(qū)后,將主引導區(qū)中的主因到程序載入內(nèi)存;主因到程序在內(nèi)存中的入口地址為 0x7c00,最后將控制權交由主引導程序執(zhí)行。怎么交給呢?其實也就是一句指令:jmp0x7c00。
那么 BIOS 如何在存儲介質(zhì)中尋找主引導區(qū)呢?進而如何判斷引導區(qū)中有沒有主引導程序呢?下來我們先來介紹下主引導區(qū),它的簡寫為:MBR,即 Master Boot Record。MBR 位于存儲介質(zhì)的最開始位置處,大小為 512 字節(jié);它的特點是前 512 字節(jié)的最后 2 個有效字節(jié)為 0x55aa;它的數(shù)據(jù)是 0x55aa 之前的數(shù)據(jù)都被視為主引導程序。那么前 512 字節(jié)是否一定為 MBR 呢?不一定哦!如果判斷是主引導區(qū),進而將主引導程序加載到內(nèi)存中,當運行完之后,有可能會發(fā)現(xiàn)它是不合法的,進而執(zhí)行出錯。所以說,主引導區(qū)存儲的程序不見得就是一個合法可用的程序。那么怎么進行判斷是否是合法可用的程序呢?我們將在下節(jié)博客中進行介紹。
下來我們來看看更加詳細的系統(tǒng)啟動流程,如下圖所示
在運行 BIOS 后,先進行存儲介質(zhì)的掃描,如果在存儲介質(zhì)中存在 MBR,那么便開始加載主引導程序,地址為 0x7c00;接著將控制權交由主引導程序執(zhí)行,進行軟件的初始化,最后加載運行操作系統(tǒng)內(nèi)核,進行系統(tǒng)的初始化。那么通過今天對操作系統(tǒng)的基礎知識的學習,總結如下:1、BIOS 是計算機上電后第一個運行的程序;2、BIOS 進行必要的初始化,并加載運行主引導程序;3、主引導程序位于存儲介質(zhì)的最開始的 512 字節(jié)處;4、主引導程序負責后續(xù)的初始化,并加載運行操作系統(tǒng)內(nèi)核。
當前名稱:操作系統(tǒng)之起源(一)
分享地址:http://aaarwkj.com/article24/jejece.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、品牌網(wǎng)站設計、微信小程序、電子商務、做網(wǎng)站、網(wǎng)站策劃
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)