直至正文
豫言包府
← 众包

原生你好 0.1.0

豫言 · 可执行文件

路二最小闭环样例(底层模式):Linux 版直接发系统调用,macOS 版经 libSystem,写、读与退出。

路二(径生原生之二进制)于 Linux 之最小闭环,底层之模。书“你好”一行,自标准入读至多六十四字节而原样书之,终以退出码七。书、读、退皆径发 Linux 之系统调用:导入之模块名 Linux,导入之名即系统调用之名(write、read、exit_group);寄存器之降依入口之表成系统调用之桩,址类之参入系统之前加线性内存之基址。

构与生(于仓库之根):

node 豫言操作系统/宿主/节点/宿主.cjs yy豫构.wasm 构建 原生你好 --输出 yy原生你好.wasm -j 24
node 豫言操作系统/宿主/节点/宿主.cjs yy豫构.wasm 构建 豫言裸机 原生生成 --输出 yy原生生成.wasm -j 24
YY_GC_INITIAL_HEAP_SIZE_MB=512 node 豫言操作系统/宿主/节点/宿主.cjs yy原生生成.wasm Linux 臂六十四 yy原生你好.wasm yy原生你好臂
YY_GC_INITIAL_HEAP_SIZE_MB=512 node 豫言操作系统/宿主/节点/宿主.cjs yy原生生成.wasm Linux 兼容六十四 yy原生你好.wasm yy原生你好兼

所成者,静态之 ELF64 可执行文件,于 Linux 之 arm64 与 x86-64 径行,不倚动态之库。

原生生成 今由原生运行时行之,初始线性内存以一页六万五千五百三十六字节整块而分,须以环境变量增其初堆。

于 macOS 可以 Docker 验之(FROM scratch 之镜像,唯含此一文件):

printf 'FROM scratch\nCOPY --chmod=755 yy原生你好臂 /hello\nENTRYPOINT ["/hello"]\n' > Dockerfile
docker build --platform linux/arm64 -t yy-hello .
printf '回声\n' | docker run --rm -i --platform linux/arm64 yy-hello; echo $?

当书“你好”与“回声”二行,退出码七。x86-64 则易以 yy原生你好兼 与 linux/amd64。

macOS 之版

苹果入口。豫 乃同一程序之 macOS 版:书、读、退经 libSystem 之 write、read、exit(导入之模块名为苹果);所生之 Mach-O 位置无关,由 dyld 绑其导入之槽,附特设之签名,可于本机(arm64)径行:

node 豫言操作系统/宿主/节点/宿主.cjs yy豫构.wasm 构建 原生你好 苹果入口 --输出 yy原生你好苹果.wasm -j 24
YY_GC_INITIAL_HEAP_SIZE_MB=512 node 豫言操作系统/宿主/节点/宿主.cjs yy原生生成.wasm 苹果 臂六十四 yy原生你好苹果.wasm yy原生你好苹果
chmod +x yy原生你好苹果
printf '回声\n' | ./yy原生你好苹果; echo $?

Linux 之版,其生之令则为 node 豫言操作系统/宿主/节点/宿主.cjs yy原生生成.wasm Linux 臂六十四 …。

所赖

观包之制

上传之记

今修订:1 ·

  1. 修订 1
    取 ZIP

包之层级

父:豫言裸机

无子包。