手を動かしながらOSのしくみを理解しよう

OSとは何ですか?

OS(オペレーティングシステム)は、プログラマの方はもちろんのこと、コンピュータを用いるすべての人々の仕事に、もはや欠かすことのできないソフトウェアです。WindowsやMac、もしかしたらLinux。⁠OSは何ですか?」という問いに対しては、自信と時には少しのうんちくをもって答えることができる人も少なくないかと思います。

しかし「OSとは何ですか?」だと、どうでしょう。⁠コンピュータを動かす最も基本的なソフトウェア」というありきたりな言葉しか出てこないとしたならば、それこそ「私は自分のコンピュータを動かしている最も基本的な部分を、実は何も知らないのだ」ということに、気付かされる瞬間ではないでしょうか。

OSを知る コンピュータを知る

それでは「OSとは何か」を学ぶことは、どのような意味を持っているのでしょう。

例えばOSの主な役割には、⁠リソースの管理⁠⁠、⁠プロセスの管理⁠⁠、そして「インターフェイスの管理」があります。ここでいう「インターフェイス」「、ユーザーインターフェイス」にとどまりません(OSによる操作感の違いに苦しめられた経験のある方は、まずこちらを思い浮かべるのではないでしょうか⁠⁠。キーボードなどの周辺機器を制御するための「ソフトウェア/ハードウェアインターフェイス」を管理しているのもまたOSなのです。するとOSの正体を捉えようとすれば、ハードウェアの基礎もまた学ぶ必要が出てきます。

確かにOSの果たしている機能は、⁠最も基本的なソフトウェア」そのものと言えるでしょう。しかしそれがゆえに、踏み込んでそのしくみを知ることは、ハードウェア・ソフトウェアの垣根を超えたコンピュータそのものへの深い理解へと繋がっていきます。

作って理解するOS

このようにして、⁠OSとは何か」を体系的に明らかにしようとする本書は、OSの「入門書」にもかかわらず、700頁を超えるボリューム、濃密な記述と情報量となりました。しかし「作って理解する」の名のとおり、マルチタスクなどの機能を自分の手で実装しながら理解を深めてゆく感覚は、景色を楽しみながら険しい山を登るに近いものがあるのではないでしょうか。0と1のみの世界から始まった本書は、ハードウェアの基礎、メモリ管理やファイルシステムのしくみ、そしてx86系PCのアーキテクチャへと、一つ一つ確かな礎を築いてゆきます。そして終盤にはその結晶として、図1のようにマルチタスクをこなしながら美しいバラ曲線を描くOSの実装に至るのです。

図1 美しいバラ曲線を描OSの実装
図1 美しいバラ曲線を描OSの実装

本書を読み遂げたあとには、コンピュータを使う私たちをいつも陰ながら支えてくれているOSの見え方が少し変わってくる、かもしれません。