エピローグ「読み終えた後で」

 さて、というわけで、0日目〜31日目までの全32日分をすべて読み終えたこととなったが、実は本音を言うと、途中何度かあきらめそうにもなったし、全然わからねーと投げやりにもなった。楽しかったけど、同時に辛かったことも事実だ。しかし、なんとかかんとか、ここまでこぎつけることができた。本当に充実した時間だった
 だから、俺は今後もOSを作っていきます。ただ、もうこれまでのように詳細に更新、報告することはないです。多分本当に30日でOSが出来上がるのかを試してみるページの一番下のところにひっそりと公開していくだろうと思う。
 というわけで、最後に感謝の言葉でこのBlogを締めくくりたいと思う。
 まずは、一番最初に、この本の著者である川合秀実に感謝したい! ありがとう。あなたが書いたこの本で、少なからず、俺のこの1ヶ月は充実したものとなった。そして、この本をきっかけにOS作りの楽しさってのがほんの少しでも分かったことがよかった。心から、本当に心からありがとうと言いたい。
 次に、出版社、毎日コミュニケーションズに感謝! こんなナイスな本を出版するなんて、本当に良い仕事してますぜ、ダンナ。あんまり出版社とか知らないんだけど、これからもこういうナイスな本をどんどん出してください。期待〜。
 そして、最後に、このBlogを今日まで読んでくださった皆様に感謝! ありがとう。最初は1日数十人くらい見てもらえればいいかな、という感じで始めたこのBlogですが、終わってみれば、5万ヒット。たくさんの応援もいただきました。たくさんのサイトで紹介もしていただきました。本当にありがとうございました。
 さて、というわけで、いよいよを持って終わりです。俺がこのBlogを更新することも、多分もうないです。もともと本書を読むためだけに作ったBlogだから読み終えた今、もう役割は終わっています。ただ、今後、この本を買おうと思っている人や、まだ読み進めている人のために、このBlogはずっと残しておこうと思います。少なからず、参考になると思うから。
 最後に、このBlogを見ているすべての方々、ここまで付き合ってくださり、本当にありがとうございました。そして、さようなら。機会があれば、またどこかで会いましょう。


 ...fin...

30日目「いろいろなアプリが動く! まさにOSっすよ!!」

 30日目は、最終的にどんなアプリケーションが作れるのかをとことん追求した内容となっている。まずは、コマンドライン上で動作する計算機、次にテキストビューアー、そして音楽プレーヤー、画像ビューアー、と続く。テキストエディタやお絵かきソフトではなく、あくまで「ビューアー」となっているのは、はりぼてOSにファイル書き込みのAPIが存在しないからだ。ここは、しょうがない。そして、最後に、IPLの改良と、CD-ROMからの起動に対応するためのツールが紹介されており、本書は無事、終了となる。
 そんなこんなで、長かったような短かったような1ヶ月が過ぎ去りました。ついに本書を読み終えることができました。はりぼてOSにはまだまだ不十分な機能が山のようにあります。だから31日目では、それらの機能を今度はあなたたち自身で改良していってください、といった感じになっています。また、これからOS作りをやろうと考えている人への助言や、オープンソースの話などが盛り込まれています。
 また、あとがきには「中学生でも読めるようにしようと全力をつくした」とあります。実際、本当に中学生が読めるかどうかは分かりませんが、少なくとも内容がとても分かりやすいことは事実です。
 さて、それで結局「この本で本当に30日でOSが作れるか?」だが、最初は、「作れるわけねーだろー、このやろ〜」という感じだったが、いまでは、もしかしたら、いけるかも分からんですたい、と思っている。まぁ、残念ながら、学生じゃないならば、30日では厳しい。ちなみに俺は1日だいたい3時間〜4時間くらい本書を理解するのに使っていたが、多分実質40日くらいかかっている気がする。でも、学生ならば(特に大学生なら)1日4時間くらい余裕で取れるはずなので、モウマンタイだ! 学生諸君は30日使って大いにOS作成を楽しんでくれ!! 最近の中高生は妙に賢い気がするので、その能力をこっちに使っちゃえば、OS作りで一躍有名人の仲間入りだ(ホントか?)。社会人は残念だ。30日じゃ困難を極めるから、40日とか50日とか100日とか、そのくらいを目安に読み進めた方が良いと思う。
 だから、学生は素直に「うおー、30日でOS作れるやーん」とワクワクしてもモウマンタイだ。がんがってくれ。だが、社会人は「うまい話にはウラがある、その手には乗らないぜ〜」と出版社や川合秀実氏を疑ってかかろう。ついでに「30日じゃ終わらなかったぜ、このやろ〜」という批判のメールを送ると、川合氏から「はりぼてOSのことか…、はりぼてOSのことかーー」ドゴーン、スーパーサイヤ人2。手に入れろ〜、はりぼてボール〜。

29日目「インベーダーゲームが動いているんだ…、間違いない!」

 今日のメインディッシュは間違いなくインベーダーゲームだ。これ、間違いないです。というのも、実は、本屋でこの本を買った時の一番の決め手となったのが、実はこれなんです。「30日でOS? 最後には、いったいどんなものができるんだろ〜」と、なんとなく本書をパラパラとめくっていると、な、な、な、なんと、インベーダーゲームが動いているじゃーあーりませんかー。うっそーーん。マジ? これマジ? ということで、少なくともインベーダーゲームが動くほどのOSを本書によって作ることが可能であるというイメージを植えつけさせる、ある種の商業戦略! そして、それに見事ハマってしまった俺(ぉぃ)。出版社、毎日コミュニケーションズ、恐るべし。
 が、しかし、俺のようなシロウトはこれでまんまと騙せても、ある程度の玄人ともなると「インベーダー? そんなものでは俺が動かん!!」となるわけだ。が、しかし、そんな彼らに用意されたのが、OS圧縮技術tek! 玄人には圧縮という高レベルな話題を提供しつつ、素人にはインベーダーでポップなアピール! このあらゆる読者層に購買意欲を沸き立たせるための戦略。神! 出版社、毎日コミュニケーションズ、恐るべし。
 そして、今日は29日目。えっと、俺はというと…、終始インベーダーいじってました(ハマってんじゃん!!)。だって、圧縮とか全然分からんし、そういうムツカシイことはあとですよ。とりあえず、俺はインベーダーで遊ぶ!! ということで、インベーダーのソースコードをいろいろといじりながら、今日は実に充実した一日を過ごしました(OS作ってないじゃーん)。
 それにしても、これだけのものが作れれば、もう結構なアプリケーションは作れる気がする。なんか、あんまり気が付かないんだけど、はりぼてOSもそれなりのものになったなぁ…と最近少し感傷にひたり気味。と、まぁ、思い出話などなどは明日のエンディングにとっておいて。とりあえず今日はここまで。
 明日はついに30日目。内容としては、基本的にアプリを作るだけなので、そんな込み入った内容にはならないと予想。そして、その後エピローグにて、31日目を読み、このBlogの実質的なまとめとして、その役割を終えたいと思う。
 明日、ついにこのBlogもエンディング…。たくさんのアクセス、本当に、本当に、ありがとう!!! 最終回、乞うご期待!!

28日目「ファイルと日本語表示について」

 スタートしてから28日目にして、ついにファイルの操作APIを追加した。そして、ついに日本語表示を実現した。ただ、日本語表示はいいとしてもファイルに関してはもう少し突っ込んだ内容が欲しかった。本書を読み始めて、こういう風に思ったことは一度も無いから、多分最初で最後だと思うんだが、俺としては、ぜひともファイルの書き込みについてもやってほしかったのだ。
 それで、このはりぼてOSではディスクへの書き込みを実装していないから、つまりはファイル書き込みのAPIを用意することができない。だから、今回もそのAPIを用意してはいない。だが、これはぜひとも用意したかった。そのために紙面を割いて欲しかった。かといって、じゃあ変わりにどの章を省くのだ? といわれると、どの章も重要そうでなかなか省けないのだが、でも、やっぱ、ファイル読み込みがあるなら、ファイル書き込みが欲しいじゃん。これら2つがそろって初めてファイルAPIって感じがするじゃん(俺はするんだ)。
 というわけで、残念ながら、はりぼてOSではファイル読み込みAPIのみの実装となった。あっ、もちろんファイルオープン、ファイルクローズ、そしてファイルポインタ移動辺りのAPIは実装しているぞ。ただ、この辺りはどうしても悔しいから誰か28日目の続きを書いてくれ。「ファイル書き込みも実装する方法」って感じでよろしくだ(他力本願〜)。
 それで、ファイル操作がアプリでできるようになれば、アプリとしてtypeコマンドが作れるようになるわけだ。なので、これまでOS内部に実装していたtypeコマンドは排除だ! 変わりにアプリとしてのtypeコマンドを作成し、これを今後使っていくことでモウマンタイなのだ。ささいなことだが、確実な進歩だ。
 そして、今日2番目のメインディッシュ、日本語表示となる。これは、申し訳ないんだけども、予想以上にメンドクサイ(笑)。漢字多っ。第○水準とかややこしっ。区画とか意味分からん。なんかあんまりOSとは関係のないところで戦っている気がするし、この辺り実はあんまり興味ないしで、モ、モチベーションが…。こ、こんなところで日本語の壁が〜(ニホンゴ、ムツカシイデス)。
 と、そんなこんなで今日は終わりだ。明日はついに29日目、インベーダーゲームの作成ときた。ゴールまで、あと2日、乞う、ご期待。

27日目「LDTって結構重要じゃね?」

 さてさて、さてさて、ついにやってきました27日目。なんかもういかにも終盤って感じです。終わりです。最後です。RPGでいうならレベル40辺りです。RPGといえば、FF12はクリアしたでしょうか? まだでしょうか? まだダルマスカのために世界中を旅してるでしょうか? 帝國にしぶしぶ従っているでしょうか? 飛空挺で大空を飛び回っているでしょうか? そうですか。それはよかったですね。でもなぁ、お前らなぁ、俺の前でFF12の話をするなーーー(って、俺がしてるんだけども)。だってさぁ、だって、俺もやりたいもん。やりたいんだもん。俺もダルマスカ守りたいもん。死守したいもん、ダルマスカ。ちくしょう〜、面白いか? FF12は面白いか、このやろ〜。
 というわけで、最近は特に周りがFF12の話をするたびに、このやろ〜、となる俺ですが、俺が守っているのはダルマスカではなく、はりぼてアプリなのです(ダルマスカなんて滅びてしまえ!!)。それで、LDTというアプリを守るシステムがどうやらあるらしい。それでGDT(グローバルディスクリプターテーブル)はグローバルなので、全部のタスクから使えるセグメント設定であったわけだが、このLDT(ローカルディスクリプターテーブル)はローカル、つまりある特定のタスクでしか使用できないセグメント設定であるわけだ。そして、これをアプリに適応させることで、アプリを守ることができるのだ。そして、グローバルとローカルという違いしかないので、基本的な設定方法は同じなのだ。
 さらに、今日は、ライブラリやmake環境の整理などもやっている。読み進めている分には、ふむふむ、という感じなのだが、この内容をこの27日目で扱うところが本書の特徴だ。「必要になったら説明する」という著者の熱い想いがこめられている。また、明日の28日目まではOSとしての機能強化をあてるらしいが、29日目と30日目はアプリケーションの作成に終始するらしい。つまり純粋なOS作りという意味では明日が最後なのだろう。本当に、本書も、そしてこのBlogも、終わりへと近づいている…(うれしいような切ないような)。
 それで、今日は、一応俺が1から作り始めているOSをちょっとだけ公開してみる。
http://www.geocities.jp/hariboteos/simpleOS.zip
 ちなみに、まだ全然最初のほう(本書でいうと6日目くらい?)だからあまり期待はしないように(しないか(笑))。ただ、はりぼてOSとはメモリマップ自体からして違うし、ソースコードもほとんど書き換えているので、まぁオリジナルOSといってもいいかもしれない。実は30日目終了までにこれをある程度カタチにしたいとは思っているのだが、まぁいろいろあって、微妙なとこだ。ただ、本書を読み終えて、「OSができたー」となっても、CD-ROMに付属しているOSをコンパイルしただけじゃ、ちょとかっこ悪いかなぁと思って、自分で1から作り始めたのだ。
 さて、明日は28日目、ついに日本語の表示だ! いよいよを持ってして、はりぼてOSは完全体となる。フリーザ最終形態、セル完全体、ブウ(通常体型ver)、うーん、どいつもこいつもすごいやつらばかりだった…。というわけで、はりぼてOSの完全体に…、乞うご期待!

26日目「もっとウィンドウ速度を速く! もっとコンソールを多く!!」

 ごぶさたしてました。なんとか、復帰しました。休日をすべてベッドの中で過ごしました(なんかもったいない気分)。しか〜し、もう迷わない、止まらない。走る〜、走る〜、俺たち〜、わっしょい。
 というわけで、今日は、いきなりウィンドウ移動の高速化をやった。実は、前々から、コンソールウィンドウを移動させるときに「やけに遅いなぁ」とは思っていたのだが、ここにきて、これを修正するのか…。お…、俺の心を読んだのか…、なかなかやるな川合氏。というわけで、さっそく試してみる。ちなみに、基本的に俺は動作確認をQEMU上でしか試さないため(しかもロースペックなPCなため)、かなりウィンドウ移動が遅くなっていた。が、sheet_refreshmap関数の改良と、sheet_refreshsub関数の改良はかなりナイスだ! ただ、1バイト単位でコピーしていたものを4バイト単位にしただけでこれほどまでに違いが現れるとは…。この辺はいろんな意味で、「アルゴリズムって大事だなー」と思わせるヒトトキだった。
 次に複数のコンソールを出したり、また、コンソール自体を消したりする処理などを追加したのだが、個人的にはこれはもっと早くに扱って欲しかった内容だった。だって、たくさんの真っ黒い画面があって、それらに読みきれないほどの文字が、だーーーーって流れているのが、なんかハッカーって感じでカッコイイ。俺の中では「真っ黒い画面=ハッカー」だから、もう真っ黒い画面がいっぱいあったらスーパーハッカー。dirばっかり入力しててもスーパーハッカー。そもそもハッカーって悪い人って意味じゃないみたいだけど、そんなんどうでもよくて、真っ黒い画面はスーパーハッカー(って、技術者のかざかみにも置けんヤツだなぁ)。何はともあれたくさんの真っ黒い画面が俺は欲しいんだ。それで、たくさんの真っ黒い画面を出すんなら、当然消すこともできたい。だからそれらも実装!
 この辺りになってくると、もう完全にOSとしての機能を強化することに集中している感じだ。もうCPUだのPICだの16ビットだの32ビットだのというワケワカラン世界とは別世界だ。ある意味、普通にプログラミングを楽しむことができる期間だといえる。
 ゴールまであと4日 乞うご期待。

お知らせ「すみません、もろに風邪をぶり返しました」

 このBlogを読んでる方には本当にご迷惑おかけします。
 実は風邪をおもいっきりぶり返してしまいまして、金曜日の夜に39.5度という限界値の熱が出てしまって、昨日はちょっとあまりの辛さに更新を休ませてもらいました。今は薬でなんとか熱は抑えているのですが、万全を期して今日は寝ます。もう終盤というのに、ここに来て、思わぬ敵にやられてしまいました(ぐふっ)。
 直り次第また頑張りたいと思います。地球のみんな…、オラにちょっとだけ、元気を分けてくれ…。