パスワードを忘れた? アカウント作成
662477 journal

tarosukeの日記: 俺OS

日記 by tarosuke

NICE値が小さくなったので動いてみた。今まで動かなかった理由はPOSIXを
無視した設計のためセルフ開発が出来ないので、開発環境から構築したかった
からなのだが、開発環境から構築した所で開発環境を移植しなければならない
事に気づいたためにいろいろ不満はあるけれどとりあえずCで書く事にして動
いてみた。今日やったのは以下の通り。

0.about.txtを書く
        仕様的な事をここに書いていく。これをしないと仕様がいつまでも
        固まらなかったり引数や戻り値のポリシーが揺らぐ事がある。カー
        ネルだけならなくても何とかなるが、ネットワークモジュールやド
        ライバモジュールが絡んで来るとこれをメンテしながらでないとな
        かなか厳しいものがある。わざわざ厳しい環境でする事もないし、
        ユーザーの事を考えたりすると作っておくべき。今回は英文も併記
        してみた。きっとそのうち別ファイルになるだろうけど。

1.ディレクトリ構成を決める
        arch,daemon,dev,inet,util,includeを掘る。これらが入っ
        ているディレクトリをルートと呼ぶ事にする。makefileをルート
        の一箇所のみに作成。daemon,dev,inet,utilで各々ライブラリ
        を作成し、ライブラリはルートに作成、設定によって変化するシン
        ボル参照によってリンクされるかどうかを制御することにする。

2.ユーティリティ的モジュールを作成
        汎用キューとプール。型フリーなマクロ。型に依存する個々のキュ
        ーやプールはこのマクロを使って生成する。ユーティリティ的部分
        を先に書いておかないと似たようなコードをあちこちに書いてしま
        いがちになる。これは前回ネットワークカーネルを書いた時の教訓。
        とことん私ゃボトムアップ派。このあたりでCVSリポジトリに突っ
        込む。これでsshが使えてうちの鯖に鍵が入ってればどこからでも
        使えるようになる。

3.コンフィグファイルを作成
        まだこの辺の仕様ははっきり決まっていないが、ヘッダファイルに
        直接記述するかどこかから生成するか考え中。でもいくつかの設定
        を切り替える事を考えたら後者だなぁ...直さなきゃ

4.マルチアーキテクチャのためのmake方法を考える
        includeパスやlibパスを切り替えると良さそう。

まだまだ序の口。

次にするのは...アーキテクチャ依存部分を未定義のままカーネルコアを書く。
カーネルコアもあちこちから使われるからね。前回はH8だったからメモリが
真っ平だったけど、今回は仮想メモリを使うしプロセスの概念も採り入れるか
らそのあたりにも気をつけねば。とりあえずページャはアーキテクチャ依存か
な?

それからコンソールのインターフェイスを決めて内側のインターフェイスだけ
を書く。これは当然devに置くからmakefileもそのように修正。

ボトムアップ野郎としては未定義の部分を使うようなコードを書くのはとって
も気持が悪いんだけど、ここが固まってないとセマフォ組めないしassertも
貼れない。

それにix86の資料も入手しなければならない。VIAのC3でもいいんだけど。
...先にSH3用書こうかなぁ...資料揃ってるし。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

Stay hungry, Stay foolish. -- Steven Paul Jobs

読み込み中...