备注
AI Translation Notice
This document was automatically translated by Qwen/Qwen3-8B
model, for reference only.
Source document: community/ChangeLog/V0.1.x/V0.1.1.md
Translation time: 2025-05-19 01:41:56
Translation model:
Qwen/Qwen3-8B
Please report issues via Community Channel
V0.1.1
Contributors List
The DragonOS V0.1.1 version was contributed by the following team members:
Longjin longjin@RinGoTek.cn
Zhou Yuzhe zhouyuzhe@DragonOS.org
Sponsors List
Thank you to the following individuals for their support. We will continue to strive for excellence!
David Wen
TerryLeeSCUT
Wu
slientbard
Among them, we are especially grateful to David Wen for his sponsorship of RMB 1000 to the DragonOS project! We will carefully record each donation and ensure that it is used appropriately.
Update Content - Kernel
Added Rust FFI (#_translated_label__77_en)
Ported kmalloc and printk to Rust
Rust macros for kdebug, kinfo, kwarn, kBUG, kerror
Bugfix: Fixed the issue where the process PCB was not removed from the list when it was reclaimed
Directory structure optimization: Moved asm.h and cmpxchg.h
Signal sending
procfs: View process status
Resolved the issue of disk image permission errors during the first compilation
Moved fork-related code to fork.c
Update Content - User Environment
Shell: Added the kill command, which can send signals to a target process. However, since the signal mechanism is still not fully implemented, the target process cannot currently respond to this signal.
Source Code and Release Image Download
You can obtain the source code through the following methods:
Get via Git
You can download the release code and the compiled, runnable disk image from https://github.com/fslongjin/DragonOS/releases.
We also have a mirror repository on Gitee for download: https://gitee.com/DragonOS/DragonOS
Get via DragonOS Software Mirror Site
To address the slow and unstable access to GitHub in China, and to make it easier for developers to download the code for each version of DragonOS, we have specially set up a mirror site. You can access the mirror site through the following address:
You can obtain the compressed package of DragonOS code and the compiled, runnable disk image through the mirror site.
Open Source Declaration
备注
To promote the healthy development of the DragonOS project, DragonOS is released under the GPLv2 open source license. Anyone who can obtain the DragonOS source code and corresponding software products (including but not limited to binary copies and documentation) will enjoy the rights granted by us through the GPLv2 license, and you must also comply with the obligations stipulated in the agreement.
This is a rather strict license that protects the healthy development of open source software and prevents it from being encroached upon.
For most well-intentioned people, you will not violate our open source license.
We encourage the free dissemination and promotion of DragonOS, but please ensure that all actions do not infringe on the legitimate rights and interests of others or violate the GPLv2 license.
Please pay special attention to the fact that violations of the open source license, especially commercial closed-source use and any plagiarism or academic misconduct, will be subject to serious accountability. (This is the most common scenario where the open source license is violated.)
Also, please note that according to the requirements of the GPLv2 license, any software modified or developed based on DragonOS must also be open-sourced under the GPLv2 license and must clearly indicate that it is based on DragonOS. It is also necessary to ensure that users of these modified versions can easily obtain the original version of DragonOS.
You must make it possible for the developers of DragonOS to obtain the source code of your modified version through public channels, otherwise you will violate the GPLv2 license.
For detailed information about the agreement, please read the LICENSE file in the project root directory. Please note that according to the requirements of the GPLv2 license, only the English original version is legally binding. Any translated version is for reference only.
Open Source Software Usage
During the development of DragonOS, we have referenced the design of some open source projects, or introduced parts of their code, or been inspired by them. Below is a list of these open source projects. We sincerely thank the contributors of these open source projects!
Format:
Linux - https://git.kernel.org/ - GPLv2
skiftOS - https://github.com/skiftOS/skift - MIT
FYSOS - https://github.com/fysnet/FYSOS - FYSOS’ License
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 - 《A Design and Implementation of a 64-bit Operating System》 by Tian Yu; People’s Posts and Telecommunications Press
chcore - 《Modern Operating Systems: Design and Implementation》 by Chen Haibo and Xia Yubin; Machinery Industry Press
SimpleKernel - https://github.com/Simple-XX/SimpleKernel - MIT
All Commit Records of the Current Version
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 <longjin@RinGoTek.cn>
commit 6cb769c423b09e88fea1763210200a716477be0a
Author: login <longjin@ringotek.cn>
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 <longjin@RinGoTek.cn>
commit ad23fcddf893d7f92d2bf3efdb66e969416d2852
Author: login <longjin@ringotek.cn>
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 <longjin@ringotek.cn>
Date: Wed Nov 23 20:43:18 2022 +0800
修正drop signal结构体的box对象的的问题 (#92)
* fix: exit signal and exit sighand
commit c8025a88798dc57ecc5d7f20ad69de695445638f
Author: login <longjin@ringotek.cn>
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 <longjin@ringotek.cn>
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 <longjin@ringotek.cn>
Date: Fri Nov 18 17:59:33 2022 +0800
bugfix: 修复进程pcb被回收时,未将其从链表中删除的问题 (#87)
* bugfix: 修复进程pcb被回收时,未将其从链表中删除的问题
new: pcb相关api文档
* 将文档加入目录
commit 0bfe94f46be9bdde1ade81a20e803aa2aafd2964
Author: login <longjin@ringotek.cn>
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 <longjin@ringotek.cn>
Date: Thu Nov 17 20:29:29 2022 +0800
fix: 解决bindings.rs报了很多警告的问题 (#85)
* fix: 解决bindings.rs报一堆警告的问题
commit cffd7144fbed84f9775e89d7b99602c6ccc5a510
Author: login <longjin@ringotek.cn>
Date: Wed Nov 16 15:18:03 2022 +0800
signal相关数据结构&代码结构优化 (#84)
* 解决由于spinlock.h中包含preempt_enable()带来的循环include问题
* new: 初步实现signal的数据结构
commit fb6c29d01d4cf92368efec08c01e419c2a941f7d
Author: login <longjin@ringotek.cn>
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 <longjin@ringotek.cn>
Date: Sat Nov 12 15:25:54 2022 +0800
new: 暂时移除cbindgen (#82)
commit 2aaf7808efe44ecfaadd51ae4f8892e667108578
Author: login <longjin@ringotek.cn>
Date: Fri Nov 11 22:21:44 2022 +0800
在内核中引入cbindgen,生成rust-C的FFI (#81)
* 解决codeql失败问题
* new: 为内核引入cbindgen
commit 2813126e3190c9b3c1a836a647b259a7adbe0cf3
Author: login <longjin@ringotek.cn>
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 <longjin@ringotek.cn>
Date: Fri Nov 11 15:21:45 2022 +0800
Update makefile.yml
commit e44795008f7e34d2068cf28dcedbcb91f5ccd66b
Author: login <longjin@ringotek.cn>
Date: Fri Nov 11 15:18:13 2022 +0800
Update makefile.yml (#80)
commit ec5fb84b61c313824cc2199ab64e3af4b7e5f895
Author: login <longjin@ringotek.cn>
Date: Fri Nov 11 15:08:09 2022 +0800
Update makefile.yml
commit 6d9dff5f1ff347ea780a0249e54eef356cdcaaea
Author: login <longjin@ringotek.cn>
Date: Fri Nov 11 15:07:48 2022 +0800
Revert "Update makefile.yml (#78)" (#79)
This reverts commit badc7d238f2341e844a90be3e357e5dd77a447fc.
commit badc7d238f2341e844a90be3e357e5dd77a447fc
Author: login <longjin@ringotek.cn>
Date: Fri Nov 11 15:05:52 2022 +0800
Update makefile.yml (#78)