Windows系統的工作原理

2021-03-03 23:29:22 字數 3692 閱讀 6648

一、windows系統的啟動過程

預了解windows系統的工作原理,我們先從windows的啟動過程來講解。同樣,我們還是以windows xp為例。首先,從我們按下計算機電源開關,到正式登入到桌面,完成啟動,一共需要經歷以下5個階段:

1. 預引導(pre-boot)階段;

2. 引導階段;

3. 載入核心階段;

4. 初始化核心階段;

5. 登陸。

下面,就每個啟動階段,我一一的給大家講解一下:

1、預引導階段

預引導(pre-boot)階段是指,在按下計算機電源使計算機啟動,並且在windows xp專業版作業系統啟動之前這段時間,在這個階段裡,計算機首先執行power on self test(post),post檢測系統的總記憶體以及其他硬體裝置的現狀。如果計算機系統的bios(基礎輸入/輸出系統)是即插即用的,那麼計算機硬體裝置將經過檢驗以及完成配置。計算機的bios定位計算機的引導裝置,然後mbr(master boot record)被載入並執行。

在預引導階段,計算機要載入windows xp的ntldr(nt loader)檔案。

2、引導階段

windows xp 專業版引導階段包含4個小的階段。

首先,計算機要經過初始引導載入器階段,在這個階段裡,ntldr將計算機微處理器從「實模式」轉換為「32位平面記憶體模式」。在實模式中,系統為ms-dos保留640kb記憶體,其餘記憶體視為擴充套件記憶體,而在32位平面記憶體模式中,系統(windows xp)視所有記憶體為可用記憶體。接著,ntldr啟動內建的mini-file system drivers,通過這個步驟,使ntldr可以識別每乙個用ntfs或者fat檔案系統格式化的分割槽,以便發現以及載入windows xp,到這裡,初始引導載入器階段就結束了。

接著系統來到了作業系統選擇階段,如果計算機安裝了不止乙個作業系統(也就是多系統),而且正確設定了boot.ini使系統提供作業系統選擇的條件下,計算機顯示器會顯示乙個作業系統選單,這是ntldr讀取boot.ini的結果。

如果在boot.ini中只有乙個作業系統選項,或者把timeout值設為0,則系統不出現作業系統選擇選單,直接引導到那個唯一的系統或者預設的系統。在選擇啟動windows xp後,作業系統選擇階段結束,硬體檢測階段開始。

在硬體檢測階段中,將收集計算機硬體資訊列表並將列表返回到ntldr,這樣做的目的是便於以後將這些硬體資訊加入到登錄檔hkey_local_machine下的hardware中。

硬體檢測完成後,進入配置選擇階段。如果計算機含有多個硬體配置檔案列表,可以通過按上下按鈕來選擇。如果只有乙個硬體配置檔案,計算機不顯示此螢幕而直接使用預設的配置檔案載入windows xp專業版。

3、載入核心階段

在載入核心階段,ntldr載入windows xp核心的。系統載入了windows xp核心但是沒有將它初始化。 接著ntldr載入硬體抽象層,然後,系統繼續載入hkey_local_machine\system鍵,ntldr讀取鍵值來決定哪乙個control set將被載入。

控制集中包含裝置的驅動程式以及需要載入的服務。ntldr載入hkey_local_machine\system\service\...下start鍵值為0的最底層裝置驅動。

當作為control set的映象被載入時,ntldr傳遞控制給核心,初始化核心階段就開始了。

4、初始化核心階段

在初始化核心階段開始的時候,彩色的windows xp的logo以及進度條顯示在螢幕**,在這個階段,系統完成了啟動的4項任務:

核心使用在硬體檢測時收集到的資料來建立了hkey_local_machine\hardware鍵。

核心通過引用hkey_local_machine\system\current的預設值複製control set來建立了clone control set。clone control set配置是計算機資料的備份,不包括啟動中的改變,也不會被修改。

系統完成初始化以及載入裝置驅動程式,核心初始化那些在載入核心階段被載入的底層驅動程式,然後核心掃瞄hkey_local_machine\system\currentcontrolset\service\...下start鍵值為1的裝置驅動程式。這些裝置驅動程式在載入的時候便完成初始化。

session manager啟動了windows xp高階子系統以及服務,啟動控制所有輸入、輸出裝置以及訪問顯示器螢幕的win32子系統以及winlogon程序,初始化核心完畢。

5、登陸

winlogon.exe啟動lsa,同時windows xp歡迎螢幕或者登陸對話方塊顯示,這時候,系統還可能在後台繼續初始化剛才沒有完成的驅動程式。如果設有密碼,提示輸入有效的使用者名稱或密碼。

二、應用程式、系統、輸入輸出裝置的關係

首先,我們來看計算機作業系統跟硬體裝置的互動關係,作業系統可以操縱輸出裝置,以執行特定的的功能。例如讓音效卡發出聲音,讓顯示卡發出圖形。當然作業系統也可以感知輸入裝置的狀態變化,如滑鼠移動、鍵盤按下,並且能夠知道滑鼠移動的具體位置、鍵盤按下的是哪乙個字元。

其次,我們來看計算機作業系統跟應用程式之間的互動關係,應用程式可以通知作業系統執行某個具體的動作,例如作業系統能夠讓音效卡發出聲音,但它並不知道何時讓音效卡發出何種聲音,需要應用程式告訴作業系統何時發出何種聲音。我來為大家舉個例子:這種關係好比有個機械人能夠完成行走功能,但它並不知道何時往哪個方向走,需要人來告訴它往**走,這裡機械人就好比作業系統、人就好比應用程式。

那麼應用程式是如何通知作業系統執行某個功能的呢?有過程式設計經驗的人都知道,在應用程式中要完成某個功能,都是以函式呼叫的形式實現的。同樣,應用程式也是通過函式呼叫的形式來通知作業系統的。

作業系統所能完成的每乙個功能,通常有乙個特定函式與其對應,也就是說作業系統把它所能完成的功能以函式的形式提供給應用程式使用。應用程式對這些函式的呼叫就叫做系統呼叫。而這些函式的集合,就是windows作業系統提供給應用程式程式設計的介面,稱為windows api 。

這裡,我再來簡要的介紹下windows api,windows api是微軟公司隨windows作業系統發布的應用程式介面,是windows系統為其下執行的各類應用程式提供的重要服務功能。微軟的所有win32平台都支援統一的api呼叫,包括函式、結構、訊息、巨集及介面。通過windows系統提供的api服務功能,應用程式可以充分挖掘windows系統的潛力。

api的核心是一組用c語言編寫的供外部應用程式呼叫的函式過程,這些函式封裝在windows系統的一系列dll動態庫檔案中。通過呼叫動態庫檔案中的函式,程式設計師可以在自己開發的應用中方便地向系統請求或執行更低階的裝置訪問,利用和控制系統資源,實現與系統相同或相似的功能。由此可以降低應用系統開發的複雜性,提高開發效率,並且無論是應用**商還是終端使用者都無需支付額外的費用。

如create windows 就是乙個api函式,應用程式中呼叫這個函式,作業系統就會按照該函式提供的引數資訊產生乙個相應的視窗。同樣,作業系統也能將輸入裝置的變化上傳給應用程式。如使用者在某個程式活動時按了一下鍵盤,作業系統馬上能夠感知到這一事件,並且能夠知道使用者按下的是哪個鍵,作業系統並不決定這一事件如何作出反應,而是將這一事件轉交給相應應用程式,由應用程式來決定如何對這一事件作出反應。

好,這裡我再為大家舉乙個形象的例子:好比有乙隻蚊子叮了我們一口,我們的神經末梢,就相當於作業系統,馬上感知到這一事件,它不做什麼決定,而是馬上將這一事件傳遞給大腦,大腦在這裡就相當於應用程式。我們的大腦最終決定如何對這一事件作出反應,如將蚊子趕走,或是將蚊子拍死。

對事件作出反應的過程就是訊息響應。

那麼作業系統是怎樣將感知到的事件傳遞給應用程式的呢?這是通過訊息機制(message)來實現的。作業系統將每乙個事件都包裝成乙個稱為訊息的結構體msg來傳遞給應用程式的。

Windows系統命令

1 ping ping是測試網路聯接狀況以及資訊包傳送和接收狀況非常有用的工具,是網路測試最 常用的命令。ping向目標主機 位址 傳送乙個回送請求資料報,要求目標主機收到請求後給予答覆,從而判斷網路的響應時間和本機是否與目標主機 位址 聯通。如果執行ping不成功,則可以 故障出現在以下幾個方面 ...

Windows系統產品總結

windows作業系統是目前所有作業系統當中使用率最高的一款作業系統,而作為windows其本身的版本也是非常之多。microsoft開發的windows是目前世界上使用者最多 且相容性最強的作業系統。最早的windows作業系統從1985年就推出了。改進了微軟以往的命令 系統microsoft d...

液壓系統的工作原理

2500t數控折彎機液壓原理說明 該液壓閥組是專為2500t以下電液同步折彎機配套使用。採用閉環同步控制系統,抗偏載能力強,同步精度高。該液壓控制系統由四部分組成 1 壓力控制塊 主要由比例壓力閥 4.3 二通插裝閥 4.1 安全閥 3 電磁換向閥 6 蓄能器充液閥 2 蓄能器 7 等組成。2 同步...