CoolPotOS Source Code
此文档仅介绍主仓库中的主分支代码结构, 贡献者可根据此文档的介绍和要求贡献代码.
以下介绍了 CoolPotOS 内核源码中各个子系统的实现范围.
各子系统的代码相对独立,耦合性较低, 部分子系统甚至可以直接从内核中以很小的代价拆除.
内存管理子系统
位于 src/mem 目录下, 包含了进程的VMA管理器, 懒分配器, buddy 物理页框分配器和平台通用页表管理接口等.
内核模块子系统
在 CP_Kernel x64 v0.1.0 后正式加入, 由宏内核转变为混合内核.
包含了内核模块管理, 装载, 接口暴露与导出处理等.
位于 src/mod 目录下, 内核模块文档
同时负责用户态可执行文件的加载.
进程管理子系统
位于 src/task 目录下, 是 CoolPotOS 的多任务核心实现,
包含了进程与线程的创建/回收/挂起等操作, 同时包含了调度器和进程相关的系统调用实现.
文件系统子系统
位于 src/fs 目录下, 包含了 CoolPotOS 通用虚拟文件系统接口与各个虚拟文件系统的实现.
同时包含了进程文件描述符表和分区解析器的实现.
具体文件系统的实现全部被剥离至内核模块中.
终端会话子系统
包含了内核日志环形缓冲队列的实现, 以及终端抽象接口和内核日志接口的实现.
CoolPotOS 内置了一个 flanterm 终端渲染实现用于承担内核初始日志输出.
驱动子系统
包含了内核平台通用的驱动实现, 以及一些虚拟设备的实现也在此部分中.
位于 src/driver 目录下.
工具
该部分并不被算作一个独立的子系统.
位于 src/util 目录下, 用于向内核的其他部分提供必要的工具和数据结构实现.
包含了内核标准库, 原子缓冲队列, 内核参数解析器, 哈希图等实现.
Last updated on