mirror of
https://github.com/Leonmmcoset/cleonos.git
synced 2026-04-21 18:44:01 +00:00
35 lines
1.4 KiB
Markdown
35 lines
1.4 KiB
Markdown
|
|
# 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.
|
||
|
|
- 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.
|
||
|
|
- New syscall IDs are available consistently in:
|
||
|
|
- `clks/include/clks/syscall.h`
|
||
|
|
- `cleonos/c/include/cleonos_syscall.h`
|
||
|
|
- `cleonos/c/src/syscall.c`
|
||
|
|
- Wine entry remains runnable after split (`python cleonos_wine.py ...`).
|
||
|
|
|
||
|
|
## Build Targets
|
||
|
|
- `make userapps`
|
||
|
|
- `make ramdisk`
|
||
|
|
- `make iso`
|
||
|
|
- `make run`
|
||
|
|
|
||
|
|
## QEMU Command
|
||
|
|
- `make run`
|
||
|
|
|
||
|
|
## Debug Notes
|
||
|
|
- If a user command reports `request failed`, verify syscall ID mapping first.
|
||
|
|
- If `wait`/`spawn` behavior is wrong, check `clks/kernel/exec.c` process table and pid stack.
|
||
|
|
- If Wine import fails after split, check package/module import paths and `__init__.py` exports.
|