TermiNexus
|
0919a058a8
|
fix(vkernel): 预留内核 .bss 与栈区,修堆 arena 覆盖未预留内核内存
根因:bootloader 只按 kernel 文件大小 AllocatePages(.bss 不占文件),于是 .bss
尾部(ticks/_perf_* 等全局量)与主线程栈区(0x60000~0x80000)在 memmap 里仍是
EfiConventionalMemory,被内核 mm 的堆 arena 当作空闲内存占用 → 内核全局量被写坏、
堆元数据被反向破坏,最终桌面线程栈上的 va_list 被改坏,vsnprintf 读 %d 变参时
#GP(rip=0x130d45, err=0x0)。
- linker.ld: .bss 末尾加 LONG(0) 强制 PROGBITS,使 kernel.bin 的 FileSize 涵盖
.bss,bootloader 的 PagesNeeded 得以预留整块内核镜像(含 .bss)
- mm.init: 新增 KernelAddr/KernelEnd,挑 arena 时把与内核镜像 [kernel_PhysAddr,
__bss_end) 重叠的 region 起点抬到镜像末端(不整段丢弃)
- main.vp: 取 __bss_end 并传入 mm.init
- boot.c: ExitBootServices 前用 AllocatePages(AllocateAddress, EfiLoaderData)
占位内核栈区 0x60000~0x80000,使其在 memmap 中标记已用
另含在途整理:多处补显式收窄转换(uint8()/uint16() 等)、kbd_svc 构造改为
kbd_svc.__init__() 等。
|
2026-10-14 12:54:43 +08:00 |
|
TermiNexus
|
5b4bab59cc
|
chore(ViperOS): 合并落库内核侧在途改动并移除 vpsdk wiki 拷贝
VKernel / vpsdk / Apps / Libs 共 30 个源文件:内核与 SDK 侧的新语法适配及编译修正(含 bootinfo.vp / main.vp 位宽改 uint64、gfx.vp 前向引用改指针、devfs.vp 指针解引用赋值、elf.vp 跨模块函数取值等)。删除 vpsdk/wiki/*.md(14 文件,约 -8100 行):与仓库根 wiki 重复的拷贝,统一以根 wiki 为唯一来源。
|
2026-10-07 19:04:33 +08:00 |
|
TermiNexus
|
dcb7c5c2c0
|
chore(ViperOS): 落库内核侧进行中的改动(26 文件,+1573/-1805)
内容由用户产出,本次仅代为提交、未做任何语义修改;含 static 修饰符前置迁移等(新增 static 前缀 16 行)。提交消息为中性描述——如需更精确的说明请 amend。
|
2026-09-28 15:24:52 +08:00 |
|
TermiNexus
|
2a54e2bafb
|
清理了 t.CVoid
|
2026-09-16 16:07:04 +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
|
2a03330a9d
|
fix(kernel): 分裂 2MB 大页使 .rodata 真正只读,加页表与格式串校验诊断并禁用 App 自动启动
|
2026-08-30 07:27:45 +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
|
4c25e0e35c
|
debug(desktop,uhci): malloc 判空失败处打印实际返回值,定位 mm.malloc 返回值与调用方接收不一致
|
2026-08-26 23:25:15 +08:00 |
|
TermiNexus
|
8b40203b63
|
提交新的建议忽略
|
2026-08-06 18:08:50 +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 |
|