Windows上で出来ることはやっておく

以前にもどこかに書いたかもしれないが。
Monaに新しい機能・コンポーネントを追加しようとするときは、できる限りWindows上で実行・テスト後、Monaにのっけるという形を心がけている。


たとえば今回のスケジューラの対応であれば、まずWindows上で(cygwinで)ビルド・実行が出来るようなスケジューラを書いて実行・テストを行い。ある程度うまく動いたら、Monaに移植するのである。
もちろん移植しやすいようにあらかじめいろいろ気を使うのも忘れない。


なんでこんなことをやるかというと、Windows上で検証したほうがはるかにデバッグしやすいからである。
致命的なバグが潜んでいて、死んでしまったとしても容易にその箇所を特定できるだろう。(デバッガ等を用いて)
Mona上で1からスケジューラを書いていたら、新しいスケジューラのバグなのか、まだまだ不安定なMonaカーネルの潜在バグなのか切り分けるのも一苦労だろうし、カーネルが死んでしまったら死ぬ箇所を特定するのも非常に難しい。


こんな理由から上記のようなことを心がけているのだが、OSに必要なものでほとんどWindows上で開発できてしまうものは結構あると思う。
FATコード、コレクションライブラリ、グラフィック系のライブラリ(一部)、スケジューラなどなど。


実践編ということでこちらに今回のスケジューラに使用したテストコードSchedulerSim.zipをおいておきますが、くれぐれも内容を参考にしないように。(書きなぐりなので)
雰囲気が参考になれば幸いです。