Apps/Explorer:复制标准 app 骨架(main.vp / linker.ld / project.vpj,链接地址 0x400000)。启动流程:open /dev/fb0 → ioctl(FB_GET_INFO) 打几何 → mmap 拿到线性地址 → 等约 2 秒(等内核桌面首屏全量重绘过去)→ 画一条渐变横条验证像素真上屏 → open /dev/input/keyboard|mouse 验证输入设备可达 → 常驻不退出。 vpsdk/devfs.vp(新增 SDK 设备层):设备路径常量(与内核注册名逐字一致)、FB_GET_INFO 与 FbInfo 镜像(packed,与内核同布局)、fb_open/fb_get_info/fb_map/kbd_open/mouse_open。 build.py:把 Explorer 加进 required_apps 清单与完整构建分支;内核 main.vp 在四个 app 之后 spawn /APPS/explorer.elf。内核 desktop 与 explorer 并存属迁移中间态,S3 会把窗口合成整体交出去。
31 lines
810 B
Plaintext
31 lines
810 B
Plaintext
{
|
|
"name": "Explorer",
|
|
"version": "1.0.0",
|
|
"source_dir": "./",
|
|
"build_dir": "./__vpcbuild__",
|
|
"compiler": {
|
|
"cmd": "llc",
|
|
"flags": ["-filetype=obj", "-mtriple=x86_64-none-elf", "-relocation-model=static", "-O2"]
|
|
},
|
|
"linker": {
|
|
"cmd": "ld.lld.exe",
|
|
"flags": [
|
|
"-m", "elf_x86_64",
|
|
"-T", "linker.ld",
|
|
"--oformat", "elf64-x86-64",
|
|
"--strip-all"
|
|
],
|
|
"output": "explorer.elf"
|
|
},
|
|
"includes": ["../..", "../../../../includes"],
|
|
"target": {
|
|
"triple": "x86_64-none-elf",
|
|
"datalayout": "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
|
|
},
|
|
"options": {
|
|
"slice_level": 3,
|
|
"target": "llvm",
|
|
"strict_mode": true
|
|
}
|
|
}
|