mimic-cross実装
mimic-deployがhost側へ破壊的な変更を加えるようにする
一部のコマンドが相対パスを仕様して動く都合上、
target側はhostへのシンボリックリンクで運用すると実装が楽なことに気づいた。
この変更はDocker imageのサイズ削減も見込めるので採用することにした。
cのmimic-libをzigで書き直す
mimic-libでファイルを読み書きする必要がでた。
なんでC言語でファイルを読み書きしないといけないんだ2024年だぞという気持ちになったのでzigで各方法勉強した。
どちらかというとzig.buildのほうがいろいろ調べる必要がある。
とりあえず、決め打ちの値への偽装がこんな感じ。
CImportとか必要なくzigの機能で足りてる。たのしい。
const std = @import("std"); const linux = @import("std").os.linux; export fn uname(buf: *linux.utsname) usize { const ret = linux.uname(buf); if (ret < 0) { return ret; } std.mem.copy(u8, &buf.machine, "mimic!!"); return ret; }