組み込みTiki
不定期にっき
PDAのコンテンツ 関係で、私的には、PDA の中で Tiki を動かしたい。
そうすると Ruby がないとダメということになる。Tiki を動かす前提で
Ruby が必要とする リソースというのは何?
こういう構造 で、作る... というより 組みあげる。
tiki httpd
------------------------
ruby [Thread]
-----------------------
ライブラリ(Minix)
------------------------ <<<<< VOS API
Virtual OS [FileSystem]
------------------------ <<<<< Host OS API
Host OS
という目的から
という発想になって、
- thread は ruby の中にあるから それを使う。
- ruby が使うライブラリは、MINIX-2.0.3 のものをベースにして、自前でもつ
( 以下 minlib )
- ruby および minlib が使う OS API (関数/変数)には、__vos_ プレフィックス
を付ける。( #define で namespace を強引に 変える)
- __vos_ の API をサポートする、Virtual OS を 考える。
- ファイルシステムは、V7 のものを使い 内蔵する。(以下 v7fs )
ここまでが いままでの あらすじ。→ ./の過去その1 , ./の過去その2
現在は、ruby の userland が 中心。
./キャッシュサーバ と 同期 をどうしよう かというところ。
スナップショット
これは何?
- なんでしょう? 作った本人もよくわからない。たぶん、1 つの システム 。
- サービスを提供するサーバ群 --- ruby で書かれたもの メインは http server と Tiki とキャッシュサーバ(未)
- ruby -- Thread は ruby の上でサポートされる。このシステムで
使える唯一の言語。
- VOS ( libc と libm を見せるもの ファイルシステムももっていて、
一応 OS 。プロセスはない)
- で 構成される。
- それぞれのパーツは、ばらばらにして別の目的にも 流用可。
なにがしたいの?
- PDA のなかに入れて 運用するもの。
- 私的 リソースを格納する black bock。
- リソースのアクセスは、HTTP 等 network プロトコル で 。
- ファイルシステムのファイル自体も暗号化可能(ToDO)
- この black box 移動可能 -- いくつかのファイルを移動するだけで、
違う HOST で動く。
- network を通じての 同期とバックアップ。
- 同期/バックアップ先は、複数。相手は 自分の clone ?
こういうものを作ろうとしています。その理由は、
- PDA 自体の世代交替が 意外に早い。よいマシンがでたらそれを使いたい。
- GUI がないのは、HOST の ブラウザがつかえれば いいやという発想から。
がポイントか。→ PDAのコンテンツ
@
007 変更点
- NetBSD/i386 でテスト 動かなかった理由は 次の2点
- lseek での off_t が long long だった。(しまった忘れていた)
- struct sockaddr の形式が違うので 変換する必要があった。
- BSD は、sa_len がある。(-> v7fs/vos_socket.c )
- VOS インターフェイスが、sa_len がない。
- このままだと INET6 がサポートできない。( メモ )
- BSD だと 、USE_SETVBUF が ON になっていた。
- ディレクトリ構成変更
- /etc/init.rb がスタートアップ
- tiki.rb は /lib に
- /lib は、必要なものだけ。( 必要になった時点で ruby からもってくる)
- /lib/magic.rb の バグ修正
- tiki の ファイルは、EUC 漢字に変更 ( 60字という制限があるので)
- TODO:
- ファイルシステム が おかしくならないか Tiki で チェック。
- import する方法。ruby-man-*-rd も import したい。
- tar のようなコマンドを ruby で作って オフラインでやる?
- cygwin で動かす?
- mingw で動かす?→ ./Win32APIで動かすには
- キャッシュサーバの設計 ndbm → ./キャッシュサーバ
- ジャーナリングも進める。
- サーバのマルチスレッド化
- セキュリティの組み込み
@
007a 変更点
@
007b 変更点
- とりあえず、Win32AP のコードをいれてみた。Undefined になるのは、
WinMain のみなのは確認。あと、ウィンドを作って WinMain から main に
つなげれば .. 一応 バイナリはできるはず。( 動くかどうかはまた別だけど )
- ウィンドを作って.. というところは、さとさとさんの winmgl-1.7 を
使わせてもらうか 参考にしようと思って winmgl のソースつっこんでます。
- GUI を凝るつもりはまったくなく、普段はアイコン。設定ファイルを
変更するとかのオペレーションしたときだけ、ダイアログが出る ような形に
したい。
(最終更新 Thu Mar 30 19:07:48 2006)