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

模块 / 1

Linux可执行。豫

Linux可执行。豫

3公开名称

Linux代码基址

公开
化「爻」而「整数」

文言:Linux 之可执行:以 Linux 目标降其模块为用户之载,映于与裸机同址之域,入口即用户代码之始。载之后至栈顶,余静态线性区、传参暂存与栈,皆由内核以零填之。汉语:生成 Linux 静态可执行文件(ELF64,无动态链接):以 Linux 目标把整数 Wasm 状态模块降级为用户载荷(与裸机相同的布局:代码、元数据、页数、初始线性内存),作为一个可读写执行的载入段映射到用户区起址,入口就是用户代码起址。载荷之后到用户栈顶的部分(其余静态线性区、传参暂存与栈)由内核零填充;超过八页的线性内存由入口代码另行 mmap。臂为真生成 ARM64,否则 x86-64。 文言:代码大(如预编之程序)而逾用户区者,代码别为一段:臂居 0x10000000,兼容居 0x50000000;数据仍居名义之址。代码唯以相对之跳互达,与数据以绝对之名义址相通,故易其所居而码不变。汉语:代码太大(例如预编后的程序,放不进用户区里数据段之前的空间)时,代码单独放一个可读可执行的载入段:ARM64 在 0x10000000,x86-64 在 0x50000000(避开 x86-64 的动态区 0x8000000 起的 1 GiB);数据(元数据、页数、线性内存直到栈顶)仍在原名义地址,单独一个可读写段。代码之间只有相对跳转,访问数据用绝对名义地址,所以挪动代码位置不改变代码字节。

生成Linux可执行

公开
化「爻」而化((((「列」于(「整数」合「整数」))合(「列」于(「字符串」合「字符串」合「整数」))合(「列」于(「整数」合「整数」合(「列」于「网页指令」)))合(「列」于(「字符串」合「整数」)))合(「列」于(「整数」合「整数」))合(「列」于「网页数据声明」))合(「列」于(「爻」合「整数」)))而「字节串」

暂无说明。

生成Linux可执行带块

公开
化「爻」而化((((「列」于(「整数」合「整数」))合(「列」于(「字符串」合「字符串」合「整数」))合(「列」于(「整数」合「整数」合(「列」于「网页指令」)))合(「列」于(「字符串」合「整数」)))合(「列」于(「整数」合「整数」))合(「列」于「网页数据声明」))合(「列」于(「爻」合「整数」)))而化「字节串」而「字节串」

文言:带尾块之 Linux 可执行:块附文件之末,后随十六字节之尾标(“YUYANMOD”与八字节之长)。汉语:带尾块的 Linux 可执行文件:块直接附在文件末尾,最后 16 字节是尾标(“YUYANMOD”加 8 字节长度);执行器读自己文件的最后 16 字节找到它。块不属于任何载入段。