モジュール


FrontPage

好きな機能だけをカーネルに取り込むにはどうすればいいか

.mjt

カーネルが必ず持つ必要が有るもの

RAMディスクドライバ

RAMディスクのデータを読む

RAMディスクイメージ

あと起動ロゴとか?
起動シーケンスとしては、ディスクドライバをRAMイメージから読み取り、ディスクドライバを起動、ディスクドライバを利用して、システム標準のモジュールを取り込む。

ダイナミックリンカ

プロセス空間が分離していて、カーネルをint80hで呼び出せるのなら、生のイメージをロードするだけで可。

ドライバに関しては、プロセス空間の切り替えが毎回発生するのは不健康なので、再配置くらいはすべきか。

ドライバは再入可能にコーディングされるべき。

ドライバのプログラミングイメージ

struct mona_object _obj_me[] = {
 { "interface" ,"filesystem"    },
 { "trans"     ,"diskdriver"    },
 { "baseobject",_obj_diskdrv    },
 { "myname"    ,"FAT12"         },
 { "enum"      ,FAT12_enum      }, /* オブジェクトの列挙 */
 { "map"       ,FAT12_map       }, /* オブジェクトの指定されたメモリへのマップ */
 { "pickup"    ,FAT12_pickup    }, /* enumされたオブジェクトを操作対象にする */
 { "writeback" ,FAT12_writeback }, /* mapされた部分の書き戻し */
 { "init"      ,FAT12_init      },
 { "deinit"    ,FAT12_deinit    },
 { "create"    ,FAT12_create    },
 { "enter"     ,FAT12_enter     },
 { "leave"     ,FAT12_leave     },
 { NULL        ,NULL            }
}
struct mona_object _obj_diskdrv[] = {
 { "mapblock"      ,_ddrv_map       },
 { "writebackblock",_ddrv_writeback },
 { "blocksize"     ,_ddrv_blocksize },
 { NULL            ,NULL            }
}
if(!mona_give(&_obj_me){/* fail */}

システムの名前空間直アクセスで…

変数もこのようにして確保する必要アリ。面倒。でもシンボル吐かなくてもアプリケーションが持っている変数をモニタできるのである意味便利かも。

MENU

now: 7

リンク


最新の20件
2019-02-26 2018-10-07 2018-09-20 2018-05-09 2017-09-29 2017-01-10 2016-12-11 2016-10-04 2016-08-14 2016-05-29 2015-12-28 2013-02-25 2013-02-21 2013-02-20 2013-02-12 2013-02-11 2013-02-10
最新の20件
2010-02-01 2010-01-31 2010-01-30 2010-01-29 2010-01-16

Counter: 2615, today: 1, yesterday: 0

リロード   新規 編集 凍結 差分 添付 複製 改名   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS

Last-modified: 2008-03-28 (金) 15:48:02 (4072d);  Modified by mona
PukiWiki 1.4.6 Copyright © 2001-2005 PukiWiki Developers Team. License is GPL.
Based on "PukiWiki" 1.3 by yu-ji
Powered by PHP 5.2.17
HTML convert time to 0.037 sec.