回覆列表
  • 1 # 香約2019吧

    , 作業系統是計算機管理的主體, 避免了應用程式直接和硬體打交道帶來的危險(例如xp以前的系統,往往一個應用出錯會殃及整個計算機,甚至有可能損壞硬體) 同時提供了多工,多使用者的管理模式.對系統的硬體資源,如磁碟,記憶體,CPU時間,網路, 都進行了管理.對計算機本身而言, 作業系統也是一套巨大的程式, 而計算機本身只是執行程式的裝置. 單獨執行一段彙編程式碼,也是可以的, 而且作業系統也正是這樣的, 下面就簡要談談計算機啟動後發生的事情, 那麼對於這個問題, 各位看官也應該就心中有數了.作業系統發展是有個過程, 為了不斷相容之前的裝置, 往往形成一系列具有相容性,又存在特殊性的CPU.桌面電腦最常用的CPU架構當然是兩套: x86 和 x86_64. 這是Intel規範下的系統CPU架構, 分別是32位和64位. 但這個系列的起源卻是著名的8086 CPU, 一款16位CPU. 系列CPU具有向前相容性, 即使是最新的x86_64, 也是擁有執行16位程式的能力的, 只需要你安裝好16位DOS系統即可. 而作業系統則往往提高針對不同CPU能夠適用的版本.當然手機用的arm架構CPU則對x86系列CPU指令集不相容. 這種跨CPU體系的模式是不支援的.計算機上電後首先進行自檢,無誤後x86系列CPU會進入16位模式, 去尋找主引導記錄中的磁碟引導區, 其實就是磁碟的首個扇區512個位元組, 這段16位彙編程式就可以實現讀取引導記錄, 索引到對應啟動盤的功能.當然我們也可以修改他,用來娛樂- -! 開始執行的地址在0x7C00處, 不要問我為什麼是這個數字. 最後還要用0xAA55結束, 表示這個扇區可引導, 否則BIOS就去掃描下一個儲存裝置的引導區了.

    這段寫入引導區的彙編程式碼起始可以做任何破壞性的工作;-), 因為他執行在16位實地址模式, 可以直接訪問任意硬體, 而我們32位或64位作業系統都是執行在保護態模式, 記憶體地址其實都是經過轉換的虛擬地址.如何你想顯示些資料, 那麼需要使用BIOS中斷進行輸出, 或者直接操作實地址模式下的顯示卡地址: 0xB8000如果你想使用更多的記憶體, 要進入32位保護態模式, 那麼要啟用MMU進行地址對映, 這也是記憶體分頁和虛擬記憶體實現的基本原理. 64位系統更麻煩, 進入32位後還要再進入64位長模式. 總結一下, 沒裝作業系統的計算機就像一張白紙, 記憶體一卷大紙帶, 硬碟一卷大紙帶, CPU就知道傻傻地讀指令, 讀寫資料, 顯示卡等於一片記憶體. 作業系統和驅動程式提供了對所有現代計算機軟體所必須的抽象服務.

  • 中秋節和大豐收的關聯?
  • 皇馬賣了C羅之後還未引進接班人,開始中意的內馬爾和姆巴佩為什麼不願意去皇馬了?