1-1OSの役割とシステムソフトウェア
開店前のこむぎ堂で、レジ横のパソコンが青い画面に「このOSのサポートは来月で終了します」と出しました。7年使ってきた一台で、予約の受付も売上の記録も、全部この中にあります。店長は買い替えを決め、家電店のチラシを広げました。ところが並んでいるのは、ノートパソコン、タブレット、Chromebookと書かれた細身の機械で、どれも「入っているOS」が違います。数日後に届いた新しいノートパソコンで、ミナトが予約用のソフトを入れようとすると、画面に「管理者の許可が必要です」と出て先へ進めません。店長は首をかしげます。「パソコンを買ったのはうちなのに、誰の許可が要るんだろう」
サポートが終わるのは、パソコンの箱ではなくOSのほうです。オペレーティングシステム(OS、基本ソフトウェア)は、CPU・主記憶・ディスク・キーボード・プリンタといったハードウェアと、その上で動くソフトウェアの間に立ち、資源を管理して使いやすい形で差し出すソフトウェアです。予約のソフトがファイルを保存するとき、ディスクのどの場所に書くかを決めているのはOSです。売上の表を印刷するとき、プリンタの機種ごとの違いを吸収しているのもOSです。
OSの仕事は、大きく分けると次のようになります。利用者を登録し、誰に何を許すかを決めるユーザ管理。ファイルを名前で保存し、取り出せるようにするファイル管理。キーボードやプリンタとのやり取りを受け持つ入出力管理。そして、CPUの時間や主記憶の場所を、同時に動くプログラムに配り分ける資源管理です。予約ソフトも表計算ソフトも、こうした仕事をOSに頼んで動いています。だからOSのサポートが終わり、弱点の修正が届かなくなると、その上のソフトを全部まとめて危ない場所に置くことになります。
ここから基本情報!ソフトウェアの体系
ソフトウェアは、業務や作業そのものを行う応用ソフトウェア(アプリケーションソフトウェア)と、コンピュータそのものを動かすためのソフトウェアに分けられます。後者をまとめてシステムソフトウェアと呼びます。中心にあるのはOSで、プログラムを機械語に翻訳する言語プロセッサや、OSと応用ソフトウェアの間に立つミドルウェアもここに入ります。
OSに付いてきて、システムの運用や開発を手伝う補助のプログラムをサービスプログラムといいます。文字を書き換えるテキストエディタ、データを並べ替えるソートのプログラム、ディスクの中身を調べるプログラムなどがその例です。このうち、ファイルの複写・並べ替え(ソート)・併合(マージ)など、データを扱う定型の作業を受け持つものをデータ管理ユーティリティと呼ぶことがあります。いまのシラバスには用語例として載っていない語で、指す範囲は資料によって少し揺れます。
基本情報の範囲ここまで
OSの機能を補って、使い勝手をよくする小さなソフトウェアはユーティリティソフトウェア(ユーティリティ)と呼ばれます。ファイルをまとめて小さくする圧縮のソフト、ディスクの空き容量を整理するソフト、ウイルスを見つけて取り除く対策ソフトなどです。OSに初めから入っているものもあれば、あとから別に入れるものもあります。古いパソコンからデータを移すときに店長が使うことになる「引っ越し用のソフト」も、この仲間です。
1-2パソコンとスマートフォンのOS
家電店の売り場で、店長はタブレットを手に取りました。「これでも予約の受付はできるのかな」。ミナトはスマートフォンで予約ソフトの案内を調べます。「対応OS」の欄には、知っている名前と知らない名前が並んでいました。
パソコンのOSでいちばん多く使われているのは、Microsoft社のWindowsです。多くのメーカーのパソコンに入っていて、店や会社の業務ソフトの多くがWindowsで動くように作られています。Apple社が自社のパソコン(Mac)のために作っているのがMac OSで、いまはmacOSという名前です。Google社のChrome OS(ChromeOSとも書きます)は、Webブラウザで使うサービスを中心に組み立てた軽いOSで、Chromebookと呼ばれるノートパソコンに入っています。売り場の細身の機械がこれでした。
スマートフォンとタブレットでは、二つのOSがほとんどを占めています。Apple社がiPhoneのために作っているiOSと、Google社が中心になって開発しているAndroidです。iOSはApple社の端末にしか入りませんが、Androidは中身が公開されているので、多くのメーカーが自社の端末に載せています。かつてはMicrosoft社のWindows Phoneもありましたが、Windows Phone 8.1は2017年7月に、後を継いだWindows 10 Mobileも2019年12月にサポートを終えました。
ここから基本情報!OSの分け方
基本情報のシラバスでは、これらを使う機械で分けて呼びます。Windows・macOS・Chrome OS・Linuxのように、パソコンで動くOSをまとめてPC用OS、iOSやAndroidのように、スマートフォンやタブレットのために作られたOSをモバイル端末用OSといいます。モバイル端末用OSは、電池を長くもたせること、指で触って操作すること、アプリを決まった配布の場所から入れることを前提に作られています。
基本情報の範囲ここまで
OSが違う機械の間でデータをやり取りすると、思わぬ食い違いが起きます。ファイル名に使える文字がOSによって違う、文字コードや改行の表し方が違うので文字化けする、片方のOSにしか無いソフトで作ったファイルは開けない、といったことです。店長が古いパソコンの予約名簿をタブレットで開こうとすれば、こうした壁に当たるかもしれません。予約ソフトの「対応OS」の欄にWindowsしか書かれていなかったので、店長はタブレットをあきらめ、Windowsのノートパソコンを選びました。
1-3UNIXと商用UNIX
予約サイトを預けている会社から、メンテナンスの知らせが届きました。「サーバのOSを更新するため、深夜2時から30分止まります」。ミナトは首をひねります。「お店のパソコンと同じWindowsなのかな」。相棒の返事は「たぶん違う。サーバではUNIXの流れをくむOSがよく使われているよ」でした。
UNIXは、1970年前後にアメリカのAT&Tベル研究所で生まれたOSです。のちに大部分がC言語で書き直されたので、別の種類のコンピュータへ移しやすくなりました。何人もの利用者が同時にログインし、いくつものプログラムを同時に動かせる作りで、ネットワークとの相性もよく、大学や研究所から企業のサーバへ広まりました。UNIXそのものは今は少なくなりましたが、考え方を受け継いだOSは多く、Linuxや、Apple社のmacOSもその流れにあります。
ここから基本情報!コンピュータメーカーのUNIX
UNIXは、コンピュータのメーカーが自社の機械向けに手を加えて売るようになり、いくつもの商用UNIXに分かれました。シラバスに用語例としては載っていませんが、名前を見て「UNIXの仲間だ」と分かるようにしておくと、問題文で迷いません。
| 名前 | 開発した会社 | 特徴 |
|---|---|---|
| AIX | IBM | IBMのサーバ向け。名前はAdvanced Interactive eXecutiveの略 |
| HP-UX | Hewlett-Packard(HP) | HPのサーバ向け |
| IRIX | シリコングラフィックス(SGI) | 3次元のグラフィックスを扱うワークステーションで使われた |
| SunOS | サン・マイクロシステムズ | 同社の初期のUNIX。のちにSolarisへ引き継がれた |
| Solaris | サン・マイクロシステムズ(買収後はOracle) | SunOSの後継。サーバで広く使われた |
| UnixWare | NovellとAT&T系のUSLの合弁会社(Univel)が始め、のちにSCOへ | Intel系のCPUを積んだPCサーバ向け |
AIX・HP-UX・IRIX・UnixWareのように、名前にUNIXを思わせるつづりを含むものが多く、見分ける手がかりになります。いまのサーバでは、商用UNIXの多くがLinuxに置き換わっています。
基本情報の範囲ここまで
予約サイトの会社に問い合わせると、サーバのOSはLinuxだという返事でした。店のパソコンとサーバでOSが違っていても、ブラウザから予約の画面を開くぶんには何の問題もありません。OSの違いが表に出ないように、通信の決まりごとがそろえてあるからです。その決まりごとは、この章の後半で出てきます。
1-4用途で選ぶOS
厨房のオーブンが、設定した温度に届いたところで「ピッ」と鳴りました。パネルには小さな表示と、数えるほどのボタンしかありません。ミナトはふと思います。「このオーブンにも、OSは入っているのかな」
オーブン、冷蔵庫、レジ、自動車のように、決まった機械に組み込まれて、その機械を動かすためだけに働くソフトウェアを組込みソフトウェアといいます。パソコンのソフトのように利用者が入れ替えることはほとんどなく、限られたメモリと処理能力で、何年も止まらずに動くことが求められます。オーブンなら、温度のセンサの値を読み、ヒータを入れたり切ったりする仕事を、決まった時間の中で確実にこなさなければなりません。こうした「決まった時間内に必ず応える」ことを重んじるOSはリアルタイムOSと呼ばれ、組込み機器でよく使われます。オーブンに入っているのが本格的なOSか、それとも小さな制御のプログラムだけかは、機械によって違います。
ここから基本情報!開かれたOS・守りの固いOS・クラウドのOS
かつての大型コンピュータでは、メーカーごとに独自のOSがあり、ある会社の機械で動くプログラムは、別の会社の機械では動きませんでした。これに対し、公開された標準の仕様に従って作られ、特定のメーカーの機械に縛られないOSをオープンOSといいます。UNIX系のOSが共通の仕様(POSIXなど)にそろえてきたことで、プログラムを機械から機械へ移しやすくなりました。
ふつうのOSでは、ファイルの持ち主が自分の判断で読み書きの許可を変えられます。そのぶん、管理者の権限を一度乗っ取られると、何でもできてしまいます。そこで、管理者が決めた方針に沿ってすべてのアクセスを強制的に制限し(強制アクセス制御)、プログラムにも必要最小限の権限しか与えないようにして、守りを固めたOSをセキュアOSと呼びます。Linuxに組み込むSELinuxやTOMOYO Linuxが例です。
1台の物理的なコンピュータの上に、ソフトウェアで何台ものコンピュータを作り出したものがVM(Virtual Machine:仮想マシン)です。仮想マシンの上ではOSがそのまま動くので、1台のサーバを何社分にも分けて貸すことができます。クラウドのサービスは、この仕組みを大きな規模で使っています。数多くのサーバの上で仮想マシンを作ったり消したり、CPUや記憶装置を利用者に割り当てたりする基盤として働くソフトウェアをクラウドコンピューティング用OSと呼びます。1台のコンピュータを管理するOSの考え方を、データセンタ全体に広げたものと考えると分かりやすいでしょう。
基本情報の範囲ここまで
こむぎ堂の中にも、目的の違うOSが何種類も動いています。レジ横のWindows、ミナトのスマートフォンのAndroid、予約サイトのサーバのLinux、そしてオーブンの中の小さな制御のソフトウェアです。どれを選ぶかは、何をする機械なのかで決まります。
1-5カーネルと割込み
新しいパソコンでラベルのプリンタを使おうと、ミナトはUSBのケーブルを差し込みました。数秒後、画面の隅に「デバイスを設定しています」と出て、やがて「準備ができました」に変わります。パソコンを再起動したわけでもないのに、OSはどうやってプリンタが来たことに気づいたのでしょうか。
OSのうち、いつも主記憶にいて、CPUや主記憶、入出力装置を直接動かしている中心の部分をカーネルといいます。カーネルの外側には、利用者の指示を受け取る部分や、さまざまな補助のプログラムがあり、そのさらに上で予約ソフトのような応用ソフトウェアが動きます。応用ソフトウェアは、ハードウェアに直接触れることはできず、必要なことはカーネルに頼みます。
ここから基本情報!カーネルの作りと実行モード
応用ソフトウェアがハードウェアに直接触れられないのは、CPUそのものに二つの動き方が用意されているからです。どの命令も実行でき、ハードウェアや主記憶のどこにでも手が届く特権の状態をカーネルモード(スーパーバイザーモード)といい、カーネルはこの状態で動きます。一方、入出力の命令などが禁じられ、決められた範囲の主記憶にしか触れられない状態をユーザーモードといい、応用ソフトウェアはこちらで動きます。予約ソフトに不具合があっても、ユーザーモードの中で止まるので、ほかのプログラムやOS全体を道連れにしにくくなります。図の門番は、この境目を表しています。
カーネルにどこまでの仕事を持たせるかには、二つの考え方があります。プロセスの管理、主記憶の管理、ファイルの管理、装置の制御まで、OSの主な機能を一つの大きなプログラムとしてカーネルに収めるのがモノリシックカーネルです。機能どうしが直接呼び合えるので速く動きますが、どこか一か所の不具合がカーネル全体を止めることがあります。Linuxはこちらの方式です。これに対し、カーネルには最低限の仕事(プロセスの切り替えや、プロセスどうしのやり取りなど)だけを残し、ファイルの管理や装置の制御はカーネルの外のプログラムとして動かすのがマイクロカーネルです。機能ごとに差し替えやすく、一部が止まっても全体に広がりにくい代わりに、機能どうしのやり取りが増えるぶん遅くなりがちです。
カーネルの大事な仕事の一つがプロセス管理です。プロセスとは実行中のプログラムのことで、OSはプロセスを作り、CPUを使う順番を決め、終わったら片づけます。予約ソフト・ラベル印刷・売上の集計が同時に動いているように見えるのは、OSがCPUを細かく切って順番に渡しているからです(くわしくは次の章で扱います)。また、システムが毎日きちんと動き続けるように、起動と終了、利用者の登録、動きの監視、バックアップといった仕事を受け持つことを運用管理といい、OSにはそれを助ける機能がそろっています。
基本情報の範囲ここまで
プリンタやスキャナのように、機種ごとに動かし方の違う装置を、OSが一つずつ覚えておくことはできません。そこで、装置ごとの細かい操作を引き受け、OSからの「印刷して」という共通の頼みを、その機種が分かる命令に置き換えるソフトウェアを用意します。これをデバイスドライバ(ドライバ)といいます。ミナトがラベルのプリンタをつないだとき「デバイスを設定しています」と出たのは、OSがそのプリンタに合うドライバを探して組み込んでいたからです。ドライバが見つからない装置は、つないでも動きません。
ここから基本情報!割込みとホットプラグ
OSがプリンタの到着に気づけたのは、割込みという仕組みがあるからです。割込みとは、CPUが実行している処理を一時止めて、急いで対応すべき別の処理に切り替え、それが済んだら元の処理に戻る仕組みです。装置がつながれた、入出力が終わった、決めた時間がたった、といった出来事が起きると、装置はCPUに合図を送ります。CPUは、いまの処理の続きを覚えておいてから、その合図に応じるOSの処理を動かします。
割込みは、どこで起きたかで分けられます。CPUの外の出来事による外部割込みには、入出力の完了を知らせる入出力割込み、一定の時間ごとに起きるタイマ割込み、電源の異常などがあります。実行中のプログラムが原因で起きる内部割込みには、0で割った、許されない主記憶の場所に触れた、といった例外と、プログラムが自分からOSの機能を呼び出すスーパバイザコール(SVC)があります。割込みが無ければ、CPUは「プリンタはつながったか」「印刷は終わったか」を何度も見に行かなければならず、そのあいだ本来の仕事が進みません。
USBのように、電源を入れたまま装置を抜き差しできる仕組みをホットプラグといいます。装置が差し込まれると割込みでOSに知らされ、OSが合うドライバを組み込んで使えるようにします。サーバでは、動かしたままディスクや電源装置を交換できるものもあります。ただし、書き込みの途中で抜くとデータが読めなくなることがあるので、OSに「取り外します」と伝えてから抜くのが安全です。
基本情報の範囲ここまで
ラベルのプリンタは無事に動き、ミナトは試しに「くるみパン 280円」のラベルを1枚刷りました。プリンタをつないでから印刷できるまで、ミナトがしたのはケーブルを差すことだけで、残りはOSがやっていました。
1-6起動の仕組み
朝、店長がノートパソコンの電源ボタンを押しました。メーカーのロゴが出て、くるくる回る印が出て、30秒ほどでやっとログインの画面になります。「レジは押せばすぐ開くのに、パソコンはどうして待たせるんだろう」
電源を入れた直後の主記憶は空っぽで、OSはまだディスクの中にあります。OSを主記憶に読み込むにはプログラムが要りますが、そのプログラムを読み込むOSはまだ動いていません。この「自分で自分を立ち上げる」問題を、パソコンは何段階かに分けて解いています。最初に動くのは、マザーボードの不揮発性のメモリに書き込まれた小さなプログラム(BIOSやUEFIと呼ばれるファームウェア)です。これが装置を点検し、ディスクから次のプログラムを読み込み、そのプログラムがOSの本体を読み込みます。待たされる30秒の中身は、この受け渡しと、OSの準備です。
ここから基本情報!ブートストラップとさまざまな起動
電源を入れてから、小さなプログラムが次のプログラムを読み込む受け渡しを重ねて、OSが使える状態になるまでの一連の処理をブートストラップといいます。ブーツの履き口に付いたつまみ(ブートストラップ)を自分で引いて自分を持ち上げる、というたとえから来た名前で、「ブート」や「起動」とも呼びます。大型のコンピュータでは、IPL(Initial Program Load)と呼ぶこともあります。
OSを読み込む先は、手元のディスクとは限りません。ディスクを使わず、ネットワークにつながったサーバからOSを受け取って起動する方式をネットワークブートといい、PXE(Preboot eXecution Environment)という仕組みがよく使われます。学校のパソコン室のように、何十台ものパソコンを同じ状態で起動させたいときに便利です。
1台のコンピュータに複数のOSを入れておき、起動のたびにどれを使うかを選べるようにする仕組みをマルチブートといいます。たとえばWindowsとLinuxを両方入れておくと、起動の途中で選択の画面が出ます。選ばれなかったOSは動かないので、二つのOSを同時に使いたいなら、前の節で出た仮想マシンを使います。
組込み機器では、ディスクの代わりにフラッシュメモリにプログラムを置くことが多く、起動のときにそこからOSやファームウェアを読み込むプログラムをフラッシュブートローダと呼びます。機器によっては、ファームウェアを新しい版に書き換える作業も、このプログラムが受け持ちます。
基本情報の範囲ここまで
レジがすぐ開くのは、決まった仕事しかしない小さなプログラムを、毎回同じ手順で読み込めば済むからです。パソコンは、どの装置がつながっているかを確かめ、いろいろなソフトが動けるように準備するぶん、時間がかかります。店長はこの日から、開店の15分前にパソコンの電源を入れることにしました。
1-7ネットワーク制御
新しいパソコンを店のWi-Fiにつなぐと、すぐに予約サイトの管理画面が開きました。サーバはLinuxで、店のパソコンはWindowsです。ミナトは相棒にたずねます。「OSが違うのに、どうして話が通じるの」
話が通じるのは、送る側と受ける側が、同じ取り決めに従ってデータをやり取りしているからです。データをどんな形に区切るか、宛先をどう書くか、届いたことをどう知らせるか、といった通信の手順と形式の取り決めを通信プロトコル(プロトコル)といいます。電話で「もしもし」と言ってから用件を話し、「失礼します」で切るのと同じように、コンピュータどうしにも決まった段取りがあります。OSが違っても、同じプロトコルを使えば通信できます。
プロトコルは、役割ごとにいくつもの階層に分けて決められています。インターネットで標準として使われているプロトコルの集まりをTCP/IPといい、中心になるTCP(Transmission Control Protocol)とIP(Internet Protocol)の名前をとって呼びます。一方、国際標準化機構(ISO)が、通信の機能を物理層からアプリケーション層までの7つの階層に分けて整理したのがOSI基本参照モデル(OSI参照モデル)です。実際のインターネットはTCP/IPで動いていますが、通信の機能を説明するときの物差しとしてOSI基本参照モデルの層の名前がよく使われます。くわしくはネットワークの単元で扱います。
ここから基本情報!OSの中の通信の係
予約ソフトやブラウザは、プロトコルの細かい手順を自分で実行しているわけではありません。OSの中のネットワーク制御の部分が、データを決まった大きさに区切り、宛先や順番の情報を付け、届かなかった分を送り直し、受け取った分を元の順に並べ直します。このように、通信プロトコルの手順どおりにデータの送受信を進める働きをプロトコル制御といいます。OSは応用ソフトウェアに通信の窓口(ソケットと呼ばれるものが代表です)を用意していて、応用ソフトウェアは窓口に「この相手にこのデータを送って」と頼むだけで済みます。
基本情報の範囲ここまで
ネットワークは、つなぐ範囲によっても呼び名が変わります。店の中、建物の中、学校の中のように、限られた範囲の機器を結ぶネットワークをLAN(Local Area Network)といい、利用者が自分で機器をそろえて作ります。本店と支店、店とデータセンタのように、離れた場所どうしを、通信事業者の回線を借りて結ぶネットワークをWAN(Wide Area Network)といいます。レジ横のパソコンと厨房のタブレットは店のLANでつながり、予約サイトのサーバまでは、LANを出て通信事業者の回線を通っていきます。
1-8ユーザ管理
ミナトは、止まったままの「管理者の許可が必要です」の画面を店長に見せました。店長がパソコンを最初に設定したときに作った名前とパスワードを入れると、予約ソフトはあっさり入りました。「許可を出すのは、わたしだったのか」
OSは、パソコンを使う人を一人ずつ登録して区別しています。そして利用者ごとに、デスクトップの壁紙、よく使うフォルダ、ブラウザのお気に入り、メールの設定といった環境や、使ってよい範囲の情報をまとめて持っています。この利用者ごとの設定や権限の情報のまとまりをプロファイルといいます。店長とミナトが同じパソコンを使っても、ログインし直せばそれぞれの画面に切り替わるのは、OSが利用者ごとにプロファイルを分けているからです。
利用者を分けるのは、便利さのためだけではありません。誰が何をしてよいかを決めておけば、うっかり大事な設定を変えたり、怪しいソフトを入れたりする失敗を減らせます。新しいパソコンで予約ソフトを入れられなかったのは、ミナトが「ソフトを入れてよい人」として登録されていなかったからでした。
ここから基本情報!アカウントと権限
OSに利用者を登録したもの、つまり利用者を見分けるためのID(ユーザ名)とパスワード、それにひもづく設定をまとめたものをユーザーアカウントといいます。アカウントごとに、システムのどの機能や資源を、どの範囲まで使ってよいかが決められます。この使ってよいという権限をシステム利用権といいます。使えるプログラム、読み書きできるファイル、ログインできる時間帯などが、その範囲になります。
アカウントには、権限の大きさで種類があります。ソフトウェアのインストール、ほかの利用者の追加、OSの設定の変更など、システム全体に関わる操作をするために要る権限を管理者権限といいます。その中でも、システムに対してあらゆる操作が許された特別な利用者をスーパーユーザーと呼びます。UNIXやLinuxでは、スーパーユーザーのアカウント名はrootと決まっています。Windowsでこれに当たる組み込みのアカウントの名前はAdministratorです。どれも強い力を持つので、ふだんの作業は権限の小さいアカウントで行い、必要なときだけ管理者の権限を使うのが基本です。こむぎ堂の新しいパソコンが、ソフトを入れる瞬間にだけ店長のパスワードを求めたのは、このやり方に沿っています。
反対に、一時的に来た人がパソコンを少しだけ使えるように用意する、権限をごく小さくしたアカウントをゲスト(ゲストアカウント)といいます。パスワードなしで入れる作りのことが多いので、使わないなら無効にしておきます。なお、仮想化の話で「ゲスト」と出てきたら、それは仮想マシンの上で動くOS(ゲストOS)のことで、ここでのゲストとは別の意味です。
店に2、3台のパソコンしかなければ、1台ずつアカウントを作っても困りません。しかし何百人もが働く会社で、パソコンやサーバのそれぞれにアカウントを作ると、入社や退職のたびに全部を直すことになります。そこで、利用者・パソコン・プリンタなどの情報を一か所にまとめて管理し、ネットワーク上の機器が問い合わせて認証や検索に使えるようにする仕組みをディレクトリサービスといいます。Microsoft社のActive Directoryが代表例です。ディレクトリサービスに情報を問い合わせたり書き込んだりするためのプロトコルがLDAP(Lightweight Directory Access Protocol)です。
基本情報の範囲ここまで
店長は、ミナトにも自分の名前で入れる場所を用意することにしました。予約の受付や売上の入力はミナトが自分の名前でログインして行い、ソフトを入れるような大きな操作のときだけ、店長が許可を出します。
1-9セキュリティ制御と障害管理
土曜の閉店後、売上の表の数字が一つ書き換わっているのに店長が気づきました。ミナトに聞いても覚えがありません。相棒は言います。「パソコンの記録を見れば、いつ、誰の名前で、何をしたかが分かるかもしれない」
OSには、利用者を確かめてアクセスを制限するだけでなく、何が起きたかを記録し、後から確かめられるようにする機能もあります。さらに、装置が故障したり、プログラムが止まったりしたときに、それを見つけて立て直す機能もあります。守る仕組みと、障害から立て直す仕組みの二つです。
ここから基本情報!記録して、たどれるようにする
システムで起きた出来事、たとえばログイン、ファイルの書き換え、エラー、装置の接続などを、日時とともに順に書き残す機能をロギング機能といいます。書き残したものがログです。ログのうち、誰がどの資源にどんな操作をしたかを、後で監査に使えるように記録し、確かめられるようにする機能をオーディット機能(監査機能)といいます。
こうした記録があれば、操作をした利用者を後から突き止められます。ある操作について、誰がそれをしたのかを後から追跡できる性質をアカウンタビリティといいます。情報セキュリティの用語では責任追跡性と訳されます(一般の言葉としての「説明責任」とは使い方が少し違います)。一つのアカウントを何人かで使い回すと、記録に残る名前が同じになり、誰の操作かが分からなくなります。利用者ごとにアカウントを分けることが、アカウンタビリティの前提です。
セキュアOSでは、どのプロセスも強制アクセス制御の方針に縛られます。ただ、ログの書き出しやパスワードの変更のように、方針のままでは行えない操作を、システムの側で引き受けなければならない場面があります。このように、方針を破らないと信頼されたうえで、ふつうのプロセスには許されない操作を特別に認められたプロセスを信頼プロセスと呼びます。信頼プロセスが乗っ取られると守りがそこで崩れるので、数は少なく、中身は検証しやすく作ります。
基本情報の範囲ここまで
守っていても、システムに障害は起きます。OSには、障害を見つけ、原因を調べ、記録を残し、故障した部分を切り離して動ける形に組み直し、処理をやり直す(リスタートする)機能がそろっています。
ここから基本情報!障害の二つの出どころ
障害は、原因の場所で二つに分けられます。ディスクの故障、主記憶の誤り、電源や冷却ファンの故障など、装置そのものが原因になるものをハードウェア障害といいます。部品の交換や予備の装置への切り替えで立て直します。プログラムの誤り(バグ)や設定の誤り、ソフトウェアどうしの食い違いなど、ソフトウェアが原因になるものをソフトウェア障害といいます。こちらは、修正版を入れる、設定を戻す、プログラムを再起動するといった方法で立て直します。同じ「パソコンが固まった」でも、どちらの障害かで打つ手が違うので、OSはログに障害の種類と状況を残します。
基本情報の範囲ここまで
記録をたどると、書き換えは古いパソコンでの操作でした。古いパソコンには「店」という名前のアカウントが一つしかなく、誰が入力したのかは、記録からは分かりませんでした。店長は新しいパソコンに、管理者の権限を持つ自分のアカウントと、ミナト用のふつうのアカウントを作り、ゲストのアカウントは使えないようにしました。サポートが終わる古いパソコンは、データを移し終えてから電源を落とします。
OSのサポートが終わると聞いた日、店長が考えていたのは「どの機械を買うか」だけでした。実際に決めなければならなかったのは、その上でどのソフトが動くか(OSの種類)、そして誰に何を許すか(ユーザ管理)のほうでした。OSは、ハードウェアの資源を配り分けるだけでなく、誰がそれを使ってよいかを決め、何が起きたかを覚えておく係でもあります。
新しいパソコンは、何事もなく予約の受付を始めました。ただ、ミナトには気になることが一つ残っています。予約の取り込みとラベルの印刷と売上の集計を同時に動かしても、CPUは1つしかないのに、なぜどれも止まらずに進むのでしょうか。