Hi 大家好,我平常會把學習和實務上容易卡住的點整理成文章,希望可以幫到剛踏入這個產業的新朋友。
前言
每天打開筆電,Windows 或 macOS 就會乖乖地跳出來,然後我們開瀏覽器、聽 Spotify、跑 VS Code,甚至開 Steam 打遊戲,整個過程順到我們根本不會多想。
但其實這個「順」,背後是非常不得了的工程。
舉幾個例子:
為什麼按下電源鍵之後,畫面會慢慢亮起來,最後出現桌面?
為什麼應用程式只要點兩下就會啟動?
為什麼我們可以同時開十幾個視窗還不會打架?
為什麼 USB 隨身碟一插上就被認得?
這些「理所當然」的背後,其實都是作業系統(Operating System,OS)在默默處理。
我們平常很少會意識到 OS 的存在,多數人聽到 Windows、macOS,腦中浮現的可能是介面長相或是桌布設計。但 OS 真正的工作其實是「在看不到的地方做管理」。
這次想跟大家聊的主題是:
作業系統到底在電腦裡面做了什麼?
我會用「從開機到應用程式可以使用」這段流程當主線,把幕後發生的事情整理一遍。
作業系統是什麼
作業系統的中文正式名稱是「基本軟體」,但用比較直覺的方式說,它其實就是:
整台電腦的總指揮中心
一台電腦裡面塞了 CPU、記憶體、SSD、鍵盤、滑鼠、網路卡等等一大堆零件,這些零件並不會自己互相溝通。誰要先用 CPU?資料要放在記憶體哪裡?檔案要怎麼存到 SSD?畫面要怎麼畫到螢幕上?這些全部都要有人協調。
而負責協調這一切的,就是作業系統。換個角度說,OS 比較像是:
人類和硬體之間的翻譯官
我們點滑鼠、按鍵盤、打開檔案,OS 會把這些動作翻譯成硬體看得懂的命令,再把結果回報給我們。
按下電源鍵的瞬間,到底發生了什麼
很多人以為按下電源鍵之後,Windows 或 macOS 就會立刻冒出來。但實際上中間有非常多步驟。流程大致是這樣:
按下電源鍵
BIOS 或 UEFI 啟動
檢查 SSD、記憶體等硬體
載入作業系統
Windows 或 macOS 開始啟動
顯示登入畫面
應用程式可以開始使用
BIOS 與 UEFI 是什麼
電源鍵按下去之後,第一個跳出來工作的其實不是 OS,而是寫在主機板上的 BIOS 或 UEFI。
它的工作有點像出門前的點名:
記憶體有沒有正常
SSD 有沒有接好
鍵盤滑鼠能不能用
顯示卡是否正常
確認硬體都沒問題之後,BIOS 或 UEFI 才會去把作業系統載入到記憶體裡面。也就是說,OS 其實是「開機流程的中段」才登場的角色。
作業系統開始運作之後
OS 一被載入,就會開始一連串的準備工作,例如:
啟動記憶體管理機制
載入各種驅動程式
初始化 Wi-Fi 與網路
準備畫面顯示
啟動滑鼠與鍵盤的控制
啟動音效系統
當我們看到登入畫面的時候,其實 OS 已經在背後做了相當多的事情了。
應用程式是怎麼跑起來的
這部分我覺得對新手來說特別有趣。打開 Chrome 看起來只是「點兩下圖示」這麼簡單的動作,但 OS 為了讓這件事成立,背後其實非常忙。
流程大致是:
使用者點擊應用程式圖示
OS 找到對應的執行檔(例如 .exe 或 .app)
OS 配置一塊記憶體給這支程式
從 SSD 把需要的資料載入記憶體
OS 把執行指令交給 CPU
畫面顯示出應用程式視窗
換句話說:
真正讓應用程式跑起來的,其實是作業系統
應用程式沒有辦法自己直接命令 CPU 或記憶體,全部都要透過 OS。這也是為什麼 OS 的穩定度,會直接影響整台電腦的穩定度。
為什麼可以同時開那麼多應用程式
我自己每天工作大概都是這樣的狀態:
一邊開 Slack 跟同事討論
Chrome 開十幾個分頁查資料
VS Code 在跑專案
Spotify 播歌
背景還在跑系統更新
CPU 其實本質上是「一次處理一件事」的,那為什麼感覺起來這些程式好像在同時運作呢?
答案是 OS 在非常快速地切換:
現在輪到 Chrome、接著換 Slack、再來是 Spotify
切換速度快到人類完全感覺不出來,所以看起來就像所有應用程式都在同時運作。這套機制叫做「行程管理」(Process Management)或「任務排程」。
為什麼應用程式之間不會互相破壞
我在打遊戲的時候,Chrome 的資料不會莫名其妙壞掉;寫程式的時候,Spotify 也不會把我的程式碼吃掉。這同樣是 OS 的功勞。
OS 會幫每一支應用程式劃分清楚:
可以用的記憶體範圍
可以存取的檔案權限
可以使用的硬體資源
每一支程式都被關在自己的「房間」裡面跑,不能隨便去碰別人的東西。如果沒有 OS 做這層隔離,整台電腦的安全性會非常脆弱。
為什麼 USB 一插就可以用
這也是 OS 處理掉的工作。USB 裝置一插上去,OS 會去確認:
接上來的是什麼裝置
應該用什麼方式跟它溝通
是否需要載入特定的驅動程式
確認完之後,滑鼠、鍵盤、隨身碟就可以馬上使用。這個流程叫做「即插即用」(Plug and Play)。
常見的作業系統有哪些
作業系統 特色 Windows 全球普及率最高,職場上最常見 macOS Apple 自家產品專用,設計與創意工作者愛用 Linux 伺服器領域的核心,開源文化非常強 Android 全球最多人使用的手機作業系統 iOS iPhone 與 iPad 專用
特別想提一下 Linux。我們每天瀏覽的網站、使用的雲端服務,背後絕大多數其實都跑在 Linux 伺服器上面。所以即使日常生活中比較少直接接觸 Linux,做為工程師,了解它幾乎是必修課。
小結
作業系統不只是「讓電腦可以開機的軟體」這麼簡單。從按下電源鍵那一刻開始,它就一直在處理:
記憶體配置
應用程式執行
檔案管理
螢幕顯示
USB 與週邊裝置
網路通訊
安全性與權限隔離
而且這些工作絕大多數時間都安靜地進行,我們幾乎不會察覺。所以我覺得 OS 是一個很有趣的存在:
平常完全不被注意,但只要它停下來,整台電腦就跟著停下來
如果想要更實際地感受 OS 在做什麼,推薦可以打開「工作管理員」(Windows)或「活動監視器」(macOS),看看現在有哪些行程正在跑、各自佔了多少 CPU 和記憶體。光是這樣觀察一下,就會發現電腦背後其實熱鬧得不得了。
希望這篇整理對剛開始學習的新手工程師有一點幫助。下次再跟大家分享其他主題!
