PTY和更多

This commit is contained in:
2026-04-26 11:57:51 +08:00
parent 32b27cc362
commit 298de5e33f
27 changed files with 3264 additions and 114 deletions

View File

@@ -893,6 +893,14 @@ UserSafeControllerUSC危险 syscall 确认:
- 返回:成功 `1`,失败 `0`
- 说明:
- 调整窗口尺寸并保持 `window_id` 不变;调整后用户态应重新 `WM_PRESENT` 一次提交新尺寸内容。
### 116 `CLEONOS_SYSCALL_PTY_OPEN`
- 参数:无
- 返回:成功返回一个可读写 FD失败返回 `(u64)-1`
- 说明:
- 创建桌面伪 tty 输出端。用户态可把该 FD 传给 `EXEC_PATHV_IO` 的 stdout/stderr然后通过 `FD_READ` 从同一 FD 读取子进程输出。
- 当前 PTY 是“命令输出捕获型”最小实现,不提供完整主从终端会话语义;阻塞式交互 shell 仍应继续使用普通 TTY。
## 5. 用户态封装函数
@@ -932,6 +940,7 @@ UserSafeControllerUSC危险 syscall 确认:
- `cleonos_sys_mouse_state()`
- `cleonos_sys_wm_create()` / `cleonos_sys_wm_destroy()` / `cleonos_sys_wm_present()`
- `cleonos_sys_wm_poll_event()` / `cleonos_sys_wm_move()` / `cleonos_sys_wm_set_focus()`
- `cleonos_sys_pty_open()`
## 6. 开发注意事项
@@ -942,7 +951,7 @@ UserSafeControllerUSC危险 syscall 确认:
## 7. Wine 兼容说明
- `wine/cleonos_wine_lib/runner.py` 当前已覆盖到 `0..115`(含 `DL_*``FB_*``KERNEL_VERSION``DISK_*``NET_*``MOUSE_STATE``WM_*`)。
- `wine/cleonos_wine_lib/runner.py` 当前已覆盖到 `0..116`(含 `DL_*``FB_*``KERNEL_VERSION``DISK_*``NET_*``MOUSE_STATE``WM_*``PTY_OPEN`)。
- `DL_*``77..79`)在 Wine 中为“可运行兼容”实现:
- `DL_OPEN`:加载 guest ELF 到当前 Unicorn 地址空间,返回稳定 `handle`,并做引用计数。
- `DL_SYM`:解析 ELF `SYMTAB/DYNSYM` 并返回 guest 可调用地址。
@@ -962,6 +971,7 @@ UserSafeControllerUSC危险 syscall 确认:
- 网络 syscall`95..106`)在 Wine 当前为兼容占位实现(统一返回 `0`);即 Wine 运行模式下不会提供真实网络收发。
- `MOUSE_STATE``107`)在 Wine 中为基础兼容实现:可返回指针数据结构;未启用窗口鼠标事件时 `ready` 可能为 `0`
- `WM_*``108..115`)在 Wine 当前为兼容占位实现(统一返回 `0`);不会创建真实窗口服务。
- `PTY_OPEN``116`)在 Wine 中创建内存缓冲 FD写入端通过 `FD_WRITE` 追加,读取端通过 `FD_READ` 消费,用于桌面 Terminal 捕获子进程输出。
- Wine 在运行时崩溃场景下会生成与内核一致格式的“信号编码退出状态”,可通过 `WAITPID` 读取。
- Wine 当前音频 syscall 为占位实现:`AUDIO_AVAILABLE=0``AUDIO_PLAY_TONE=0``AUDIO_STOP=1`
- Wine 版本号策略固定为 `85.0.0-wine`(历史兼容号;不会随 syscall 扩展继续增长)。