近況

新潟県柏崎へ災害ボランティアに行ったりしていて更新が滞っていました(汗)。

さて、秘密プロジェクトが見事に失敗したのでお知らせします。

実は、D言語でOS開発プロジェクトをあのIPA未踏ユースに提案していたのでした。で、今日正式に採択通知が送られてきました。

非採択はまあ仕方ないけど(突っ込みどころがありすぎるし)、開発は続けていくつもりなので、新たにプロジェクト・ページを大公開しました。

http://www.h7.dion.ne.jp/~outland/programming/domoo/index.html

奇抜なOS開発は上記サイトに任せ、こちらでは日本語コメントつきのごく普通なOS開発チュートリアルを今までどおり続けていくつもりです。

因みに災害ボランティアに関する話は以下にあったりします。

http://d.hatena.ne.jp/akatsuki_volunteer/

起動するまでの長い道のり メモリ管理編(2) メモリ・マップ取得の巻

 ページングのことを書こうかと思ったが、まずマシンに何MBのメモリが搭載されているのか分からないと始まらない。それに、実はメモリ領域にも使えるところと使えないところがある。そういった情報も必要だ。
 今回は、ACPIのファンクションを使ってメモリの領域情報を得る方法について解説する。

続きを読む

起動するまでの長い道のり メモリ管理編(1) ページング概要の巻

 またしても再開……。

 さて、D言語が普通に動かせるようになった。scope指定をすればクラス・オブジェクトも作れるようになった。
 が、まだ動的なメモリ確保やオブジェクト作成ができない。もっと言えば、実行時にサイズが初めて確定するようなデータのメモリ領域を確保できない。
 動的なメモリ確保を行うためには、メモリ領域を色々と管理しなければならない。どの領域がどのくらい空いているのか、あるいは使われているのか、常に把握しておく必要がある。
 これから、とりあえずカーネル・モードでのメモリ管理について解説する。

続きを読む

起動するまでの長い道のり D言語編(4) 標準ライブラリ格闘の巻(2)

 色々あったがようやく再開……。

 さて前回で大量のリンク・エラーという壁にぶち当たった。そして、標準ライブラリを移植する必要があると分かった。
 今回は、ビルドを通すためにどこをどう移植したかを説明する。はっきりいって不毛なので、読み飛ばしてソースコードだけ取得した方がいいかもしれない……。

続きを読む

渋滞情報

 実は先の方が詰まっていて更新が滞っています……。
 標準ライブラリ移植は実際ソースもあるし、さらに言えばコピペばっかりで特に書くようなことをしてないし(爆)、どうでもいいのですが、実はこの先にページング・メモリ管理・割り込み処理が待ち受けていて、そちらの実装に手間取っているのです……。
 ひみつプロジェクトの〆切もあるし、しばらく更新が滞るかもしれません。まあまっさらな状態でD言語を動かすだけならもうソースもあるし、今の状態でもきっと遊べます。私なんかよりうまい実装をしてもらえるかもしれない(笑)。
 さらに問題なのがD言語のバージョン2.0が出てしまったことだったりします(滝汗)。

起動するまでの長い道のり D言語編(3) 標準ライブラリ格闘の巻(1)

 D言語を使って(あれを「使って」と言って良いなら……)、シリアル・ポートを叩くことに成功した。
 しかし今のコードはカッコ悪い。IOを直に叩いているだけで、printfでHello,World!するのとあまり変わらない。これから先シリアル・ポートを叩く機会もたくさんあるだろうから、シリアル・ポート操作用の処理をまとめておきたい。今回はそれにチャレンジし、壁にぶちあたる(笑)。

今回のソース

続きを読む