diff --git a/README.md b/README.md
new file mode 100644
index 0000000..081cf49
--- /dev/null
+++ b/README.md
@@ -0,0 +1,339 @@
+# ViperOS
+
+[English](#english) | [中文](#中文)
+
+A bare-metal 64-bit operating system written in the [Viper](https://git.gvsds.com/GVSDS/TransPyC) language. Boots via UEFI, ships a self-implemented FAT32 driver, runs ELF-format user applications, and includes a complete user-space SDK.
+
+用 [Viper](https://git.gvsds.com/GVSDS/TransPyC) 语言编写的裸机 64 位操作系统。UEFI 启动、自研 FAT32 驱动、运行 ELF 格式用户程序,配套完整的用户态 SDK。
+
+---
+
+
+
+## 中文
+
+### 这是什么
+
+`ViperOS` 是 Viper 语言的旗舰演示项目:**一个完整可启动的操作系统**。和"Linux 发行版"或"教学用 mini-OS"不同,ViperOS 用 Viper 写一切——内核、设备驱动、用户程序、库、SDK 都用同一种语言(Viper 的 Python 语法 + LLVM 后端)。
+
+主要组成:
+- **VKernel** —— 64 位微内核(x86_64-none-elf 目标)
+- **UEFI 引导器** —— `boot/boot.c`(GNU-EFI 编译为 `disk/EFI/BOOT/bootx64.efi`)
+- **FAT32 驱动** —— 自研实现,支持挂载、目录、文件操作
+- **4 个用户应用** —— HelloWorld / Terminal / Gargantua / Scene3D
+- **2 个动态库** —— SerialLogger / VPUI64
+- **ViperPOS SDK** —— 用户态开发库(系统调用、窗口、文件系统、进程)
+
+### 目录结构
+
+```
+ViperOS/
+├── .gitignore # 忽略所有 output/、temp/、构建产物
+├── build.py # 顶层构建入口:构建→打包→启动 QEMU
+├── linker.ld # 顶层链接脚本
+├── boot/ # UEFI 引导器
+│ ├── Makefile
+│ └── boot.c
+├── VKernel/ # 内核
+│ ├── project.json # 内核构建配置
+│ ├── linker.ld
+│ └── Kernel/
+│ ├── main.py # 内核入口
+│ ├── bootinfo.py
+│ ├── drivers/ # 驱动
+│ │ ├── core/cpu/ # APIC、CPU、FPU
+│ │ ├── devfs/ # 设备文件系统
+│ │ ├── fs/fat32/ # FAT32 驱动(自研)
+│ │ ├── input/ # 键盘、鼠标
+│ │ ├── serial/ # 8250 UART
+│ │ ├── storage/ # IDE
+│ │ ├── usb/ # USB HID / UHCI
+│ │ └── video/ # VESA Framebuffer + UI
+│ ├── execrunner/ # ELF 加载器
+│ ├── intr/ # 中断子系统(GDT/IDT/ISR/Syscall)
+│ ├── mm/ # 内存管理
+│ ├── paging/ # 分页
+│ ├── sched/ # 协程、进程、调度
+│ ├── services/ # 内核服务
+│ └── platform/ # 平台相关(PIC/PIT/RTC/Timer)
+├── Apps/ # 用户应用(每个子目录一个独立 ELF)
+│ ├── HelloWorld/
+│ ├── Terminal/
+│ ├── Gargantua/
+│ └── Scene3D/
+├── Libs/ # 动态库(每个子目录一个 .so)
+│ ├── SerialLogger/
+│ └── VPUI64/
+├── vpsdk/ # ViperPOS SDK(应用开发用)
+│ ├── __init__.py
+│ ├── stdlib.py
+│ ├── syscall.py
+│ ├── window.py
+│ ├── vpui.py
+│ ├── fs.py
+│ ├── process.py
+│ ├── dynlib.py
+│ └── wiki/ # SDK 自带 wiki
+├── Scripts/
+│ ├── check_disk.py
+│ ├── disk.ps1 # ImDisk 打包 FAT32 镜像
+│ └── disk.sh # Linux 等价脚本
+└── disk/ # 被打包进 disk.img 的文件
+ ├── EFI/BOOT/bootx64.efi
+ ├── app/helloworld.asm
+ ├── apps/ # .elf 拷贝目标(构建时填充)
+ ├── libs/ # .so 拷贝目标(构建时填充)
+ └── sys/kernel/x86_64/kernel.bin
+```
+
+### 前提条件
+
+| 工具 | 说明 |
+|------|------|
+| `python` ≥ 3.10 | 运行 TransPyC 编译器 |
+| `llc` | LLVM 静态编译器 |
+| `ld.lld` | LLD 链接器(裸机版本) |
+| `qemu-system-x86_64` | QEMU 模拟器 |
+| `imdisk` | Windows 下创建/挂载磁盘镜像的驱动;Linux 平台用 `disk.sh` 替代 |
+| `gnu-efi` 工具链 | 编译 UEFI 引导器(`boot/boot.c`) |
+| [TransPyC](https://git.gvsds.com/GVSDS/TransPyC) | 编译器,**必须克隆在与 ViperOS 同级的目录** |
+
+目录布局要求:
+
+```
+D:\Users\TermiNexus\Desktop\TransPyC\
+├── TransPyC\ # 编译器仓库
+├── ViperOS\ # 本仓库
+└── ViperTemplateProject\
+```
+
+### 快速开始
+
+```powershell
+# 1. 在 ViperOS 目录下直接运行
+cd D:\Users\TermiNexus\Desktop\TransPyC\ViperOS
+
+# 2. 完整构建并启动 QEMU
+python build.py
+
+# 3. 串口日志写入 serial.log
+```
+
+`build.py` 会自动完成:
+1. 调用 `Projectrans.py` 编译 VKernel → `VKernel/output/kernel.bin`
+2. 编译 2 个动态库(SerialLogger、VPUI64)
+3. 编译 4 个应用(HelloWorld、Terminal、Gargantua、Scene3D)
+4. 拷贝所有产物到 `disk/apps/`、`disk/libs/`、`disk/sys/kernel/x86_64/`
+5. 调用 `Scripts/disk.ps1` 创建 64MB FAT32 镜像 `disk.img`
+6. 启动 QEMU(TCG 加速、`-no-reboot` 防止三重错误后重启)
+
+退出 QEMU 后查看 `serial.log` 可看到内核启动日志。
+
+### 常用构建参数
+
+```powershell
+python build.py --noclean # 不清缓存,保留 temp/ 加速二次构建
+python build.py --kernel-only # 只重编译内核,跳过应用和库
+```
+
+⚠ 不支持 `--noqemu`(`build.py` 第 76 行注释明确"不准使用 --noqemu")。
+
+### 添加新应用
+
+1. 在 `Apps/` 下新建目录,例如 `Apps/MyApp/`
+2. 创建 `App/MyApp/main.py`(参考 `Apps/HelloWorld/main.py`)
+3. 创建 `App/MyApp/project.json`(参考 `Apps/HelloWorld/project.json`,注意 `triple = "x86_64-none-elf"`、`linker` 用 `ld.lld` 输出 `.elf`)
+4. 在 `build.py` 中追加构建 + 拷贝命令
+5. 在 `disk/apps/MyApp/` 目录放应用需要的资源(运行时通过 vpsdk 访问)
+
+### 添加新驱动
+
+在 `VKernel/Kernel/drivers/<子系统>/<设备>/` 下添加 `<设备>.py`,参考 `fs/fat32/fat32.py`(最大的驱动,自研 FAT32 完整实现)。在 `VKernel/Kernel/main.py` 中注册驱动初始化。
+
+### 平台说明
+
+| 平台 | 状态 |
+|------|------|
+| Windows 10/11 + mingw + QEMU | ✅ 主平台,CI 测试覆盖 |
+| Linux x86_64 + clang + QEMU | ⚠ 理论可用,需把 `build.py` 改用 `disk.sh`,ld.lld 用系统 lld |
+| macOS | ❌ 未测试 |
+| 真实硬件 | ❌ 暂未支持(仅 UEFI x86_64) |
+
+### 调试
+
+- **QEMU 串口日志**:`build.py` 启动时把 `-serial file:serial.log`,所有 `printf` 写到该文件
+- **GDB**:`qemu-system-x86_64` 加 `-s -S` 然后用 `gdb` 连 `localhost:1234`
+- **崩溃排查**:`build.py` 默认带 `-no-reboot`,避免三重错误后无限重启
+
+### 进一步阅读
+
+- [TransPyC 编译器仓库](https://git.gvsds.com/GVSDS/TransPyC)
+- [Viper 语言概览](https://git.gvsds.com/GVSDS/TransPyC/blob/main/wiki/01-overview.md)
+- [ViperOS SDK wiki](vpsdk/wiki/01-overview.md)
+- [Viper 模板项目(ViperTemplateProject)](https://git.gvsds.com/GVSDS/Viper_TemplateProject)
+
+---
+
+
+
+## English
+
+### What is this
+
+`ViperOS` is the flagship demo of the [Viper](https://git.gvsds.com/GVSDS/TransPyC) language: a **complete bootable operating system** written in Viper. Unlike a Linux distro or a teaching mini-OS, ViperOS uses one language for everything — kernel, device drivers, user programs, libraries, SDK all use Viper (Python syntax + LLVM backend).
+
+Main components:
+- **VKernel** — 64-bit microkernel (target `x86_64-none-elf`)
+- **UEFI bootloader** — `boot/boot.c` (compiled by GNU-EFI to `disk/EFI/BOOT/bootx64.efi`)
+- **FAT32 driver** — self-implemented, supports mount/dir/file operations
+- **4 user applications** — HelloWorld / Terminal / Gargantua / Scene3D
+- **2 dynamic libraries** — SerialLogger / VPUI64
+- **ViperPOS SDK** — user-space development kit (syscall, window, fs, process)
+
+### Directory layout
+
+```
+ViperOS/
+├── .gitignore # ignores all output/, temp/, build artifacts
+├── build.py # top-level build entry: build -> pack -> QEMU
+├── linker.ld # top-level linker script
+├── boot/ # UEFI bootloader
+│ ├── Makefile
+│ └── boot.c
+├── VKernel/ # kernel
+│ ├── project.json # kernel build config
+│ ├── linker.ld
+│ └── Kernel/
+│ ├── main.py # kernel entry
+│ ├── bootinfo.py
+│ ├── drivers/ # device drivers
+│ │ ├── core/cpu/ # APIC, CPU, FPU
+│ │ ├── devfs/ # device filesystem
+│ │ ├── fs/fat32/ # self-implemented FAT32 driver
+│ │ ├── input/ # keyboard, mouse
+│ │ ├── serial/ # 8250 UART
+│ │ ├── storage/ # IDE
+│ │ ├── usb/ # USB HID / UHCI
+│ │ └── video/ # VESA framebuffer + UI
+│ ├── execrunner/ # ELF loader
+│ ├── intr/ # GDT/IDT/ISR/syscall
+│ ├── mm/ # memory management
+│ ├── paging/ # paging
+│ ├── sched/ # coroutine, process, scheduler
+│ ├── services/ # kernel services
+│ └── platform/ # platform glue (PIC/PIT/RTC/Timer)
+├── Apps/ # user apps (each subdir = one ELF)
+│ ├── HelloWorld/
+│ ├── Terminal/
+│ ├── Gargantua/
+│ └── Scene3D/
+├── Libs/ # shared libraries (each subdir = one .so)
+│ ├── SerialLogger/
+│ └── VPUI64/
+├── vpsdk/ # ViperPOS SDK (for user apps)
+│ ├── __init__.py
+│ ├── stdlib.py
+│ ├── syscall.py
+│ ├── window.py
+│ ├── vpui.py
+│ ├── fs.py
+│ ├── process.py
+│ ├── dynlib.py
+│ └── wiki/ # SDK wiki
+├── Scripts/
+│ ├── check_disk.py
+│ ├── disk.ps1 # ImDisk-based FAT32 image builder
+│ └── disk.sh # Linux-equivalent
+└── disk/ # files packed into disk.img
+ ├── EFI/BOOT/bootx64.efi
+ ├── app/helloworld.asm
+ ├── apps/ # .elf destination (filled at build time)
+ ├── libs/ # .so destination (filled at build time)
+ └── sys/kernel/x86_64/kernel.bin
+```
+
+### Prerequisites
+
+| Tool | Notes |
+|------|-------|
+| `python` ≥ 3.10 | runs TransPyC |
+| `llc` | LLVM static compiler |
+| `ld.lld` | LLD linker (bare-metal) |
+| `qemu-system-x86_64` | QEMU emulator |
+| `imdisk` | Windows disk-image mount utility; on Linux use `disk.sh` instead |
+| `gnu-efi` toolchain | builds the UEFI bootloader (`boot/boot.c`) |
+| [TransPyC](https://git.gvsds.com/GVSDS/TransPyC) | compiler; **must be cloned as a sibling of ViperOS** |
+
+Required layout:
+
+```
+D:\Users\TermiNexus\Desktop\TransPyC\
+├── TransPyC\ # compiler repo
+├── ViperOS\ # this repo
+└── ViperTemplateProject\
+```
+
+### Quick start
+
+```powershell
+# 1. From the ViperOS directory
+cd D:\Users\TermiNexus\Desktop\TransPyC\ViperOS
+
+# 2. Full build and launch QEMU
+python build.py
+
+# 3. Serial log is written to serial.log
+```
+
+`build.py` automatically:
+1. Calls `Projectrans.py` to build VKernel -> `VKernel/output/kernel.bin`
+2. Builds 2 shared libraries (SerialLogger, VPUI64)
+3. Builds 4 applications (HelloWorld, Terminal, Gargantua, Scene3D)
+4. Copies all artifacts into `disk/apps/`, `disk/libs/`, `disk/sys/kernel/x86_64/`
+5. Calls `Scripts/disk.ps1` to create a 64MB FAT32 image `disk.img`
+6. Launches QEMU (TCG accel, `-no-reboot` to prevent reboot on triple fault)
+
+After quitting QEMU, inspect `serial.log` for kernel boot messages.
+
+### Common build flags
+
+```powershell
+python build.py --noclean # keep temp/ to speed up subsequent builds
+python build.py --kernel-only # only rebuild the kernel, skip apps/libs
+```
+
+`--noqemu` is **NOT supported** (see comment at line 76 of `build.py`).
+
+### Adding a new application
+
+1. Create a directory under `Apps/`, e.g. `Apps/MyApp/`
+2. Add `App/MyApp/main.py` (see `Apps/HelloWorld/main.py` for reference)
+3. Add `App/MyApp/project.json` (see `Apps/HelloWorld/project.json`; set `triple = "x86_64-none-elf"`, link with `ld.lld` to produce `.elf`)
+4. Add build + copy commands in `build.py`
+5. Put any runtime resources in `disk/apps/MyApp/` (read at runtime via vpsdk)
+
+### Adding a new driver
+
+Add `.py` under `VKernel/Kernel/drivers///`. See `fs/fat32/fat32.py` (largest, full FAT32 implementation). Register the init in `VKernel/Kernel/main.py`.
+
+### Platform support
+
+| Platform | Status |
+|----------|--------|
+| Windows 10/11 + mingw + QEMU | ✅ primary, CI-tested |
+| Linux x86_64 + clang + QEMU | ⚠ theoretically works, requires modifying `build.py` to use `disk.sh` and system lld |
+| macOS | ❌ untested |
+| Real hardware | ❌ not yet (UEFI x86_64 only) |
+
+### Debugging
+
+- **QEMU serial log**: `build.py` passes `-serial file:serial.log`; all `printf` output goes there
+- **GDB**: add `-s -S` to `qemu-system-x86_64` and attach `gdb` to `localhost:1234`
+- **Crash triage**: `build.py` always uses `-no-reboot`, avoiding reboot loops after triple faults
+
+### Further reading
+
+- [TransPyC compiler](https://git.gvsds.com/GVSDS/TransPyC)
+- [Viper language overview](https://git.gvsds.com/GVSDS/TransPyC/blob/main/wiki/01-overview.md)
+- [ViperOS SDK wiki](vpsdk/wiki/01-overview.md)
+- [Viper template project (ViperTemplateProject)](https://git.gvsds.com/GVSDS/Viper_TemplateProject)