TLV
TLV(tag-length-value)二进制编码, 中文翻译为「标长值」编码。
通用的 TLV 格式设计:
- little endian
- TLV entry: (tag u8, length u32, value)
- tag 为 0 时代表注释 -- value 是 c string
还剩下 255 个 tag, 不同应用可以根据约定来自己解释。
这样方便支持 fat executable, 比如 xvm 和 x86 生成的代码可以保存到同一个可执行文件中。
name table
可以利用 name table 来保存 static string(不光是代表 name 的 string)。
name table 中 name 都是唯一的, 因此可以通过对比 offset 是否相等来判断 name 是否相等。
name table 需要分配一个 tag, 对于使用 name table 的数据而言, loader 加载时要先找这个 tag。