Commit Graph
27 Commits
Author SHA1 Message Date
TermiNexus 2a54e2bafb 清理了 t.CVoid 2026-09-16 16:07:04 +08:00
TermiNexus c1dd55d606 fix(vkernel): 修 _tss.reserved0 位宽与 AP trampoline LME 指令编码
- N6 cpu.vp: _tss.reserved0 uint64→uint32, TSS 108B→104B, RSP0 归位偏移 4, 对齐 gdt.tss_buf

- N7 apic.vp: 置 LME 由 0x83 C8(imm8) 改 0x81 C8(imm32), 否则后 4 字节被当指令执行
2026-09-11 15:50:14 +08:00
TermiNexus a518f75b24 chore(vkernel): 重置基线 — 纳入 TPV codegen 修复配合的内核侧调整与既有工作区内容
- devfs.vp: string.split 传 PATH_BUFFER_SIZE(配合 split 新增容量参数)

- fat32_types.vp: lfn_extract 越界钳制(base+i > MAX_LFN 返回 -1)

- sheet.vp: gfx.Renderer 实参修正为 (fb, zb, w, h)(原单参导致 w/h=0 渲染空操作)

- 同批包含 VKernel 其余既有移植改动与 vpsdk/Apps/Libs 工作区内容
2026-09-11 14:27:01 +08:00
TermiNexus cd1cc915c5 修正了build.py,重置基线 2026-09-11 10:34:34 +08:00
TermiNexus c6a4063015 revert: devfs find 恢复 for i in result(编译器已实现 NULL 终止遍历语义) 2026-08-30 08:37:39 +08:00
TermiNexus 3b522927bb fix(kernel): devfs find 改 range(token) 遍历,修复全量遍历未初始化栈数组致 strcmp NULL 崩溃 2026-08-30 08:30:30 +08:00
TermiNexus 333adb090f fix(kernel): devfs last_slash/file_name 改用裸 str,修复 i8* 赋给 i8** 导致设备注册空名 2026-08-30 07:43:55 +08:00
TermiNexus b887d3d9c2 更新,部分功能可用 2026-08-27 09:47:47 +08:00
TermiNexus f963fb16ad debug(fat32): sfn_from_lfn 打印 dot_pos/i/ext_i 与生成的 sfn——Hello 生成 HELLO 空格(缺扩展名),定位 for-in 遍历/扩展名写入间歇性失败 2026-08-27 01:30:02 +08:00
TermiNexus e49c74fb12 debug(fat32): handle_alloc 表满诊断加 handle_table 地址——定位 BSS 相邻越界写源 2026-08-27 01:27:38 +08:00
TermiNexus 8f15455784 debug(fat32): handle_alloc 表满时打印 handles_initialized 与前 4 个 handle 的 is_open——spawn scan open failed err=18(FR_TOO_MANY_OPEN_FILES) 2026-08-27 01:26:12 +08:00
TermiNexus f6154bfed3 debug(fat32): dir_find 打印 sfn_from_lfn 生成的 11 字节 hex——hello.elf 的 sfn 显示为 H(sfn[1]=0x00),定位 sfn 生成被破坏 2026-08-27 01:21:15 +08:00
TermiNexus 364daa111b debug(fat32,elf): win_read 打印 abs_sector/hidden_sectors/win 前4字节(win[0..1] 被清零);not x86_64 分支 dump ehdr 前20字节(read_len=64 但内容错) 2026-08-27 01:11:05 +08:00
TermiNexus a621b0d264 debug(paging,process,fat32): 定位 BSS 全局内存破坏——clone AllocPage 失败打印 pt_pool_raw/pt_pool_used,create_process malloc 返回实际值(mm 成功但调用方收 None),dir_find 失败 dump win 缓冲内容 2026-08-27 01:02:39 +08:00
TermiNexus 42312a39b1 fix(desktop): mm.malloc 显式 CUInt64T 参数规避裸名回退 i32 参数(bg_row_buf 收到 0x0);fat32 dir_get_entry_info 加 win 缓冲内容诊断(根目录显示 (None) size=523360、dir_find offset=0 失败疑似 win 污染) 2026-08-27 00:55:54 +08:00
TermiNexus 038b0a428e fix(ide,elf): 移除每次读扇区前的 0x3F6 SRST 软复位写(Gargantua 大数据段读取中途 waitDataReady 失败根因);spawn_elf 用指针算术替代 path[name_start:] 切片传参并加 entry/pid 运行时诊断 2026-08-27 00:45:23 +08:00
TermiNexus 25d2628cd4 fix(fat32,devfs): c.Set 坏模式静默不写——lfn_extract/lfn_set_char 从未写入 LFN 缓冲,dir_find 长文件名匹配永远失败;devfs 键盘/鼠标 buffer 未写入;改 c.Set(c.Deref(ptr),val) 与下标赋值,并补 sfn 超 8 字符生成 ~1 短名;elf bad magic 加 hex dump 诊断 2026-08-27 00:32:54 +08:00
TermiNexus 3418bc6a59 fix(fat32): c.Set 写指针误用值赋值,改为 c.Set(c.Deref(ptr),val)——read/write 的 br/bw、dir_sector_out、ioctl 扇区参数从未写入导致 ehdr 读取返回0 2026-08-27 00:20:27 +08:00
TermiNexus c0685fe6bd debug(fat32): read 包装打印 br 实际值,确认 c.Set 是否写入(types 内 total_read=64 但 read_len<64) 2026-08-27 00:12:46 +08:00
TermiNexus 51c7475031 debug(fat32): read 打印文件状态(size/first_cluster/pos)与实际读取字节数,定位 ehdr 读取失败根因 2026-08-27 00:08:52 +08:00
TermiNexus 4c25e0e35c debug(desktop,uhci): malloc 判空失败处打印实际返回值,定位 mm.malloc 返回值与调用方接收不一致 2026-08-26 23:25:15 +08:00
TermiNexus 7b084803f5 fix(cpu): 启动早期启用 SSE/FPU,修复 movaps #GP
faulting RSP=0x7d760 16 对齐证明非栈对齐问题,movaps #GP(err=0) 真因是 CR4.OSFXSR 未置位(SSE 未启用)。OVMF 启动后 SSE 默认关闭,变参函数传 float/double 保存 xmm 寄存器时触发。新增 cpu.enable_sse(CR0 清 EM 置 MP + CR4 OSFXSR|OSXMMEXCPT + fninit),main.vp __init__ 开头调用。
2026-08-26 19:36:50 +08:00
TermiNexus ee329c313f fix(apic): early_init 改用 IA32_APIC_BASE EN 位判断,避免 cpuid 误判跳过 init
lint0 读回 0x0(QEMU 复位默认 0x10000)说明此前读的是 RAM,_lapic_base 为 0,
init() 很可能未执行。msr_read 已在前置流程验证可用,改按 MSR bit11 判断更可靠。
main.vp 增补综合诊断:打印 base/version/svr/lint0 重写读回/特性位,一次性区分
init 未执行、MMIO 映射失效、写不粘三种假设。
2026-08-26 18:39:07 +08:00
TermiNexus 8b40203b63 提交新的建议忽略 2026-08-06 18:08:50 +08:00
TermiNexus be92f671d0 根据静态注解修正了部分的 global 修正(遍历截止fat32 fileio.vp) 2026-07-31 13:36:26 +08:00
TermiNexus 20e7289c61 将 .py 和 .pyi 后缀名改为了 .vp 和 .vpi 后缀名 2026-07-30 16:34:26 +08:00
Viper 6813947181 Initial import of ViperOS 2026-07-19 12:38:20 +08:00