# 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-04-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Vector OS - 多架构微内核嵌入式操作系统 Vector OS 是一个面向嵌入式生产环境的多架构微内核操作系统,采用微内核架构设计,专注于可靠性、可扩展性和实时性能。 ## 核心特性 - **全架构支持**: 支持 x86、ARM 和 RISC-V 三种主流架构 - **微内核架构**: 最小化内核代码,服务运行在用户空间 - **实时调度**: 支持优先级调度和抢占式多任务 - **系统调用接口**: 完整的 POSIX 风格系统调用(exit, fork, exec, read, write 等) - **进程管理**: 完整的进程控制块 (PCB)、进程创建/终止、地址空间隔离 - **虚拟内存**: 页表管理、地址映射、用户空间隔离 - **进程间通信**: 高效的同步/异步 IPC 机制 - **内存管理**: 简单高效的内存分配与释放 - **设备驱动框架**: 可扩展的驱动架构 - **架构无关设计**: 核心代码与架构完全解耦 - **安全特性**: 访问控制、系统调用过滤、栈保护、加密子系统 ## v4.6 更新亮点 ### T9.3 Ext3日志文件系统支持 - **Ext3日志数据结构**:在ext2.h中添加完整的Ext3日志相关数据结构和常量 - Ext3特性标志(EXT3_FEATURE_INCOMPAT_*、EXT3_FEATURE_RO_COMPAT_*) - Ext3日志常量(EXT3_JOURNAL_MAGIC、EXT3_JOURNAL_BLOCK_SIZE等) - 日志超级块结构(ext3_journal_superblock_t) - 日志头部结构(ext3_journal_header_t) - 日志标签结构(ext3_journal_tag_t) - Ext3日志管理结构(ext3_journal_t) - **Ext3日志核心功能实现**:在ext2.c中实现完整的Ext3日志文件系统功能 - ext3_journal_init:日志系统初始化 - ext3_journal_start_transaction:事务开始 - ext3_journal_write_block:块写入日志 - ext3_journal_commit_transaction:事务提交 - ext3_journal_recover:日志恢复 - ext3_mount:Ext3文件系统挂载 - ext3_format:Ext3文件系统格式化 - **IPC消息类型扩展**:在service_common.h中添加Ext3相关IPC消息类型 - MSG_FS_EXT3_MOUNT:Ext3挂载消息 - MSG_FS_EXT3_FORMAT:Ext3格式化消息 - MSG_FS_EXT3_JOURNAL_START:日志事务开始消息 - MSG_FS_EXT3_JOURNAL_COMMIT:日志事务提交消息 - **fs_server集成**:在fs_server.c中完整集成Ext3支持 - 在fs_type_t枚举中添加FS_TYPE_EXT3 - 添加ext3_fs和ext3_disk静态变量 - 在fs_init中添加Ext3格式化和挂载 - 在fs_switch_fs中添加Ext3支持 - 更新所有文件操作函数支持Ext3(open/read/write/mkdir/create/unlink/rename/listdir) - 在handle_request中添加Ext3相关IPC消息处理 - **文档同步**:更新TASK_LEVEL_DEVELOPMENT.md同步T9.3 Ext3支持进度;更新README.md添加v4.6版本记录 ## v4.5 更新亮点 ### T9.2网络协议栈增强完成 - **网络协议栈完善确认**:确认T9.2网络协议栈完善任务完成,包括TCP协议、DHCP支持、ICMP协议支持和ARP协议支持 - **完整网络协议栈**:Vector OS现在拥有完整的TCP/IP协议栈,包括: - TCP协议:完整的状态机、三次握手/四次挥手、重传机制、超时处理 - DHCP支持:完整的DHCP客户端实现,支持自动IP获取 - ICMP协议:Ping功能、Echo Request/Reply处理、校验和计算 - ARP协议:ARP缓存管理、ARP请求/回复处理、IP到MAC地址转换 - **文档同步**:更新TASK_LEVEL_DEVELOPMENT.md同步T9.2完整进度;更新README.md添加v4.5版本记录 ## v4.4 更新亮点 ### T9.2网络协议栈增强 - ARP协议支持 - **ARP协议头部结构**:新增arp_header_t结构,定义ARP协议的完整头部格式 - **ARP缓存管理**:新增arp_cache_entry_t结构,支持最多8个ARP缓存条目 - **ARP缓存查找功能**:实现arp_cache_lookup函数,支持IP地址到MAC地址的转换 - **ARP缓存添加功能**:实现arp_cache_add函数,支持添加和更新ARP缓存条目 - **ARP请求发送**:实现arp_send_request函数,支持发送ARP请求 - **ARP回复发送**:实现arp_send_reply函数,支持发送ARP回复 - **ARP数据包处理**:实现arp_handle_packet函数,支持处理ARP请求和回复 - **ARP初始化**:实现arp_init函数,初始化ARP缓存 - **ARP IPC消息类型**:新增MSG_NET_ARP_LOOKUP和MSG_NET_ARP_ADD两种IPC消息类型 - **ARP IPC请求结构**:新增net_arp_lookup_req_t和net_arp_add_req_t两种IPC请求结构 - **网络服务集成**:在net_server.c中集成ARP初始化,更新网络服务初始化日志 - **文档同步**:更新TASK_LEVEL_DEVELOPMENT.md同步T9.2 ARP协议支持进度,添加v4.4版本记录 ## v4.3 更新亮点 ### T9.3文件系统加密实现 - **文件系统加密模块**:新增fscrypto.h和fscrypto.c,提供完整的文件系统加密功能 - **AES-128-ECB加密算法**:实现完整的AES-128加密算法,包括S盒、逆S盒、密钥扩展、轮函数等完整实现 - **XOR加密算法**:实现简单高效的XOR加密算法,作为备选加密方案 - **密钥管理功能**:支持最多8个加密密钥的管理,支持AES-128和XOR两种密钥类型 - **加密/解密函数**:实现支持多块处理和自动填充的加密/解密函数 - **文件系统加密IPC接口**:新增MSG_FS_CRYPTO_ADD_KEY、MSG_FS_CRYPTO_REMOVE_KEY、MSG_FS_CRYPTO_ENCRYPT、MSG_FS_CRYPTO_DECRYPT四种IPC消息类型 - **文件系统加密集成**:在fs_server.c中集成文件系统加密功能,包括初始化、密钥管理和加密/解密请求处理 - **文档同步**:更新TASK_LEVEL_DEVELOPMENT.md同步T9.3文件系统加密进度,添加v4.3版本记录 ## v4.2 更新亮点 ### T9.2网络增强完整实现 - **ICMP协议支持完整实现**:验证git commit 20d76e1的ICMP协议实现完整性,包括ICMP头部结构、校验和计算、Ping发送/接收、Echo Request/Reply处理 - **ICMP IPC消息集成**:确认ICMP IPC消息类型(MSG_NET_ICMP_PING、MSG_NET_ICMP_PING_REPLY)和请求结构(net_icmp_ping_req_t、net_icmp_ping_reply_t)完整集成到网络服务 - **T9.2网络增强任务完成**:确认T9.2网络增强任务全部完成,包括TCP协议、DHCP支持和ICMP协议支持 - **文档同步**:更新TASK_LEVEL_DEVELOPMENT.md同步T9.2完整进度,添加v4.2版本记录 ## v4.1 更新亮点 ### T9.2网络增强 - ICMP协议支持 - **ICMP协议实现**:新增完整的ICMP协议支持,包括ICMP头部结构定义(icmp_header_t、icmp_echo_header_t) - **ICMP消息类型**:支持ICMP_ECHO_REQUEST(8)、ICMP_ECHO_REPLY(0)、ICMP_DEST_UNREACHABLE(3)、ICMP_TIME_EXCEEDED(11)等消息类型 - **ICMP校验和计算**:实现icmp_checksum函数,支持标准ICMP校验和计算 - **Ping功能实现**:实现icmp_send_ping函数,支持发送ICMP Echo Request消息 - **Echo Reply处理**:实现icmp_handle_packet函数,支持处理ICMP Echo Reply和Echo Request消息 - **ICMP数据包管理**:实现icmp_alloc_packet和icmp_free_packet函数,管理ICMP数据包池 - **IPC消息类型添加**:在service_common.h中新增MSG_NET_ICMP_PING和MSG_NET_ICMP_PING_REPLY消息类型 - **IPC请求结构定义**:新增net_icmp_ping_req_t和net_icmp_ping_reply_t请求/响应结构 - **网络服务集成**:将ICMP初始化集成到net_init函数,将ICMP消息处理集成到handle_request函数 - **文档同步**:更新TASK_LEVEL_DEVELOPMENT.md同步T9.2 ICMP协议支持进度 ## v4.0 更新亮点 ### T9.4安全增强完成 - **加密子系统完整实现**:确认SHA-256哈希函数和AES-128对称加密已完整实现并集成到内核 - **加密系统调用可用**:SYSCALL_HASH_SHA256、SYSCALL_AES128_ENCRYPT、SYSCALL_AES128_DECRYPT系统调用已配置权限并可用 - **安全特性完整**:T9.4安全增强任务全部完成,包括访问控制、安全审计、加密子系统 - **文档同步**:更新TASK_LEVEL_DEVELOPMENT.md同步T9.4完整进度 ## v3.8 更新亮点 ### T9.4安全增强 - 加密子系统 - **SHA-256哈希函数实现**:新增完整的SHA-256哈希函数,包括上下文管理(sha256_ctx_t)、消息填充、哈希计算(SHA-256压缩函数) - **AES-128对称加密实现**:新增完整的AES-128加密算法,包括密钥扩展(aes128_ctx_t)、加密/解密函数、轮函数(SubBytes、ShiftRows、MixColumns、AddRoundKey) - **加密系统调用**:新增SYSCALL_HASH_SHA256、SYSCALL_AES128_ENCRYPT、SYSCALL_AES128_DECRYPT系统调用,提供用户空间访问加密功能的接口 - **加密子系统集成**:将加密子系统集成到内核初始化流程,在security_init()之后添加crypto_init() - **加密权限配置**:为所有角色(ROLE_KERNEL、ROLE_SYSTEM、ROLE_SERVICE、ROLE_USER)配置加密系统调用权限 - **文档同步**:更新TASK_LEVEL_DEVELOPMENT.md,完整记录T9.4加密子系统实现进度 ## v3.7 更新亮点 ### T9.4安全增强 - 安全审计日志 - **审计事件类型定义**: 新增完整的audit_event_type_t枚举,支持系统调用、权限拒绝、栈溢出、内存访问、进程创建/退出、IPC发送/接收等8种审计事件 - **审计日志数据结构**: 新增audit_log_entry_t结构,包含时间戳、事件类型、进程ID、角色、详情数组和消息字段 - **审计日志记录函数**: 实现security_audit_log函数,支持线程安全的审计日志记录,使用环形缓冲区管理最多128条日志 - **审计日志获取函数**: 实现security_get_audit_log函数,支持获取审计日志条目,仅管理员权限可访问 - **审计日志清除函数**: 实现security_clear_audit_log函数,支持清空审计日志,仅管理员权限可访问 - **审计日志系统调用**: 新增SYSCALL_AUDIT_GET和SYSCALL_AUDIT_CLEAR系统调用,提供用户空间访问审计日志的接口 - **进程创建审计**: 在process_create_from_elf中集成审计日志,记录进程创建事件(进程名、父进程ID、优先级) - **进程退出审计**: 在process_exit中集成审计日志,记录进程退出事件(进程名、退出码) - **审计日志输出**: 审计日志同时输出到系统日志,便于实时监控 - **文档同步**: 更新TASK_LEVEL_DEVELOPMENT.md,完整记录T9.4安全增强任务进度 ## v3.6 更新亮点 ### Ext2文件系统完整集成 - **多文件系统支持机制**: 在fs_server中添加FS_TYPE_FAT32和FS_TYPE_EXT2文件系统类型枚举 - **活动文件系统管理**: 添加active_fs_type变量管理当前活动文件系统,默认使用FAT32 - **双文件系统初始化**: 在fs_init中同时初始化FAT32和Ext2文件系统 - **文件描述符增强**: 更新file_descriptor_t结构,添加fs_type字段记录每个文件使用的文件系统 - **文件系统切换功能**: 实现fs_switch_fs函数,支持在FAT32和Ext2之间切换 - **文件操作双支持**: 更新所有文件操作函数(open/close/read/write/seek/mkdir/unlink/rename)支持两种文件系统 - **新IPC消息类型**: 添加MSG_FS_SWITCH、MSG_FS_CREATE、MSG_FS_READDIR等Ext2专用IPC消息类型 - **新IPC请求结构**: 在service_common.h中添加fs_listdir_req_t结构支持目录列表操作 - **文档同步**: 更新TASK_LEVEL_DEVELOPMENT.md,完整记录T9.3中Ext2集成的进度 ## v3.3 更新亮点 ### Ext2文件系统支持 - **Ext2头文件创建**: 创建ext2.h,定义Ext2核心数据结构(超级块、inode、目录项等) - **Ext2实现文件创建**: 创建ext2.c,实现挂载、格式化、文件读取、目录列表功能 - **文件系统集成**: 在fs_server.c中集成Ext2文件系统支持 - **文档同步**: 更新TASK_LEVEL_DEVELOPMENT.md,记录T9.3中Ext2支持的进度 ## v3.2 更新亮点 ### T9.2任务完成状态确认 - **TCP协议完整实现**:确认TCP协议已完整实现,包括TCP头部结构、状态机、三次握手/四次挥手、重传机制、超时检测与处理、指数退避算法、ACK确认清理和定时器滴答机制 - **DHCP协议完整实现**:确认DHCP协议已完整实现,包括DHCP消息类型定义、选项定义、数据包结构、发现/请求数据包创建、Offer/ACK解析、启动/IP获取函数、IPC消息类型添加和处理集成 - **T9.2任务状态更新**:在TASK_LEVEL_DEVELOPMENT.md中标记T9.2任务为已完成,同步更新项目状态 - **文档版本历史更新**:添加v3.2版本记录,详细记录本次更新内容 ## v3.1 更新亮点 ### DHCP协议支持 - **DHCP消息类型定义**: 新增完整的dhcp_message_type_t枚举,支持DHCP_DISCOVER、DHCP_OFFER、DHCP_REQUEST、DHCP_ACK等所有DHCP消息类型 - **DHCP选项定义**: 新增dhcp_option_t枚举,支持子网掩码、路由器、DNS服务器、主机名、请求IP地址、租约时间、消息类型、服务器ID等常用DHCP选项 - **DHCP数据包结构**: 定义完整的dhcp_packet_t结构,包含OP、HTYPE、HLEN、HOPS、XID、SECS、FLAGS、CIADDR、YIADDR、SIADDR、GIADDR、CHADDR、SNAME、FILE、MAGIC_COOKIE和OPTIONS字段 - **DHCP发现数据包创建**: 实现dhcp_create_discover函数,生成DHCP发现广播数据包 - **DHCP请求数据包创建**: 实现dhcp_create_request函数,生成DHCP请求数据包 - **DHCP Offer解析**: 实现dhcp_parse_offer函数,解析DHCP服务器的Offer响应,提取分配的IP地址、子网掩码、路由器、DNS服务器和租约时间 - **DHCP ACK解析**: 实现dhcp_parse_ack函数,解析DHCP服务器的ACK响应,确认租约信息 - **DHCP启动函数**: 实现dhcp_start函数,启动DHCP发现过程 - **DHCP IP获取函数**: 实现dhcp_get_ip函数,获取已分配的IP地址 - **IPC消息类型添加**: 在service_common.h中添加MSG_NET_DHCP_START和MSG_NET_DHCP_GET_IP消息类型 - **IPC消息处理集成**: 在net_server.c的handle_request函数中集成DHCP消息处理 - **文档同步**: 更新 TASK_LEVEL_DEVELOPMENT.md,完整记录 T9.2 DHCP支持任务进度 ## v3.0 更新亮点 ### TCP协议完善与重传机制 - **TCP重传机制**: 新增完整的TCP重传队列管理,支持数据包重传 - **超时检测与处理**: 实现TCP超时检测机制,自动检测未确认的数据包 - **指数退避算法**: 支持TCP重传的指数退避,避免网络拥塞 - **ACK确认清理**: 收到ACK确认后自动清理重传队列 - **定时器系统**: 新增TCP定时器滴答机制,定期检查重传队列 - **文档同步**: 更新 TASK_LEVEL_DEVELOPMENT.md,完整记录 T9.2 任务完成进度 ## v2.9 更新亮点 ### TCP协议基础框架实现 - **TCP头部结构**: 定义完整的tcp_header_t结构,支持所有TCP字段 - **TCP状态机**: 实现完整的tcp_state_t状态机,支持TCP连接管理 - **校验和计算**: 实现tcp_checksum函数,支持TCP校验和验证 - **数据包收发**: 实现tcp_send_packet和tcp_handle_packet函数 - **连接管理**: 支持三次握手连接建立和四次挥手连接关闭 - **数据传输**: 支持TCP数据传输和确认机制 - **文档同步**: 更新 TASK_LEVEL_DEVELOPMENT.md,记录 T9.2 基础实现进度 ## v2.8 更新亮点 ### 文档验证与任务确认 - **T7任务验证**: 确认所有技术文档任务已完成 - **T9.3任务验证**: 验证文件系统重命名功能完整性 - **文档同步**: 更新 TASK_LEVEL_DEVELOPMENT.md,确认任务状态 ## v2.7 更新亮点 ### 文件系统重命名功能验证 - **功能完整性验证**: 确认fat32_rename在所有相关文件中完整实现 - **项目状态验证**: 确认benchmark_report.json最新 - **文档同步**: 更新 TASK_LEVEL_DEVELOPMENT.md,验证任务进度 ## v2.6 更新亮点 ### 文件系统重命名功能完整集成 - **重命名消息类型**: 在service_common.h中添加MSG_FS_RENAME - **重命名请求结构**: 定义fs_rename_req_t请求结构 - **服务端集成**: 在fs_server.c中添加fs_rename函数和消息处理 - **文档同步**: 更新 TASK_LEVEL_DEVELOPMENT.md,记录 T9.3 进度 ## v2.5 更新亮点 ### 开始高级功能增强 - **文件重命名功能**: 开始实现T9.3文件系统重命名功能 - **文档进度更新**: 更新 TASK_LEVEL_DEVELOPMENT.md 任务进度 - **版本亮点更新**: 更新 README.md 添加 v2.2-v2.4 版本亮点 ## v2.4 更新亮点 ### 完善技术文档与开发指南 - **用户空间库文档**: 新增 `docs/core/USERSPACE_LIBRARY.md`,详细说明用户空间 C 标准库子集、系统调用包装函数和类型定义 - **应用开发指南**: 新增 `docs/guides/APPLICATION_DEVELOPMENT.md`,提供完整的应用程序开发流程、示例代码和最佳实践 - **调试指南**: 新增 `docs/guides/DEBUGGING_GUIDE.md`,包含内核调试技巧、常见问题排查、性能调优指南 - **文档验证**: 完整验证所有文档 UTF-8 编码,确保无乱码问题 - **文档同步**: 更新 TASK_LEVEL_DEVELOPMENT.md,完整记录 T7 任务完成进度 ## v2.3 更新亮点 ### 完善API文档与开发指南 - **内核API文档**: 新增 `docs/core/KERNEL_API.md`,详细说明内核核心模块接口(线程、内存、进程、IPC等) - **系统调用API文档**: 新增 `docs/core/SYSCALL_API.md`,完整列出所有系统调用的参数、返回值和使用示例 - **驱动开发指南**: 新增 `docs/guides/DRIVER_DEVELOPMENT.md`,提供设备驱动开发的完整流程和示例代码 - **服务开发指南**: 新增 `docs/guides/SERVICE_DEVELOPMENT.md`,说明用户空间服务的开发模式和IPC通信协议 - **文档同步**: 更新 TASK_LEVEL_DEVELOPMENT.md,记录 T7.1 和 T7.2 任务完成进度 ## v2.2 更新亮点 ### 系统验证与验收标准确认 - **系统完整性验证**: 运行完整的系统验证,确认所有核心功能正常 - **文档编码验证**: 验证所有文档 UTF-8 编码,确保无乱码问题 - **验收标准确认**: 确认所有功能、质量、性能验收标准均已达成 - **文档同步**: 更新 TASK_LEVEL_DEVELOPMENT.md,完整标记验收标准为已完成 ## 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 规范