feat: 初始提交 LeonOS 实现
添加 LeonOS 的基本实现,包括:
- 核心 API 模块(colors, disk, gps, keys, multishell, parallel, rednet, redstone, settings, vector)
- 命令行程序(about, alias, bg, clear, copy, delete, edit, fg, help, list, lua, mkdir, move, paint, peripherals, programs, reboot, set, shutdown, threads)
- 系统启动脚本和包管理
- 文档(README.md, LICENSE)
- 开发工具(devbin)和更新程序
实现功能:
- 完整的线程管理系统
- 兼容 ComputerCraft 的 API 设计
- 改进的 shell 和命令补全系统
- 多标签终端支持
- 设置管理系统
2025-08-31 16:54:18 +08:00
|
|
|
-- LeonOS compatibility, in theory
|
|
|
|
|
|
|
|
|
|
local rc = require("rc")
|
|
|
|
|
local settings = require("settings")
|
|
|
|
|
|
|
|
|
|
if not settings.get("bios.compat_mode") then
|
|
|
|
|
error("compatibility mode is disabled", 0)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
if os.version then
|
|
|
|
|
error("you are already in compatibility mode", 0)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
local libs = {
|
|
|
|
|
"peripheral", "fs", "settings", "http", "term", "colors", "multishell",
|
|
|
|
|
"keys", "parallel", "shell", "textutils", "window", "paintutils"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
local move = {
|
|
|
|
|
"queueEvent", "startTimer", "cancelTimer", "setAlarm", "cancelAlarm", "getComputerID",
|
|
|
|
|
"computerID", "getComputerLabel", "setComputerLabel", "computerLabel", "day", "epoch",
|
|
|
|
|
"pullEvent", "sleep"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
local nEnv = setmetatable({}, {__index=_G})
|
|
|
|
|
nEnv.os = setmetatable({}, {__index=os})
|
|
|
|
|
|
|
|
|
|
for i=1, #libs, 1 do
|
|
|
|
|
nEnv[libs[i]] = select(2, pcall(require, libs[i]))
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
for i=1, #move do
|
|
|
|
|
nEnv.os[move[i]] = rc[move[i]]
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function nEnv.printError(text)
|
|
|
|
|
io.stderr:write(text, "\n")
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
nEnv.write = rc.write
|
|
|
|
|
|
|
|
|
|
nEnv.unpack = table.unpack
|
|
|
|
|
if rc.lua51 then
|
|
|
|
|
for k, v in pairs(rc.lua51) do
|
|
|
|
|
nEnv[k] = v
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
nEnv.read = nEnv.term.read
|
|
|
|
|
nEnv.sleep = nEnv.os.sleep
|
|
|
|
|
|
|
|
|
|
function nEnv.os.version()
|
|
|
|
|
return "LeonOS 1.0 ALpha 1"
|
|
|
|
|
end
|
|
|
|
|
|
2025-09-01 11:03:43 +08:00
|
|
|
local func, err = loadfile("/leonos/programs/shell.lua", "t", nEnv)
|
feat: 初始提交 LeonOS 实现
添加 LeonOS 的基本实现,包括:
- 核心 API 模块(colors, disk, gps, keys, multishell, parallel, rednet, redstone, settings, vector)
- 命令行程序(about, alias, bg, clear, copy, delete, edit, fg, help, list, lua, mkdir, move, paint, peripherals, programs, reboot, set, shutdown, threads)
- 系统启动脚本和包管理
- 文档(README.md, LICENSE)
- 开发工具(devbin)和更新程序
实现功能:
- 完整的线程管理系统
- 兼容 ComputerCraft 的 API 设计
- 改进的 shell 和命令补全系统
- 多标签终端支持
- 设置管理系统
2025-08-31 16:54:18 +08:00
|
|
|
if not func then error(err, 0) end
|
|
|
|
|
func()
|