简介
PySpOS 从 2022 年的“MP4 架构狗头 OS”演变而来。应用是独立的进程,调度器参照 Linux 的 EEVDF。
- 真子进程:应用有 PID、父子关系和信号。
- EEVDF 调度:按虚拟截止期和 nice 权重排程。
- ELF 引擎:Unicorn 执行 x86_64 指令;没装时退回自研的 SpaceCPU 1 Pro。
- A/B 升级:更新装进非活动槽位,校验后切换,失败可回滚。
动态链接(INTERP)和 TLS 还没有实现。
一条命令怎么执行
- Shell:解析输入并分发给对应模块。管道、重定向和后台作业从这里开始。
- 进程:外部程序经 fork / exec 成为独立进程,由调度器安排运行。
- 运行时:Unicorn 执行 ELF 指令,系统调用转给内置的模拟层。
3.2.0 更新
这一版把 1217 行的 main.py 拆进了 src/shell/,原文件保留为兼容层。
- 进程:不再是协作式模拟。PID 0、1、2 依次引导,孤儿进程由 init 收养。
- 调度:EEVDF,参照 Linux 6.6+ 的权重表、vruntime 和虚拟截止期。
- 后台作业:
cmd &、jobs、fg、bg、wait,以及进程组与会话。 - ELF 调试:加
--stats、--map、--disasm、--strace观察执行过程。 - 窗口:VortexGlass 管理窗口和输入,应用可以用 Python SDK 开窗口、画控件,见 vortexglass.md。
- 开机向导:11 步 curses 向导,语言和时区会实际生效,用
oobe重跑。 - 终端:中文按双宽排版,修好了按 Enter 出现
^M的问题。 - 命令:分组
help、Tab 补全、管道和重定向;apps/下的程序可以直接执行。 - 配置:SpaceConfig v2(
.spc),带 Schema 校验和迁移工具。 - OTA:云端已恢复,Recovery 里可以选版本装到指定槽位。
- 出厂重置:
recovery.erase清理 8 类数据。 - 许可:改用 MIT。
源码结构
| 位置 | 作用 |
|---|---|
src/kernel.py | 主循环:处理输入、执行命令、初始化子系统 |
src/shell/ | 命令解析与分发 |
src/process.py | 进程与调度 |
src/elf_loader/ | ELF 加载、CPU 与系统调用模拟 |
src/parse_spf.py | SPF 脚本(自研格式) |
src/ota.py | 更新的检查、下载、校验和安装 |
src/fs.py | 文件操作 API |
src/btcfg.py | 启动配置,存在 etc/bootcfg.json |
运行环境
- Python:3.10 或更高。
- 系统:Windows 7+、主流 Linux 发行版、macOS 10.14+。
详见配置要求。更新包在下载页,源码在 ViudiraTech/PySpOS。