mirai

悪いデータ構造のオーバーヘッドと最適化

データ構造(miraiの用語では内部データ構造)は最適化の余地がある。C言語はいくつかの強制的な仮定をstructやunionに対して行うので、コンパイラは(仮にプログラマがバカでも)最善を尽すことはできない。 miraiは内部データ構造とエッジデータを明確に分離す…

単純化

よりコンパクトかつ効率よくプロトコルが記述できるように、抽象化レベルを進めて、通常のC言語プログラマなら違和感なくプログラムが書けるように工夫する必要がある。 確かに現状のmiraiは死ぬほどプログラムが書きづらいという欠点があるので、思い切って…

uptime 1y

niji(miraiの前身)で運用している某Webサーバが365日のuptimeを記録した。 2,871,194コネクション、最大瞬間平行コネクション9*1、エラー率は約70%。 そろそろ一旦止めて新しいカーネルにしたいが、再設計が難航中。 他に、range requestへの対応など色々と…

プロトコル処理の抽象化

miraiのプロトコル処理は大きく、ComposeとValidateの2つのステージに分割されている。そして、プロトコル記述言語は、これら2つの動作を行うC言語ソースコード(または別の中間言語)に変換され、実行される。 Composeは、内部データ構造からエッジデータ構造…

悪いプロトコル実装のオーバーヘッド

悪いプロトコル実装がどの程度のパフォーマンス劣化を引き起こしているかを示す必要がある。 (C言語で『とりあえず動く』ように実装された、)悪いプロトコル実装は、以下のような問題を含んでいる : セキュリティ もっとも理解しやすいのはセキュリティの問…

Port for PCs

諸般の事情でPC移植をすることに。今のところ、 Multiboot for uniprocessor-ISA PC Xen DomU for multi/uniprocessor-ACPI PCI PC Windows/Linux/MacOS SDL+Glib Application の3方向で検討中。 SMPで動作するようなコンピュータは大抵Xenが動くので、通常…

なぜプロトコル記述言語はDSLでなければならないのか

http://shinh.skr.jp/m/?date=20081006#p02 とおもったけど elf.py とか見ると結構コード入ってていまいち DSL ぽくないな… ですよねー という引用は全く関係なく自分の研究の話(我田引水) そもそもプロトコル記述言語とは何か 世間的に流行しているものでは…

新しいカーネルデザイン

otenkiで開発したnijiとrainはちょっとどうなるのか不透明なので、今後研究を進めるために新しいカーネルを設計した。ファイルシステムがいわゆるLFSであるとか、プロトコル記述の処理系であるという特徴はnijiを引き継ぐものの、幾つか重要な変更が有る。 …