Commit Graph

  • 2a54e2bafb 清理了 t.CVoid main TermiNexus 2026-09-16 16:07:04 +08:00
  • 6a54373c26 fix(vkernel): 补 ISR/调度 call 的 rsi/rdi clobber、rep stosb 内存 clobber,修 mm 别名笔误 TermiNexus 2026-09-11 17:40:21 +08:00
  • c1dd55d606 fix(vkernel): 修 _tss.reserved0 位宽与 AP trampoline LME 指令编码 TermiNexus 2026-09-11 15:50:14 +08:00
  • a518f75b24 chore(vkernel): 重置基线 — 纳入 TPV codegen 修复配合的内核侧调整与既有工作区内容 TermiNexus 2026-09-11 14:27:01 +08:00
  • cd1cc915c5 修正了build.py,重置基线 TermiNexus 2026-09-11 10:34:34 +08:00
  • c6a4063015 revert: devfs find 恢复 for i in result(编译器已实现 NULL 终止遍历语义) TermiNexus 2026-08-30 08:37:39 +08:00
  • 3b522927bb fix(kernel): devfs find 改 range(token) 遍历,修复全量遍历未初始化栈数组致 strcmp NULL 崩溃 TermiNexus 2026-08-30 08:30:30 +08:00
  • 463a20017f fix(kernel): save_pt_range 的 c.Set 改 c.Set(c.Deref(save_count)) 写所指地址而非指针变量 TermiNexus 2026-08-30 07:44:40 +08:00
  • 333adb090f fix(kernel): devfs last_slash/file_name 改用裸 str,修复 i8* 赋给 i8** 导致设备注册空名 TermiNexus 2026-08-30 07:43:55 +08:00
  • 2a03330a9d fix(kernel): 分裂 2MB 大页使 .rodata 真正只读,加页表与格式串校验诊断并禁用 App 自动启动 TermiNexus 2026-08-30 07:27:45 +08:00
  • efa99a8c4b fix(kernel): [STK] 用户态 rbp 跳过链回溯(防嵌套 #PF 死循环) TermiNexus 2026-08-29 18:14:48 +08:00
  • 3a3d026f95 fix(debug): _fault_rax 改为 ISR 入口最早保存(避免被读 CS 覆盖) TermiNexus 2026-08-29 18:06:03 +08:00
  • 25af08ecf4 debug(kernel): 保存并打印崩溃时 RAX(验证 cr2=rax-偏移 关系) TermiNexus 2026-08-29 18:00:13 +08:00
  • 084061f97e debug(kernel): [STK] rbp 链回溯扩展到所有异常(含 #UD int 6) TermiNexus 2026-08-29 17:53:40 +08:00
  • a85f826adf debug(kernel): #PF 打印 rbp 链回溯(崩溃帧 + 4 级返回地址) TermiNexus 2026-08-29 17:50:32 +08:00
  • b1956ea722 fix(kernel): paging.init 先清 WP 再 MakePTWritable 再置 WP(bootloader 已设 WP=1) TermiNexus 2026-08-29 17:42:34 +08:00
  • 56e38c43ea fix(kernel): MakePTWritable 移到 WP=0 阶段执行,破除页表页递归只读死锁 TermiNexus 2026-08-29 17:41:03 +08:00
  • 4f729b20a3 fix(kernel): _set_page_writable 支持 2MB 大页(PD 条目直接置 W) TermiNexus 2026-08-29 17:39:25 +08:00
  • a92073851e fix(kernel): 保护 .rodata 前先放开页表页可写(WP=1 暴露写页表 #PF) TermiNexus 2026-08-29 17:37:29 +08:00
  • 04ca2d4c5b fix(kernel): .rodata 映射只读 + CR0.WP=1,越界写立即 #PF 暴露写源 TermiNexus 2026-08-29 17:34:41 +08:00
  • b887d3d9c2 更新,部分功能可用 TermiNexus 2026-08-27 09:47:47 +08:00
  • 4296d2a19e fix(asm-inline): cmos_read 裸 in/out al 补 CLOBBER_RAX + 显式 mov;rdmsr out 绑定与 clobber 冲突(lo/hi 读不到 EAX/EDX)改显式 mov——同类 EAX 破坏根因,残留间歇性数据损坏源 TermiNexus 2026-08-27 01:33:19 +08:00
  • f963fb16ad debug(fat32): sfn_from_lfn 打印 dot_pos/i/ext_i 与生成的 sfn——Hello 生成 HELLO 空格(缺扩展名),定位 for-in 遍历/扩展名写入间歇性失败 TermiNexus 2026-08-27 01:30:02 +08:00
  • e49c74fb12 debug(fat32): handle_alloc 表满诊断加 handle_table 地址——定位 BSS 相邻越界写源 TermiNexus 2026-08-27 01:27:38 +08:00
  • 8f15455784 debug(fat32): handle_alloc 表满时打印 handles_initialized 与前 4 个 handle 的 is_open——spawn scan open failed err=18(FR_TOO_MANY_OPEN_FILES) TermiNexus 2026-08-27 01:26:12 +08:00
  • 2b0d68d3fe debug(elf): read_len 后加 RAX 快照——fat32.read 打印 br=64 但 load_elf 收到 rl=0,区分 call 返回错 vs store 后被覆盖 TermiNexus 2026-08-27 01:24:26 +08:00
  • f6154bfed3 debug(fat32): dir_find 打印 sfn_from_lfn 生成的 11 字节 hex——hello.elf 的 sfn 显示为 H(sfn[1]=0x00),定位 sfn 生成被破坏 TermiNexus 2026-08-27 01:21:15 +08:00
  • f8ad5b7176 debug(paging): init_pool 打印 pt_pool_raw/pt_pool_start——clone 时 raw=0x0,区分 init 收到 0 还是 init 后被覆盖 TermiNexus 2026-08-27 01:19:04 +08:00
  • 364daa111b debug(fat32,elf): win_read 打印 abs_sector/hidden_sectors/win 前4字节(win[0..1] 被清零);not x86_64 分支 dump ehdr 前20字节(read_len=64 但内容错) TermiNexus 2026-08-27 01:11:05 +08:00
  • d0b512f159 debug(elf,main): 打印 read_len 与 spawn_elf 返回 pid 实际值——fat32.read 内部 br=64 但 load_elf 收到 <64、spawn ret pid=1 但 main 收到 0,定位跨模块返回值间歇性丢失 TermiNexus 2026-08-27 01:08:37 +08:00
  • a621b0d264 debug(paging,process,fat32): 定位 BSS 全局内存破坏——clone AllocPage 失败打印 pt_pool_raw/pt_pool_used,create_process malloc 返回实际值(mm 成功但调用方收 None),dir_find 失败 dump win 缓冲内容 TermiNexus 2026-08-27 01:02:39 +08:00
  • 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 污染) TermiNexus 2026-08-27 00:55:54 +08:00
  • 038b0a428e fix(ide,elf): 移除每次读扇区前的 0x3F6 SRST 软复位写(Gargantua 大数据段读取中途 waitDataReady 失败根因);spawn_elf 用指针算术替代 path[name_start:] 切片传参并加 entry/pid 运行时诊断 TermiNexus 2026-08-27 00:45:23 +08:00
  • 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 诊断 TermiNexus 2026-08-27 00:32:54 +08:00
  • 3418bc6a59 fix(fat32): c.Set 写指针误用值赋值,改为 c.Set(c.Deref(ptr),val)——read/write 的 br/bw、dir_sector_out、ioctl 扇区参数从未写入导致 ehdr 读取返回0 TermiNexus 2026-08-27 00:20:27 +08:00
  • c0685fe6bd debug(fat32): read 包装打印 br 实际值,确认 c.Set 是否写入(types 内 total_read=64 但 read_len<64) TermiNexus 2026-08-27 00:12:46 +08:00
  • 51c7475031 debug(fat32): read 打印文件状态(size/first_cluster/pos)与实际读取字节数,定位 ehdr 读取失败根因 TermiNexus 2026-08-27 00:08:52 +08:00
  • a8f7c0b0b3 debug(sched): create_thread 打印 tid/func/stack 实际值,定位线程首次调度跳栈 #UD(rip 在栈区域)根因 TermiNexus 2026-08-26 23:30:28 +08:00
  • 4c25e0e35c debug(desktop,uhci): malloc 判空失败处打印实际返回值,定位 mm.malloc 返回值与调用方接收不一致 TermiNexus 2026-08-26 23:25:15 +08:00
  • cdee5e0e87 debug(idt): 非 #GP/#PF 异常打印 rip/rsp,定位 tid=1 #UD 执行位置 TermiNexus 2026-08-26 22:22:56 +08:00
  • 61208676c6 fix(main): _start 加 stackrealign,修复变参函数 movaps #GP TermiNexus 2026-08-26 20:18:09 +08:00
  • ff802c2eed debug(intr): #GP 打印 CR0/CR4 TermiNexus 2026-08-26 19:40:13 +08:00
  • 7b084803f5 fix(cpu): 启动早期启用 SSE/FPU,修复 movaps #GP TermiNexus 2026-08-26 19:36:50 +08:00
  • 4ff48efde9 debug(intr): #GP/#PF 打印 faulting RSP TermiNexus 2026-08-26 19:34:01 +08:00
  • 530c85d6a4 fix(main): 移除 BootInfo 局部重声明,修复 memmap 全 0 TermiNexus 2026-08-26 19:26:50 +08:00
  • 87d4e359d8 debug(main): 转储 BootInfo 地址处原始 88 字节 TermiNexus 2026-08-26 19:23:30 +08:00
  • 963e0ed53f debug(main): 打印 BootInfo 指针与 memmap 原始字段 TermiNexus 2026-08-26 19:17:58 +08:00
  • d4200f1129 debug(mm): 无条件打印 memmap 三参数 + fallback CMOS 原始值 TermiNexus 2026-08-26 19:11:22 +08:00
  • 1043343b9d fix(mm): get_block_size 移位改 64 位,修复伙伴初始化无限循环 TermiNexus 2026-08-26 19:04:55 +08:00
  • f9ec205816 debug(mm): 转储 memmap 描述符 + buddy 初始化循环进度 TermiNexus 2026-08-26 19:02:40 +08:00
  • 3995cb9545 debug(timer): 门32读回+软int0x20+PIC ISR,一次性区分中断分发路径 TermiNexus 2026-08-26 18:42:58 +08:00
  • ee329c313f fix(apic): early_init 改用 IA32_APIC_BASE EN 位判断,避免 cpuid 误判跳过 init TermiNexus 2026-08-26 18:39:07 +08:00
  • 9ff53aa1fa debug(apic): 读回 LINT0 与 APIC BASE MSR,验证 EXTINT 配置是否生效 TermiNexus 2026-08-26 18:32:21 +08:00
  • 471cfa16bf debug(timer): timer_init 读 PIT 计数器,验证 PIT 是否在走 TermiNexus 2026-08-26 18:29:20 +08:00
  • 57c4092d19 debug(timer): timer_handler 一次性 H + msleep 自旋 s,判定 ISR 是否被调用 TermiNexus 2026-08-26 18:26:34 +08:00
  • 9082056fe0 fix(timer): timer_handler 补 LAPIC EOI,修复 APIC 启用后定时中断被屏蔽 TermiNexus 2026-08-26 18:23:16 +08:00
  • f675540c64 chore(boot): 移除全部中断排查诊断(int20 测试 + T/[T]/D 打印) TermiNexus 2026-08-26 18:19:41 +08:00
  • 3c163a5936 debug(boot): sti 后软件触发 int 0x20,二分定位中断不送达 TermiNexus 2026-08-26 18:16:09 +08:00
  • 9ec3627a5a fix(boot): 启用 apic.early_init,配置 LINT0=EXTINT 恢复 PIC 定时中断 TermiNexus 2026-08-26 18:14:29 +08:00
  • 10857e58ed debug(intr): isr32_handler 入口打印 T + isr_default 打印 D,定位定时中断丢失 TermiNexus 2026-08-26 18:11:47 +08:00
  • 7336ddff48 debug(timer): timer_handler 每 250 拍打印 [T],验证定时器中断触发 TermiNexus 2026-08-26 18:07:47 +08:00
  • 8b40203b63 提交新的建议忽略 TermiNexus 2026-08-06 18:08:50 +08:00
  • be92f671d0 根据静态注解修正了部分的 global 修正(遍历截止fat32 fileio.vp) TermiNexus 2026-07-31 13:36:26 +08:00
  • 9d786dd5b1 self 传参的相关修复 TermiNexus 2026-07-30 17:30:47 +08:00
  • 49d074e487 通过插件的静态推导修复了一些错误 TermiNexus 2026-07-30 17:28:27 +08:00
  • 065fcbdf43 调整了 VKernel 的版本 TermiNexus 2026-07-30 17:26:17 +08:00
  • 56d127cb88 将 project.json 改为了 project.vpj,初步尝试了使用 Viper 插件高亮 TermiNexus 2026-07-30 17:24:35 +08:00
  • 20e7289c61 将 .py 和 .pyi 后缀名改为了 .vp 和 .vpi 后缀名 TermiNexus 2026-07-30 16:34:26 +08:00
  • 10cefa51ad Add MIT LICENSE Viper 2026-07-19 14:39:40 +08:00
  • a1234d5382 Add bilingual README Viper 2026-07-19 12:42:11 +08:00
  • 6813947181 Initial import of ViperOS Viper 2026-07-19 12:38:20 +08:00