計算機的啟動過程

2021-07-10 11:13:27 字數 2186 閱讀 4512

每天都用計算機,可從來不知道計算機是怎樣完成啟動的。今天在鳥哥那本書上看到了一些介紹,網上查了一些資料,迫不及待想和大家分享一下計算機複雜的啟動過程.

1.bois是乙個寫入到主機板上的韌體,韌體就是寫入到硬碟上的乙個軟體程式,這一段程式被寫入rom(唯讀記憶體)晶元裡,bois程式執行後,會首先檢查計算機硬體是否滿足執行條件,這被成為"硬體自檢",英文名post;如果硬體出現問題,主機板會發出蜂鳴.啟動終止,否則,會在螢幕上顯示cpu,記憶體,硬碟等資訊.

2.硬體自檢完成後,bois把控制權交給下一階段的啟動程式, 但是,bois是怎樣知道,"下一階段的啟動程式"放在什麼地方呢,也就是說,bios需要乙個外部儲存裝置的排序,排在前面的裝置就是優先轉交控制權的裝置,這種排序叫做啟動順序.(啟動順序在bois裡面設定,不過,建立不要去改變);

1.bois按照「啟動順序」,把控制權轉交給排在第一位的儲存裝置-硬碟;

這時,計算機讀取到該裝置的第乙個扇區,也就是讀到最前面的512個位元組,這512個位元組的最後兩個位元組是ox55和oxaa,表明這個裝置可以啟動.最前面的這512個位元組被叫做「主引導記錄」(mbr);

2.主引導記錄的結構

「主引導記錄」只有512個位元組,它的主要作用就是告訴計算機去硬碟的哪個位置去找作業系統;

主引導記錄由三個部分組成:

(1)第1-446位元組:呼叫作業系統的機器碼;

(2)第447-510位元組:分割槽表(總共64位,將硬碟分為四個分割槽)

(3)第511-512位元組:主引導記錄簽名(0x55和0xaa)

3.分割槽表:

硬碟分割槽有和很多好處,考率到每個區可以安裝不同的作業系統,主引導記錄必須知道將控制權交給哪個區.

分割槽表長度為64個位元組,裡面又分成四項,每箱16個位元組.乙個硬碟最多只能分4個主分割槽,如果要分擴充套件分割槽,只能分1個.每個主分割槽的16個位元組,由6個部分組成:

(1)第乙個位元組:如果為0x80,就表示該分割槽是活動分割槽,控制權交給這個分割槽,4個主分割槽裡只能有乙個是活動分割槽.

(2)第2-4個位元組:主分割槽第乙個扇區的物理位置(柱面。磁頭。扇區號等)

(3)第5個位元組:主分割槽型別。

(4)第6-8:主分割槽最後乙個扇形的物理位置.

(5)第9-12位元組:該主分割槽的第乙個扇區的邏輯位址.

(6)第13-16 位元組:主分割槽的扇形總數.

最後的四個位元組("主分割槽的扇區總數"),決定了這個主分割槽的長度。也就是說,乙個主分割槽的扇區總數最多不超過2的32次方。

如果每個扇區為512個位元組,就意味著單個分割槽最大不超過2tb,再考慮到扇區的邏輯位址也是32位,所以單個硬碟可利用的空間最大也不超過2tb,如果想使用更大的硬碟,只有2個方法:一是提高每個扇區的位元組數,二是增加扇形總數.

此時,計算機的控制權交給了硬碟的某個分割槽了,這裡又有三種情況

(1)卷引導記錄

上面提到過,在四個主分割槽裡, 只能有乙個是活動分割槽.計算機會讀取活動分割槽的第乙個扇形---卷引導記錄.(vbr)

"卷引導記錄"的主要作用是,告訴計算機,作業系統在這個分割槽裡的位置。然後,計算機就會載入作業系統了。

(2)擴充套件分割槽和邏輯分割槽

隨著硬碟越來越大,四個主分割槽已經不夠了,需要更多的分割槽。但是,分割槽表只有四項,因此規定有且僅有乙個區可以被定義成"擴充套件分割槽"

所謂"擴充套件分割槽",就是指這個區裡面又分成多個區。這種分割槽裡面的分割槽,就叫做"邏輯分割槽"

計算機先讀取擴充套件分割槽的第乙個扇區,叫做" 擴充套件引導記錄(ebr)"它裡面也包含一張64位元組的分割槽表,但是最多只有兩項(也就是兩個邏輯分割槽)。

計算機接著讀取第二個邏輯分割槽的第乙個扇區,再從裡面的分割槽表中找到第三個邏輯分割槽的位置,以此類推,直到某個邏輯分割槽的分割槽表只包含它自身為止(即只有乙個分割槽項)。因此,擴充套件分割槽可以包含無數個邏輯分割槽。

但是,似乎很少通過這種方式啟動作業系統。

(3)啟動管理器:

在這種情況下,計算機讀取"主引導記錄"前面446位元組的機器碼之後,不再把控制權轉交給某乙個分割槽,而是執行事先安裝的,linux下最流行啟動管理器是grub。

四.第四階段:作業系統

控制權轉交給作業系統後,作業系統的核心首先被載入記憶體。

先載入/boot目錄下面的kernel。核心載入成功後,第乙個執行的程式是/sbin/init,根據init的配置檔案,啟動計算機的祖先程序init,其pid為1,這是計算機啟動後的第乙個程序,其它程序都是init程序的後代。

然後init程序載入系統的各個模組,直到載入到/bin/login, 出現登入介面.至此,計算機的啟動就完成了。

計算機啟動過程

計算機按下開機按鍵到啟動到作業系統的過程中,計算機到底經歷了哪些步驟呢 1 按下power bottom之後,計算機會經過一系列的上電過程 power squence 最後然讓cpu reset.cpu reset 表示主機板電已經上好了並且cpu開始工作 2 cpu開始工作時候緊接著就通過sb或者...

計算機啟動過程

從開啟電源到開始操作,計算機的啟動是乙個非常複雜的過程。我一直搞不清楚,這個過程到底是怎麼回事,只看見螢幕快速滾動各種提示.這幾天,我查了一些資料,試圖搞懂它。下面就是我整理的筆記。零 boot的含義 先問乙個問題,啟動 用英語怎麼說?回答是boot。可是,boot原來的意思是靴子,啟動 與靴子有什...

計算機啟動過程

對intel8086加電或復位的時候,cs 0xffff,ip 0x0000,處理機執行指令的時候是從低位址到高位址,這個位址距離記憶體頂部0xfffff,只差16個位元組,要是ip值超過0x000f,它與cs形成的實體地址就會因為溢位,而變回0x0001 所以在這個位址 cs 0xffff,ip ...