那後來為什麽沒有發生?原因不難理解,因為運行的程序多了。
想象壹下,比如妳用電腦的時候,可能會打開word文檔寫東西,打開網頁搜索資料,打開PS處理素材,打開圖片查看器看素材效果,打開翻譯軟件翻譯外文,插上耳機聽音樂。同時,輸入法的反病毒監控程序、在線升級檢測程序、詞庫收集程序仍在電腦後臺運行。
現在問題來了。每個程序都需要計算機資源,包括CPU的計算資源,內存的主存容量,硬盤的讀寫流量,網卡的網絡傳輸流量,主線內部的數據流量等等。
操作系統有話說。
對於壹個程序來說,為了保證自己程序的順利運行,必然要求自己分配盡可能多的資源,但是計算機資源總是有限的。如果大家都自己搶資源,要麽大家不能壹起跑,要麽壹些程序擠占了其他程序的資源。
更麻煩的是,壹個程序員不可能預知自己的程序同時在壹臺計算機中運行什麽樣的其他程序,所以很有可能壹個程序的臨時數據恰好和另壹個程序的關鍵數據相似,然後就會出現這個程序破壞那個程序數據之類的問題。
更麻煩的是,我們的電腦硬件也是不同廠家做的,他們的底層硬件系統也不壹樣。無論是消費者還是軟件生產商,當然都不希望某個軟件在這個型號的電腦上運行,但是改了就不能運行了。
因此,我們需要操作程序作為協調者。壹方面,操作系統提供了壹系列底層接口和上層標準來“抹平”不同電腦之間的硬件差異,這樣只要操作系統相同,硬件就能滿足軟件運行的最低標準,理論上這個軟件就可以互通。
另外,操作系統可以為所有的程序分配資源,所有的程序都需要向操作系統申請調用計算機資源的權限,這樣就可以在各種程序互不沖突的情況下,最大限度地利用計算機資源。
妳看到的就是妳得到的,嗯?
總的來說,雖然操作系統本身會占用壹部分計算機資源,但是它使得計算機運行更加穩定,減少了軟件開發人員的工作量,因為程只需要考慮操作系統的標準接口,不需要考慮硬件系統的底層差異。
當然,操作系統也會有額外的問題,比如惡意程序和計算機病毒也可以使用這些標準接口,而操作系統中為各種程序分配資源的算法永遠不可能完美,更不用說應付無休止的軟件升級,所以操作系統不得不不斷提供各種防火墻、監控程序和補丁來應對這類問題,於是就有了妳永遠做不到的升級提示。另外,操作系統也是商業公司提供的,他們總是希望從中賺錢,所以妳的電腦要麽像蘋果壹樣不允許下載這個或者安裝,要麽像微軟壹樣總是允許黑屏藍屏給妳玩。
藍屏...
所以,解決壹個問題總會帶來新的問題,但好在新問題總比老問題輕。
安艾
如果沒有操作系統,它會是這樣的: