产品介绍
TinyOS Genesis v0.1 是从零手写的裸机 x86 操作系统:可引导镜像约 612 KB,内置 tinysh 用户态 shell、Lua 5.4.7、图形文本桌面与网络组件。它不是 Linux,也不是 Linux 内核,全部从第一行汇编与 C 写起。下面按模块进入各个专题页。
体积对比:更小,也更轻
上一代同类系统体积臃肿;Genesis 通过手写内核与压缩只读文件系统,把体积压到了原来的零头。镜像本身约 612 KB,一张软盘都装不满。
条形长度按同类指标内的最大值归一化,数值标签为真实大小。
能力矩阵
v0.1 已经内置的能力。tinysh 是真正的 TNCR 用户程序,不是内核内建;Lua 解释器也是编译成 TNCR 跑在用户态。
-
文件系统
VFS 抽象 + 压缩只读 romfs;tinysh 提供 ls / cd / pwd / cat / mkdir / rm / touch。
-
进程
用户态进程模型,tinysh 可用 ps 查看、kill 终止;sysinfo 报告进程数与内存。
-
硬件寄存器
devlist / readdev / writedev 直访 ISA 设备寄存器:com1 0x3F8、pit 0x40、kbd 0x60、vga 0x3D4。
-
图形桌面
VGA 80×25 文本模式 + PS/2 键盘 + PS/2 鼠标。
-
网络
e1000 网卡驱动,可在用户态做网络 I/O。
-
Lua 5.4.7
解释器编译成 TNCR,跑在用户态:可 REPL,也可 lua /home/x.lua 执行脚本。已实现。
-
tinysh 用户态 shell
19 条命令:help version sysinfo date ls cd pwd cat mkdir rm touch ps kill devlist readdev writedev echo clear exit。已通过 27 项端到端自动化测试。
架构分层
从按下电源到用户程序,数据是这样一层层流下来的。全程用 HTML + CSS 绘制,无图片。
- 引导器 NASM 汇编
- 内核 zig cc · freestanding ELF
- VFS / romfs 压缩只读文件系统
- TNCR 加载器 自定义可执行格式
- 用户程序 tinysh · Lua 5.4.7
技术栈
每一个环节都按真实情况列出来;没有 JVM、没有 Java、没有 Docker,也没有在系统里跑 C/C++ 工具链。
-
NASM
引导器用 NASM 汇编编写。
-
zig cc
-target x86-freestanding -mgeneral-regs-only内核与工具链交叉编译为 freestanding ELF。
-
TNCR
用户程序打包成自定义 TNCR 格式,由 TNCR 加载器载入用户态。
-
Python(宿主机侧)
构建由仓库内的 Python 脚本驱动;脚本本身运行在开发机上,不是操作系统的一部分。
快速上手(Windows)
构建与运行都由仓库内的脚本驱动(需要本机装有 zig 与 NASM)。下面是可参照的入口命令。
# 1) 安装交叉编译工具链(zig + NASM)
powershell -ExecutionPolicy Bypass -File tools\setup-toolchain.ps1
# 2) 构建用户态 TNCR 程序(tinysh / lua / 网络组件)
python tools\build_users.py
# 3) 构建可引导镜像 tinyos.img(约 612 KB)
powershell -ExecutionPolicy Bypass -File build.ps1
# 4) 启动到 QEMU
start.bat
首次启动:安装向导
镜像首次启动会跑 5 步安装向导(disk / network / software / accounts / confirm)。第 4 步 accounts 需设置 root 密码(≥3 位,输入两遍)。登录后自动进入 tinysh;exit 退回内核 shell(uname / mem / ps / disk / net / help / lua)。
提示:全部测试由 QEMU 串口自动化驱动,27/27 通过,无需人工点击。
路线图
清楚区分「已完成」与「计划中」。v0.1 已交付,下面列的是方向,不是已落地的功能。
✅ 已完成 · v0.1
- 可引导 i386 保护模式镜像(tinyos.img)
- tinysh 用户态 shell,19 条命令,27 项端到端测试通过
- Lua 5.4.7 解释器(TNCR,用户态)
- VFS / 压缩 romfs、进程、硬件寄存器直访
- VGA 文本桌面 + PS/2 键鼠、e1000 网卡驱动
🧭 计划中
- 真实磁盘多盘支持(已有 ATA 多盘抽象层)
- 图形改进(更高分辨率 / 更多色彩)
- 更多 TNCR 运行时与用户程序