初次見面。我是在 PRUM 株式會社擔任工程師的 ひとみ。

我平常會整理並分享在程式學習與實務工作中,容易卡關的重點,以及工作上容易出現的「落差」。
若能對某人有所幫助,我會很高興。

「OS 到底在做什麼?」——為新手工程師整理一下「背後的運作」——

image.png

前言

當你按下電腦電源,Windows 就會理所當然地啟動,
接著打開瀏覽器、播放音樂,甚至連遊戲都能玩。

但其實,這個「理所當然」,背後做了非常厲害的事。

例如:

  • 一按下電源鍵,究竟是從什麼開始運作的?
  • 為什麼只要雙擊應用程式就能啟動?
  • 為什麼可以同時執行多個應用程式?
  • 為什麼只要插上 USB 就能辨識?

支撐這些「背後運作」的,就是 OS(Operating System,作業系統)
不過,平常其實不太會特別意識到 OS 的存在。
很多人想到的是 Windows 的介面、或 macOS 的設計,
但 OS 真正的工作其實是 「背後的管理」

這次,我想以

「OS 到底在電腦裡實際做什麼?」

為主題,特別整理從「開機到應用程式執行」的流程。

OS 是什麼?

OS(Operating System) 的日文叫做「基本軟體」。
非常粗略地說,它就是

「管理整台電腦的指揮中心」

CPU、記憶體、SSD、鍵盤等,電腦裡有很多零件。
但這些零件不會自己自動協作。

像是:

  • 對 CPU 下達指令
  • 管理記憶體
  • 執行應用程式
  • 儲存檔案
  • 顯示畫面

這些全部都由 OS 負責整理。
也就是說,OS 是一種

「人與電腦之間的中介」

的存在。

一按下電源,發生了什麼事?

image.png

電腦並不是一開電源,Windows 就會立刻顯示出來。
實際上,背後會執行很多處理。
大致流程如下:

1: 開啟電源
2: BIOS / UEFI 啟動
3: 確認 SSD 與記憶體
4: 讀取 OS
5: Windows/macOS 啟動
6: 顯示登入畫面
7: 可開始使用應用程式

BIOS / UEFI 是什麼?

在剛開機的時候,最先啟動的不是 OS。
最先運作的是稱為 BIOSUEFI 的機制。

它就像是

  • 記憶體是否正常
  • SSD 是否已連接
  • 鍵盤是否可用

之類的 「開機前準備人員」
確認完成後,OS 才會被載入。
也就是說,OS 是從電腦開機流程的 中途 才登場的。

OS 啟動後會先做什麼?

當 OS 被載入後,首先會開始大量的「準備工作」。

例如:

  • 開始管理記憶體
  • 載入驅動程式
  • 準備 Wi‑Fi
  • 準備畫面顯示
  • 控制滑鼠
  • 控制音訊

等到這些準備完成後,
我們才終於能操作電腦。
也就是說,在顯示登入畫面的時候,
OS 其實已經做了很多工作。

應用程式是怎麼啟動的?

image.png

這裡應該是初學者很在意的重點。
例如雙擊 Chrome,它就會理所當然地啟動。
但實際上,OS 在背後做了很多事。
大致流程如下:

1: 點擊應用程式
2: OS 找到 exe 檔
3: 配置記憶體
4: 從 SSD 讀取必要資料
5: 指示 CPU 執行
6: 顯示畫面

也就是說:

「真正讓應用程式運作的是 OS」

應用程式本身無法自行使用 CPU 或記憶體。
因為有 OS 管理,所以才能安全地運作。

為什麼可以同時執行多個應用程式?

現在的電腦通常都可以:

  • 一邊開著 Discord
  • 一邊用 Chrome 查資料
  • 一邊播放音樂
  • 一邊在背景更新

但 CPU 基本上是依序處理工作的。

因為 OS 會以超高速切換:

「下一個是 Chrome」
「下一個是 Discord」
「下一個是音樂播放」

所以看起來就像是 「同時在運作」
這種管理稱為 「工作管理」「行程管理」

為什麼應用程式之間不會互相破壞?

例如即使啟動遊戲,Chrome 的資料也不會突然壞掉,對吧?這也是 OS 的功勞。
OS 會替每個應用程式分配:

  • 可使用的記憶體
  • 使用權限
  • 存取範圍

因此應用程式彼此之間不容易互相干擾。
如果沒有 OS 來管理,情況就會非常危險。

為什麼只要插上 USB 就能使用?

這也是 OS 在做的。
當你插入 USB 時,OS 會確認:

  • 連接了什麼裝置
  • 這是用來怎麼操作的裝置
  • 該使用哪個驅動程式

所以滑鼠和鍵盤才能自動被使用。

Windows・macOS・Linux 有什麼不同?

代表性的 OS 有這些:

OS特點Windows全球最普及。工作上也很常使用macOSApple 產品專用。在設計領域也很受歡迎Linux伺服器領域非常重要。開源文化很強Android手機用 OSiPhone 專用 OS

特別是 Linux,在網路的背後其實被大量使用。
我們平常看到的 Web 服務,也常常是在 Linux 上運作。

總結

OS 不只是單純「讓電腦運作的軟體」。
從一按下電源開始,它就一直在做很多工作:

  • 記憶體管理
  • 應用程式執行
  • 檔案管理
  • 畫面顯示
  • USB 控制
  • 通訊管理

而且其中大部分,平常幾乎都不會特別注意到。
也正因如此,OS 才是

「平常不顯眼,但一旦停了,全部都會停擺的存在」

平常習以為常使用的電腦,從背後來看其實相當有趣。
先試著打開工作管理員,或者看看開機時有哪些應用程式在運作,
或許就能稍微看見「OS 的工作」了。


PRUM 的工程師中,有 95% 以上是從無經驗者錄用的。
我們也經營著一個網站,整理了對 想從無經驗轉職成工程師的人、以及 工程師本身 都有幫助的文章。

如果你有興趣,歡迎看看。
【推薦文章】
從銀行員或公務員走向 Web 業界。從異業轉職者「沉浸」於工程魅力的理由


原文出處:https://qiita.com/prum_hitomi/items/09dd4f6328fe3b35aae3


精選技術文章翻譯,幫助開發者持續吸收新知。

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
🏆 本月排行榜
🥇
站長阿川
📝12   💬4   ❤️1
464
🥈
alicec
📝1   ❤️2
87
#4
我愛JS
💬1  
3
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次
📢 贊助商廣告 · 我要刊登