国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

Linux Kernel核心中文手冊(1)

2024-07-21 02:37:00
字體:
來源:轉載
供稿:網友

  Hardware Basic( 硬件基礎知識 )
  
  一個操作系統必須和作為它的基礎的硬件系統緊密配合。操作系統需要使用一些只有硬件才能提供的功能。為了完整的了解 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 、微處理器和處理器交替使用。
  
  微處理器處理二進制數據:這些數據由 1 和 0 組成。這些 1 和 0 對應電氣開關的開或關。就似乎 42 代表 4 個 10 和 2 個單元,二進制數字由一系列代表 2 的冪數的數字組成。這里,冪數意味著一個數字用自身相乘的次數。 10 的一次冪是 10 , 10 的 2 次冪是 10x10 , 10 的 3 次冪是 10x10x10 ,依此類推。二進制 0001 是十進制 1 ,二進制數 0010 是十進制 2 ,二進制 0011 是十進制 3 ,二進制 0100 是十進制 4 ,等等。所以,十進制 42 是二進制 101010 或者( 2+8+32 或 21+23+25 )。在計算機程序除了使用二進制表示數字之外,另一種基數, 16 進制,也經常用到。在這種進制中,每一位數字表示 16 的冪數。因為十進制數字只是從 0 到 9 ,在十六進制中 10 到 15 分別用字母 A , B , C , D , E , F 表示。例如,十六進制的 E 是十進制的 14 ,而十六進制的 2A 是十進制的 42 ( 2 個 16+10 )。用 C 語言的表示法(本書一直使用),十六進制數字使用前綴“ 0x ”:十六進制的 2A 寫做 0x2A 。
  Linux Kernel核心中文手冊(1)
  微處理器可以執行算術運算如加、乘和除,也可以執行邏輯操作例如“ X 是否大于 Y ”。
  
  處理器的執行由外部時鐘控制。
這個時鐘,即系統時鐘,對處理器產生穩定的時鐘脈沖,在每一個時鐘脈沖里,處理器執行一些工作。例如,處理器可以在每一個時鐘脈沖里執行一條指令。處理器的速度用系統時鐘的頻率來描述。一個 100Mhz 的處理器每秒鐘接受到 100 , 000 , 000 次時鐘脈沖。用時鐘頻率來描述 CPU 的能力是一種誤解,因為不同的處理器在每一次時鐘脈沖中執行的工作量不同。雖然如此,假如所有的條件同等,越快的時鐘頻率表示處理器的能力越強。處理器執行的指令非常簡單,例如:“把內存位置 X 的內容讀到寄存器 Y 中“。寄存器是微處理器的內部存儲空間,用來存儲數據并進行操作。執行的操作可能使處理器停止當前操作而轉去執行內存中其他地方的指令。正是這些微小的指令集合在一起,賦予現代的微處理器幾乎無限的能力,因為它每秒可以執行數百萬甚至數十億的指令。
  
  執行指令時必須從內存中提取指令,指令自身也可能引用內存中的數據,這些數據也必須提取到內存中并在需要的時候保存到內存中去。
  
  一個微處理器內部寄存器的大小、數量和類型完全決定于它的類型。一個 Intel 80486 處理器和一個 Alpha AXP 處理器的寄存器組完全不同。另外, Intel 是 32 位寬而 Alpha AXP 是 64 位寬。但是,一般來講,所有特定的處理器都會有一些通用目的的寄存器和少量專用的寄存器。大多數處理器擁有以下非凡用途的專用的寄存器:
  
  Program Counter ( PC )程序計數器
  
  這個寄存器記錄了下一條要執行的指令的地址。 PC 的內容在每次取指令的時候自動增加。
  
  Stack Pointer ( SP )堆棧指針
  
  處理器必須能夠存取用于臨時存儲數據的大容量的外部讀寫隨機存取內存( RAM )。堆棧是一種用于在外部內存中存放和恢復臨時數據的方法。通常,處理器提供了非凡的指令用于將數據壓在堆棧中,并在以后需要是取出來。堆棧使用 LIFO (后進先出)的方式。換句話說,假如你壓入兩個值 x 和 y 到堆棧中,然后從堆棧中彈出一個值,那么你會得到 y 的值。
  
  一些處理器的堆棧向內存頂部增長,而另一些向內存的底部增長。還有一些處理器兩種方式都可以支持,例如: ARM 。
  
  Processor Status ( PS )
  
  指令可能產生結果。例如:“ X 寄存器的內容是否大于 Y 寄存器的內容?“可能產生真或假的結果。 PS 寄存器保留這些結果以及處理器當前狀態的其他信息。多數處理器至少有兩種模式: kernel (核心態)和 user (用戶態), PS 寄存器會紀錄能夠確定當前模式的那些信息。
  
  Memory( 內存 )
  所有系統都具有分級的內存結構,由位于不同級別的速度和容量不同的內存組成。
  
  最快的內存是高速緩存存儲器,就象它的名字暗示的一樣 - 用于臨時存放或緩存主內存的內容。這種內存非常快但是比較昂貴,因此多數處理器芯片上內置有少量的高速緩沖存儲器,而大多數高速緩存存儲器放在系統主板上。一些處理器用一塊緩存內存同時緩存指令和數據,而另一些處理器有兩塊緩存內存 - 一個用于指令,另一個用于數據。 Alpha AXP 處理器有兩個內置的內存高速緩存存儲器:一個用于數據( D-Cache ),另一個用于指令( I-Cache )。它的外部高速緩沖存儲器(或 B-Cache )將兩者混在一起。
  
  最后一種內存是主內存。相對于外部高速緩存存儲器而言速度非常慢,對于 CPU 內置的高速緩存存儲器,主內存簡直是在爬。
  
  高速緩存存儲器和主內存必須保持同步(一致)。換句話說,假如主內存中的一個字保存在高速緩存存儲器的一個或多個位置,那么系統必須保證高速緩存存儲器和主內存的內容一樣。使高速緩沖存儲器同步的工作一部分是由硬件完成,另一部分則是由操作系統完成的。對于其它一些系統的主要任務,硬件和軟件也必須緊密配合。
  
  
  Buses (總線)
  
  系統板的各個組成部分由被稱為總線的連接系統互連在一起。系統總線分為三種邏輯功能:地址總線、數據總線和控制總線。地址總線指定了數據傳輸的內存位置(地址),數據總線保存了傳輸的數據。數據總線是雙向的,它答應 CPU 讀取,也答應 CPU 寫。控制總線包含了各種信號線用于在系統中發送時鐘和控制信號。有許多種不同的總線類型, ISA 和 PCI 總線是系統用于連接外設的常用方式。
  
  
  Controllers and Peripherals (控制器和外設)
  外設指實在的設備,如由系統板或系統板插卡上的控制芯片所控制的圖形卡或磁盤。 IDE 控制芯片控制 IDE 磁盤,而 SCSI 控制芯片控制 SCSI 磁盤。這些控制器通過不同的總線連接到 CPU 并相互連接。現在制造的大多數系統都是用 PCI 或 ISA 總線將系統的主要部件連接在一起。控制器本身也是象 CPU 一樣的處理器,它們可以看作 CPU 的智能助手, CPU 擁有系統的最高控制權。
  
  所有的控制器都是不同的,但是通常它們都有用于控制它們的寄存器。 CPU 上運行的軟件必須能夠讀寫這些控制寄存器。一個寄存器可能包含描述錯誤的狀態碼,另一個寄存器可能用于控制用途,改變

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平度市| 车险| 且末县| 佛教| 巴林左旗| 四子王旗| 乐昌市| 苍南县| 宜春市| 遂平县| 金阳县| 安乡县| 乐平市| 澜沧| 信宜市| 调兵山市| 兴仁县| 四平市| 昌乐县| 广南县| 高清| 章丘市| 石门县| 石首市| 天柱县| 扎囊县| 怀化市| 汤阴县| 滨海县| 葫芦岛市| 东宁县| 大名县| 潼关县| 德兴市| 兴和县| 惠来县| 荣成市| 含山县| 鄂托克旗| 唐山市| 桑日县|