コンピューターサイエンス:アルゴリズム / OS / ネットワーク / DB

Linux / macOS / Windows のアーキ比較

生田 陸人
LuaGate エンジニア / 現役エンジニア
編集 LuaGate編集部

Linux / macOS / Windows のアーキ比較

このレッスンで分かること

  • 主要 3 OS は表面的には似ていますが、カーネル設計・ファイルシステム・プロセスモデルがそれぞれ違います
  • Linux はモノリシック、macOS はハイブリッド(XNU = Mach + BSD)、Windows はハイブリッド(NT)という分類が定番です
  • 「どれが優れている」よりも、用途と歴史を踏まえた 適材適所 で選ぶ視点が大事です

Linux / macOS / Windows のアーキ比較 とは

Linux / macOS / Windows のアーキ比較。本レッスンでは、Linux / macOS / Windows のアーキ比較 の基本から実際の使いどころまでを整理し、現場で迷わず使える形に落とし込みます。

この章のポイント

3 OS の違いを一言で (結論ブロック)

  • Linux = ゼロから書かれた POSIX 互換のオープンソース OS。モノリシックカーネル。サーバー・組込み・Android の土台。
  • macOS = Mach マイクロカーネル + BSD のハイブリッド (XNU)。デスクトップ + 開発機 + クリエイティブ用途で強い。
  • Windows = VMS の影響を受けた独自設計の NT カーネル。Win32/POSIX/WSL など複数サブシステム同居。

「どれが優れているか」ではなく、カーネル設計の起源想定ワークロード で適材適所に選ぶのが定石です。

3 つの OS の系譜

OSカーネル名系譜主な用途
LinuxLinuxUNIX 系(リライト)サーバー、組込み、Android、クラウド
macOSXNUMach + BSD ハイブリッドデスクトップ、開発機、クリエイティブ
WindowsNT独自系(VMS にインスパイア)業務 PC、ゲーム、エンタープライズ

Linux はゼロから書かれた UNIX 互換 OS で、コード自体は AT&T UNIX とは無関係ですが API(POSIX)を共有します。macOS の XNU はカーネギーメロン大学 (CMU) で開発された Mach マイクロカーネルに BSD のサブシステムを乗せた ハイブリッド で、ファイル API は BSD 由来です。Windows NT は VMS の設計者 David Cutler が率いるチームが作り、UNIX とは独立した進化を遂げました。

カーネル設計の図解

diagram (will load when visible)

Linux はすべての機能がカーネル空間に住む モノリシック。macOS は Mach 由来のメッセージ通信と BSD のシステムコールが混在。Windows NT は HAL(Hardware Abstraction Layer)で機種依存を吸収し、Win32 / POSIX / WSL など複数の サブシステム を同居させる設計です。

ファイルシステムとパス

OSデフォルト FSパス区切り大文字小文字
Linuxext4 / btrfs / xfs/区別する
macOSAPFS/デフォルト区別しない
WindowsNTFS / ReFS\ または /区別しない

Linux と macOS は POSIX 互換でパスが似ていますが、macOS は大文字小文字を区別しないボリュームがデフォルトです。Windows は C: 形式のドライブレターという独自概念を持ちます。

具体例

「新しいプロセスを作る」操作はそれぞれ違うシステムコールで実現します。

c

// Linux / macOS (POSIX) pid_t pid = fork(); if (pid == 0) { execve("/bin/ls", argv, envp); }

c

// Windows (Win32) STARTUPINFO si = { sizeof(si) }; PROCESS_INFORMATION pi; CreateProcess("C:\\Windows\\System32\\cmd.exe", NULL, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);

POSIX 系は fork → exec の 2 段階、Windows は CreateProcess 1 発で完結する設計です。fork は親プロセスのメモリを丸ごとコピーする思想(Copy-on-Write)で、Web サーバーの worker 生成などに向きます。

アプリ配布の違い

  • Linux はディストリビューションごとに aptdnfpacman などのパッケージマネージャを持ち、依存関係を OS 側 が解決します
  • macOS は .app バンドル(ディレクトリ内に必要ファイル全部入り)と Homebrew が主流で、依存はアプリ側に閉じます
  • Windows は MSI / EXE インストーラが伝統的で、近年は MSIX や winget も登場しました

トレードオフ

  • Linux はオープンソースで自由ですが、ドライバ・GPU 周りで商用 OS に遅れることがあります
  • macOS はハードと OS を同じ会社が作る 垂直統合 が強みですが、選べる機種が限られます
  • Windows は GPU ゲームやエンタープライズソフトの互換性に強い一方、強制アップデートや UI 変更の頻度が議論を呼びます

よくある誤解

  • 「Mac は UNIX ではない」は誤解で、macOS は 公式に UNIX 認証 を受けた POSIX 準拠 OS です
  • 「WSL は仮想マシン」は半分正解で、WSL2 は軽量 VM 上で本物の Linux カーネルを動かしています(WSL1 は API 翻訳でした)

やってみよう

普段使っている OS で uname -a(macOS / Linux)または systeminfo(Windows)を実行し、カーネルのバージョンとビルド番号を確認してください。手元の OS がどの系譜に属するか、改めて意識するだけで日々の運用が立体的になります。

まとめ

このレッスンの要点は、カーネル設計の系譜 / ファイルシステムとパス文化 / プロセス生成 API の違い の 3 点です。実務でこれらを切り分けて説明できるようになると、設計レビューや障害対応の精度が一段上がります。

理解度チェック

Q. macOS のカーネル XNU の構成として正しい説明はどれ?

  1. Linux カーネルを改造したもの
  2. Mach マイクロカーネル + BSD のハイブリッド
  3. Windows NT カーネルをライセンス使用
  4. 完全に独自のマイクロカーネル
答えを見る

正解は 2。XNU は Mach の IPC/スケジューラ + BSD のシステムコール + IOKit ドライバを組み合わせたハイブリッドカーネルです。

出典 (References)

最終更新: 2026-05-28

関連レッスン

よくある質問

Q. このトピックは実務でどう役立ちますか?

A. DB のクエリ最適化、API 設計、データ構造の選択など、設計判断の根拠になります。表面的にライブラリを使うだけでなく「なぜそれが速いのか」を理解できると、性能問題を未然に防げます。コーディング面接でも頻出のテーマです。

Q. 計算量はどう求めれば良いですか?

A. ループのネストごとに掛け算する、再帰なら漸化式から解く、というのが基本です。Big-O 表記は定数倍と低次の項を無視するため、n の指数(n²、n log n など)に注目してください。最悪・平均・最良の 3 つを意識すると説得力が増します。

Q. 覚えるべき定番アルゴリズムは何ですか?

A. 二分探索、クイックソート/マージソート、BFS/DFS、ダイクストラ、DP の基本問題(フィボナッチ・ナップサック)が必修です。これらを「白紙から書ける」状態にすると、応用問題が一気に解けるようになります。

次のレッスン

次は プロセスとは で、Linux / macOS / Windows のアーキ比較 を学びます。

事前確認 — 進む前に次の 3 つができることを確認しましょう。

  1. 主要OS比較 の要点を自分の言葉で説明できる
  2. このレッスンの最小コード (または操作手順) を見ずに書ける
  3. 練習問題やクイズで間違えた箇所を読み直して理解した

理解度チェック (30 秒)

Q. 主要OS比較 とは何か、1 文で説明してください。

この章のポイント

A. 本文の「このレッスンで分かること」または冒頭の説明文を見直し、自分の言葉で要約できれば OK。詰まったら本レッスンの最初の H2 セクションを読み返してみましょう。

関連レッスン