1 - BIOS是個什麼東東?

       

 如果想編寫操作系統,那麼就一定要先了解操作系統工作的目標對象——計算機,如果想了解計算機究竟是如何工作的,那麼BIOS一定我們要了解的一個神器!

        你是否有過好奇,爲什麼我們一按下電源鍵,計算機就開始運行起來了,關閉的電腦就像睡着的人一樣,人一睡醒就可以進行正常的活動,但人是有血有肉有靈魂的,我們覺得這一切很正常,其實andrew也很好奇,人體也是由物質組成的,爲什麼由物質組成的人能夠強大到進行各種活動和思考,但這個好奇也許還將是個千古之謎,那麼計算機呢?爲什麼一個電源鍵就可以使計算機工作起來,這中間經歷了什麼?你有沒有好奇過,爲什麼安裝操作系統的時候,計算機沒有像正常情況下從硬盤啓動,而是從光驅啓動?嘿嘿,如果你能夠和我一起堅持下去關注focus,即使你是計算機的門外漢,至少你自己裝系統應該問題不大了,要知道,去電腦維修的地方裝個系統都至少要30個大洋,好黑哦。。。筆者研一的時候寫過操作系統的啓動代碼,因此對計算機啓動有稍稍的瞭解,以前電腦無法開機的時候多半會認爲是顯卡或者內存條沒有插好或者插槽處進灰了,但有一次,筆者的筆記本無法開機了,你看看你的電腦開機時是不是也會打印出很多英文,然後纔會顯示windows的圖標,我就觀察我計算機啓動時的信息,如果是顯卡或者內存有問題的話,都是要打印部分系統信息,但我當時就盯着屏幕看,一條信息都沒有,這個我心裏就有數了,BIOS出問題了,因爲BIOS是系統啓動時最先運行的代碼,與顯卡和內存無關,連BIOS都沒有吐槽,一定是他歇菜了,但筆者自己修不了,但至少拿到維修處不會被宰噻。。。

        說了好多廢話,口都渴了,哼!哼!哼!清下嗓子,讓我把BIOS的衣服扒開,讓大家看看BIOS究竟是何等神氣的神器哈。

        在計算機系統中,BIOS是 "BasicInput Output System"的縮略語,即基本輸入輸出系統,他是一個程序集合,存儲在BIOS芯片上,BIOS芯片其實就是ROM(只讀存儲器),只讀存儲器就是隻能夠讀取不能夠改寫內容的存儲器,現在的主板多使用EEPROM(Electrically Erasable Programmable ROM,電可擦除可編程ROM),所以如果你電腦上的BIOS如果有問題,可以重新刷BIOS。這些都是計算機主板廠商生產時固化在主板上的,一般組裝電腦也很少關注BIOS,而且在主板上也只有BIOS芯片會有標籤,芯片上印有“BIOS”字樣,牛X吧,CPU都沒有這樣的待遇。在我們安裝操作系統時候會用到BIOS,進入BIOS可以設置計算機的啓動設備,正常情況下我們的計算機是從硬盤啓動的,你應該能夠看到你的windows下有個C盤吧,就是從這個盤啓動的,因爲你的windows系統程序就在這個盤裏,如果你是用光驅安裝操作系統,那麼你就要設置從光驅啓動,如果你的操作系統程序存放在u盤,那麼就要設置從u盤啓動,其實也不用每次都設置,BIOS會按照你設定的順序,依次搜索可以用於啓動的設備,如果找到第一個可以啓動的設備,就從這個設備中啓動。其他的時候,普通用戶可能根本就不知道我們的計算機上還有這玩意兒,別看這玩意小,但沒有這玩意,縱是你是孫悟空你也沒法子讓你的電腦跑起來。

        接下來的內容可能就需要一些專業知識了。

        在計算機上電的一瞬間,整個計算機是毫無用處的,各個硬件的狀態都是混亂的,內存中殘留着無效的數據,操作系統還沒有被加載到內存中。計算機上電後,一個特殊的硬件電路在CPU的一個引腳上產生了一個reset信號,該信號使CPU復位,各個寄存器設爲默認的初始值,並開始執行地址爲0xffff0處的指令,實際上該地址就BIOS ROM的地址。

        BIOS包括了一些中斷驅動的低級過程,所有操作系統在啓動的過程中,都需要通過這些過程來對計算機的硬件進行初始化。

        BIOS的工作開始於上電自檢(POST)。首先對計算機硬件進行一系列的測試,檢測計算機硬件資源中都有哪些設備以及各個設備的狀態如何。隨後初始化必要的硬件設備,此階段可以保證所有的硬件設備操作不會引起IRQ線與I/O端口的衝突。完成了硬件初始化工作以後,BIOS會搜索系統中可啓動的存儲設備的第一個扇區,通過驗證該扇區最後兩個字節是否爲0xaa55,來判斷該扇區是否爲有效的啓動扇區,如果是則將啓動扇區的代碼加載到內存0x07c00處,並跳轉到該處執行,如果不是啓動扇區,則繼續搜索其他存儲分區或設備。

        在這裏,主要是瞭解一下,計算機睡醒後,睜開眼後完成的第一件事,如果不是很理解,也沒有問題,只需要知道計算機接通電源後,第一條執行的指令是從BIOS開始的就夠了,至於BIOS的低級中斷的使用和啓動的具體細節,在具體編寫代碼時,會更細緻的進行介紹。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章