Open3
kompoで色々考えたこと
kompoを開発するにあたって様々な選択肢が出てきたので、何ができそうで何がダメなのか改めてまとめる
自分用なので丁寧にしない
- libcをパッチする
- コンパチどうなる?
- バージョンに依存したくなかったのに依存してしまう
- musl使う?
- dynamic linkしたくなった時にmuslが必要になるのが微妙
- ebpfを使う
- macの対応ができなさそう
- system callをフックする
- コンパチがない
- バイナリを編集する
- フック漏れが発生しそう
- overlayfs
- ???
- Rubyにパッチをなげる
- 一定のバージョン以降でないと使えない
- 拡張ライブラリが対応できないか
やりたいこと、外せない要素を整理する
- rubyのバージョンに依存したくない
- メンテナンスが大変なのでやりたくない
- 一定のバージョンでないと対応していない、はあり
- 任意のライブラリの動的リンクは残したい
- ゲーム文脈だと、パッチファイルでのアップデートを実現したい
- ワンバイナリ以外にインストールが必要にはしたくない
- クロスコンパイル
動的ロードを残して拡張ライブラリでvfsにアクセスしてもらうためには、rubyの対応だけではどうにもできない
libcやsystem callなど根っこを掴む必要がある
system callのフックはかなり移植性が悪くそれぞれに対応する必要がある