第1部 コンピュータの基礎
第3章 OSの役割と仕組み — プロセス・メモリ・ファイルシステム
アプリを起動し、複数の作業を同時にこなし、ファイルを保存する——私たちが当たり前に行っているこれらの裏側では、必ず「OS」が働いています。OSは何をしていて、なぜ大切なのか。プロセス・メモリ・ファイル・権限という4つの柱で、その正体をつかんでいきましょう。第2部で触れるターミナル操作の土台にもなる章です。
🎯 この章で学ぶこと
- OS(オペレーティングシステム)の役割と、カーネルという中心部品
- プロセスとスレッド — 複数の作業を同時に進めるしくみ
- 仮想メモリとスワップ — メモリ不足でPCが遅くなる理由
- ファイルシステム — 階層構造・パス・拡張子・NTFS/APFS/ext4
- ユーザーと権限 — なぜ普段は管理者で使わないのか(最小権限)
3.1 OSとは何か
第1章ではCPUやメモリといったハードウェアを、第2章ではデータの表し方を見てきました。では、そのハードウェアの上でWordやブラウザといったアプリを動かし、私たちが快適に使えるよう全体を取り仕切っているのは誰でしょうか。それがOS(オペレーティングシステム、基本ソフト)です。WindowsやmacOS、Linux、スマホのiOSやAndroidが、その代表です。
OSのいちばん大事な役割は、ハードウェアとアプリの「仲介役」になることです。もしOSがなかったら、アプリは「このメーカーのSSDに書き込むには……」「このプリンターに命令を送るには……」と、機器ごとの細かい作法を全部自分で知らなければなりません。OSがあいだに立つおかげで、アプリは「ファイルを保存して」「印刷して」とOSにお願いするだけで済みます。面倒な現場仕事をOSが肩代わりしてくれる、いわば会社の総務部やフロント係のような存在です。
| OSが管理しているもの | 具体的にやっていること |
|---|---|
| CPU | どのアプリにいつ計算させるか順番を割り振る |
| メモリ | 各アプリに作業スペースを割り当て、奪い合いを防ぐ |
| ストレージ | ファイルとして読み書きできるようにする |
| 周辺機器 | キーボード・画面・プリンター・ネットワークとやり取りする |
| ユーザー | 誰が使っていて、何をしてよいかを管理する |
OSの中でも、いちばん奥でハードウェアを直接制御している中核部分をカーネル(kernel、核という意味)と呼びます。CPUの割り当て、メモリの管理、機器とのやり取りといった最も重要で危険な仕事は、このカーネルが特別な権限で行います。私たちが普段触るデスクトップ画面やアイコンは、カーネルの上に乗った「外側の皮」の部分です。ちなみに「Linux」とは厳密にはこのカーネルの名前で、それを中心に必要な部品を寄せ集めて製品にしたものが「Ubuntu」「Red Hat」などの各種Linuxです。
3.2 プロセスとスレッド
アプリのアイコンをダブルクリックすると、ストレージ上のプログラムがメモリに読み込まれ、CPUが実行を始めます(第1章の流れです)。この「実行中のプログラム」1つひとつを、OSは「プロセス(process)」という単位で管理しています。ブラウザを開けばブラウザのプロセスが、Excelを開けばExcelのプロセスが生まれます。同じアプリを2つ起動すれば、プロセスも2つになります。
いまのパソコンは、ブラウザで調べ物をしながら、音楽を流し、裏でファイルをダウンロードし……と、いくつもの作業を同時にこなせます。これをマルチタスクと呼びます。ただし、ここには面白いカラクリがあります。CPUのコア(頭脳)の数には限りがあるのに、なぜ何十ものプロセスが同時に動いているように見えるのでしょうか。
答えは、OSがものすごい速さでプロセスを切り替えているからです。「ブラウザを少し進めて、次は音楽を少し進めて、次はダウンロードを少し……」というバトンタッチを、人間には感じ取れないほど高速に繰り返しています。パラパラ漫画が連続して見えるのと同じで、一瞬ずつの切り替えが「同時に動いている」ように見えているのです。
スレッド — プロセスの中の作業レーン
1つのプロセスの中で、さらに仕事を分担する単位がスレッド(thread)です。たとえば表計算ソフトなら、「入力を受け付ける係」と「裏で再計算する係」がスレッドとして並行して動くイメージです。プロセスが「1つの会社」なら、スレッドは「その社内の複数の担当者」。同じ会社(プロセス)の担当者どうしなので、メモリなどの資源を共有して協力し合えるのが特徴です。
この話は画面で確かめられます。Windowsなら タスクマネージャー(Ctrl+Shift+Esc)、macOSなら アクティビティモニタを開いてみてください。今動いているプロセスの一覧と、それぞれがCPUやメモリをどれだけ使っているかが表示されます。「PCが重い」ときは、まずここを開いてどのプロセスが資源を食っているかを確認するのが、トラブル対応の第一歩です。応答しなくなったアプリを強制終了(プロセスの終了)するのも、この画面から行います。
3.3 メモリ管理と仮想メモリ
第1章で、メモリは「作業机」であり、狭いと動作が遅くなると学びました。ここではその続きとして、OSがメモリをどうやりくりしているかを見ていきます。
複数のプロセスが同時に動くと、それぞれが「机(メモリ)」を使いたがります。もし各プロセスが好き勝手にメモリを使ったら、他のプロセスのデータを壊してしまうかもしれません。そこでOSは仮想メモリというしくみを使います。これは、各プロセスに対して「あなた専用のまっさらな広い机がありますよ」という見せかけ(仮想)の住所を割り当て、その裏で実際の物理メモリのどこを使うかをOSがこっそり取り持つ方式です。おかげで各アプリは他人のことを気にせず、自分専用の空間があるつもりで安全に動けます。
スワップ / ページング — メモリが足りなくなったら
では、物理メモリ(実際のRAM)が本当に足りなくなったらどうするのでしょうか。ここでOSは苦肉の策をとります。今すぐ使わないメモリの中身を、いったんストレージ(SSD/HDD)に追い出して退避させるのです。この動きをスワップ、あるいはページングと呼びます(退避先はスワップ領域やページファイルと呼ばれます)。
これでメモリの空きは作れますが、大きな代償があります。第1章で見たとおり、ストレージはメモリよりずっと遅いからです。退避したデータが再び必要になると、ストレージから読み戻すことになり、そのたびに大きく待たされます。「メモリを増やしたらPCが劇的に速くなった」の正体は、多くの場合このスワップが減ったことです。
| 状況 | 起きていること | 体感 |
|---|---|---|
| メモリに余裕がある | すべて高速なメモリ上で処理 | 快適・きびきび |
| メモリが不足気味 | 使わないデータをストレージへ退避(スワップ) | もっさり・引っかかる |
| 激しくスワップ | 退避と読み戻しが延々と続く | 操作が固まったように重い |
タスクマネージャーでメモリ使用率が高くても、慌てる必要はありません。むしろ現代のOSは、空いているメモリを「よく使うデータの一時置き場(キャッシュ)」として積極的に活用します。空けておくより使った方が速くなるからです。本当に注意すべきなのは、メモリが枯渇してスワップが多発している状態です。ディスクのアクセスランプが点きっぱなしで動作が極端に重いなら、メモリ不足を疑い、増設や不要アプリの終了を検討します。「使用率の数字」より「スワップしているか」で判断するのがコツです。
3.4 ファイルシステム
ストレージはただの巨大な記憶空間で、そのままでは「どこに何を置いたか」が分かりません。そこでOSは、データをファイルという単位でまとめ、フォルダ(ディレクトリ)という入れ物で整理します。この管理のしくみ全体をファイルシステムと呼びます。
階層構造 — 入れ子になったフォルダ
フォルダの中にフォルダを作り、その中にファイルを置く……という入れ子(階層)構造で、私たちはデータを整理しています。木の枝が分かれていくような形なので「ツリー構造」とも呼ばれます。この構造の中で「あるファイルがどこにあるか」を示す住所がパス(path)です。パスには2種類あります。
| パスの種類 | 意味 | 例 |
|---|---|---|
| 絶対パス | 一番上(根っこ)からの完全な住所。どこから見ても同じ場所を指す | Windows: C:\Users\yuki\書類\report.xlsxLinux/mac: /home/yuki/documents/report.xlsx |
| 相対パス | 「今いる場所」を基準にした住所。基準が変われば指す先も変わる | documents/report.xlsx(1つ上は ../ で表す) |
絶対パスは「東京都〇〇区△△1-2-3」のような完全な住所、相対パスは「ここから2つ隣のビル」のような言い方だと考えると分かりやすいでしょう。Windowsは区切りに \(円記号・バックスラッシュ)を、Linux/macOSは /(スラッシュ)を使うという違いもあります。この区切り文字の違いは、第2部でターミナルを触るときに実感することになります。
拡張子 — ファイルの種類を示す名札
ファイル名の末尾、. のあとに付く report.xlsx の xlsx の部分を拡張子(かくちょうし)といいます。これは「このファイルは何のデータで、どのアプリで開けばよいか」を示す名札です。.txt は文書、.jpg は画像、.pdf はPDF、といった具合です。ダブルクリックしたときに適切なアプリが立ち上がるのは、OSがこの拡張子を見て判断しているからです。
拡張子はファイル名の一部にすぎないため、簡単に付け替えられます。攻撃者はこれを悪用し、危険な実行ファイル(.exe など)を 請求書.pdf.exe のように装います。多くのWindowsは初期設定で拡張子を隠して表示するため、末尾の .exe が見えず、アイコンだけPDF風にされていると、うっかりダブルクリックしてマルウェアを実行してしまいます。対策として、業務PCでは「拡張子を常に表示する」設定にしておくことを強くおすすめします。見えないものは疑えません。
ファイルシステムの種類 — NTFS / APFS / ext4
ファイルシステムには方式(フォーマット)がいくつもあり、OSごとに主に使うものが異なります。名前だけでも知っておくと、ディスクの初期化やデータ移行の場面で戸惑いません。
| 方式 | 主なOS | ひとこと |
|---|---|---|
| NTFS | Windows | Windowsの標準。権限管理などに対応 |
| APFS | macOS(現行) | SSD向けに設計された新しい方式 |
| ext4 | Linux | Linuxで広く使われる定番 |
| exFAT | 共通(USBメモリ等) | WindowsでもMacでも読み書きしやすい |
WindowsでNTFSにフォーマットしたUSBメモリをMacに挿すと、読めるのに書き込めない、ということがあります。これはファイルシステムの方式の違いが原因です。WindowsとMacの両方でやり取りするUSBメモリは、exFATでフォーマットしておくと相性の問題が起きにくく、実務でも重宝します。
3.5 ユーザーと権限
1台のPCやサーバーを複数人で使うこともあれば、1人で使う場合でも、OSは「今操作しているのは誰か」というユーザーの概念を持っています。そして、ユーザーごとに「何をしてよいか」を定めたものが権限(パーミッション)です。この仕組みが、システムを守る土台になります。
権限は大きく、システム全体を変更できる管理者(Windowsでは管理者、Unix系ではroot)と、自分の作業だけができる一般ユーザーに分かれます。
| 管理者 / root | 一般ユーザー | |
|---|---|---|
| できること | ソフトの導入、設定変更、他人のファイル操作など何でも | 自分のファイルの読み書き、アプリの利用 |
| たとえると | 建物のマスターキーを持つ管理人 | 自分の部屋の鍵だけを持つ住人 |
| 操作を誤ると | システム全体を壊しうる | 影響は自分の範囲にとどまりやすい |
なぜ普段は管理者で使わないのか — 最小権限の原則
「何でもできる管理者の方が便利では?」と思うかもしれません。しかし、セキュリティの世界には最小権限の原則という大切な考え方があります。これは「その作業に必要な最小限の権限だけを与える(普段はできるだけ弱い権限で作業する)」という発想です。
理由はシンプルで、マルウェア(悪意あるプログラム)は、それを実行したユーザーの権限しか持てないからです。もし管理者として作業中にうっかり不正なプログラムを動かしてしまえば、そのプログラムも管理者権限でシステム全体を好き放題にできてしまいます。一方、普段を一般ユーザーで過ごしていれば、被害はその範囲に食い止められます。「万一やられても被害を小さくする」——これが最小権限のねらいです。
とはいえ、ソフトのインストールなど管理者権限が本当に必要な場面もあります。そのためOSは、普段は一般ユーザーとして動き、必要なときだけ一時的に管理者の力を借りるしくみを用意しています。
| OS | 一時的に管理者権限を使うしくみ |
|---|---|
| Windows | UAC(ユーザーアカウント制御)。管理者権限が要る操作の前に「このアプリに変更を許可しますか?」という確認画面が出る |
| Linux / macOS | sudo コマンド。コマンドの前に sudo を付けると、その1回だけroot権限で実行できる(第2部で詳しく扱います) |
WindowsのUACの確認画面が出たら、それは「今から管理者の強い権限を使おうとしている」という合図です。自分が意図した操作なら許可してよいのですが、心当たりのないタイミングで突然この画面が出たら要注意です。何かが勝手に権限昇格を試みている可能性があります。UACやsudoのパスワード確認は「面倒な儀式」ではなく、危険な操作の前に一呼吸置くための最後の砦です。中身を読まずに反射的にクリックする癖は、その砦を自分で無効化してしまいます。
3.6 デバイスドライバとシステムの起動
最後に、OSがハードウェアとどう手を結ぶか、そして電源を入れてからOSが立ち上がるまでの流れをおさえておきましょう。
デバイスドライバ — 機器ごとの「通訳」
世の中には無数のメーカーのプリンターやマウス、グラフィック機器があり、それぞれ内部の作法が違います。OSがそのすべてを最初から知っているわけではありません。そこで、機器ごとの「話し方」をOSに教える通訳ソフトが必要になります。これがデバイスドライバです。新しいプリンターを買ったときに「ドライバをインストールしてください」と言われるのは、OSにその機種との会話の仕方を教え込む作業なのです。「機器をつないだのに動かない」トラブルの多くは、このドライバが未導入か古いことが原因です。
起動の流れ — BIOS/UEFI から OS へ
電源ボタンを押してからデスクトップが現れるまでには、決まったバトンリレーがあります。
1. 電源ON
↓
2. BIOS / UEFI が起動
(マザーボードに組み込まれた最初のプログラム。
メモリやストレージなど機器が正常かを点検する)
↓
3. ストレージから OS本体(カーネル)を読み込む
↓
4. OS が各種ドライバやサービスを立ち上げる
↓
5. ログイン画面 → デスクトップが表示される
ポイントは、最初に動くのはOSではなくBIOS(バイオス)あるいはその新しい方式であるUEFI(ユーフィ)だという点です。これはマザーボードにあらかじめ組み込まれた小さなプログラムで、まず機器の健康診断を行い、次に「どのストレージからOSを読み込むか」を決めてバトンを渡します。近年のPCはほぼUEFIで、旧来のBIOSより高速な起動や大容量ストレージへの対応、安全な起動(セキュアブート)などに優れています。
この流れを知っていると、トラブルの切り分けができます。たとえば「メーカーのロゴは出るのにOSのログイン画面まで進まない」なら、BIOS/UEFIまでは動いているがOSの読み込みでつまずいている、と当たりが付けられます。逆に「電源は入るが画面に何も出ない」なら、もっと手前(2番)の段階を疑う、という具合です。仕組みを知ることは、そのまま原因の切り分け力になります。
この章で登場した最小権限の原則は、情報システムを守るうえで最も基本かつ強力な考え方です。人にもプログラムにも「必要な分だけの権限」しか与えないことで、万一アカウントが乗っ取られたり、マルウェアが紛れ込んだりしても、被害を小さく閉じ込められます。マルウェアが実行ユーザーの権限しか持てない以上、普段の作業を弱い権限に保つだけで、防御力は大きく変わります。
これは個人PCだけの話ではありません。サーバーやクラウドの運用では、「担当者や外部サービスに、そのタスクに要る権限だけを付与する」ことが鉄則で、この考え方は入門コース(一人情シス)のID管理や、セキュリティ中級・上級コースのアクセス制御にもまっすぐつながっていきます。そして、プロセス・メモリ・ファイル・権限というOSの基礎は、そのまま第2部のターミナル(CLI)で日々操作する対象そのものです。「画面のアイコン越し」に触れていたこれらを、次の部では文字コマンドで直接動かしていきます。ここで固めた土台が、そのまま効いてきます。
まとめ
- OSはハードウェアとアプリの仲介役。中心でハードを制御する中核部分をカーネルと呼ぶ
- 実行中のプログラムはプロセスとして管理され、OSの高速な切り替えでマルチタスクが実現する。スレッドはプロセス内の作業レーン
- 仮想メモリで各プロセスに専用空間を見せる。物理メモリが尽きるとストレージへ退避(スワップ)し、これが「重い」の主因
- ファイルはフォルダの階層で整理され、場所はパス(絶対/相対)で示す。拡張子は種類の名札で、偽装に注意。方式にNTFS/APFS/ext4などがある
- 権限は管理者/rootと一般ユーザーに分かれる。最小権限の原則により普段は弱い権限で作業し、必要時だけUACやsudoで昇格する
- 起動はBIOS/UEFIが機器を点検してからOSを読み込む流れ。機器を使うにはデバイスドライバが要る
練習問題
同僚から「最近ノートPCがすごく重い。アプリをいくつも開いていると、切り替えるだけで数秒固まる」と相談されました。OSの仕組みの観点から、何が起きている可能性が高いか、どう確認すればよいかを説明してください。
解答を見る
メモリ不足によるスワップの多発が疑われます。開いているアプリ(プロセス)が多く、物理メモリが足りなくなると、OSは使っていないデータをストレージへ退避させます。ストレージはメモリより格段に遅いため、切り替えのたびに退避と読み戻しが発生し、数秒固まる原因になります。確認方法は、タスクマネージャー(Windows)やアクティビティモニタ(Mac)を開き、メモリ使用率と、どのプロセスがメモリを多く消費しているかを見ることです。対処は、不要なアプリ(プロセス)を閉じる、それでも足りなければメモリを増設する、といった方向になります。
「業務で使うPCは、普段は管理者アカウントではなく一般ユーザーで使うべき」とよく言われます。その理由を、最小権限の原則とマルウェアの関係を用いて説明してください。
解答を見る
マルウェアは、それを実行したユーザーの権限の範囲でしか動けません。もし管理者権限で作業しているときに誤って不正なプログラムを実行すると、そのプログラムも管理者権限を得て、システム全体の設定変更や他人のファイル破壊、他プログラムへの感染などを自由に行えてしまいます。一方、普段を一般ユーザーで過ごしていれば、万一の被害はそのユーザーの範囲に限定されます。これが「必要最小限の権限だけで作業する」最小権限の原則です。ソフトのインストールなど本当に管理者権限が必要な場面だけ、UAC(Windows)やsudo(Unix系)で一時的に昇格すればよく、常時管理者でいる必要はありません。
次の2つのパスは、それぞれ「絶対パス」「相対パス」のどちらですか。また両者の違いを一言で説明してください。
(A) /home/yuki/documents/report.xlsx
(B) documents/report.xlsx
解答を見る
(A)は絶対パス、(B)は相対パスです。(A)は一番上(/ という根っこ)から書き始めており、どこから見ても常に同じ場所を指します。(B)は「今いるフォルダ」を基準にした書き方で、基準となる現在地が変わると、指すファイルも変わります。違いを一言でいえば、絶対パスは「完全な住所」、相対パスは「現在地からの道順」です。1つ上のフォルダは ../ で表せる点もあわせて覚えておくと、第2部のターミナル操作で役立ちます。