|
| 1 | +# V0.1.2 |
| 2 | + |
| 3 | +:::{note} |
| 4 | + |
| 5 | + |
| 6 | +2022年12月17日 |
| 7 | +::: |
| 8 | + |
| 9 | +## 贡献者名单 |
| 10 | + |
| 11 | +DragonOS V0.1.2版本由以下小伙伴贡献代码: |
| 12 | + |
| 13 | + |
| 14 | + |
| 15 | + |
| 16 | + |
| 17 | + |
| 18 | + |
| 19 | +## 赞助者名单 |
| 20 | + |
| 21 | +感谢以下同学的赞赏,我们将不断努力! |
| 22 | + |
| 23 | +- David Wen |
| 24 | +- [Seele.Clover](https://github.com/seeleclover) |
| 25 | +- TerryLeeSCUT |
| 26 | +- 悟 |
| 27 | +- slientbard |
| 28 | + |
| 29 | +其中,非常感谢**Seele.Clover**给予DragonOS项目人民币500元的赞助与支持!我们对于每一笔赞助款项,将仔细登记,并确保其能被妥善的使用。 |
| 30 | + |
| 31 | +## 更新内容-内核 |
| 32 | + |
| 33 | +- 删除rust_helloworld文件 (#113) |
| 34 | +- Signal: 允许用户注册信号处理函数,能够进入自定义的handler。(#112) |
| 35 | + - 支持kill命令 |
| 36 | + - 允许用户自定义信号处理函数 |
| 37 | + - 新增2个系统调用:`SYS_SIGACTION` , `SYS_RT_SIGRETURN` |
| 38 | + - libc增加`signal()`,`sigaction()`函数。 |
| 39 | + - 暂时只支持旧版的sighandler,即:只有1个参数的`void handler(int signum)`类型的信号处理函数。对于另一种信号处理函数`void handler(int signum, siginfo_t *info, void* data)`,尚不支持传递第三个参数。 |
| 40 | +- 在内核代码中加入自定义的stdint.h文件 (#109) |
| 41 | +- 调整编译grub的脚本的部分 (#108) |
| 42 | +- 新增32、64位uefi启动 (#105)(#101) |
| 43 | +- 使用编译安装的grub-2.06,解决客户机上grub版本不对导致的编译无法运行的问题。 |
| 44 | +- 增加了timekeeping模块 (#106) |
| 45 | +- bugfix: 修复rtc时钟对BCD码进行转换的时候,忘了处理day字段的问题 (#104) |
| 46 | +- new: 开发过程文档(完成了一半) |
| 47 | +- bootstrap.sh解决下载rust慢的问题 |
| 48 | +- 更新“构建系统”文档 |
| 49 | +- procfs->status增加显示preempt和虚拟运行时间 (#100) |
| 50 | +- ffz函数:获取u64中的第一个值为0的bit (#100) |
| 51 | +- 解决由于编译器优化导致local_irq_restore无法获取到正确的rflags的值的问题 |
| 52 | +- 使用Rust重构串口驱动 (#99) |
| 53 | + |
| 54 | +## 更新内容-用户环境 |
| 55 | + |
| 56 | +- about app: 显示当前构建的git commit sha1以及构建时间(#114) |
| 57 | +- shell: 修复shell的exec命令对绝对路径的拼接错误问题(#114) |
| 58 | +- shell: exec命令增加"&"后台运行选项 (#100) |
| 59 | +- new: 测试signal用的app |
| 60 | +- 将libc目录进行调整,加入cargo作为rust的包管理器 |
| 61 | + |
| 62 | + |
| 63 | +## 源码、发布版镜像下载 |
| 64 | + |
| 65 | +  您可以通过以下方式获得源代码: |
| 66 | + |
| 67 | +### 通过Git获取 |
| 68 | + |
| 69 | +- 您可以访问[https://github.com/fslongjin/DragonOS/releases](https://github.com/fslongjin/DragonOS/releases)下载发布版的代码,以及编译好的,可运行的磁盘镜像。 |
| 70 | +- 我们在gitee上也有镜像仓库可供下载:[https://gitee.com/DragonOS/DragonOS](https://gitee.com/DragonOS/DragonOS) |
| 71 | + |
| 72 | +### 通过DragonOS软件镜像站获取 |
| 73 | + |
| 74 | +  为解决国内访问GitHub慢、不稳定的问题,同时为了方便开发者们下载DragonOS的每个版本的代码,我们特意搭建了镜像站,您可以通过以下地址访问镜像站: |
| 75 | + |
| 76 | +  您可以通过镜像站获取到DragonOS的代码压缩包,以及编译好的可运行的磁盘镜像。 |
| 77 | + |
| 78 | +- [https://mirrors.DragonOS.org](https://mirrors.DragonOS.org) |
| 79 | +- [https://mirrors.DragonOS.org.cn](https://mirrors.DragonOS.org.cn) |
| 80 | + |
| 81 | + |
| 82 | +## 开放源代码声明 |
| 83 | + |
| 84 | + |
| 85 | +:::{note} |
| 86 | +为促进DragonOS项目的健康发展,DragonOS以GPLv2开源协议进行发布。所有能获得到DragonOS源代码以及相应的软件制品(包括但不限于二进制副本、文档)的人,都能享有我们通过GPLv2协议授予您的权利,同时您也需要遵守协议中规定的义务。 |
| 87 | + |
| 88 | +这是一个相当严格的,保护开源软件健康发展,不被侵占的协议。 |
| 89 | + |
| 90 | +对于大部分的善意的人们而言,您不会违反我们的开源协议。 |
| 91 | + |
| 92 | +我们鼓励DragonOS的自由传播、推广,但是请确保所有行为没有侵犯他人的合法权益,也没有违反GPLv2协议。 |
| 93 | + |
| 94 | +请特别注意,对于违反开源协议的,尤其是**商业闭源使用以及任何剽窃、学术不端行为将会受到严肃的追责**。(这是最容易违反我们的开源协议的场景)。 |
| 95 | + |
| 96 | +并且,请注意,按照GPLv2协议的要求,基于DragonOS修改或二次开发的软件,必须同样采用GPLv2协议开源,并标明其基于DragonOS进行了修改。亦需保证这些修改版本的用户能方便的获取到DragonOS的原始版本。 |
| 97 | + |
| 98 | +您必须使得DragonOS的开发者们,能够以同样的方式,从公开渠道获取到您二次开发的版本的源代码,否则您将违反GPLv2协议。 |
| 99 | + |
| 100 | +关于协议详细内容,还敬请您请阅读项目根目录下的**LICENSE**文件。请注意,按照GPLv2协议的要求,**只有英文原版才具有法律效力**。任何翻译版本都仅供参考。 |
| 101 | +::: |
| 102 | + |
| 103 | +### 开源软件使用情况 |
| 104 | + |
| 105 | +  DragonOS在开发的过程中,参考了一些开源项目的设计,或者引入了他们的部分代码,亦或是受到了他们的启发。现将他们列在下面。我们对这些开源项目的贡献者们致以最衷心的感谢! |
| 106 | + |
| 107 | +格式:<项目名> - <链接> - <开源协议> |
| 108 | + |
| 109 | +- Linux - https://git.kernel.org/ - GPLv2 |
| 110 | +- skiftOS - https://github.com/skiftOS/skift - MIT |
| 111 | +- FYSOS - https://github.com/fysnet/FYSOS - [FYSOS' License](https://github.com/fysnet/FYSOS/blob/9a8968e3d6600de34539c028c843f4c06d134039/license.txt) |
| 112 | +- LemonOS - https://github.com/LemonOSProject/LemonOS.git - BSD 2-Clause License |
| 113 | +- LZ4 - https://github.com/lz4/lz4 - BSD 2-Clause license |
| 114 | +- SerenityOS - https://github.com/SerenityOS/serenity.git - BSD 2-Clause license |
| 115 | +- MINE - 《一个64位操作系统的设计与实现》田宇; 人民邮电出版社 |
| 116 | +- chcore - 《现代操作系统:设计与实现》陈海波,夏虞斌; 机械工业出版社 |
| 117 | +- SimpleKernel - https://github.com/Simple-XX/SimpleKernel - MIT |
| 118 | + |
| 119 | +## 当前版本的所有提交记录 |
| 120 | + |
| 121 | +```text |
| 122 | +commit 7a818da88a1c7a1760de7671141b0ce1ca4e3dde |
| 123 | + |
| 124 | +Date: Sat Dec 17 17:49:12 2022 +0800 |
| 125 | +
|
| 126 | + Patch about auto gen version string (#114) |
| 127 | + |
| 128 | + * new: about app中,显示当前构建的git commit sha1以及构建时间 |
| 129 | + |
| 130 | + * bugfix: 修复shell的exec命令对绝对路径的拼接错误问题 |
| 131 | +
|
| 132 | +commit 83a7aaa46bbc411c43d4fc099c6c8884efbe4771 |
| 133 | + |
| 134 | +Date: Sat Dec 17 16:31:50 2022 +0800 |
| 135 | +
|
| 136 | + 删除rust_helloworld文件 (#113) |
| 137 | +
|
| 138 | +commit 6efd4740336205c9bfdd8b164e667cee2f38781e |
| 139 | + |
| 140 | +Date: Sat Dec 17 16:27:50 2022 +0800 |
| 141 | +
|
| 142 | + 允许用户自定义信号处理函数 (#112) |
| 143 | + |
| 144 | + * new: 用户注册信号处理函数,能够进入自定义的handler |
| 145 | + |
| 146 | + * 修复忘了传信号的数字给用户的处理函数的bug |
| 147 | + |
| 148 | + * new:sigreturn |
| 149 | + |
| 150 | + * 删除注释 |
| 151 | +
|
| 152 | +commit 0e0c187484281768391e131495f0655e40d70cf7 |
| 153 | + |
| 154 | +Date: Fri Dec 16 16:20:09 2022 +0800 |
| 155 | +
|
| 156 | + 在内核代码中加入自定义的stdint.h文件 (#109) |
| 157 | +
|
| 158 | +commit d02e6ea4112ad520aa4090ff73cdf592e14c0a82 |
| 159 | + |
| 160 | +Date: Wed Dec 14 20:01:55 2022 +0800 |
| 161 | +
|
| 162 | + 调整编译grub的脚本的部分 (#108) |
| 163 | + |
| 164 | + 1、bugfix: 修复编译grub的脚本的部分错误 |
| 165 | + 2、将grub下载源替换为tuna |
| 166 | + 3、优化写入磁盘镜像的脚本 |
| 167 | + 4、将bios文件夹改名为legacy |
| 168 | +
|
| 169 | +commit 38b341b8aa671f75ac26d05059aa2e9a09e653b7 |
| 170 | +Author: YJwu2023 <[email protected]> |
| 171 | +Date: Wed Dec 14 16:58:49 2022 +0800 |
| 172 | +
|
| 173 | + 新增32位uefi启动 (#105) |
| 174 | + |
| 175 | + * 新增32位uefi启动 |
| 176 | + |
| 177 | + * 修复小bug |
| 178 | + |
| 179 | + * 增加grub本地编译安装 |
| 180 | + |
| 181 | + * 增加本地grub编译安装脚本 |
| 182 | + |
| 183 | + * 修正小错误 |
| 184 | + |
| 185 | + * 修复空文件夹不上传的bug |
| 186 | +
|
| 187 | +commit 01876902fbf6ed43992cc7d153bd8c505cb5224b |
| 188 | +Author: Gou Ngai <[email protected]> |
| 189 | +Date: Wed Dec 14 15:13:54 2022 +0800 |
| 190 | +
|
| 191 | + 增加了timekeeping模块 (#106) |
| 192 | + |
| 193 | + * 增加了timekeeping模块 |
| 194 | + |
| 195 | + * 格式化文档和细节更改 |
| 196 | + |
| 197 | + Co-authored-by: longjin <[email protected]> |
| 198 | +
|
| 199 | +commit 728aca308917a7d4d0ba10fe8174e9408d77a9a6 |
| 200 | + |
| 201 | +Date: Sun Dec 11 22:59:47 2022 +0800 |
| 202 | +
|
| 203 | + bugfix: 修复rtc时钟对BCD码进行转换的时候,忘了处理day字段的问题 (#104) |
| 204 | +
|
| 205 | +commit 237e95c6ddce72d72ae7fedfeca412fab82b3622 |
| 206 | +Author: wwc-15172310230 <[email protected]> |
| 207 | +Date: Sun Dec 11 22:22:10 2022 +0800 |
| 208 | +
|
| 209 | + 调整user下libs的libc目录结构 (#103) |
| 210 | + |
| 211 | + * 调整user下libs的libc目录结构 |
| 212 | + |
| 213 | + * 修正.gitignore文件的问题 |
| 214 | + |
| 215 | + * 修复无法编译的问题 |
| 216 | + |
| 217 | + Co-authored-by: longjin <[email protected]> |
| 218 | +
|
| 219 | +commit 2291ffdece1dc5a703602f79f74df8a4854d215b |
| 220 | + |
| 221 | +Date: Sun Dec 11 20:09:58 2022 +0800 |
| 222 | +
|
| 223 | + 文档更新 (#102) |
| 224 | + |
| 225 | + * new: 开发过程文档(完成了一半) |
| 226 | + |
| 227 | + * bootstrap.sh解决下载rust慢的问题 |
| 228 | + |
| 229 | + * 更新“构建系统”文档 |
| 230 | +
|
| 231 | +commit 7f439c5ddbd2ecffc112149d16983975f523052c |
| 232 | +Author: YJwu2023 <[email protected]> |
| 233 | +Date: Fri Dec 9 16:08:54 2022 +0800 |
| 234 | +
|
| 235 | + 增加uefi启动 (#101) |
| 236 | + |
| 237 | + * 增加uefi启动 |
| 238 | + |
| 239 | + * 修改脚本 |
| 240 | + |
| 241 | + * uefi修改 |
| 242 | + |
| 243 | + * 删除错误的注释 |
| 244 | + |
| 245 | + * 修正写入磁盘镜像的脚本 |
| 246 | + |
| 247 | + * 修改X86_64为x86_64 |
| 248 | + |
| 249 | + Co-authored-by: longjin <[email protected]> |
| 250 | +
|
| 251 | +commit 1a2eaa402f05f82aaeebe1e03824534a0a425d4d |
| 252 | + |
| 253 | +Date: Thu Dec 8 22:59:51 2022 +0800 |
| 254 | +
|
| 255 | + signal的处理(kill命令)以及一些其他的改进 (#100) |
| 256 | + |
| 257 | + * 将entry.S中冗余的ret_from_syscall代码删除,改为jmp Restore_all |
| 258 | + |
| 259 | + * new: 增加判断pt_regs是否来自用户态的函数 |
| 260 | + |
| 261 | + * new: rust的cli和sti封装 |
| 262 | + |
| 263 | + * 将原有的判断pt_regs是否来自用户态的代码,统一改为调用user_mode函数 |
| 264 | + |
| 265 | + * ffz函数:获取u64中的第一个值为0的bit |
| 266 | + |
| 267 | + * spinlock增加 spinlock irq spin_unlock_irq |
| 268 | + |
| 269 | + * 临时解决显示刷新线程迟迟不运行的问题 |
| 270 | + |
| 271 | + * 更改ffi_convert的生命周期标签 |
| 272 | + |
| 273 | + * new: 测试signal用的app |
| 274 | + |
| 275 | + * 解决由于编译器优化导致local_irq_restore无法获取到正确的rflags的值的问题 |
| 276 | + |
| 277 | + * new: exec命令增加"&"后台运行选项 |
| 278 | + |
| 279 | + * procfs->status增加显示preempt和虚拟运行时间 |
| 280 | + |
| 281 | + * 更改引用计数的FFIBind2Rust trait中的生命周期标签 |
| 282 | + |
| 283 | + * new: signal处理(kill) |
| 284 | + |
| 285 | + * 更正在review中发现的一些细节问题 |
| 286 | +
|
| 287 | +commit f8b55f6d3fcbf152a1cb6d6fc722bf1607418b28 |
| 288 | +Author: TingHuang <[email protected]> |
| 289 | +Date: Tue Dec 6 22:15:03 2022 +0800 |
| 290 | +
|
| 291 | + Patch uart (#99) |
| 292 | + |
| 293 | + * 添加UART驱动相关文件 |
| 294 | + |
| 295 | + * 添加驱动核心文件,将rust编写的驱动代码加入Package中 |
| 296 | + |
| 297 | + * 添加glib.h文件生成rust代码,添加uart驱动代码 |
| 298 | + |
| 299 | + * 添加串口发送及接收相关代码 |
| 300 | + |
| 301 | + * 添加字符串发送函数,未实现具体功能 |
| 302 | + |
| 303 | + * 为调用uart驱动的代码添加rust接口 |
| 304 | + |
| 305 | + * 添加字符串发送函数,修改C语言调用接口 |
| 306 | + |
| 307 | + * 添加rust串口驱动 |
| 308 | + |
| 309 | + * 添加uart.h头文件,将串口端口类型改为enum |
| 310 | + |
| 311 | + * 添加注释,规范代码 |
| 312 | +
|
| 313 | +commit 036acc52ce9d0fb9e7d92768ff74939a29c07f32 |
| 314 | + |
| 315 | +Date: Tue Nov 29 21:46:13 2022 +0800 |
| 316 | +
|
| 317 | + 将entry.S中冗余的ret_from_syscall代码删除,改为jmp Restore_all (#98) |
| 318 | + |
| 319 | + * 将entry.S中冗余的ret_from_syscall代码删除,改为jmp Restore_all |
| 320 | +
|
| 321 | +``` |
0 commit comments