|
6 | 6 |
|
7 | 7 | ## 本分支新增特性 |
8 | 8 |
|
9 | | -基本的构建体系与辅助脚本,包括 |
| 9 | +参考 [MRNIU/cmake-kernel](https://github.com/MRNIU/cmake-kernel) 的构建系统,包括以下特性 |
10 | 10 |
|
11 | | -- 对不同体系结构的支持 |
| 11 | +- [x] 对第三方依赖的支持/构建 |
12 | 12 |
|
13 | | - 目前支持 x86_64,aarch64,riscv64 三种架构 |
| 13 | + 自动下载并编译第三方依赖 |
14 | 14 |
|
15 | | - 支持在 qemu 平台上运行 |
| 15 | + 自动生成相关 licence |
16 | 16 |
|
17 | | - 支持在 x86_64 架构的 osx、win(wsl)、linux(ubuntu) 上编译运行 |
| 17 | + 目前支持的第三方资源 |
18 | 18 |
|
19 | | -- 对 uefi 与 opensbi 的支持 |
| 19 | + | 第三方内容 | 描述 | 类型 | 正在使用 | |
| 20 | + | :----------------------------------------------------------: | :-------------------------------------------: | :----------: | :------: | |
| 21 | + | [CPM](https://github.com/cpm-cmake/CPM.cmake) | cmake 包管理 | cmake module | ✔ | |
| 22 | + | [CPMLicences.cmake](https://github.com/TheLartians/CPMLicenses.cmake) | 为第三方包生成 licence | cmake module | ✔ | |
| 23 | + | [google/googletest](https://github.com/google/googletest) | 测试 | 库 | ✔ | |
| 24 | + | [easylogingpp](https://github.com/amrayn/easyloggingpp) | 日志 | 库 | | |
| 25 | + | [rttr](https://github.com/rttrorg/rttr) | c++ 反射库,在设备驱动部分用 | 库 | | |
| 26 | + | [Format.cmake](https://github.com/TheLartians/Format.cmake) | 代码格式化,支持 clang-format 与 cmake-format | cmake module | | |
| 27 | + | [FreeImage](http://freeimage.sourceforge.net/) | 图片渲染 | 库 | | |
| 28 | + | [Freetype](https://www.freetype.org/) | 字体渲染 | 库 | | |
| 29 | + | [opensbi](https://github.com/riscv-software-src/opensbi) | riscv 引导 | 库 | ✔ | |
| 30 | + | [gnu-efi](https://sourceforge.net/projects/gnu-efi/) | gnu uefi 引导 | 库 | ✔ | |
| 31 | + | [ovmf](SimpleKernel/3rd/ovmf) | qemu 使用的 uefi 固件 | bin | ✔ | |
| 32 | + | [edk2](https://github.com/tianocore/edk2) | 构建 qemu 使用的 uefi 固件 ovmf | 库 | | |
| 33 | + | [libcxxrt](https://github.com/libcxxrt/libcxxrt) | c++ 运行时支持 | 库 | ✔ | |
20 | 34 |
|
21 | | - x86_64 与 aarch64 架构通过 uefi 进行引导 |
| 35 | +- [x] 文档生成 |
22 | 36 |
|
23 | | - riscv64 通过 opensbi 进行引导 |
| 37 | + 使用 doxygen 从生成文档 |
24 | 38 |
|
25 | | -- 对 qemu 的支持 |
| 39 | +- [x] 构建内核 |
26 | 40 |
|
27 | | - 通过 qemu 进行模拟 |
| 41 | + 生成内核 elf 文件 |
28 | 42 |
|
29 | | -- 对使用 qemu gdb 进行调试的支持 |
| 43 | +- [x] 运行内核 |
30 | 44 |
|
31 | | - 通过生成内核调试符号、向 qemu 传递正确的参数,达到使用 gdb 进行调试,观察内核的目标 |
| 45 | + 在 qemu 上运行内核 |
32 | 46 |
|
33 | | -- 对 clion 的支持 |
| 47 | +- [x] 代码格式化 |
34 | 48 |
|
35 | | - clion 的配置文件与用法 |
| 49 | + 格式化全部代码 |
36 | 50 |
|
37 | | -- 对第三方代码的支持 |
| 51 | +- [x] 测试 |
38 | 52 |
|
39 | | - 用到的第三方库的自动下载、编译 |
| 53 | + 单元测试 集成测试 系统测试 |
40 | 54 |
|
41 | | -- 对项目的约束 |
| 55 | +- [x] CI |
42 | 56 |
|
43 | | - 代码规范、commit 规范 |
| 57 | + github action、codecov |
44 | 58 |
|
45 | | -编译参数的确定 |
| 59 | +- [x] 调试 |
46 | 60 |
|
47 | | -- 汇总到 config.cmake |
| 61 | + 使用 make debug 等进入调试模式 |
48 | 62 |
|
49 | 63 | 从系统启动到进入内核 |
50 | 64 |
|
51 | 65 | - x86_64,aarch64 通过 uefi 进行引导 |
52 | | -- riscvf64 通过 opensbi 进行引导 |
| 66 | +- riscv64 通过 opensbi 进行引导 |
53 | 67 |
|
54 | 68 | ## 已支持的全部特性 |
55 | 69 |
|
56 | | -- poxix-uefi |
57 | | -- gnu-efi |
58 | | -- x86_64 |
59 | | -- aarch64 |
60 | | -- uefi |
| 70 | +- [x] build |
| 71 | + |
| 72 | + 内核构建与调试 |
| 73 | + |
| 74 | +- [x] doxygen |
| 75 | + |
| 76 | + 基于 doxygen 的文档生成 |
| 77 | + |
| 78 | +- [x] CI |
| 79 | + |
| 80 | + github action,github pages,code coverage,ut it st |
| 81 | + |
| 82 | +- [x] x86_64 |
| 83 | + |
| 84 | + 基于 gnu-efi 的 x86_64 uefi 引导 |
| 85 | + |
| 86 | +- [x] riscv64 |
| 87 | + |
| 88 | + 基于 opensbi 的 riscv64 架构支持 |
| 89 | + |
| 90 | +- [x] 3rd |
| 91 | + |
| 92 | + 对依赖的第三方库的自动下载、编译 |
0 commit comments