豫豫言文档API ATLAS
入口包说明.html
97 模块899 名称
← 全部模块

模块 / 89

链接格式写出。豫

链接格式写出。豫

17公开名称

链接格式段

公开
「元类型」

文言:链接格式者,Linux 所载之可执行文件也;此写静态之形,无动态链接,无节表。汉语:ELF64 写出器:生成 Linux 可直接执行的静态可执行文件(ET_EXEC、非位置无关、无动态链接、无节表)。每个载入段按给定虚址映射,文件内容可短于内存大小,余下部分由内核零填充。 文言:段者,虚址、内容、内存之大、权也。权以读四、写二、执行一相加。汉语:载入段:虚拟地址、文件内容、内存大小(不小于内容长度)、权限位(读 4、写 2、执行 1,与 ELF 的 p_flags 相同)。

载入段

公开
化「整数」而化「字节串」而化「整数」而化「整数」而「链接格式段」

暂无说明。

链接格式对齐

公开
「整数」

文言:对齐取六万五千五百三十六,页大四千、一万六千、六万五千之核皆可载。汉语:段对齐取 64 KiB,使 4 KiB、16 KiB、64 KiB 页的内核都能映射。

链接格式头长

公开
「整数」

暂无说明。

链接格式段头长

公开
「整数」

暂无说明。

链接格式段虚址

公开
化「链接格式段」而「整数」

暂无说明。

链接格式段内容

公开
化「链接格式段」而「字节串」

暂无说明。

链接格式段大小

公开
化「链接格式段」而「整数」

暂无说明。

链接格式段权限

公开
化「链接格式段」而「整数」

暂无说明。

向上对齐

公开
化「整数」而化「整数」而「整数」

暂无说明。

链接格式同余偏移

公开
化「整数」而化「整数」而「整数」

文言:内容所居之偏,须与虚址同余于对齐。汉语:给内容选文件偏移:不小于游标,且与虚址对对齐取余相同(ELF 要求 p_offset ≡ p_vaddr mod p_align)。

链接格式布局

公开
化「整数」而化(「列」于「链接格式段」)而((「列」于「整数」)合「整数」)

文言:逐段定偏移;无内容之段不占文件,偏移取同余之最小者。汉语:依次为每段确定文件偏移,返回偏移列表与文件总长。无内容的段不占文件字节,偏移取与虚址同余的最小值。

链接格式载入头

公开
化「链接格式段」而化「整数」而「字节串」

文言:段头五十六字节:类、权、偏、虚址、实址、文件长、内存长、对齐。汉语:生成一个 PT_LOAD 程序头(56 字节)。

链接格式栈头

公开
化「有」而「字节串」

文言:栈不可执行之标,其类为 GNU 栈。汉语:PT_GNU_STACK 程序头:声明进程栈可读写、不可执行。

链接格式文件头

公开
化「爻」而化「整数」而化「整数」而「字节串」

文言:文件之首六十四字节:魔数、六十四位、小端、版本,可执行之类,机器号,入口,段头之偏与数。汉语:ELF 文件头(64 字节)。臂为 EM_AARCH64(183),否则 EM_X86_64(62)。

链接格式检段

公开
化「整数」而化(「列」于「链接格式段」)而「有」

文言:诸段须依虚址升序,前段之末不逾后段之始;首段之下须留六万五千五百三十六以置头段。汉语:检查各段按虚址升序且互不重叠,最低段虚址不低于 128 KiB(其下 64 KiB 放头段)。

生成链接格式可执行

公开
化「爻」而化「整数」而化(「列」于「链接格式段」)而「字节串」

文言:成可执行之文件:头、头段、诸段头、栈头,然后依偏移置诸段之内容。头段者,映文件之首于最低段之下六万五千五百三十六处,只读;诸装载器多求首个载入段起于文件偏移零。汉语:生成完整的静态可执行文件:文件头、一个头段(把文件开头的文件头与程序头只读映射到最低段之下 64 KiB 处;不少装载器要求第一个 PT_LOAD 的文件偏移为零)、每段一个 PT_LOAD 程序头、一个 PT_GNU_STACK 程序头,再把各段内容放到布局算出的偏移处。各段须按虚址升序且互不重叠,内容与内存大小由调用方给定。