『Windowsはなぜ動くのか』の感想

はいどうもニートです。
職歴が未だにありません。
そろそろ縄を買おうかなと思います。

あっと!
これは彼女の緊縛用の縄です。
勘違いしてはいけませんよ。

注*ほんとにただのジョークです。真に受けないでください。

例によって読んだのは古い版

ニートジョークはさておき、「我ニート、ゆえに金なし」とはよく言ったものです。
今回も、ほぼ無料で手に入れることができた初版の『Windowsはなぜ動くのか』を読みました。
初版というところがミソです。古いです。めっちゃ古いです。
どれくらい古いかと言えば、出版されたのが10年ほど前ですから、本書の中で「最新のOS」と言えば「WindowsXP」を指すくらい古いです。
なので参考にならない部分も多々あることは承知しつつ、一応完読しました。

最初の方はめっちゃわかりやすい

システムコールがどうのとか、Windowsってなんやねんという歴史的な説明はめっちゃくちゃわかりやすいです。
普段何気なく使っている僕のようななんちゃってパソコンユーザーは「へええええ」と感動すること請け合いです。
はい、この部分だけでも読む価値があったと思います。

マルチウィンドウの仕組みはゲーム制作でも使えそう

Windowsの基本的なシステムの一つである『マルチウィンドウ』が特に興味深いと思いました。
これはゲーム制作にも応用できるんじゃないかなー。
というか、もろにC#で言うイベントですよねこれ。
「各パーツは小さなウィンドウ」というのも目からうろこでした。初めて知りましたよこんなこと。
でも確かに、言われてみれば小さなウィンドウを合わせて大きなウィンドウを作るほうが便利ですね。
なるほどなあ。

よくわからん部分も数多くあった

GDTRとかLDTRとか言われてもさっぱりですね。
「難しかった&興味が沸かなかった&そもそも本が古い」の三拍子が揃っていたので、このへんは適当に流し読みしました。
最終章のネットワーク関連の場所も、一応はサラッと読みましたが、深く理解できるまでは咀嚼せず飛ばしました。
いやだって興味ないんだもん……。

収穫はあり

「興味がないだの難しいだのこれだからニートは!」とお思いになるかもしれませんが、やる気の出ないものに時間を割くほど人生は長くないのです(おっ、今いいこと言った? でも既視感バリバリだね)。
それでも僕がこの本を読んだ意味は大いにあります。
例えばUSB。
今までUSBとか何気なく使ってましたけど、こういうものがどういった技術に支えられているのか、今回初めて知りました。
また、OSを支える技術の理念をゲーム制作に転用して何かできないか? ということを考えるきっかけも与えてくれました(おおげさに書いてますが、要はゲーム内でマルチウィンドウをするとかそんなレベルのことです)。
まあ、そういうわけで、飛ばした部分は多かったけど、ボチボチ収穫はあったよーということで。

次回読みたい本

『C#プログラミング入門』を読もうかなと考えていたのですが、ここらで一つJavaScriptに戻るのもありかなあと思っています。
というのも、今の僕はプログラミング歴5ヶ月目くらいですから、右も左もわからないころに読んだ『JavaScript本格入門』もそろそろより深い理解ができるんじゃないかなーと期待しているわけです。
この試みが成功したなら、通称サイ本へ挑戦してみてもいいのでは……? なんて思い巡らせて一人ニヤニヤしています。

が、実は今、ネットの記事で読みたいものが色々と溜まっていまして、それらを消化するのが先かなあ。
興味ある人はいないでしょうが、一応メモがてらそれらの記事のリンクを貼っておきます。

C#関連

Taskを極めろ!async/await完全攻略
C# Task async, await の使い方
ThreadじゃなくTaskを使おうか?
できる!C#で非同期処理(Taskとasync-await)
[雑記] スレッド プールとタスク
[雑記] 多重継承できない理由

JavaScript関連

JavaScript Event Listeners
JavaScriptでの関数の特徴や注意点

タスクかスレッドか?

C#ではスレッドを使うよりもタスクを使って非同期処理をするのがいいという感じのようですが(歴史的にスレッド→タスクの順番?)、『Windowはなぜ動くのか』の時代(つまり10年前)では、「タスクでは区切りが大きすぎるから、スレッドごとにホニャララする」みたいなことが書かれていました
今はもうPCの性能が上がって、スレッドよりもタスクって感じなのかなあ。
その辺も詳しく知りたいなあと思いました。まる。

フォローする