作為啟動程序的一部分霹肝,操作系統(tǒng)決定系統(tǒng)的硬件配置适掰,搜索連接到USB接口或者PCI擴展槽的外界設備颂碧,對他們進行初始化,如果有必要攻谁,在初始化的時候加載驅動程序稚伍。
操作系統(tǒng)完成加載后。用戶便可以運行應用程序戚宦,引用軟件可能需要分配內存或者向磁盤讀寫文件个曙,這些請求均有操作系統(tǒng)進行處理。對于用戶而言受楼,操作系統(tǒng)的參與基本是透明的垦搬。
操作系系統(tǒng)在運行的應用程序和物理硬件之間提供了一個抽象層。應用程序一般通過向操作系統(tǒng)發(fā)出高層請求與硬件進行通信艳汽。因為這些請求是由操作系統(tǒng)處理猴贰,所以應用程序可能完全不知道其運行環(huán)境的硬件配置(如RAM數量,硬盤存儲器是內部的SSD還是一個外部的USB驅動器)河狐。
這個抽象層可以使應用軟件在多種不同的硬件配置下運行米绕,無需程序員為每種硬件添加支持,即便那些在應用程序發(fā)布后才出現的新硬件設備也不需要馋艺。
應用程序開發(fā)者通痴じ桑可以忽略計算機操作系統(tǒng)中的工作細節(jié),因為操作系統(tǒng)將運行應用程序的硬件平臺抽象了出來捐祠。但是碱鳞,如果你作為一名驅動程序開發(fā)者,你所編寫的代碼將作為操作系統(tǒng)的一部分踱蛀,直接與硬件軟件進行交互窿给。你不能對系統(tǒng)操作的內部工作原理一無所知。