# vector **Repository Path**: idcu/vector ## Basic Information - **Project Name**: vector - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: develop - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-27 - **Last Updated**: 2026-03-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Vector OS - 多架构微内核嵌入式操作系统 Vector OS 是一个面向嵌入式生产环境的多架构微内核操作系统,采用微内核架构设计,专注于可靠性、可扩展性和实时性能。 ## 核心特性 - **全架构支持**: 支持 x86、ARM 和 RISC-V 三种主流架构 - **微内核架构**: 最小化内核代码,服务运行在用户空间 - **实时调度**: 支持优先级调度和抢占式多任务 - **系统调用接口**: 完整的 POSIX 风格系统调用(exit, fork, exec, read, write 等) - **进程管理**: 完整的进程控制块 (PCB)、进程创建/终止、地址空间隔离 - **虚拟内存**: 页表管理、地址映射、用户空间隔离 - **进程间通信**: 高效的同步/异步 IPC 机制 - **内存管理**: 简单高效的内存分配与释放 - **设备驱动框架**: 可扩展的驱动架构 - **架构无关设计**: 核心代码与架构完全解耦 - **安全特性**: 访问控制、系统调用过滤、栈保护 ## v2.1 更新亮点(第九阶段) ### 生产级部署准备与最终完善 - **生产级部署准备工具**: 新增 deployment_prep.py,提供代码完整性检查、文档完整性验证、测试覆盖率检查、性能基准验证、安全性审计准备、许可证检查、部署清单生成和发布版本创建等完整部署准备流程 - **持续集成和自动化脚本**: 新增 ci_runner.py,提供完整的 CI/CD 流程(代码提交检查、自动化测试、性能基准、构建自动化、部署准备),支持 GitHub Actions、GitLab CI、Jenkins 三种主流 CI 平台配置生成 - **项目整理和优化工具**: 新增 project_cleanup.py,提供 Python 缓存清理、构建产物清理、文档编码检查、目录结构整理、文档链接验证等完整项目整理功能 - **工具链生态完善**: 十二个工具脚本协同工作,提供完整的开发、验证、构建、集成、测试、基准、压力、优化、部署、CI/CD、整理工具链 - **文档完善**: 新增 NINTH_STAGE_IMPLEMENTATION.md,详细记录第九阶段实施进展,所有文档 UTF-8 编码无乱码 ## v2.0 更新亮点(第八阶段) ### 性能基准测试与生产级优化 - **性能基准测试框架**: 新增 benchmark_test.py,提供完整的系统调用、IPC、进程、内存、调度器等性能测试,支持延迟、吞吐量、标准差等多种指标统计 - **压力测试和稳定性验证**: 新增 stress_test.py,提供长时间运行测试、高负载压力测试、内存压力测试、IPC 风暴测试、错误恢复测试等完整稳定性验证 - **生产级优化指南**: 新增 optimization_guide.py,提供内存使用、启动时间、IPC 性能、调度器、系统调用等全方位优化建议和瓶颈分析 - **工具链生态完善**: 九个工具脚本协同工作,提供完整的开发、验证、构建、集成、测试、基准、压力、优化工具链 - **文档完善**: 新增 EIGHTH_STAGE_IMPLEMENTATION.md,详细记录第八阶段实施进展,所有文档 UTF-8 编码无乱码 ## v1.9 更新亮点(第七阶段) ### 真实用户程序编译与完整功能测试 - **真实 ELF 程序生成器**: 新增 generate_real_elf.py,生成有效的 ELF32 可执行文件,支持 hello、init、fs_server、drv_server、net_server 五种程序类型 - **真实用户程序数据**: 新增 real_progs.c,包含五个真实用户程序的完整 ELF32 数据 - **内置程序注册表增强**: 更新 builtin_progs.h/c,支持真实程序和演示程序的切换配置 - **端到端测试框架**: 新增 e2e_test.py,提供完整的系统启动、用户程序执行、init 进程、IPC 通信、服务功能等端到端测试 - **工具链生态完善**: 五个工具脚本协同工作,提供完整的开发、验证、构建、集成、测试工具链 - **文档完善**: 新增 SEVENTH_STAGE_IMPLEMENTATION.md,详细记录第七阶段实施进展,所有文档 UTF-8 编码无乱码 ## v1.8 更新亮点(第六阶段) ### 系统验证与测试框架 - **系统验证框架**: 新增 validate_system.py,提供完整的文档编码验证、项目结构验证、工具检查和 Python 脚本语法验证 - **基础设施确认**: 完整确认 ELF 加载器、线程管理、进程管理、系统调用接口等所有核心基础设施的完整性 - **完善工具链生态**: 四个工具脚本(embed_prog.py、build_user_progs.py、integrate_user_progs.py、validate_system.py)协同工作,提供完整的开发、验证、构建、集成工具链 - **文档完整性确认**: 检查并确认所有技术文档的完整性,包括从第一阶段到第六阶段的所有实施文档 - **文档完善**: 新增 SIXTH_STAGE_IMPLEMENTATION.md,详细记录第六阶段实施进展,所有文档 UTF-8 编码无乱码 ## v1.7 更新亮点(第五阶段) ### 交叉编译环境与用户程序集成 - **交叉编译配置指南**: 新增 CROSS_COMPILER_SETUP.md,详细介绍 x86、ARM、RISC-V 三种架构的工具链配置 - **集成自动化脚本**: 新增 integrate_user_progs.py,提供完整的工具链检查、用户程序构建、程序嵌入和内核编译自动化流程 - **完善工具链生态**: 三个脚本(build_user_progs.py、embed_prog.py、integrate_user_progs.py)协同工作,提供完整的用户程序集成解决方案 - **常见问题解答**: 包含 i686-elf-gcc 安装、Docker 使用、Windows 编译等常见问题的解决方案 - **文档完善**: 新增 FIFTH_STAGE_IMPLEMENTATION.md,详细记录第五阶段实施进展,所有文档 UTF-8 编码无乱码 ## v1.6 更新亮点(第四阶段) ### 用户程序构建与嵌入工具链 - **完善演示 ELF 数据**: 更新 demo_progs.c,包含完整的 ELF32 头部和程序代码 - **构建辅助脚本**: 新增 build_user_progs.py,提供工具链检查、程序构建和嵌入功能 - **用户空间确认**: 确认 usr/Makefile、hello.c、init.c 的完整性 - **工具链支持**: 支持 x86、ARM、RISC-V 三种架构的交叉编译工具链检测 - **文档完善**: 新增 FOURTH_STAGE_IMPLEMENTATION.md,详细记录第四阶段实施进展,所有文档 UTF-8 编码无乱码 ## v1.5 更新亮点(第三阶段) ### 完整进程启动流程 - **Spawn 系统调用**: 新增 SYSCALL_SPAWN 系统调用,支持从内置程序注册表启动进程 - **Init 进程完整流程**: 更新 init 进程,实现从 init 启动 demo_init 和 demo_hello 的完整流程 - **进程创建完善**: 完善 process_create_from_elf() 函数,支持从 ELF 数据创建进程 - **系统调用处理**: 完整的 syscall_spawn_handler 实现 - **文档完善**: 新增 THIRD_STAGE_IMPLEMENTATION.md,详细记录第三阶段实施进展,所有文档 UTF-8 编码无乱码 ## v1.4 更新亮点(第二阶段) ### 用户空间框架完善 - **程序嵌入工具**: 新增 embed_prog.py Python 脚本,支持将用户程序转换为 C 数组 - **演示 ELF 程序**: 新增 demo_progs.c,包含 demo_init 和 demo_hello 的演示 ELF 数据 - **内置程序注册表**: 完善 builtin_progs.c/h,添加 builtin_progs_init() 初始化函数 - **Init 进程线程**: 新增 init_process_thread() 函数,模拟 init 进程执行流程 - **内核启动流程**: 完整更新 kernel.c,包含两阶段初始化和 init 进程启动 - **文档完善**: 新增 SECOND_STAGE_IMPLEMENTATION.md,详细记录第二阶段实施进展,所有文档无乱码问题 ## v1.3 更新亮点(第一阶段) ### 微内核框架完善 - **Init 进程框架**: 新增 init 进程源代码,提供服务启动和系统初始化框架 - **进程执行完善**: 完整实现 process_exec() 函数,支持从内置程序注册表加载程序 - **内置程序管理**: 新增 builtin_progs.h/c,提供内置程序注册和查找机制 - **线程入口点设置**: 新增 thread_set_entry() 函数,支持多架构动态修改线程入口 - **用户空间系统调用扩展**: 新增 execve() 和 waitpid() 系统调用 - **文档完善**: 新增 FIRST_STAGE_IMPLEMENTATION.md,详细记录第一阶段实施进展,所有文档无乱码问题 ## v1.2 更新亮点 ### 块设备驱动与持久化文件系统完善 - **块设备子系统**: 新增统一的块设备抽象层,支持设备注册、发现和管理 - **增强 RAM 磁盘**: 支持动态创建/销毁,最大 32MB 容量,完整的块设备接口 - **FAT32 文件系统增强**: 支持块设备模式,提供更好的抽象和可扩展性 - **文件系统同步**: 新增 fat32_sync() 接口,确保数据持久化 - **文档完善与乱码修正**: 更新 USERSERVICES.md,详细说明块设备子系统,确保所有文档无乱码 ## v1.1 更新亮点 ### 性能调优、驱动增强与调试工具完善 - **IPC 性能优化**: 新增快速消息通道,提升小消息传递效率,支持更大的消息容量 - **调度器优化**: 实现多级队列调度器,支持 8 个优先级级别,时间片自适应 - **内存分配器优化**: 引入分块分配策略,新增 kcalloc/krealloc,完善内存统计 - **新增网卡驱动**: NE2000 (ne2k) 网卡驱动,支持数据包收发和 MAC 地址读取 - **新增 RTC 驱动**: 实时时钟驱动,支持时间读写、时间戳转换 - **调试工具增强**: 扩展断点功能、完善内存转储、新增统计追踪 - **日志系统增强**: 支持日志级别过滤、按级别转储、日志清空 - **文档完善与乱码修正**: 更新所有文档,确保无乱码问题 ## v1.0 更新亮点 ### 网络协议栈完善与测试覆盖率提升 - **完整 UDP/IP 协议栈实现**:net_server 现在支持完整的 UDP 协议,包括 sendto/recvfrom 操作、数据报队列管理和本地回环路由 - **网络服务 IPC 处理循环**:net_server 具备完整的请求-响应循环,可处理所有 Socket API 调用 - **测试覆盖率大幅提升**:为 IPC、共享内存、信号量等核心模块添加了完整的单元测试和集成测试 - **文档完善与乱码修正**:更新 USERSERVICES.md,详细说明网络协议栈新特性,同步检查并修正文档乱码问题 ## v0.9 更新亮点 ### 用户空间服务 IPC 集成与持久化文件系统 - **完善用户空间服务 IPC 集成**:fs_server 和 drv_server 现在可以真正处理 IPC 请求,具备完整的请求-响应循环 - **块设备驱动实现**:新增 ramdisk 块设备,提供 1MB 内存存储空间,支持 IOCTL 控制命令 - **FAT32 文件系统实现**:完整的 FAT32 文件系统支持,包括格式化、挂载、文件创建/删除/读写、目录操作等 - **用户空间库扩展**:新增 IPC 系统调用包装函数(channel_create/close, ipc_send/receive, shm, sem 等) - **文档完善**:更新 USERSERVICES.md,详细说明块设备和 FAT32 文件系统的使用 ## v0.8 更新亮点 ### 安全特性实现 - **访问控制机制**:基于角色的权限管理系统,支持四种预设角色(内核、系统、服务、用户)和细粒度权限控制 - **系统调用过滤**:根据进程角色限制可执行的系统调用,提供额外安全层防止未授权操作 - **栈保护**:使用金丝雀值检测栈溢出攻击,每个进程拥有唯一的随机生成金丝雀值 - **完整文档**:新增 `docs/SECURITY.md` 详细安全特性文档 ## v0.7 更新亮点 ### 用户空间服务实现 - **文件系统服务 (fs_server)**:简单的内存文件系统,支持 open/close/read/write/seek/mkdir/unlink - **设备驱动服务 (drv_server)**:统一设备驱动框架,包含 null/zero/random 虚拟设备 - **网络协议栈 (net_server)**:Socket API 支持,TCP/UDP 协议框架 - **服务通信协议**:统一的 IPC 消息类型和响应结构 - **完整文档**:新增 `docs/USERSERVICES.md` 详细文档 ## v0.6 更新亮点 ### 用户空间支持 - **ELF 加载器实现**:支持 32 位和 64 位 ELF 文件格式 - **C 运行时库 (crt0)**:程序启动和初始化,支持多架构 - **Libc 子集**:实现基本的 C 标准库函数(stdio, stdlib, string) - **用户空间构建系统**:独立的 Makefile 用于编译用户程序 - **示例程序**:包含 hello world 示例程序 - **完整文档**:新增 `docs/USERSPACE.md` 详细文档 ## v0.5 更新亮点 ### 系统调用接口实现 - **完整的系统调用 ABI 设计**:为 x86、ARM 和 RISC-V 定义统一的系统调用接口 - **系统调用分发机制**:灵活的系统调用表和处理函数注册机制 - **基本系统调用实现**:exit, fork, exec, read, write, open, close, wait, getpid, getppid, sbrk, yield - **与异常处理集成**:通过异常机制触发系统调用,支持多架构 - **线程安全设计**:使用自旋锁保护系统调用表 - **详细的设计文档**:新增 `docs/SYSCALL.md` 完整文档 ## v0.4 更新亮点 ### 虚拟内存管理系统完善 - **完整的页表管理**:PML4/PDPT/PD/PT 四级页表完整实现 - **高级内存保护**:用户/内核空间严格隔离,地址范围和权限标志一致性检查 - **写时复制 (COW)**:高效的内存共享机制,支持进程地址空间克隆 - **物理页引用计数**:跟踪物理页引用,安全释放共享内存 - **页表项操作**:支持动态修改页表项标志和内存保护权限 - **页错误处理框架**:可扩展的页错误处理机制 - **完整的 API 文档**:新增 `docs/VIRTUAL_MEMORY.md` 详细文档 ### 物理内存管理增强 - 物理页引用计数支持 - 线程安全的引用计数操作 - 优化的页面分配与释放 ## v0.3 更新亮点 ### 进程管理系统 - **进程控制块 (PCB) 完整实现 - 进程创建与终止功能 - 进程地址空间隔离 - 父子进程关系管理 - 进程等待与退出码收集 - 进程列表管理 ### 虚拟内存管理 - 四级页表支持 (x86_64 PML4) - 虚拟地址到物理地址映射 - 页表创建、克隆与销毁 - 地址空间切换 - 用户空间内存保护 ### 字符串库增强 - 新增 strncpy 函数实现 ## v0.2 更新亮点 ### x86 启动代码重写 - 升级到 Multiboot2 规范 - 添加 GDT(全局描述符表)设置 - CPUID 检测和长模式支持检测 - 栈大小增加到 32KB - 增强的代码结构和注释 ### VGA 驱动增强 - 硬件光标支持 - 完整的屏幕滚动功能 - 支持特殊字符(换行、回车、制表符、退格) - 新增十六进制和十进制输出函数 - 更好的代码组织和状态管理 ### 内核初始化优化 - 控制台驱动抽象层 - 改进的架构检测机制 - 统一的状态输出格式 - 更清晰的代码结构 ## 快速开始 ### 环境要求 根据目标架构选择对应的工具链: - **x86**: i686-elf-gcc, nasm, i686-elf-ld, qemu-system-i386 - **ARM**: arm-none-eabi-gcc, arm-none-eabi-as, arm-none-eabi-ld, qemu-system-arm - **RISC-V**: riscv64-unknown-elf-gcc, riscv64-unknown-elf-as, riscv64-unknown-elf-ld, qemu-system-riscv64 - Make ### 构建各架构版本 ```bash # x86 make ARCH=x86 # ARM make ARCH=arm # RISC-V make ARCH=riscv ``` ### 在 QEMU 中运行 ```bash # x86 make run ARCH=x86 # ARM make run ARCH=arm # RISC-V make run ARCH=riscv ``` ## 项目结构 ``` vector/ ├── Makefile # 构建系统 ├── src/ │ ├── arch/ # 架构特定代码 │ │ ├── x86/ # x86 架构支持(Multiboot2) │ │ ├── arm/ # ARM 架构支持 │ │ └── riscv/ # RISC-V 架构支持 │ ├── kernel/ # 微内核核心代码(架构无关) │ │ ├── types.h # 类型定义 │ │ ├── list.h # 链表实现 │ │ ├── spinlock.h # 自旋锁 │ │ ├── thread.h/c # 线程管理 │ │ ├── mm.h/c # 内存管理 │ │ ├── vm.h/c # 虚拟内存管理 │ │ ├── process.h/c # 进程管理 │ │ ├── elf.h/c # ELF 加载器 │ │ ├── ipc.h/c # 进程间通信 │ │ ├── interrupt.h/c # 中断处理 │ │ ├── exception.h/c # 异常处理(包含系统调用处理) │ │ ├── syscall.h/c # 系统调用接口 │ │ └── security.h/c # 安全模块(访问控制、系统调用过滤、栈保护) │ ├── drivers/ # 设备驱动(多架构支持) │ │ ├── uart.h/c # UART 驱动(x86/ARM/RISC-V) │ │ ├── vga.h/c # 增强版 VGA 驱动(x86) │ │ ├── ne2k.h/c # NE2000 网卡驱动 │ │ └── rtc.h/c # RTC 实时时钟驱动 │ └── lib/ # 通用库 ├── usr/ # 用户空间 │ ├── Makefile # 用户空间构建系统 │ ├── arch/ # 用户空间架构特定代码 │ │ ├── x86/ # x86 用户空间支持 │ │ ├── arm/ # ARM 用户空间支持 │ │ └── riscv/ # RISC-V 用户空间支持 │ ├── lib/ # 用户空间库(libc 子集) │ │ ├── syscall.h/c # 系统调用接口 │ │ ├── types.h # 类型定义 │ │ ├── stdio.h/c # 标准 I/O │ │ ├── stdlib.h/c # 标准库 │ │ └── string.h/c # 字符串操作 │ ├── services/ # 用户空间服务 │ │ ├── service_common.h # 公共头文件和协议定义 │ │ ├── fs_server.c # 文件系统服务 │ │ ├── drv_server.c # 设备驱动服务 │ │ └── net_server.c # 网络协议栈 │ └── apps/ # 用户空间应用程序 │ └── hello.c # 示例程序 ├── boot/ # 引导相关文件 └── docs/ # 文档(详见 docs/README.md) ``` ## VGA 驱动新功能 ### 新增 API - `vga_set_theme(fg, bg)` - 设置前景色和背景色 - `vga_set_cursor(x, y)` - 设置光标位置 - `vga_get_cursor(x*, y*)` - 获取光标位置 - `vga_clear()` - 清屏 - `vga_scroll_up()` - 向上滚动 - `vga_write_hex(value)` - 输出十六进制数 - `vga_write_dec(value)` - 输出十进制数 ### 支持的特殊字符 - `\n` - 换行 - `\r` - 回车 - `\t` - 制表符(8空格) - `\b` - 退格 ## 微内核架构 Vector OS 采用经典的微内核设计: 1. **最小内核**: 内核仅提供线程调度、内存管理和 IPC 2. **用户空间服务**: 文件系统、网络、驱动等服务作为独立进程运行 3. **消息传递**: 所有服务间通信通过 IPC 消息传递 4. **容错性**: 服务崩溃不影响内核和其他服务 5. **架构无关**: 核心代码完全架构无关,易于移植到新平台 详细架构说明请参考 [docs/design/MICROKERNEL.md](docs/design/MICROKERNEL.md)。 ## 架构支持 ### x86 架构 - 支持 i686 及以上处理器 - **Multiboot2 规范**(v0.2 更新) - GRUB2 引导加载器 - 增强版 VGA 文本模式输出 - UART 串口支持 - GDT 设置 - CPUID 检测 ### ARM 架构 - 支持 Cortex-A 系列 - PL011 UART 驱动 - VersatilePB 平台支持 ### RISC-V 架构 - RV64GC 架构支持 - 机器模式初始化 - UART 16550 驱动 - Virt 平台支持 详细移植指南请参考: - [RISC-V 移植指南](docs/arch/RISC-V_PORT.md) - RISC-V 架构支持详情 - [架构移植通用指南](docs/arch/ARCH_PORTING.md) - 如何添加新架构支持 ## 文档 ### 按人群分类的文档导航 根据你的身份和目标,选择最适合你的文档路径: | 人群 | 指南 | 描述 | |-----|-----|------| | **小白/初学者** | [小白入门指南](docs/BEGINNER_GUIDE.md) | 从零开始,一步一步学习 | | **开发者** | [开发者指南](docs/DEVELOPER_GUIDE.md) | 开发、修改、扩展 Vector OS | | **架构师** | [架构师指南](docs/ARCHITECT_GUIDE.md) | 理解系统架构和设计决策 | | **移植者** | [移植指南](docs/PORTING_GUIDE.md) | 移植到新架构或新硬件 | ### 完整文档索引 完整的文档索引请参考 [docs/README.md](docs/README.md)。 快速访问主要文档: - [安全特性](docs/quality/SECURITY.md) - 访问控制、系统调用过滤和栈保护详解 - [系统设计文档](docs/design/SYSTEM_DESIGN.md) - 完整的系统设计说明 - [用户空间服务](docs/core/USERSERVICES.md) - 文件系统、设备驱动、网络协议栈详解 - [用户空间支持](docs/core/USERSPACE.md) - 用户空间 ELF 加载和 C 运行时库 - [系统调用接口](docs/core/SYSCALL.md) - 系统调用接口设计文档 - [虚拟内存管理](docs/core/VIRTUAL_MEMORY.md) - 虚拟内存系统设计文档 - [微内核架构](docs/design/MICROKERNEL.md) - 微内核设计详解 - [RISC-V 移植指南](docs/arch/RISC-V_PORT.md) - RISC-V 架构支持详情 - [硬件测试与调优](docs/guides/HARDWARE_TESTING.md) - 在真实硬件上测试和调优的完整指南(包括乱码问题处理) - [测试指南](docs/guides/TESTING.md) - 调试与测试指南 - [架构移植通用指南](docs/arch/ARCH_PORTING.md) - 添加新架构支持 - [安装指南](docs/guides/INSTALL.md) - 环境配置和构建说明 ## 应用场景 Vector OS 适合以下嵌入式场景: - 工业控制系统 - 汽车电子 - 医疗设备 - 物联网设备 - 航空航天 - 跨平台嵌入式开发 ## 许可证 本项目采用 Apache License 2.0 许可证,适合商业和教育用途。详情请参阅 [LICENSE](LICENSE) 文件。 ## 致谢 - OSDev Wiki - 操作系统开发社区资源 - Multiboot2 规范