Open3

kompoで色々考えたこと

ahogappaahogappa

kompoを開発するにあたって様々な選択肢が出てきたので、何ができそうで何がダメなのか改めてまとめる
自分用なので丁寧にしない

  • libcをパッチする
    • コンパチどうなる?
    • バージョンに依存したくなかったのに依存してしまう
    • musl使う?
      • dynamic linkしたくなった時にmuslが必要になるのが微妙
  • ebpfを使う
    • macの対応ができなさそう
  • system callをフックする
    • コンパチがない
  • バイナリを編集する
    • フック漏れが発生しそう
  • overlayfs
    • ???
  • Rubyにパッチをなげる
    • 一定のバージョン以降でないと使えない
    • 拡張ライブラリが対応できないか
ahogappaahogappa

やりたいこと、外せない要素を整理する

  • rubyのバージョンに依存したくない
    • メンテナンスが大変なのでやりたくない
    • 一定のバージョンでないと対応していない、はあり
  • 任意のライブラリの動的リンクは残したい
    • ゲーム文脈だと、パッチファイルでのアップデートを実現したい
  • ワンバイナリ以外にインストールが必要にはしたくない
  • クロスコンパイル
ahogappaahogappa

動的ロードを残して拡張ライブラリでvfsにアクセスしてもらうためには、rubyの対応だけではどうにもできない
libcやsystem callなど根っこを掴む必要がある

system callのフックはかなり移植性が悪くそれぞれに対応する必要がある