計算機硬件知識
python是編程語言,即python是語言
語言有英語、法語、葡萄牙語等,但凡是語言,都是用來溝通的介質。
程序員編程的本質就是讓計算機去工作,而編程語言就是程序員與計算機溝通的介質
程序員要想讓計算機工作,必須知道計算機能幹什麽,怎麽幹的,這也就是我們必須學習計算機基礎的原因
然而光有編程語言和硬件也並不能滿足大家的編程需求,為什麽這麽說呢?
程序用編程語言寫程序,最終開發出的結果就是一個軟件,既然是軟件,那就與騰訊qq、暴風影音、快播等軟件沒有區別了。這些軟件必須運行在操作 系統之上,你肯定會問:為何要有操作系統呢?沒錯,遠古時代的程序員確實是在沒有操作系統的環境下,用編程語言之間操作硬件來編程的,你可能覺得這沒有問 題,但其實問題是相當嚴重的,因為此時你必須掌握如何操作硬件的所有具體細節,比如如何具體操作硬盤(現在你得把硬盤拆開,然後你能看見的所有的東西,你 都得研究明白,因為你編程時要用到它),這就嚴重影響了開發的效率,操作系統的出現就是運行於硬件之上,來控制硬件的,我們開發時,只需要調用操作系統為 我們提供的簡單而優雅的接口就可以了
所以一套完整的計算機系統分為:計算機硬件,操作系統,軟件(程序員開發的就是軟件),如下圖。因而我們的python編程之路分為計算機硬件基礎,操作系統基礎,和python編程三部分,就讓我們先從計算機硬件學起吧
二 本節目標
- 了解計算機各組件及工作原理
- 了解計算機啟動流程
三 計算機硬件發展史
http://www.cnblogs.com/xuyaping/p/7667508.html
四:計算機硬件介紹
從概念上講,一臺簡單的個人計算機可以抽象為類似下圖的模型,CPU、內存以及I/O設備都由一條系統總線(bus)連接起來並通過總線與其他設備通信
現代計算機的結構更復雜,包括多重總線
理解各部分功能的一個簡單的方法是,把計算機各部分組件往人的身上套,比如
cpu是人的大腦,負責運算
內存是人的記憶,負責臨時存儲
硬盤是人的筆記本,負責永久存儲
輸入設備是耳朵或眼睛,負責接收外部的信息傳給cpu
輸出設備是你的表情,負責經過處理後輸出的結果
以上所有的設備都通過總線連接,總線相當於人的神經
上課開始,老師講課,學生聽課,老師是程序員,學生是計算機,學生的器官都是計算機各部分組成
1.老師通過學生的眼睛和耳朵將自己的知識/指令傳給學生(輸入)
2.學生在接收知識/指令後,通過自己的神經,將其放入自己的內存/短期記憶(總線、內存)
3.學生的大腦/cpu從短期記憶裏取出知識/指令,分析知識/指令,然後學習知識/執行指令 (cpu取指、分析、執行)
4.學生的表情會直接反映出自己是否聽懂,這就是輸出,老師瞅一眼就知道學生有沒有學會(輸出)
5.學生想要永久將知識保存下來,只能拿出一個筆記本,把剛剛學會的知識都寫到本子上,這個本子就是硬盤(磁盤)
4.1 處理器
計算機的大腦就是CPU,它從內存中取指令->解碼->執行,然後再取指->解碼->執行下一條指令,周而復始,直至整個程序被執行完成。
每個cpu都有一套可執行的專門指令集,任何軟件的執行最終都要轉化成cpu的指令去執行。所以Pentium(英特爾第五代x86架構的微處理 器)不能執行SPARC(另外一種處理器)的程序。這就好比不同的人腦,對於大多數人類來說,人腦的結構一樣,所以別人會的東西你也都可以會,但對於愛因 斯坦的腦子來說,它會的你肯定不會。
因訪問內存以得到指令或數據的時間比cpu執行指令花費的時間要長得多,所以,所有CPU內部都有一些用來保存關鍵變量和臨時數據的寄存器,這樣通常在cpu的指令集中專門提供一些指令,用來將一個字(可以理解為數據)從內存調入寄存器,以及將一個字從寄存器存入內存。cpu其他的指令集可以把來自寄存器、內存的操作數據組合,或者用兩者產生一個結果,比如將兩個字相加並把結果存在寄存器或內存中。
寄存器的分類:
1.除了用來保存變量和臨時結果的通用寄存器外
2.多數計算機還有一些對程序員課件的專門寄存器,其中之一便是程序計數器,它保存了將要取出的下一條指令的內存地址。在指令取出後,程序計算器就被更新以便執行後期的指令
3.另外一個寄存器便是堆棧指針,它指向內存中當前棧的頂端。該棧包含已經進入但是還沒有退出的每個過程中的一個框架。在一個過程的堆棧框架中保存了有關的輸入參數、局部變量以及那些沒有保存在寄存器中的臨時變量
4.最後 一個非常重要的寄存器就是程序狀態字寄存器(Program Status Word,PSW),這個寄存器包含了條碼位(由比較指令設置)、CPU優先級、模式(用戶態或內核態),以及各種其他控制位。用戶通常讀入整個PSW,但是只對其中少量的字段寫入。在系統調用和I/O中,PSW非常非常非常非常非常非常重要
寄存器的維護:
操作系統必須知曉所有的寄存器。在時間多路復用的CPU中,操作系統會經常中止正在運行的某個程序並啟動(或再次啟動)另一個程序。每次停止一個運行著的程序時,操作系統必須保存所有的寄存器,這樣在稍後該程序被再次運行時,可以把這些寄存器重新裝入。
處理器設計的演變
1.最開始取值、解碼、執行這三個過程是同時進行的,這意味著任何一個過程完成都需要等待其余兩個過程執行完畢,時間浪費
2.後來被設計成了流水線式的設計,即執行指令n時,可以對指令n+1解碼,並且可以讀取指令n+2,完全是一套流水線。
3.超變量cpu,比流水線更加先進,有多個執行單元,可以同時負責不同的事情,比如看片的同時,聽歌,打遊戲。
兩個或更多的指令被同時取出、解碼並裝入一個保持緩沖區中,直至它們都執行完畢。只有有一個執行單元空閑,就檢查保持緩沖區是否還有可處理的指令
這種設計存在一種缺陷,即程序的指令經常不按照順序執行,在多數情況下,硬件負責保證這種運算結果與順序執行的指令時的結果相同。
內核態與用戶態
除了在嵌入式系統中的非常簡答的CPU之外,多數CPU都有兩種模式,即內核態與用戶態。
通常,PSW中有一個二進制位控制這兩種模式。
內核態:當cpu在內核態運行時,cpu可以執行指令集中所有的指令,很明顯,所有的指令中包含了使用硬件的所有功能,(操作系統在內核態下運行,從而可以訪問整個硬件)
用戶態: 用戶程序在用戶態下運行,僅僅只能執行cpu整個指令集的一個子集,該子集中不包含操作硬件功能的部分,因此,一般情況下,在用戶態中有關I/O和內存保 護(操作系統占用的內存是受保護的,不能被別的程序占用),當然,在用戶態下,將PSW中的模式設置成內核態也是禁止的。
內核態與用戶態切換
用戶態下工作的軟件不能操作硬件,但是我們的軟件比如暴風影音,一定會有操作硬件的需求,比如從磁盤上讀一個電影文件,那就必須經歷從用戶態切換到內核態的過程,為此,用戶程序必須使用系統調用(system call),系統調用陷入內核並調用操作系統,TRAP指令把用戶態切換成內核態,並啟用操作系統從而獲得服務。
請把的系統調用看成一個特別的的過程調用指令就可以了,該指令具有從用戶態切換到內核態的特別能力。
異常處理
需要強調的是,計算機使用TRAP來執行系統調用,多數的TRAP是由硬件引起的,用於警告有異常情況發生,如試圖1/0等操作。在所有的情況 下,操作系統都得到控制權並決定如何處理異常情況,有時,由於出錯的原因,程序不得不停止。在其他的情況下可以忽略出錯,如果程序已經提前宣布它希望處理 某類異常時,那麽控制權還必須返回給程序,讓其處理相關的問題
多線程和多核芯片
moore定律指出,芯片中的晶體管數量每18個月翻一倍,隨著晶體管數量的增多,更強大的功能稱為了可能,如
I.第一步增強:在cpu芯片中加入更大的緩存,一級緩存L1,用和cpu相同的材質制成,cpu訪問它沒有時延
II.第二步增強:一個cpu中的處理邏輯增多,intel公司首次提出,稱為多線程 (multithreading)或超線程(hyperthreading),對用戶來說一個有兩個線程的cpu就相當於兩個cpu,我們後面要學習的進 程和線程的知識就起源於這裏,進程是資源單位而線程才是cpu的執行單位。
多線程運行cpu保持兩個不同的線程狀態,可以在納秒級的時間內來回切換,速度快到你看到的結果是並發的,偽並行的,然而多線程不提供真正的並行處理,一個cpu同一時刻只能處理一個進程(一個進程中至少一個線程)
III.第三步增強:除了多線程,還出現了傲寒2個或者4個完整處理器的cpu芯片,如下圖。要使用這類多核芯片肯定需要有多處理操作系統
4.2 存儲器
計算機中第二重要的就是存儲了,所有人都意淫著存儲:速度快(這樣cpu的等待存儲器的延遲就降低了)+容量大+價錢便宜。然後同時兼備三者是不可能的,所以有了如下的不同的處理方式
存儲器系統采用如上圖的分層結構,頂層的存儲器速度較高,容量較小,與底層的存儲器相比每位的成本較高,其差別往往是十億數量級的
寄存器即L1緩存:
用與cpu相同材質制造,與cpu一樣快,因而cpu訪問它無時延,典型容量是:在32位cpu中為32*32,在64位cpu中為64*64,在兩種情況下容量均<1KB。
高速緩存即L2緩存:
主要由硬件控制高速緩存的存取,內存中有高速緩存行按照0~64字節為行0,64~127為行1。。。最常用的高速緩存行放置在cpu內部或者非常 接近cpu的高速緩存中。當某個程序需要讀一個存儲字時,高速緩存硬件檢查所需要的高速緩存行是否在高速緩存中。如果是,則稱為高速緩存命中,緩存滿足了請求,就不需要通過總線把訪問請求送往主存(內存),這畢竟是慢的。高速緩存的命中通常需要兩個時鐘周期。高速緩存為命中,就必須訪問內存,這需要付出大量的時間代價。由於高速緩存價格昂貴,所以其大小有限,有些機器具有兩級甚至三級高速緩存,每一級高速緩存比前一級慢但是容易大。
緩存在計算機科學的許多領域中起著重要的作用,並不僅僅只是RAM(隨機存取存儲器)的緩存行。只要存在大量的資源可以劃分為小的部分,那麽這 些資源中的某些部分肯定會比其他部分更頻發地得到使用,此時用緩存可以帶來性能上的提升。一個典型的例子就是操作系統一直在使用緩存,比如,多數操作系統 在內存中保留頻繁使用的文件(的一部分),以避免從磁盤中重復地調用這些文件,類似的/root/a/b/c/d/e/f/a.txt的長路徑名轉換成該 文件所在的磁盤地址的結果然後放入緩存,可以避免重復尋找地址,還有一個web頁面的url地址轉換為網絡地址(IP)地址後,這個轉換結果也可以緩存起 來供將來使用。
緩存是一個好方法,在現代cpu中設計了兩個緩存,再看4.1中的兩種cpu設計圖。第一級緩存稱為L1總是在CPU中,通常用來將已經解碼的 指令調入cpu的執行引擎,對那些頻繁使用的數據自,多少芯片還會按照第二L1緩存 。。。另外往往設計有二級緩存L2,用來存放近來經常使用的內存字。L1與L2的差別在於對cpu對L1的訪問無時間延遲,而對L2的訪問則有1-2個時 鐘周期(即1-2ns)的延遲。
內存:
再往下一層是主存,此乃存儲器系統的主力,主存通常稱為隨機訪問存儲RAM,就是我們通常所說的內存,容量一直在不斷攀升,所有不能再高速緩存中找到的,都會到主存中找,主存是易失性存儲,斷電後數據全部消失
除了主存RAM之外,許多計算機已經在使用少量的非易失性隨機訪問存儲如ROM(Read Only Memory,ROM),在電源切斷之後,非易失性存儲的內容並不會丟失,ROM只讀存儲器在工廠中就被編程完畢,然後再也不能修改。ROM速度快且便 宜,在有些計算機中,用於啟動計算機的引導加載模塊就存放在ROM中,另外一些I/O卡也采用ROM處理底層設備的控制。
EEPROM(Electrically Erasable PROM,電可擦除可編程ROM)和閃存(flash memory)也是非易失性的, 但是與ROM相反,他們可以擦除和重寫。不過重寫時花費的時間比寫入RAM要多。在便攜式電子設備中中,閃存通常作為存儲媒介。閃存是數碼相機中的膠卷, 是便攜式音譯播放器的磁盤,還應用於固態硬盤。閃存在速度上介於RAM和磁盤之間,但與磁盤不同的是,閃存擦除的次數過多,就被磨損了。
還有一類存儲器就是CMOS,它是易失性的,許多計算機利用CMOS存儲器來保持當前時間和日期。CMOS存儲器和遞增時間的電路由一小塊電池驅動,所以,即使計算機沒有加電,時間也仍然可以正確地更新,除此之外CMOS還可以保存配置的參數,比如,哪一個是啟動磁盤等,之所以采用CMOS是因為它耗電非常少,一塊工廠原裝電池往往能使用若幹年,但是當電池失效時,相關的配置和時間等都將丟失
4.3 磁盤
磁盤低速的原因是因為它一種機械裝置,在磁盤中有一個或多個金屬盤片,它們以5400,7200或 10800rpm(RPM =revolutions per minute 每分鐘多少轉 )的速度旋轉。從邊緣開始有一個機械臂懸在盤面上,這類似於老式黑膠唱片機上的拾音臂。信息卸載磁盤上的一些列的同心圓上,是一 連串的2進制位(稱為bit位),為了統計方法,8個bit稱為一個字節bytes,1024bytes=1k,1024k=1M,1024M=1G,所 以我們平時所說的磁盤容量最終指的就是磁盤能寫多少個2進制位。
每個磁頭可以讀取一段換新區域,稱為磁道
把一個戈丁手臂位置上所以的磁道合起來,組成一個柱面
每個磁道劃成若幹扇區,扇區典型的值是512字節
數據都存放於一段一段的扇區,即磁道這個圓圈的一小段圓圈,從磁盤讀取一段數據需要經歷尋道時間和延遲時間
平均尋道時間
機械手臂從一個柱面隨機移動到相鄰的柱面的時間成為尋到時間,找到了磁道就以為著招到了數據所在的那個圈圈,但是還不知道數據具體這個圓圈的具體位置
平均延遲時間 機械臂到達正確的磁道之後還必須等待旋轉到數據所在的扇區下,這段時間成為延遲時間 虛擬內存: 許多計算機支持虛擬內存機制,該機 制使計算機可以運行大於物理內存的程序,方法是將正在使用的程序放入內存取執行,而暫時不需要執行的程序放到磁盤的某塊地方,這塊地方成為虛擬內存,在 linux中成為swap,這種機制的核心在於快速地映射內存地址,由cpu中的一個部件負責,成為存儲器管理單元(Memory Management Unit MMU) PS:從一個程序切換到另外一個程序,成為上下文切換(context switch),緩存和MMU的出現提升了系統的性能,尤其是上下文切換4.4 磁帶
在價錢相同的情況下比硬盤擁有更高的存儲容量,雖然速度低於磁盤,但是因其大容量,在地震水災火災時可移動性強等特性,常被用來做備份。(常見於大型數據庫系統中)
4.5 I/O設備
cpu和存儲器並不是操作系統唯一需要管理的資源,I/O設備也是非常重要的一環。
見四中的圖,I/O設備一般包括兩個部分:設備控制器和設備本身。
控制器:是查找主板上的一塊芯片或一組芯片(硬盤,網卡,聲卡等都需要插到一個口上,這個口連的便是控制器),控制器負責控制連接的設備,它從操作系統接收命令,比如讀硬盤數據,然後就對硬盤設備發起讀請求來讀出內容。
控制器的功能:通常情況下對設備的控制是非常復雜和具體的,控制器的任務就是為操作系統屏蔽這些復雜而具體的工作,提供給操作系統一個簡單而清晰的接口
設備本身:有相對簡單的接口且標準的,這樣大家都可以為其編寫驅動程序了。要想調用設備,必須根據該接口編寫復雜而具體的程序,於是有了控制器提供設備驅動接口給操作系統。必須把設備驅動程序安裝到操作系統中。
4.5 總線
四小節中的結構在小型計算機中沿用了多年,並也用在早期的IBM PC中。但是隨著處理器和存儲器速度越來越快,單總線很難處理總線的交通流量了,於是出現了下圖的多總線模式,他們處理I/O設備及cpu到存儲器的速度都更快。
北橋即PCI橋:連接高速設備
南橋即ISA橋:連接慢速設備
4.6 啟動計算機
在計算機的主板上有一個基本的輸入輸出程序(Basic Input Output system)
BIOS就相當於一個小的操作系統,它有底層的I/O軟件,包括讀鍵盤,寫屏幕,進行磁盤I/O,該程序存放於一非易失性閃存RAM中。
啟動流程
1.計算機加電
2.BIOS開始運行,檢測硬件:cpu、內存、硬盤等
3.BIOS讀取CMOS存儲器中的參數,選擇啟動設備
4.從啟動設備上讀取第一個扇區的內容(MBR主引導記錄512字節,前446為引導信息,後64為分區信息,最後兩個為標誌位)
5.根據分區信息讀入bootloader啟動裝載模塊,啟動操作系統
6.然後操作系統詢問BIOS,以獲得配置信息。對於每種設備,系統會檢查其設備驅動程序是否存在,如果沒有,系統則會要求用戶按照設備驅動程序。 一旦有了全部的設備驅動程序,操作系統就將它們調入內核。然後初始有關的表格(如進程表),穿件需要的進程,並在每個終端上啟動登錄程序或GUI
編程語言的作用及與操作系統和硬件的關系:
編程語言是可以和計算機溝通交流的一門語言,類似於中文,英語,日語等等。
不同的是編程語言可以給予計算機命令並使計算機執行相應的操作。
操作系統是計算機程序的一種,用於計算機“裸機”最基本的系統程序。
硬件由運算器、控制器、輸入設備、輸出設備及存儲器組成。
編程語言生成的軟件需在操作系統的基礎上運行,操作系統運行又離不開硬件,想要正常運行計算機並執行命令三者不可或缺。
應用程序-》操作系統-》硬件:
編程語言給予計算機命令並使計算機執行相應的操作。而操作系統就是上述過程中執行的媒介。
編程語言編寫程序開發出軟件,因軟件需在操作系統的基礎上執行,故需將命令傳遞給操作系統。
操作系統需在硬件上進行工作,操作系統將命令傳遞給硬件,以此來完成一次完整行為。
cpu-》內存-》磁盤:
CPU由運算器和控制器組成,相當於大腦,用於分析運算。
內存存儲器是用來保存將要處理,正在處理以及剛剛處理完的信息的臨時保存。
磁盤用於永久保存信息和資源的工具。
CPU接收外部信息並從內存中調用並進行分析運算,內存將正在進行,等待處理,剛剛處理完的的信息臨時保存,以提高運算效率。
而後磁盤將需要永久保存的信息及內容保存到磁盤中。
cpu與寄存器,內核態與用戶態及如何切換:
CPU從內存中調用的數據所花的時間比CPU處理運算數據要常長。故CPU都有寄存器放置關鍵數據和參數,以及剛剛處理過的數據。
寄存器下面四種:
1.通用寄存器:保存關鍵參數和臨時結果。
2.程序計數寄存器:保存從內存中將要取出的下一條指令的內存地址,每取出一份指令計數加一。
3.堆棧指針寄存器:指向內存中存有數據指令當前棧的頂端一個。其指向當前棧的已經進入但沒有退出每個過程中的一個框架。其框架保存了已經輸入的變量及參數,以及未保存到寄存器中的臨時變量。
4.程序狀態字寄存器:包括條碼位(比較指令設置),內核態和用戶態二種模式,CPU優先級以及各種控制位。通常被讀入整個PSW,但僅對少量數據寫入。
內核態:CPU內核態運行時,CPU可以執行指令集中的所有指令,內核態能訪問整個硬件數據及指令,包含了硬件的所有功能。
用戶態:CPU用戶態運行時,不能訪問硬件數據及指令,只能訪問一個子集,不包含硬件的功能。在此狀態下,將用戶態設置為內核態是被禁止的。
內核態和用戶態之間切換:有時候計算機需將用戶態切換到內核態,使用系統調用來處理。系統調用陷入內核和操作系統,TRAP指令將用戶態切換成內核態,並啟用操作系統來獲取服務。從而實現內核態和用戶態之間的切換。
存儲器系列,L1緩存,L2緩存,內存(RAM),EEPROM和閃存,CMOS與BIOS電池:
存儲器系列:寄存器、高速緩存、內存、磁盤、磁帶。從左向右速度越來越慢,容量越來越大,對應的價格比越來越低。
L1緩存:寄存器。與CPU材質相同,放置在CPU內部。故時間上無延遲。容量較低<1kB,32位計算機操作系統內存為32*32,64位計算機操作系統內存為64*64。
L2緩存:高速緩存。通過硬件控制高速緩存的存取,放在CPU內部或者離CPU較近的位置。高速緩存相比寄存器有時間上1~2ns的延遲,通常內存中保留常用的被使用的內容,以提高效率。
內存(RAM):又稱為隨機訪問存儲,即主存。易失性,斷電情況下就會丟失。為存儲系統主力,在高速緩存找不到的文件在內存中均能被找到。
與之相應的是ROM,非易失性,斷電情況下數據也不會丟失。ROM只讀存儲器,在工廠已被編程完成且不能修改。速度快且便宜。可用於計算機啟動加載模塊,另外I/O也被ROM底層設備所控制。
EEPROM和閃存:EEPROM電可擦除可編程ROM,EEPROM和閃存一樣非易失性,具有可擦除和重寫功能。其中閃存相當於存儲媒介,如相機中的膠卷,磁盤,固態硬盤等。
閃存速度介於RAM和磁盤中,相比較磁盤而言,閃存擦除次數過多會使其磨損,導致其功能失效。
CMOS與BIOS電池:CMOS為存儲器的一種,易失性。CMOS存儲器和遞增時間的電路由一小塊電池驅動,可用於存儲時間和日期,保證在斷電情 況下時間和日期能正常顯示。也可存儲配置的參數,如哪一個是啟動磁盤等。其中讀取CMOS配置參數就是通過主板ROM上的程序BIOS。BIOS保存著計 算機最基本的輸入輸出系統,以及計算機開機後的自檢程序和系統自啟動程序。
磁盤結構,平均尋道時間,平均延遲時間,虛擬內存與MMU:
磁盤結構:磁盤為一種機械設置,低速。有一個或者若幹個金屬盤片組成,由轉軸來連接這些金屬盤片。金屬盤片邊緣有類似於機械臂的設置,頭部有磁頭可以讀取信息,轉軸以一定速度旋轉以便磁頭讀取金屬盤片上的信息。
平均尋道時間:數據都存儲在一片片扇形中,磁頭讀取相應的信息需要移動到其所在的扇形區域對應的軌道中,所花的時間即為尋道時間。
平均延遲時間:磁頭移動到相應的軌道後,不一定恰好處於所需數據的扇形區域內,移動到所需數據的扇形區域所花的時間為延遲時間。
虛擬內存:將正在運行的程序放入內存取執行,暫時不需要執行的程序放入磁盤中,這部分磁盤稱為虛擬內存,擴大了內存。
MMU:存儲器管理單元。快速映射內存地址,方便程序之間的切換。MMU和緩存提升了系統的性能。
磁帶:
磁帶:存儲器的一種。容量比較大,價格便宜,速度慢。
設備驅動與控制器:
控制器通過與設備連接,並給予設備命令使其執行命令。中間的媒介為設備驅動,設備驅動是為設備編寫的程序,控制器通過設備驅動來控制設備。
總線與南橋和北橋:
總線連接CPU、內存、輸入輸出設備,形成計算機硬件系統,計算機各功能被實現。隨著存儲器和內存越來越快,總線也從單總線升級到多中線。
南橋與北橋同樣的作用,亦被使用。南橋為ISA橋,連接慢速設備。北橋為PCI橋,連接快速設備。
操作系統的啟動流程:
操作系統的啟動通過BIOS系統,BIOS系統存儲在ROM中一部分區域。電腦通電,BIOS系統啟動,檢測CPU、內存、硬盤等,讀取CMOS中的配置參數,啟動設備。從啟動的設備中讀取扇形內容啟動裝載模塊,而後操作系統被啟動。
應用程序的啟動流程:
應用程序的啟動在操作系統啟動的前提下進行。BIOS程序從操作系統中獲取配置數據。然後檢測每種設備是否有設備驅動,沒有的話為其設置設備驅動。 所有的設備都有相對應得設備驅動後,操作系統將它們調入內核,初始有關的表格,穿件需要的進程,在每個程序上啟動終端。應用程序得以啟動。
計算機硬件知識