大家好,我是良許。

前幾天我讀小學的侄子問我一個問題:"叔叔,為什麼電腦需要操作系統?沒有操作系統不能用嗎?"

這個問題把我問住了,不是因為我不知道答案,而是我在想怎麼用最簡單的方式讓一個小學生聽懂。

作為一個做了十幾年嵌入式開發的程序員,我天天跟操作系統打交道,從單片機的裸機程序到Linux系統,各種操作系統我都用過。但要把這個問題講得通俗易懂,還真不容易。

今天我就用最簡單的方式,給大家講講為什麼計算機需要操作系統。保證小學生都能聽懂!

1. 電腦就像一個飯店

我們先不談技術,我給大家打個比方。你可以把電腦想象成一個飯店,而操作系統就是這個飯店的經理。

沒有經理的飯店會怎麼樣?

想象一下,一個飯店沒有經理,會發生什麼?

客人來了,不知道該坐哪個位置,因為沒人安排座位。廚師做好了菜,不知道該送到哪桌,因為沒人協調。服務員想上菜,但廚房正在炒菜,廚師説"等我炒完這個菜再説"。收銀員想結賬,但不知道這桌客人點了什麼菜,因為沒人記錄。

你看,沒有經理的飯店,就是一團亂!雖然有廚師、服務員、收銀員,但大家各幹各的,沒法配合,飯店根本沒法正常運轉。

有經理的飯店是什麼樣?

現在我們給飯店請一個經理。經理來了之後,一切都變得井井有條:

客人來了,經理安排座位。客人點菜,經理記錄下來,告訴廚師該做什麼菜。廚師做好菜,經理安排服務員送到對應的桌子。客人吃完要結賬,經理知道這桌點了什麼,算出總價。

你看,有了經理,飯店就能正常運轉了。經理不做飯、不上菜、不收錢,但他協調所有人的工作,讓大家配合起來。

電腦裏的操作系統,就是這個經理!

現在我們回到電腦。電腦裏有很多硬件:CPU(處理器)、內存、硬盤、顯示器、鍵盤、鼠標……這些硬件就像飯店裏的廚師、服務員、收銀員。

如果沒有操作系統,這些硬件就像沒有經理的飯店,各幹各的,沒法配合。你按鍵盤,鍵盤不知道該把信號發給誰。你想看視頻,CPU不知道該從哪裏讀取視頻文件。你想保存文件,硬盤不知道該存在哪裏。

但有了操作系統,一切就變得有序了:

你按鍵盤,操作系統接收信號,告訴CPU該做什麼。你想看視頻,操作系統從硬盤讀取文件,讓CPU處理,再讓顯示器顯示出來。你想保存文件,操作系統告訴硬盤該存在哪個位置。

2. 操作系統到底做了什麼?

好,現在我們知道操作系統就像飯店經理,負責協調各種硬件。但具體來説,操作系統到底做了什麼呢?我給大家講幾個最重要的工作。

1. 管理程序的運行

你的電腦上可能同時開着很多程序:瀏覽器、微信、音樂播放器、遊戲……這些程序都需要CPU來運行。但CPU只有一個(或者幾個),怎麼讓這麼多程序同時運行呢?

這就是操作系統的工作。操作系統就像一個交通警察,指揮CPU的時間該給誰用。它讓瀏覽器用一會兒CPU,然後讓微信用一會兒,再讓音樂播放器用一會兒……雖然CPU每次只能做一件事,但因為切換得非常快(一秒鐘能切換幾千次),你感覺好像所有程序都在同時運行。

就像一個老師同時輔導很多學生,雖然老師每次只能輔導一個學生,但因為切換得快,每個學生都覺得老師在關注自己。

2. 管理內存

內存就像電腦的工作台,程序運行的時候需要在內存裏放數據。但內存是有限的,如果每個程序都隨便用,很快就會用完。

操作系統就像一個倉庫管理員,負責分配內存。瀏覽器需要內存,操作系統給它分配一塊。微信需要內存,操作系統再給它分配一塊。如果內存不夠了,操作系統會把暫時不用的數據移到硬盤上,騰出空間給新的程序。

而且,操作系統還要保證每個程序只能用自己的內存,不能亂動別人的內存。就像每個學生只能用自己的課桌,不能亂翻別人的書包。

3. 管理文件

你的電腦上有很多文件:照片、視頻、文檔、遊戲……這些文件都存在硬盤上。但硬盤就是一大堆存儲空間,怎麼知道哪個文件在哪裏呢?

這也是操作系統的工作。操作系統建立了一個文件系統,就像圖書館的分類系統。它記錄每個文件的名字、大小、存儲位置。你想打開一個文件,操作系統就去硬盤上找到它,讀取出來。你想保存一個文件,操作系統就在硬盤上找個空位置存起來。

而且,操作系統還讓你可以用文件夾來整理文件,就像用書架來整理書一樣。

4. 管理硬件設備

電腦上有很多硬件設備:鍵盤、鼠標、顯示器、打印機、U盤……每個設備的工作方式都不一樣。如果每個程序都要自己去控制這些設備,那太麻煩了。

操作系統就像一個翻譯官,它提供了統一的接口。程序只需要告訴操作系統"我要顯示一張圖片",操作系統就會去控制顯示器顯示出來。程序不需要知道顯示器是怎麼工作的,操作系統幫它搞定。

就像你去國外旅遊,不需要自己學外語,只要告訴導遊你想去哪裏,導遊幫你翻譯和安排。

5. 提供用户界面

操作系統還給你提供了一個界面,讓你可以方便地使用電腦。Windows有桌面、開始菜單、任務欄,你可以用鼠標點擊圖標來打開程序。手機上的Android和iOS也有主屏幕、應用圖標,你可以用手指點擊來打開應用。

如果沒有操作系統,你就得用鍵盤輸入一堆複雜的命令來控制電腦,那太難了!

3. 沒有操作系統的電腦是什麼樣?

現在你可能會問:真的有沒有操作系統的電腦嗎?

有的!我剛畢業的時候做單片機開發,那些小芯片上就沒有操作系統。我們寫的程序直接在芯片上運行,自己控制所有硬件。

那種感覺就像你一個人既要當廚師、又要當服務員、還要當收銀員,所有事情都要自己做。雖然可以做到,但非常累,而且只能做簡單的事情。

比如,我當年做過一個智能小車,用單片機控制。程序很簡單:讀取傳感器數據,控制電機轉動。因為任務簡單,不需要操作系統。

但如果你想做一個複雜的系統,比如智能手機,有幾十個應用同時運行,有攝像頭、屏幕、揚聲器、網絡……這麼多東西,沒有操作系統根本管不過來!

4. 最後説幾句

為什麼計算機需要操作系統?因為操作系統就像飯店經理,協調各種硬件和程序,讓它們能夠配合工作。

沒有操作系統,電腦就是一堆硬件,沒法正常使用。有了操作系統,電腦才能運行各種程序,處理各種任務,變成我們每天使用的工具。

下次你打開電腦或手機的時候,可以想一想:在你看不見的地方,操作系統正在忙碌地工作,協調着成千上萬的任務,讓一切看起來那麼簡單流暢。

希望這篇文章能讓你理解操作系統的作用。記住,操作系統就像飯店經理,雖然你看不見它在做什麼,但沒有它,一切都會亂套!