一個操作系統必須和作為它的基礎的硬件系統緊密配合。操作系統需要使用一些只有硬件才能提供的功能。為了完整的了解 linux ,你需要了解底層硬件的基礎知識。本章對于現代 PC 的硬件進行了。
1975 年 1 月“ Popular Electronics ”雜志封面上印出了 Altair 8080 的圖片,一場革命開始了。 Altair 8080 ,跟隨早期的“ Star Trek epsode ”命名,只需要 $397 ,就可由個人電子愛好者自己組裝。它擁有 Intel 8080 處理器和 256 字節內存,但是沒有屏幕和鍵盤。以今天的標準來衡量,它太簡陋了。它的發明者, Ed Roberts ,制造了名詞“ personal computer “來命名他的發明,但現在, PC 這個名詞已經用來命名幾乎所有你可以不依靠幫助就可以自己運行起來的計算機。用這個定義,甚至一些十分強大的 Alpha AXP 系統也是 PC 。
愛好者們看到了 Altair 的潛力,開始為它寫軟件,制造硬件。對于這些早期的先驅來講,它代表著自由:從被神職人員控制和運行的大型批處理的主機系統中逃脫出來的自由。你可以在自己家里甚至廚桌上擁有計算機,這使學院的退學生為此著迷并通宵達旦。與此同時出現大量硬件,在一定程度上各自不同,而軟件專家則樂于為這些新機器撰寫軟件。有諷刺意味的是, IBM 在 1981 年發布了 IBM PC 并于 1982 年早期供貨,從此定義了現代 PC 的模型。它擁有 Intel 8088 處理器, 64K 內存(可以擴充到 256K ),兩個軟驅和一個 80x25 的彩色圖卡 (CGA) ,用今天的標準衡量,它功能不算很強,但是它銷售的不錯。 1983 年,緊接著推出的 IBM PC-XT ,則擁有一個豪華的 10M 硬盤。不久大批公司如 Compaq 開始制造 IBM PC 的復制品, PC 的結構成為了事實的標準。這個事實的標準使大批硬件公司可以在這個不斷增長的市場上一起競爭,反過來,可以遏制價格,讓用戶滿足。現代 PC 承襲了早期 PC 的許多系統體系特征。甚至基于最強大的 Intel Pentium PRo 的系統也可以運行 Intel 8086 的尋址模式。當 Linus Torvalds 開始開發后來的 Linux 時,他選擇了當時最常見和價格最合理的硬件平臺:一臺 Intel 80386 PC 。
從 PC 的外面看,最明顯的部件就是機箱、鍵盤、鼠標和顯示器。在機箱的前面有一些按鈕,一個小屏幕顯示一些數字,還有一個軟驅。現在的大多數系統還有一個 CD-ROM 期、驅動器。假如你需要保護你的數據,那么還會有一個備份用的磁帶機。這些設備一律被看作外設。
雖然 CPU 治理整個系統,但它并不是唯一的智能設備。所有的外設控制器,例如 IDE 控制器,也都擁有一定程度的智能。在 PC 內部(圖 1.1 ),你可以看到一個主板,包括 CPU 或微處理器、內存和一些 ISA 或 PCI 外設控制卡的槽位。其中一些控制器,如 IDE 磁盤控制器可能內置在系統主板上。
CPU
CPU,或者說微處理器,是所有計算機系統的心臟。微處理器進行數學運算,邏輯操作并從內存中讀取指令并執行指令,進而控制數據流向。計算機發展的早期,微處理器的各種功能模塊是由相互分離(并且尺寸上十分巨大)的單元構成。這也是名詞“中心處理單元”的起源。現代的微處理器將這些功能模塊集中在一塊非常小的硅晶片制造的集成電路上。在本書,名詞 CPU 、微處理器和處理器交替使用。
處理器必須能夠存取用于臨時存儲數據的大容量的外部讀寫隨機存取內存( RAM )。堆棧是一種用于在外部內存中存放和恢復臨時數據的方法。通常,處理器提供了非凡的指令用于將數據壓在堆棧中,并在以后需要是取出來。堆棧使用 LIFO (后進先出)的方式。換句話說,假如你壓入兩個值 x 和 y 到堆棧中,然后從堆棧中彈出一個值,那么你會得到 y 的值。
一些處理器的堆棧向內存頂部增長,而另一些向內存的底部增長。還有一些處理器兩種方式都可以支持,例如: ARM 。
Processor Status ( PS )
指令可能產生結果。例如:“ X 寄存器的內容是否大于 Y 寄存器的內容?“可能產生真或假的結果。 PS 寄存器保留這些結果以及處理器當前狀態的其他信息。多數處理器至少有兩種模式: kernel (核心態)和 user (用戶態), PS 寄存器會紀錄能夠確定當前模式的那些信息。
系統板的各個組成部分由被稱為總線的連接系統互連在一起。系統總線分為三種邏輯功能:地址總線、數據總線和控制總線。地址總線指定了數據傳輸的內存位置(地址),數據總線保存了傳輸的數據。數據總線是雙向的,它答應 CPU 讀取,也答應 CPU 寫。控制總線包含了各種信號線用于在系統中發送時鐘和控制信號。有許多種不同的總線類型, ISA 和 PCI 總線是系統用于連接外設的常用方式。
Controllers and Peripherals (控制器和外設) 外設指實在的設備,如由系統板或系統板插卡上的控制芯片所控制的圖形卡或磁盤。 IDE 控制芯片控制 IDE 磁盤,而 SCSI 控制芯片控制 SCSI 磁盤。這些控制器通過不同的總線連接到 CPU 并相互連接。現在制造的大多數系統都是用 PCI 或 ISA 總線將系統的主要部件連接在一起。控制器本身也是象 CPU 一樣的處理器,它們可以看作 CPU 的智能助手, CPU 擁有系統的最高控制權。
所有的控制器都是不同的,但是通常它們都有用于控制它們的寄存器。 CPU 上運行的軟件必須能夠讀寫這些控制寄存器。一個寄存器可能包含描述錯誤的狀態碼,另一個寄存器可能用于控制用途,改變