状:源级接口之草案〇点一。此仓库根目录下之独立规范树,唯含接口包、纯声明与规范之文;诸平台后端与垫层,皆在他处。Linux x86-64、arm64 与 macOS arm64 之后端,已备四十五底层函数;裸机亦有供验与行客体之后端,Windows 犹待为。GC 与 WASI 垫层已改接其一部,跨平台全量一致之验犹待行。设计之由与全案,见[总体架构](../豫言操作系统/文档/豫言操作系统总体架构.文言.md)。汉语本见汉语版。
是何物
一套无垃圾回收之操作系统接口:值唯三十二位整数,数据以(址,长)与出址相授,每函数返状态之码。乃诸平台与上层之间之“窄腰”:Windows、macOS、Linux 与裸机各成一后端,WASI 垫层与 GC 垫层架于其上。
其用者唯二:WASI 垫层与 GC 垫层。应用不径呼之:非 GC 应用用 WASI,GC 应用用[豫言操作系统接口](../豫言操作系统接口/总纲.文言.md)。
与 GC 接口之系
| | GC 接口(豫言操作系统接口) | 底层接口(本树) | | --- | --- | --- | | 值 | 豫言值类型:字符串、列、变体、资源…… | 三十二位整数 | | 编译之模 | 高级(有垃圾回收),依标准库 | 底层(无垃圾回收),依底层库 | | 用者 | 应用 | WASI 垫层、GC 垫层 | | 实现 | 宿主适配包(豫言书之)与宿主库 | 平台后端实现包(豫言书之),每平台一 | | 误 | 变体之果与共用之系统错误 | 状态之码(WASI errno 之子集) | | 授权 | 授权表、目录权、显示面等 | 启动时之初始柄表(预开之目录) |
二树互不相倚。底层接口之所无者(HTTP、JSON、日期拆分、路径规整、当前目录),由垫层以豫言为之,不入后端。
文件与身份
- 每能力组各为一包
豫言操作系统底层<能力>,置于目录底层<能力>/:名称。包。豫(「编译模式」者『底层』也。,依底层库及所需之本树他包)、若干模块。接口。豫、规范.汉语.md与规范.文言.md。 - 目录名即包名去
豫言操作系统前缀:今之检查器据此定位兄弟之包,本树不必另改定位之规。 - 接口文之书法,沿 GC 接口之[接口文件规则](../豫言操作系统接口/接口文件规则.文言.md),其异与本树通用之规,见调用约定:签中唯有
整数(返值可为有),类型取诸底层库之基础,不书函数体。 - 同一依赖闭包之内,编译之模必同(豫构校之),故本树之包不混入 GC 之型,亦不得依标准库。
- 目根之
豫言操作系统底层接口。包。豫为本树之父包,其说即此总纲:以「包含包」依首批能力组之表序登诸底层接口包,诸包以「包含在」还指之(其制见[包制](../应用/豫构/包系统.文言.md)“层级之包”之节)。父与库子其模必同,故父亦书底层。父包无模,以便循层寻包。增能力组者,表与父之「包含包」同处并登,新包书「包含在」。
首批能力组
| 包 | 义之所涵 | 函数 | 性 | | --- | --- | --- | --- | | 底层基础 | 状态之码、时钟、随机、命令行参数与环境、退出、中断、平台之探 | 11 | 核心 | | 底层句柄 | 柄之读写、寻址、同步、等待、管道 | 13 | 核心 | | 底层文件 | 按目录柄授权之打开、状态、目录之读与增删改名 | 9 | 核心 | | 底层网络 | TCP 之监听、连接、接受 | 7 | 可选 | | 底层终端 | 终端之模与尺寸 | 2 | 可选 | | 底层进程 | 运行程序、取退出码、终止 | 3 | 可选 |
凡四十五函数。“可选”者,平台可无之:无则诸函数一概返 58(不支持),垫层依此降级。显示与输入预留为 豫言操作系统底层显示,第二版再为。
相倚之序:底层基础 ← 底层句柄 ← {底层文件、底层网络、底层终端、底层进程};诸包皆依 底层库。
检查
- 接口检查器
yy豫言操作系统接口检查已改循包索引以定位诸包(昔唯识自身、标准库与以豫言操作系统起首之包,不得底层库;见[检查器说明](../豫言操作系统/应用/豫言操作系统接口检查/说明.文言.md)),本树可径检之:node 豫言操作系统/宿主/节点/宿主.cjs yy豫言操作系统接口检查.wasm 豫言操作系统底层接口/底层文件/豫言操作系统底层文件。包。豫,--清单与--核对清单亦可用。修前修后,于全部 GC 接口包与适配之清单,皆作对照,所出逐字相同。 - 状态之码、标志、类别之号,统一而可机读之定义犹待备;现有后端与垫层各持所需之常量。
尚未为
- 一致之样例与测试之骨架;
- Windows 后端、GC 与 WASI 垫层余下之改接,及诸平台一致之验;
- 显示与输入;设文件时间、建链接、分散/聚集之读写、文件锁等后续之候选(见方案第六节)。