コンピューターサイエンス:アルゴリズム / OS / ネットワーク / DB
ext4 / APFS / NTFS の違い
ext4 / APFS / NTFS の違い
このレッスンで分かること
- 主要 OS のデフォルトファイルシステムは、設計時代と用途で大きく性格が違います
- ext4(Linux)は安定枯れ実装、APFS(macOS)は SSD・スナップショット前提、NTFS(Windows)は ACL とエンタープライズ機能を重視
- どれも「ジャーナリング」「大容量対応」「クラッシュ耐性」の現代的な要件は満たしています
ext4 / APFS / NTFS の違い とは
ext4 / APFS / NTFS の違い。本レッスンでは、ext4 / APFS / NTFS の違い の基本から実際の使いどころまでを整理し、現場で迷わず使える形に落とし込みます。
一覧で比較
| 観点 | ext4 | APFS | NTFS |
|---|---|---|---|
| OS | Linux | macOS / iOS | Windows |
| 登場 | 2008 | 2017 | 1993 |
| 最大ファイル | 16 TB | 8 EB | 256 TB |
| 最大ボリューム | 1 EB | 8 EB | 8 PB |
| 文字エンコード | 任意(バイト列) | Unicode 正規化 | UTF-16 |
| 大文字小文字 | 区別する | 任意 | 区別しない(既定) |
| ジャーナリング | あり(メタデータ) | コピーオンライト | あり |
| スナップショット | 別ツール | ネイティブ | VSS(Volume Shadow Copy) |
| ACL | POSIX + 拡張属性 | POSIX + 拡張 | 細粒度 ACL |
| TRIM 対応 | あり | あり | あり |
それぞれの設計思想
ext4(Linux)
ext2 → ext3(ジャーナル追加) → ext4 と進化した 保守的で堅実 な FS。HDD 全盛期に設計され、エクステント(連続ブロックの効率管理)と遅延割り当てを採用。Linux サーバーで圧倒的に使われています。後継候補に btrfs や xfs、ZFS があります。
APFS(Apple File System)
2017 年に Apple が HFS+ から置き換えるために導入。SSD・暗号化・スナップショット を一級市民として組み込みました。コピーオンライト方式で、ファイルのコピーが瞬時に終わる(差分が出るまで実データはコピーしない)クローン機能が特徴です。
ターミナル
# macOS で APFS スナップショット作成
tmutil localsnapshot
tmutil listlocalsnapshots /Time Machine がここを使っています。
NTFS(New Technology File System)
Windows NT 3.1(1993)で導入。当時としては先進的な ジャーナリング、圧縮、暗号化、ACL、リパースポイント(シンボリックリンクの上位互換)を備えています。
プレーンテキスト
# PowerShell でファイル ACL を確認
Get-Acl C:\Users\alice\memo.txt | Format-List図解
具体例
同じ「ファイル名」でも挙動は違います。
- ext4 では
Memo.txtとmemo.txtは 別ファイル - APFS(デフォルト)と NTFS では 同じファイル扱い
macOS で Linux と同じ感覚で開発するなら、ボリュームを Case-sensitive APFS にフォーマットするか、Docker / Lima 上の Linux で作業するのが定石です。
トレードオフ
- ext4 は安定ですが、スナップショットや本格的なボリューム管理は LVM や btrfs / zfs に頼る必要があります
- APFS は SSD 前提で HDD では性能が出にくい設計(HDD でも動きますが)
- NTFS はクロスプラットフォームの読み書きが課題でしたが、Linux はカーネル 5.15 以降の
ntfs3ドライバ、または FUSE のntfs-3gで読み書きできます。macOS は標準では読み取り専用のみ対応
よくある誤解
- 「macOS は UNIX なのでファイルシステムも Linux と互換」――半分誤解で、API は POSIX 互換ですが内部実装は APFS の独自設計です
- 「NTFS = ファイルシステム」と「NTFS = Windows のディスク全体」が混同されがちです。Windows ではブートには別のファイルシステム(EFI System Partition の FAT32)も並存します
やってみよう
Linux なら df -T で各マウントポイントの FS 種別が見られます。macOS なら diskutil list、Windows なら PowerShell の Get-Volume。普段の作業ディスクが何系統なのかを把握しておくと、トラブル時の調査が早くなります。
よくある質問
Q. このトピックは実務でどう役立ちますか?
A. DB のクエリ最適化、API 設計、データ構造の選択など、設計判断の根拠になります。表面的にライブラリを使うだけでなく「なぜそれが速いのか」を理解できると、性能問題を未然に防げます。コーディング面接でも頻出のテーマです。
Q. macOS で Linux と同じ大文字小文字区別が欲しいときはどうすればいいですか?
A. ボリュームを Case-sensitive APFS にフォーマットするか、Docker や Lima 上の Linux 環境で作業するのが定石です。既存ボリュームの変換はできないため、新規ボリュームを切るかコンテナを使う方法を選んでください。
Q. 外付け SSD を Windows と macOS の両方で使うには何でフォーマットすべきですか?
A. exFAT が最も手軽です。NTFS は macOS が読み取り専用のため書き込みできず、APFS は Windows が標準では認識しません。exFAT は両 OS で読み書きでき、4 GB 超のファイルも扱えます。
次のレッスン
次は ジャーナリングと耐障害性 で、クラッシュ後もデータが壊れない仕組み(ジャーナリングや COW)を学びます。
事前確認 — 進む前に次の 3 つができることを確認しましょう。
- 主要FS比較 の要点を自分の言葉で説明できる
- このレッスンの最小コード (または操作手順) を見ずに書ける
- 練習問題やクイズで間違えた箇所を読み直して理解した
理解度チェック (30 秒)
Q. 主要FS比較 とは何か、1 文で説明してください。
A. 本文の「このレッスンで分かること」または冒頭の説明文を見直し、自分の言葉で要約できれば OK。詰まったら本レッスンの最初の H2 セクションを読み返してみましょう。
関連レッスン