ページへ戻る

− Links

 印刷 

HariboteOS のバックアップソース(No.33) :: OSASK計画

osaskwiki:HariboteOS のバックアップソース(No.33)

« Prev[4]  Next »[5]
* 「30日でできる! OS自作入門」のページ
-(by [[K]], 2006.01.30)

*** なによこれ?OSASKとどう関係あるの?
-これは[[K]]が2005年の約1年をかけて書いた、OSを作るための書籍の紹介ページです。
-[[K]]はこの本をOSASK計画のサブプロジェクトと位置付けています。
--でもよく考えてみるとOsaskWikiよりはOS-Wiki向きかもしれなかったですね。ごめんなさい。

-OSASKとのつながりですが、[[K]]がOSASKを作るようになってからというもの、年に何通も「私もOSを作りたいです、どうしたらいいですか、教えてください」というメールが来ます。
また「OSASKを改造したいのだけれども、プログラムが複雑でよく分からない」というメールもあります。
-それで http://osask.jp/boyaki09.html みたいなページを書いたり、 http://community.osdev.info/?FirstStep で「minifsos」や「heboos」を作ってみましたが、不十分だと感じていました。
-この延長線上にあるのがこの「30日でできる! OS自作入門」なのです。

-また僕はOSASKの理想で妥協したくないので、たとえばOSASKではアプリからの解像度指定を原則として禁止していますし、もしタスクセーブが実現した場合はタスクセーブをアプリから阻止できない仕様にするでしょう。こういう僕の頑固さが気に入らない人がいると思います。でも本当は僕は自分の頑固さを押し付けたくはないのです。そんなのかわいそうです。僕にわがままをいえる資格があるとすれば、他の人だって自分のOSを作れば自分のOSに対して自分の理想を追求できるはずです。
-しかしその一方で、今のところ「OSを開発できる」というのはある種のスキルとされるくらいに、OSが作れることは一部の人に独占された能力になっています。これはとても不公平です。正当な競争が望めません。正当な競争があればOS界はもっと発展すると思います。それはつまりOSASKの発展にもつながると思います。

-OSASK本体やアプリを作ったり改造したりするときに、OS開発に関する知識が少しあると、よりよい設計や実装ができると思います。

-この本の読者から将来のOSASK開発の後継者が育ってくれるかもしれません。

-この本ではいくつかのアルゴリズムを試験的に導入しました。うまくいったものをOSASKへフィードバックする予定です(たとえばウィンドウ重ね合わせ処理とか)。

-以上の想いをこめてこの本を執筆したので、これをOSASK計画のサブプロジェクトの一つであると認めてください。
--しかもそうするとOSASK計画は1年間停滞したのではなく、tekのときのようにサブプロジェクトをやっていたということになります?!

*** どんなOSができるの?
-OSASKコミュニティではおなじみの tolset のみでOSを作る本です。既存OSのソースをベースに改造するのではなく、IPLからフルスクラッチで作ります。30日間で作ります。使用言語はアセンブラ(nask)とC言語(GO)です。言語比率は、基本的にC言語で書けるところはすべてC言語で書き、アセンブラは最低限度になっています。
-30日目には、OSASKのようなマルチウィンドウの画面に、bballやinvaderなどが動くところまでいきます(移植しました)。マルチタスクです。コンソールも複数あります。日本語表示対応です。
-OSASKとはちがってまともな(?)ウィンドウシステムを持っていて、ウィンドウが重なったときに下のウィンドウも更新されます。
-もちろんOSASKよりも機能的には劣っているところもたくさんあります。それは30日という制約がある以上、仕方ないところです。
-フルC仕様といってもいいくらいのOSのくせに、しかもOSASKとちがってOSを圧縮しているわけでもないのに、なぜかOS本体は40KB程度です。小さくするつもりは特になかったので自分でもびっくりです。OSASKの立場は???(笑)。ちなみにアプリもOSASKほどではないですが十分に小さいですよ。
-このOSはOSASKみたいに[[K]]の理想を実現させるOSではなくて、教材用OSとして理解しやすくすることに徹したので、[[K]]が作るOSの割にはあくのない「ふつう」なOSになっています(笑)。OSASKでは許しがたいようなことも平気でやっています。だから''OSASK入門ではありません''。お間違えのないように。アプリもOSASKとは互換性がありません。
-名前は「はりぼてOS」です。このページの名前はこれに由来しています。
-「はりぼてOS」のマスコットもカオちゃんです。というかOSASK計画のサブプロジェクトなんだから、マスコットが同じなのは当然ともいえます。
-OSASKほどではないにしても結構高速なようです。[[K]]のプレゼンテーション機としてはおなじみのLibretto50(Pentium75MHz/32MB)で起動してみたところ、起動時間1秒は達成できましたし、動作もまあまあサクサク動いているように感じられます(負荷をかけてみるとOSASKよりも体感で数割だけ遅い感じでした)。

*** 誰に向けて書いたの?
-OSを作りたいと思っているけど、Cもアセンブラも全然分からない、どんな言語を勉強したらいいんだろう、くらいの人が、楽しんで理解できる内容にしました。こんなところからスタートしても、30日後には上記のようなOSができちゃうんですよ!これに必要なスキルももちろん習得できます。ほんとうですよ。
--(お世辞かもしれないけど)校正のためのテスト読者はみんな絶賛してくれているので、たぶん本当に楽しんで理解できるのだと信じています。
-過去にC言語をちょっと勉強して、20行くらいのプログラムならなんとなく作れるけど、構造体とかポインタが分からなくて投げ出した、なんていう人は、この本ではちょっとエリートです(笑)。
-OSを作りたいと思わなくても、OSの仕組みを知りたいと思うのなら、参考になるかもしれません。
-中学生でも読めるくらいの語彙と漢字で書いてあります。だって中学生や高校生でOS作りたい人って多い気がするし、OSASKをここまで盛り上げてくれたのはこの世代のおかげだし、そもそも僕がはじめてOSを作りたいと思ったのは中学のときだったので、中学生も読者に取り込めるように努力したわけです。その一方で、もちろん大人でも楽しめるようにがんばりました。
-この本が1冊だけで完結するようにしました。他の本を参照しなければいけない個所はありません。tolsetも各段階のソースもCD-ROM内にあるので、Windowsだけあれば他にソフトを購入する必要はありません。Linux用のtolsetを使えばLinuxでも開発できるはずです(サポートページにて公開中)。

*** 本に関するその他の情報
//-B5変形判・722ページ(正確なページ数はまだ未定:ここから単純計算すると1日分が23ページくらい?)
-B5変形判・722ページ(ここから単純計算すると1日分が23ページくらい?)
--プログラムリストや図説や画面写真などが多数あるので、もろに23ページ分の文章を読まされるわけではないですよ。
-CD-ROM付き
//-価格未定(せっかく中学生でも読めるような内容にしたから、中学生でも気軽に買えるような値段にできるようにお願い中・・・でもどうなるかまだ未定)
-重さ:1.2kg、厚さ:37mm
-定価:3,990円(税込)
-ISBN4-8399-1984-4
-2月28日発売
-http://book.mycom.co.jp/book/4-8399-1984-4/4-8399-1984-4.shtml
-  表紙写真:             帯つき表紙:
~
&ref(harib_cover.jpg);  &ref(harib_cover2.jpg);
~
-帯文章(目を凝らしすぎて目を悪くしないように)
--この本ではほとんど知識を要求しません。どんなプログラム言語でもいいですので、簡単なプログラムなら書いたことがあるよ、くらいのセンスがあれば、それで十分です。また、OSなんて作りたいと思わない・思ったこともない、という人でも、OSを作る過程を通して、OSの仕組みが見えてきます。だからそういうことに関心がある人も、ぜひちょっと読んでみてください。

-立ち読みPDF:
--http://book.mycom.co.jp/user/preview/4-8399-1984-4/
--出版社に無理を承知でたくさんページをPDFで公開してくださいとお願いしたら、なんとこんなにたくさん公開してくれました。この場を借りてお礼申し上げます。
--内容の難易度以上に、このノリが楽しめるかどうかが重要だと[[K]]は思っているので(難易度はそんなに高くないと思います)、よく確認してください。

-公式サポートページ(読者からの質問などを受け付けたり、本を読もうかどうか迷っている人のための情報ページ):
--http://hrb.osask.jp/
-おもしろQ&A
--[[hrb:K]]

*** 使用上の注意(?)
-この本が売れると印税が[[K]]に入るので、その分だけOSASK開発に専念しやすくなるのは事実ですが、しかし[[K]]にお金を儲けさせるために(読む気もないのに)この本を買うなどということはしないでくださいね。そんなことするくらいなら直接寄付してください(笑)。そのほうが効率いいですよ(笑)。
-ということで、内容をよく検討して読みたい人だけが買ってくれたらうれしいです。って当たり前ですね。
-コレクターが収集目的で買うというのは(そんな人いるのかな)・・・まあそれもありかな(笑)。
-ご購入の際には、このページの情報だけではなく、実際の読者からの感想なども検討の材料にしてください。まあそんなこと言っていると最初は誰も買えないので、多少は人柱も必要ですが。
-出版社も赤字を出すわけには行かないので、もしかしたら[[K]]の期待するほどには安くならないかもしれません(しょうがない)。その場合は立ち読みで・・・というのはページ数からいって厳しすぎるので、図書館に入れてもらって借りるなんていうのはどうでしょうか?
-この本を読んで(立ち読みでも可)、本当に他人におすすめできる、おすすめしたいと思ったら、アフィリエイトとかで紹介していいです(って僕が許可するとかしないとかの問題じゃないけど)。それで買った人も、あなたも、そして[[K]]もハッピーになれます。

*** 書店などへのリンク(読者の声とかが探しやすいかもしれないので)
-http://book.mycom.co.jp/book/4-8399-1984-4/4-8399-1984-4.shtml
-http://www.cbook24.com/bm_detail.asp?sku=4839919844
//-http://www.7andy.jp/books/detail?accd=R0176098
-http://www.7andy.jp/books/detail?accd=31673506
//-http://books.yahoo.co.jp/book_detail/r0176098
-http://books.yahoo.co.jp/book_detail/31673506
-http://www.amazon.co.jp/exec/obidos/ASIN/4839919844/
-http://item.rakuten.co.jp/book/3979116/
-http://www.bk1.co.jp/product/2651095/ -- [[MARCの文章はここで生成されている>http://www.bk1.co.jp/contents/sales/pb-index.asp]]
//-http://bookweb.kinokuniya.co.jp/guest/cgi-bin/wshosea.cgi?W-ISBN=4839919844
//ルールを守ってください。K以外の人がこのページを無断で編集するのはルール違反です。
//付け足してほしいリンクがあるのならコメント欄でお願いしてください。

*** 売れ行きはいかがですか?
-プログラミング系の本としては記録的かもしれないそうです。
-Amazon.co.jp
--2006.03.03 01:05 本で3位! (この順位を11時間維持)
-セブンアンドワイ (本全体:取り扱い202万冊中の順位)
--2006.03.03 20:51 10位!
-セブンアンドワイ (コンピュータ関連書籍内ランキング:取り扱い4.7万冊中の順位)
--2006.03.02 15:28 : 24時間集計で1位! (03.08までこの順位を維持)
--2006.03.06 14:55 : 先週集計で1位! (03.19までこの順位を維持)
--2006.03.20 13:43 : 24時間集計で1位! (03.21までこの順位を維持)
-cbook24.com
--2006.02.10 15:28 「cbook24オススメの一冊」に!(03.26までこの順位を維持)
--2006.03月第1週 週間ランキング初登場1位!(その後も、1位、2位、1位と続いている)
--2006.02月 月間ランキング初登場1位!
-詳細は [[hrb:rankings]] にあります。

*** rumors
-[[HariboteOS/comments]]に移動しました

*** こめんと欄
-[[HariboteOS/comments]]に移動しました


« Prev[4]  Next »[5]