mirror of
https://github.com/Leonmmcoset/cleonos.git
synced 2026-04-21 10:40:00 +00:00
1.8 KiB
1.8 KiB
Stage 27 - User Shell/Wine Split and Syscall Expansion
Goal
- Expand user shell capability toward kernel-shell parity.
- Extend syscall ABI for richer process/runtime operations.
- Split CLeonOS-Wine implementation into maintainable modules.
Implementation
- Added more user-facing commands in user shell around process/runtime control (
spawn,wait,sleep,yield,pid, file ops under/temp). - Extended syscall surface (process and runtime related IDs) and kept kernel/user syscall ID tables aligned.
- Added process argument/environment ABI (
EXEC_PATHV/SPAWN_PATHV+PROC_ARG*/PROC_ENV*). - Added user exception/fault reporting ABI (
PROC_LAST_SIGNAL/PROC_FAULT_*) and signal-encoded exit status. - Updated user runtime syscall wrappers to cover newly added syscall IDs.
- Refactored Wine codebase from single-file implementation into modular structure for CLI, ELF loader, syscall bridge, and runtime helpers.
Acceptance Criteria
- User shell can complete process and temp-file workflows without falling back to kernel shell.
- User ELF can read
argc/argv/envpthrough runtime startup path. waitcan observe signal-encoded status for crashed user processes.- New syscall IDs are available consistently in:
clks/include/clks/syscall.hcleonos/c/include/cleonos_syscall.hcleonos/c/src/syscall.c
- Wine entry remains runnable after split (
python cleonos_wine.py ...) and supports process/argv/env/fault syscalls.
Build Targets
make userappsmake ramdiskmake isomake run
QEMU Command
make run
Debug Notes
- If a user command reports
request failed, verify syscall ID mapping first. - If
wait/spawnbehavior is wrong, checkclks/kernel/exec.cprocess table and pid stack. - If Wine import fails after split, check package/module import paths and
__init__.pyexports.