OSとは? パソコンやスマホで何をしているソフトなのか
OS(オペレーティングシステム)は、CPUやメモリ、ストレージなどの部品をまとめて管理する基本のソフトです。たくさんのアプリが、部品を順番とルールを守って安全に分け合えるように取り仕切ります。パソコンのWindows・macOS・Linux、スマホのAndroid・iOSが代表例です。
この記事でわかること
- OSが何をしていて、アプリとどう違うのか
- たくさんのアプリが同時に動くしくみと、メモリの分け方
- 「カーネル」の意味と、電源を入れてからOSが動き出すまで
- アプリがOSごとに違う理由と、アップデートが大事な理由
前提知識: 特にありません。CPUを「プログラムの命令を実行する部品」、メモリを「作業中のデータを置く場所」と知っていると読みやすくなります。
身近なところでは
スマホに「ソフトウェアアップデートがあります」と表示される。パソコンの電源を入れると、ロゴが出てからログインの画面になる。アプリの説明に「Windows 11 対応」と書いてある。こうした場面に出てくるのが「OS」です。
OSは、ふだん意識しないまま毎日使っているソフトです。この記事では、その裏の仕事を1つずつ見ていきます。
OSは「部品」と「アプリ」の間に入るソフト
コンピュータは、CPUやメモリなどの部品と、その上で動くプログラムでできています。手で触れる部品のほうを「ハードウェア」と呼びます。プログラムのほうは「ソフトウェア」です。
ソフトウェアは、大きく2種類に分けられます。メールや写真、ゲームのように、人がしたい作業をするためのものが「アプリ」(アプリケーション)です。一方、アプリが部品を使えるように土台をととのえるのが「OS」です。Operating Systemの略で、日本語では「基本ソフト」とも呼びます。
アプリは、画面に絵を出すときも、ファイルを保存するときも、部品を直接は動かしません。OSに「これをして」と頼み、OSが部品を動かします。このしくみのおかげで、アプリを作る人は部品の細かい違いを気にせずにすみます。
代表的なOSは、パソコンではMicrosoftのWindows、AppleのmacOS、Linuxです。スマホでは、GoogleのAndroidとAppleのiOSです。
炊飯器や車の制御用のコンピュータにも、小さなOSが入っていることがあります。その多くは、決められた時間内に必ず反応することを重視したOSで、リアルタイムOSと呼びます。
OSの中心「カーネル」
OSには、いつもメモリに置かれていて、部品の管理を一手に引き受ける中心部分があります。これを「カーネル」と呼びます。英語で、木の実の「核」や「中心」を表す言葉です。
「OS」という言葉は、広い意味と狭い意味で使われます。広い意味では、カーネルに、ホーム画面や設定の画面など、最初から付いてくるソフトを合わせた全体を指します。狭い意味では、カーネルだけを指します。この記事では主に広い意味で使います。
違うOSどうしが、同じカーネルをもとにしていることもあります。Androidの公式資料によると、Androidのカーネルは、Linuxのカーネルをもとに作られています。また、Appleが公開している説明では、macOSとiOSはどちらもXNUというカーネルを使っています。
仕事① たくさんのアプリを、順番にCPUで動かす
音楽を聞きながらウェブを見て、メールの着信も知らせてもらう。たくさんのアプリが同時に動いているように見えます。しかし、CPUの中で命令を実行する部分(コア)の1つが、ある瞬間に実行できるプログラムは、基本的に1つだけです。
OSは、実行中のプログラムを1つずつ区別して管理しています。この「実行中のプログラム」を「プロセス」と呼びます。1つのアプリが、いくつものプロセスに分かれて動くこともあります。
OSは、1つのコアを、ミリ秒(1,000分の1秒)単位のごく短い時間ずつ、プロセスに交代で使わせます。切り替えがとても速いので、人には全部が同時に動いているように見えます。どのプロセスに、いつ、どれだけ使わせるかを決める仕事を「スケジューリング」と呼びます。
交代するときOSは、それまでのプロセスがどこまで進んだかを保存し、次のプロセスの続きを読み込みます。この入れ替えをコンテキストスイッチと呼びます。保存と読み込みにも少し時間がかかるので、交代を細かくしすぎると無駄が増えます。
実は、多くのプロセスは、キー入力やネットからのデータを待っている時間が大半です。OSは、待っているだけのプロセスにはコアを使わせず、すぐ動けるプロセスに順番を回します。今のCPUはコアを複数持つので、本当に同時に動くプロセスもあります。それでも、プロセスの数はふつうコアの数よりずっと多く、順番の管理は欠かせません。
1つのプロセスの中でも、作業をいくつかの流れに分けて同時に進められます。この流れの1本1本を「スレッド」と呼びます。
仕事② メモリを、アプリごとに分けて貸す
メモリには番地(場所の番号)がついていて、プログラムは番地を指定してデータを読み書きします。もし全部のアプリが同じ番地を自由に使えたら困ります。あるアプリの誤りで、別のアプリのデータが書きかわってしまうからです。
そこでOSは、アプリごとに専用の番地の空間を用意します。どのアプリも、メモリを自分だけで使っているかのように動けます。アプリが使うのは見かけの番地で、それを実際のメモリのどこに置くかはOSが決めます。このしくみを仮想記憶と呼びます。「仮想メモリ」ともいいます。
見かけの番地と実際の場所の対応は、メモリを決まった大きさの区画に分け、区画ごとに決めます。この区画を「ページ」と呼びます。OSはアプリごとに、「見かけの何番のページが、実際のどこにあるか」という対応表を持っています。アプリが番地を使うたびに、CPUがこの表を見て、実際の場所に置きかえます。
メモリが足りなくなったときも、この対応表が役に立ちます。OSは、しばらく使われていないページを、一時的にストレージへ移してメモリを空けます。移したページをアプリが使おうとすると、CPUがいったん止めてOSに知らせます。OSはそのページを読み戻してから、アプリの続きを動かします。このように、ページ単位で管理して出し入れする方式を「ページング」と呼びます。
ただし、ストレージはメモリよりずっと遅いので、出し入れが増えるとコンピュータの動きが重くなります。スマホのOSには、ストレージへ移す代わりに、裏にあるアプリを終了させてメモリを空けるものもあります。くわしくは「メモリとストレージの違いは?」で説明しています。
仕事③ ファイルと機器を扱う
ストレージの中身は、そのままでは0と1の巨大な並びにすぎません。そこに名前のついたファイルを、フォルダに分けて保存できるのは、OSが整理しているからです。ファイルの名前と、ストレージの中の実際の置き場所とを結びつける管理のしくみを「ファイルシステム」と呼びます。
OSは、キーボード、画面、カメラ、プリンターなどの機器も扱います。機器は、メーカーや機種ごとに動かし方の手順が違います。その違いを引き受ける、機器ごとのプログラムをデバイスドライバと呼びます。略して「ドライバ」ともいいます。
新しいプリンターをつないだときに「ドライバをインストール」するのは、OSにその機器の動かし方を教えるためです。ドライバがあれば、アプリはOSに「印刷して」と頼むだけで、どのプリンターにも印刷できます。
仕事④ アプリに勝手なことをさせない
OSが部品を管理していても、アプリが部品を直接いじれたら意味がありません。そこでCPUには、動作のモードを切り替えるしくみがあります。OSのカーネルは、何でもできる特別なモードで動きます。このモードを特権モードと呼びます。「カーネルモード」ともいいます。
アプリは、できることを制限された「ユーザモード」で動きます。このモードで機器を直接操作したり、ほかのアプリのメモリをのぞいたりしようとすると、CPUが止めてOSに知らせます。ふつうOSは、そのアプリを強制的に終了させます。
では、アプリがファイルを読みたいときはどうするのか。アプリは、決められた手順でOSに依頼します。このときCPUは一時的に特権モードに切り替わり、カーネルが依頼の中身を確かめてから実行します。この依頼のしくみをシステムコールと呼びます。2つのモードの違いは「ユーザモードとカーネルモードの違い」で表にしています。
スマホでアプリが初めてカメラや位置情報を使うとき、「許可しますか?」と聞かれます。これもOSの仕事です。OSが利用者の許可を確かめ、許可されたアプリにだけ使わせています。パソコンでも、ログインする人ごとに見られるファイルを分けるなど、OSが使ってよい範囲(権限)を管理しています。
仕事⑤ 画面と操作の窓口
OSは、人がコンピュータを操作するための窓口も用意します。アイコンやウィンドウを、マウスや指で操作する方式を「GUI」(グラフィカル・ユーザー・インターフェース)と呼びます。
文字で命令(コマンド)を打ち込んで操作する方式もあり、主にサーバーの管理などで使われます。どちらの方式でも、裏で働くカーネルは同じです。①〜④は、画面に表れない裏方の仕事です。
電源を入れてからOSが動き出すまで
電源を入れた直後は、メモリは空っぽで、OSもまだストレージの中です。OSが動き出すまでには、小さなプログラムどうしのリレーがあります。ここではパソコンの例を、単純化して説明します。
- ファームウェア: 本体の部品に最初から書き込まれている小さなプログラムです。部品を点検・準備し、ストレージから次の段階を探します。
- ブートローダ: OSを読み込むための小さなプログラムです。カーネルをストレージからメモリに読み込み、実行を引き渡します。
- カーネル: 機器の準備をして、必要なプログラムを順に起動します。最後に、ログインの画面が表示されます。
パソコンのファームウェアは、古くは「BIOS」と呼ばれる方式でした。今の多くのパソコンは、その後継の「UEFI」という規格に沿って作られています。UEFIは、ファームウェアとOSの間の取り決めを定めた規格で、業界団体のUEFI Forumが管理しています。
リレーの各段階で、次に動かすプログラムが、信頼できる作り手のものか、書きかえられていないかを確かめるしくみもあります。問題があれば、そこで起動を止めます。これをセキュアブートと呼びます。悪意のあるプログラムが、OSより先に動き出すのを防ぐためのものです。
アプリがOSごとに違う理由
Windows用のアプリは、そのままではmacOSで動きません。理由の1つは、アプリがOSに頼むときの「頼み方」が、OSごとに違うことです。
OSは、アプリが使える機能と、その呼び出し方を決めて公開しています。この約束ごとをAPIと呼びます。「ウィンドウを開く」「ファイルを保存する」といった頼み方が、WindowsとmacOSでは別々です。
もう1つの理由は、CPUが理解できる命令の種類と表し方の違いです。この決まりごとを「命令セット」と呼びます。命令セットの違うCPUでは、同じOSでもアプリはそのままでは動きません。作り直すか、命令を変換して動かすしくみが必要です。くわしくは「CPUとは?」の命令セットの節で説明しています。
ウェブのサービスがOSを問わずに使えるのは、ブラウザがOSごとの違いを引き受けているからです。
アップデートが大事な理由
OSはとても大きなプログラムなので、どうしても誤りが残ります。その中には、悪意のある人に入り込まれるきっかけになるものがあります。このような弱点を「脆弱性(ぜいじゃくせい)」と呼びます。
OSの開発元は、脆弱性を見つけると、直したプログラムを配ります。これが「セキュリティ更新」です。OSはすべてを管理する立場なので、その脆弱性を悪用されると、被害がコンピュータ全体に及びかねません。
セキュリティ更新は、定期的に配られています。Androidは、修正した脆弱性をまとめたセキュリティ情報を毎月公開しています。Windowsの定例の更新は、米国時間の毎月第2火曜日です(日本時間では翌日)。
一方、古いOSは、いずれ更新が止まります。例えばWindows 10は、2025年10月14日にMicrosoftのサポートが終わりました。更新が止まったOSには、新しく見つかった脆弱性がそのまま残ります。
よくある誤解
誤解: OSとは、画面の見た目(ホーム画面やデスクトップ)のこと
実際は、画面と操作の窓口はOSの仕事の一部にすぎません。中心は、CPUの順番、メモリ、ファイル、機器、権限の管理です。例えばサーバー用のWindowsには、デスクトップの画面を持たない「Server Core」という入れ方があります。Microsoftは、特に必要がなければこちらを勧めています。いつも目にするのが画面なので、OS=見た目と思われやすいのです。
誤解: アプリを開いたままにするほど、いつも全体が遅くなる
実際は、開いたアプリはメモリを使いますが、裏で何もせずに待っているだけなら、CPUの順番はほとんど回りません。メモリに余裕があるうちは、開いている数が多くても、ほとんど遅くなりません。Androidは、次に速く開けるように、使っていないアプリをわざとメモリに残します。メモリが必要になれば、OSが自動で終了させます。遅くなるのは、メモリが足りずにページングが増えたときや、裏のアプリが通信などの仕事を続けているときです。その経験から、数そのものが原因と思われやすいのです。
誤解: AndroidはLinuxとは関係ない
実際は、Androidのカーネルは、Linuxのカーネルをもとに、Android向けの変更を加えたものです。一方で、その上のアプリのしくみや画面は、パソコン用のLinuxとは大きく違います。パソコン用のLinuxのアプリは、そのままではAndroidで動きません。「Linuxかどうか」は、カーネルの話か、OS全体の話かで答えが変わります。
数字で見る
| 項目 | 時期 | メモ |
|---|---|---|
| Windows 1.0の発売 | 1985年11月 | MS-DOSというOSに重ねて使うソフトとして始まった |
| Linuxの最初の公開 | 1991年9月 | バージョン0.01。作者はフィンランドの大学生だったリーナス・トーバルズ |
| Linuxのカーネル1.0 | 1994年3月 | 最初の公開から約2年半 |
| Androidのセキュリティ情報 | 毎月 | 2026年時点。修正した脆弱性の一覧 |
| Windows 10のサポート終了 | 2025年10月14日 | 以後、通常のセキュリティ更新は止まった |
今使われているOSの多くは、何十年も改良が続けられてきたものです。Windowsは、MS-DOSの上で動くソフトから始まり、のちに中身を作り直しながら続いてきました。Linuxは、1人の学生が始めたものが、多くの人の手で育てられました。
もっと詳しく学ぶ
- 違いを表で見る: プロセスとスレッドの違い、ユーザモードとカーネルモードの違い
- 数字で試す: CPUスケジューリングの計算ツール(順番の決め方で待ち時間がどう変わるか)、ページ置換アルゴリズムの計算ツール(どのページをストレージへ移すか)
- 次の一歩の用語: ページフォルト、デマンドページング、ハイパーバイザ
- 土台から読む: 「CPUとは?」、「メモリとストレージの違いは?」