From d85ebf1ff58575a100cfd8bf85aa70f522a8415d Mon Sep 17 00:00:00 2001 From: login Date: Sun, 27 Nov 2022 15:36:47 +0800 Subject: [PATCH] =?UTF-8?q?new:=20V0.1.1=E5=8F=91=E8=A1=8C=E6=97=A5?= =?UTF-8?q?=E5=BF=97=20(#97)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/community/ChangeLog/V0.1.x/V0.1.1.md | 346 ++++++++++++++++++++++ docs/community/ChangeLog/index.rst | 3 +- kernel/build.rs | 2 +- user/apps/about/about.c | 2 +- 4 files changed, 350 insertions(+), 3 deletions(-) create mode 100644 docs/community/ChangeLog/V0.1.x/V0.1.1.md diff --git a/docs/community/ChangeLog/V0.1.x/V0.1.1.md b/docs/community/ChangeLog/V0.1.x/V0.1.1.md new file mode 100644 index 000000000..905bc585a --- /dev/null +++ b/docs/community/ChangeLog/V0.1.x/V0.1.1.md @@ -0,0 +1,346 @@ +# V0.1.1 + +:::{note} +本文作者:龙进 + +2022年11月27日 +::: + +## 贡献者名单 + +DragonOS V0.1.1版本由以下小伙伴贡献代码: + +- 龙进 +- 周于喆 + +## 赞助者名单 + +感谢以下同学的赞赏,我们将不断努力! + +- David Wen +- TerryLeeSCUT +- 悟 +- slientbard + +其中,非常感谢**David Wen**给予DragonOS项目人民币1000元的赞助与支持!我们对于每一笔赞助款项,将仔细登记,并确保其能被妥善的使用。 + +## 更新内容-内核 + +- 新增rust ffi (#77) +- port kmalloc and printk to rust +- rust下的kdebug kinfo kwarn kBUG kerror宏 +- bugfix: 修复进程pcb被回收时,未将其从链表中删除的问题 +- 目录结构优化:移动asm.h和cmpxchg.h +- signal的发送 +- procfs:查看进程的status +- 解决第一次编译时磁盘镜像权限错误的问题 +- 将fork相关代码移动到fork.c + +## 更新内容-用户环境 + +- shell:增加kill命令,可向目标进程发送信号。但由于仍未完善signal机制,因此目标进程暂时不能响应这个信号。 + + +## 源码、发布版镜像下载 + +  您可以通过以下方式获得源代码: + +### 通过Git获取 + +- 您可以访问[https://github.com/fslongjin/DragonOS/releases](https://github.com/fslongjin/DragonOS/releases)下载发布版的代码,以及编译好的,可运行的磁盘镜像。 +- 我们在gitee上也有镜像仓库可供下载:[https://gitee.com/DragonOS/DragonOS](https://gitee.com/DragonOS/DragonOS) + +### 通过DragonOS软件镜像站获取 + +  为解决国内访问GitHub慢、不稳定的问题,同时为了方便开发者们下载DragonOS的每个版本的代码,我们特意搭建了镜像站,您可以通过以下地址访问镜像站: + +  您可以通过镜像站获取到DragonOS的代码压缩包,以及编译好的可运行的磁盘镜像。 + +- [https://mirrors.DragonOS.org](https://mirrors.DragonOS.org) +- [https://mirrors.DragonOS.org.cn](https://mirrors.DragonOS.org.cn) + + +## 开放源代码声明 + + +:::{note} +为促进DragonOS项目的健康发展,DragonOS以GPLv2开源协议进行发布。所有能获得到DragonOS源代码以及相应的软件制品(包括但不限于二进制副本、文档)的人,都能享有我们通过GPLv2协议授予您的权利,同时您也需要遵守协议中规定的义务。 + +这是一个相当严格的,保护开源软件健康发展,不被侵占的协议。 + +对于大部分的善意的人们而言,您不会违反我们的开源协议。 + +我们鼓励DragonOS的自由传播、推广,但是请确保所有行为没有侵犯他人的合法权益,也没有违反GPLv2协议。 + +请特别注意,对于违反开源协议的,尤其是**商业闭源使用以及任何剽窃、学术不端行为将会受到严肃的追责**。(这是最容易违反我们的开源协议的场景)。 + +并且,请注意,按照GPLv2协议的要求,基于DragonOS修改或二次开发的软件,必须同样采用GPLv2协议开源,并标明其基于DragonOS进行了修改。亦需保证这些修改版本的用户能方便的获取到DragonOS的原始版本。 + +您必须使得DragonOS的开发者们,能够以同样的方式,从公开渠道获取到您二次开发的版本的源代码,否则您将违反GPLv2协议。 + +关于协议详细内容,还敬请您请阅读项目根目录下的**LICENSE**文件。请注意,按照GPLv2协议的要求,**只有英文原版才具有法律效力**。任何翻译版本都仅供参考。 +::: + +### 开源软件使用情况 + +  DragonOS在开发的过程中,参考了一些开源项目的设计,或者引入了他们的部分代码,亦或是受到了他们的启发。现将他们列在下面。我们对这些开源项目的贡献者们致以最衷心的感谢! + +格式:<项目名> - <链接> - <开源协议> + +- Linux - https://git.kernel.org/ - GPLv2 +- skiftOS - https://github.com/skiftOS/skift - MIT +- FYSOS - https://github.com/fysnet/FYSOS - [FYSOS' License](https://github.com/fysnet/FYSOS/blob/9a8968e3d6600de34539c028c843f4c06d134039/license.txt) +- LemonOS - https://github.com/LemonOSProject/LemonOS.git - BSD 2-Clause License +- LZ4 - https://github.com/lz4/lz4 - BSD 2-Clause license +- SerenityOS - https://github.com/SerenityOS/serenity.git - BSD 2-Clause license +- MINE - 《一个64位操作系统的设计与实现》田宇; 人民邮电出版社 +- chcore - 《现代操作系统:设计与实现》陈海波,夏虞斌; 机械工业出版社 +- SimpleKernel - https://github.com/Simple-XX/SimpleKernel - MIT + +## 当前版本的所有提交记录 + +```text +commit d65ade9c5909076747bd00966a398fe27fbd290d +Author: DaJiYuQia <88259094+DaJiYuQia@users.noreply.github.com> +Date: Sun Nov 27 14:21:31 2022 +0800 + + Patch procf (#95) + + * debug color problem + + Co-authored-by: longjin + +commit 6cb769c423b09e88fea1763210200a716477be0a +Author: login +Date: Sun Nov 27 14:17:36 2022 +0800 + + 将include目录下的rust代码转移到他们应当属于的模块中 (#96) + + * 将include目录下的rust代码转移到他们应当属于的模块下。 + +commit 27a97abd2474b03ad09b562e5ed11e1fdae8eb32 +Author: DaJiYuQia <88259094+DaJiYuQia@users.noreply.github.com> +Date: Sat Nov 26 17:34:00 2022 +0800 + + Patch procf (#90) + + * 1234 + + * 123 + + * 合并master + + * procfs + + * 1 + + * procfs展示进程基本信息 + + * modified code + + * 恢复权限 + + * 恢复权限 + + #恢复权限 + + * modify permission + + * 删除run.sh + + * 解决第一次编译时磁盘镜像权限错误的问题 + + * 恢复.vscode/c_cpp_properties.json + + * 删除process.c中错误的do_fork + + * remake procfs + + * 修改一些变量名 + + * 修改类型 + + * modified + + * data_puts缓冲区溢出后return + + Co-authored-by: longjin + +commit ad23fcddf893d7f92d2bf3efdb66e969416d2852 +Author: login +Date: Wed Nov 23 21:34:35 2022 +0800 + + bugfix: 修复进程退出时未释放signal和sighand && 增加赞赏者名单:David Wen (#93) + + * bugfix: 修复进程退出时未释放signal和sighand的bug + + * 增加赞赏者名单:David Wen + +commit 0274cd6eeec01885232e7418a501857cb76da69e +Author: login +Date: Wed Nov 23 20:43:18 2022 +0800 + + 修正drop signal结构体的box对象的的问题 (#92) + + * fix: exit signal and exit sighand + +commit c8025a88798dc57ecc5d7f20ad69de695445638f +Author: login +Date: Wed Nov 23 20:18:22 2022 +0800 + + new:在fork时拷贝signal和sighand (#91) + + * refcount初始化 + + * new: 实现copy_sighand + del: 删除sighand_struct的wqh, 待将来有需要时,替换成rust版本的 + + * new: 拷贝signal + bugfix: 解决拷贝sighand时的uaf问题 + +commit 66f67c6a95b8aad85cfd2146a86e5e3e6a3568e7 +Author: login +Date: Wed Nov 23 11:38:20 2022 +0800 + + signal的发送(暂时父子进程之间共享信号及相应的结构体) (#89) + + * 解决由于spinlock.h中包含preempt_enable()带来的循环include问题 + + * new: 初步实现signal的数据结构 + + * new:signal相关数据结构 + + * fix: 解决bindings.rs报一堆警告的问题 + + * new: rust下的kdebug kinfo kwarn kBUG kerror宏 + + * 移动asm.h和cmpxchg.h + + * new: signal的发送(暂时只支持父子进程共享信号及处理函数) + +commit 3d729e2069e01ee07525ff83167566dac5322a40 +Author: login +Date: Fri Nov 18 17:59:33 2022 +0800 + + bugfix: 修复进程pcb被回收时,未将其从链表中删除的问题 (#87) + + * bugfix: 修复进程pcb被回收时,未将其从链表中删除的问题 + new: pcb相关api文档 + + * 将文档加入目录 + +commit 0bfe94f46be9bdde1ade81a20e803aa2aafd2964 +Author: login +Date: Fri Nov 18 16:32:15 2022 +0800 + + new: rust下的kdebug kinfo kwarn kBUG kerror宏 (#86) + + * new: rust下的kdebug kinfo kwarn kBUG kerror宏 + +commit c6174797dcf3427f38bfa0f4bd3e039c319f7c5b +Author: login +Date: Thu Nov 17 20:29:29 2022 +0800 + + fix: 解决bindings.rs报了很多警告的问题 (#85) + + * fix: 解决bindings.rs报一堆警告的问题 + +commit cffd7144fbed84f9775e89d7b99602c6ccc5a510 +Author: login +Date: Wed Nov 16 15:18:03 2022 +0800 + + signal相关数据结构&代码结构优化 (#84) + + * 解决由于spinlock.h中包含preempt_enable()带来的循环include问题 + + * new: 初步实现signal的数据结构 + +commit fb6c29d01d4cf92368efec08c01e419c2a941f7d +Author: login +Date: Sun Nov 13 16:43:58 2022 +0800 + + port kmalloc and printk to rust (#83) + + * 暂时移除cbindgen + + * 将lib文件夹更名为libs文件夹(解决rust的冲突) + + * 实现了全局的allocator + + * 实现了printk宏 + + * new: 完善了printk的颜色 + +commit 82d2e446a401e7eee57a847f48a6d162931170c3 +Author: login +Date: Sat Nov 12 15:25:54 2022 +0800 + + new: 暂时移除cbindgen (#82) + +commit 2aaf7808efe44ecfaadd51ae4f8892e667108578 +Author: login +Date: Fri Nov 11 22:21:44 2022 +0800 + + 在内核中引入cbindgen,生成rust-C的FFI (#81) + + + * 解决codeql失败问题 + + * new: 为内核引入cbindgen + +commit 2813126e3190c9b3c1a836a647b259a7adbe0cf3 +Author: login +Date: Fri Nov 11 15:35:37 2022 +0800 + + 新增rust ffi (#77) + + * 引入cargo + + * 取消对Cargo.lock的跟踪 + + * 解决vscode报错问题 + + * new: rust的代码能够调用c语言的printk_color + + * 1、将原本run.sh的工作拆解,变为几个不同的make命令 + 2、在docker镜像中编译rust + + * 更改workflow + + * update workflow + + * new: 解决workflow无法通过编译的问题 + +commit 5e023cf7911333eb05bfe65704dce4b01fa4d0a7 +Author: login +Date: Fri Nov 11 15:21:45 2022 +0800 + + Update makefile.yml + +commit e44795008f7e34d2068cf28dcedbcb91f5ccd66b +Author: login +Date: Fri Nov 11 15:18:13 2022 +0800 + + Update makefile.yml (#80) + +commit ec5fb84b61c313824cc2199ab64e3af4b7e5f895 +Author: login +Date: Fri Nov 11 15:08:09 2022 +0800 + + Update makefile.yml + +commit 6d9dff5f1ff347ea780a0249e54eef356cdcaaea +Author: login +Date: Fri Nov 11 15:07:48 2022 +0800 + + Revert "Update makefile.yml (#78)" (#79) + + This reverts commit badc7d238f2341e844a90be3e357e5dd77a447fc. + +commit badc7d238f2341e844a90be3e357e5dd77a447fc +Author: login +Date: Fri Nov 11 15:05:52 2022 +0800 + + Update makefile.yml (#78) + +``` \ No newline at end of file diff --git a/docs/community/ChangeLog/index.rst b/docs/community/ChangeLog/index.rst index 569d3c8aa..812f65cb7 100644 --- a/docs/community/ChangeLog/index.rst +++ b/docs/community/ChangeLog/index.rst @@ -6,4 +6,5 @@ .. toctree:: :maxdepth: 1 - V0.1.x/V0.1.0 \ No newline at end of file + V0.1.x/V0.1.0 + V0.1.x/V0.1.1 \ No newline at end of file diff --git a/kernel/build.rs b/kernel/build.rs index 163476df2..bc41e28e8 100644 --- a/kernel/build.rs +++ b/kernel/build.rs @@ -2,7 +2,7 @@ extern crate bindgen; extern crate cbindgen; -use ::std::env; +// use ::std::env; use std::path::PathBuf; diff --git a/user/apps/about/about.c b/user/apps/about/about.c index f9a1a22bb..dad18f664 100644 --- a/user/apps/about/about.c +++ b/user/apps/about/about.c @@ -18,7 +18,7 @@ void print_copyright() printf(" DragonOS - An opensource operating system.\n"); printf(" Copyright: fslongjin & DragonOS Community. 2022, All rights reserved.\n"); printf(" Version: "); - put_string("V0.1.0 - 20221106\n", COLOR_GREEN, COLOR_BLACK); + put_string("V0.1.1 - 20221127\n", COLOR_GREEN, COLOR_BLACK); printf(" You can visit the project via:\n"); printf("\n"); put_string(" Official Website: https://DragonOS.org\n", COLOR_INDIGO, COLOR_BLACK);