:::{note} **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.7.md - Translation time: 2025-05-19 01:43:50 - Translation model: `Qwen/Qwen3-8B` Please report issues via [Community Channel](https://github.com/DragonOS-Community/DragonOS/issues) ::: # V0.1.7 :::{note} Author: Longjin April 24, 2023 ::: ## Contributors List The DragonOS V0.1.7 version was contributed by the following contributors: - Longjin - Guan Jinquan - Huang Ting - Hou Jiaying - Wu Yujian - Su Jintao - Zhou Hanjie - HoshuChiu <129569557+HoshuChiu@users.noreply.github.com> - Bullet <93781792+GP-Bullet@users.noreply.github.com> ## Sponsors List Thank you to the following individuals for their support. We will continue to work hard! - Wan Xiaolan - David Wen - [Seele.Clover](https://github.com/seeleclover) - [FindWangHao](https://github.com/FindWangHao) - [ferchiel](https://github.com/ferchiel) - Ye Jinyi - Lin - Albert - [TerryLeeSCUT · GitHub](https://github.com/TerryLeeSCUT) - slientbard - Wu - Anonymous Kind-hearted Person ## Update Content - Kernel - scheduler: Change CFSqueue from Vec to Red-Black Tree (#_translated_label__229_en) - new: lazy_init (#_translated_label__230_en) (#_translated_label__236_en) - pci: pci restructure + pcie support (#_translated_label__235_en) - net: Add network subsystem, and support programming in user space (#_translated_label__237_en) (#_translated_label__247_en) - mm: Adjust brk system call to make parameters and return values consistent with Linux (#_translated_label__238_en) - Modify errno to be consistent with relicb (#_translated_label__234_en) - pci: Fix the issue of not being able to get MCFG table with ecam (#_translated_label__241_en) - libs: DowncastArc and its docs (#_translated_label__244_en) - softirq: Add timer and softirq documentation, modify the C-oriented interface of softirq (#_translated_label__245_en) - spinlock: Fix the issue of forgetting to restore rflags in spinlock (#_translated_label__247_en) - waitqueue: Add wakeup_all and sleep_without_schedule functions (#_translated_label__247_en)(#_translated_label__253_en) - filesystem: Change the PollStatus structure to use the bitflags library (#_translated_label__247_en) - filesystem: Add iovec support (brute-force implementation) (#_translated_label__247_en) - filesystem: Add SysFS (#_translated_label__250_en) (#_translated_label__254_en) - driver: Improve device driver model according to sysfs (#_translated_label__254_en) - pipe: Pipe restructure (#_translated_label__253_en) - irq: Add IrqArch abstraction and IrqFlagsGuard to simplify the process of disabling and restoring interrupts (#_translated_label__253_en) ## Update Content - User Environment ### New Repositories - New subproject: [dsc](https://github.com/DragonOS-Community/dsc.git) - New subproject: [DADK](https://github.com/DragonOS-Community/DADK.git) DragonOS Application Development Kit ### [DragonOS-relibc](https://github.com/DragonOS-Community/relibc.git) - Add sys_dup and sys_dup2 support (#_translated_label__2_en) - Add the original libc memory allocator, fix alignment issues. (#_translated_label__6_en) (#_translated_label__7_en) - Configure network-related system calls (#_translated_label__8_en) - Fix the issue of errno not working properly due to DragonOS not supporting TLS (thread local storage). (#_translated_label__8_en) ## Update Content - Others - build: Fix Issue#220; restore VNC port number to 5900 (#_translated_label__243_en) - bootstrap: Solve the problem of not being able to directly use the one-click initialization script for installation when using zsh to build DragonOS (#_translated_label__252_en) ## Update Content - Software Porting None ## Source Code and Release Image Download   You can obtain the source code through the following ways: ### Get via Git - You can visit [https://github.com/DragonOS-Community/DragonOS/releases](https://github.com/DragonOS-Community/DragonOS/releases) to download the release code and the compiled, runnable disk image. - We also have a mirror repository on gitee for download: [https://gitee.com/DragonOS/DragonOS](https://gitee.com/DragonOS/DragonOS) ### Get via DragonOS Software Mirror Site   To solve the problem of slow and unstable access to GitHub in China, and to make it convenient for developers to download the code of each version of DragonOS, we have specially set up a mirror site. You can access the mirror site through the following address:   You can get the compressed package of DragonOS code and the compiled, runnable disk image through the mirror site. - [https://mirrors.DragonOS.org](https://mirrors.DragonOS.org) - [https://mirrors.DragonOS.org.cn](https://mirrors.DragonOS.org.cn) - Domestic mirror acceleration: [https://mirrors.ringotek.cn/](https://mirrors.ringotek.cn/) ## Open Source Declaration :::{note} To promote the healthy development of the DragonOS project, DragonOS is released under the GPLv2 open source license. Anyone who can obtain the source code of DragonOS and the corresponding software products (including but not limited to binary copies and documents) can 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 acts of 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 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 the same way from public channels, otherwise you will violate the GPLv2 license. For detailed information about the license, please read the **LICENSE** file in the root directory of the project. Please note that according to the requirements of the GPLv2 license, **only the English original version has legal effect**. Any translated version is for reference only. ::: ### Usage of Open Source Software   During the development of DragonOS, some open source projects' designs were referenced, or parts of their code were introduced, or they were inspired by them. The following list shows them. 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](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 - "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, Xia Yubin; Machinery Industry Press - SimpleKernel - https://github.com/Simple-XX/SimpleKernel - MIT - rcore-fs - https://github.com/rcore-os/rcore-fs.git - MIT - redox - https://gitlab.redox-os.org/redox-os/redox - MIT ## All Commit Records of the Current Version ```text commit e0de0fd6a52199753a3127cfbb5d12f0a1555aae Author: TingHuang <92705854+TingSHub@users.noreply.github.com> Date: Sun Apr 23 22:55:57 2023 +0800 根据sysfs完善设备驱动模型 & 添加sysfs官方文档 (#254) * 根据sysfs完善设备驱动模型 * 添加sysfs官方文档 commit f678331a3315b7847f08ab32b42d5bf49a9f3a6a Author: hanjiezhou Date: Sun Apr 23 21:05:10 2023 +0800 匿名管道重构&增加IrqArch trait以及IrqFlags及其守卫 (#253) * 实现匿名管道 * 增加IrqArch trait以及IrqFlags及其守卫 --------- Co-authored-by: longjin commit 8a1e95abb5e4df5e872bb452efc26c9e9631157d Author: Bullet <93781792+GP-Bullet@users.noreply.github.com> Date: Fri Apr 21 23:36:54 2023 +0800 解决使用zsh在构建DragonOS时,无法直接使用一键初始化脚本进行安装的问题 (#252) commit dd9f1fc1a42406461e6f0d38cce1e56e22a1a15f Author: TingHuang <92705854+TingSHub@users.noreply.github.com> Date: Fri Apr 21 16:03:42 2023 +0800 新增SysFS (#250) * 添加sysfs * 注册sysfs * 添加sysfs相关 * 添加rust-anlyzer辅助配置 * 将设备与sysfs相关联 * 添加单独的文件管理sysfs下的文件夹 commit cde5492f725681ed89abe1e6eb088e05d943d793 Author: login Date: Wed Apr 19 18:05:02 2023 +0800 新增网络socket的系统调用接口 (#247) 1.修复spinlock忘记恢复rflags的问题 2.WaitQueue增加wakeup_all的功能 3.完善tcp,udp,raw socket 4.把PollStatus结构体改为使用bitflags 5.新增iovec结构体 6.完成网络的系统调用 7.在bootstrap里面添加dnsmasq bridge-utils iptables --------- Co-authored-by: guanjinquan <1666320330@qq.com> commit 8fd71f277271ae68e648f290c67f187b030feae0 Author: houmkh <1119644616@qq.com> Date: Mon Apr 17 17:17:06 2023 +0800 增加定时器和软中断文档,修改了softirq面向c的接口 (#245) * 增加定时器和软中断文档 * 修改softirq对c的接口和文档 * 修改文档格式 commit 77c928f6ce3192c79ea42ab7bcba2713e289f73b Author: login Date: Sun Apr 16 20:29:04 2023 +0800 new: DowncastArc and its docs (#244) commit 7149abaa49a4ca70f0e42ad3b61fdfd6a941a092 Author: HoshuChiu <129569557+HoshuChiu@users.noreply.github.com> Date: Sun Apr 16 14:47:51 2023 +0800 修复Issue#220;vnc的端口号恢复5900 (#243) * 修复Issue#220 * qemu-vnc端口号恢复为5900 commit 5c1e552cc7f0a6ad75c8a1fa2928e3b9cc619657 Author: YJwu2023 Date: Fri Apr 14 12:21:08 2023 +0800 修复ecam无法获取MCFG table的问题 (#241) commit 79a452ce8f27ad9c7283ac0bcf4078ed6fa018d7 Author: houmkh <1119644616@qq.com> Date: Tue Apr 11 17:05:33 2023 +0800 修改errno,使其与relibc的保持一致 (#234) 修改errno,使其与relibc的保持一致 commit ac48398d3f17f24ff9b5da5e400ce912d05f0ba2 Author: login Date: Tue Apr 11 16:54:14 2023 +0800 调整brk系统调用,使得参数、返回值与Linux一致 (#238) * 新增用于测试relibc的app * 为适配relibc,修改do_execve中关于用户栈的内容的设置 * 调整brk系统调用,使得参数、返回值与Linux一致 commit 13776c114b15c406b1e0aaeeb71812ea6e471d2e Author: login Date: Mon Apr 10 20:22:39 2023 +0800 增加对dhcpv4的支持(tcp、udp socket已写好,但由于缺少epoll机制,尚未完整测试) (#237) * 为virtio网卡完成smoltcp的phy层配置 * raw socket * 初步写完udp和tcp socket * 能够正常通过dhcp获取ipv4地址(具有全局iface btree) --------- Co-authored-by: guanjinquan <1666320330@qq.com> commit 78bf93f02f84bf5e024ddfb559f040e68ce39ccf Author: YJwu2023 Date: Sun Apr 9 12:30:02 2023 +0800 pci重构+pcie支持 (#235) * pci重构+pcie支持 * pci重构测试完成 * 修正makefile的问题 * 小修改 * 修改函数名字 commit 5c9a63df836eedaca33c8c4c600b7aaeb2caf9a6 Author: login Date: Sat Apr 8 23:53:53 2023 +0800 Patch add lazy init (#236) * 修正并发安全问题 commit 766127209ee49465a8086cfd0bec90d8b79a96c0 Author: login Date: Thu Apr 6 19:01:30 2023 +0800 new: lazy_init (#230) commit e0dfd4d5d70d1b50fc7ad3ed4bf84b7ba6dad19d Author: hanjiezhou Date: Thu Apr 6 00:50:14 2023 +0800 修改CFSqueue从Vec变成红黑树 (#229) 使用了由tickbh编写的rbtree: https://github.com/tickbh/rbtree-rs/blob/master/src/lib.rs Co-authored-by: tickbh commit 2a7d773d3d39f1cb3d59d6baa817c896c6fd52d1 Author: TingHuang <92705854+TingSHub@users.noreply.github.com> Date: Wed Apr 5 13:02:05 2023 +0800 新增设备驱动模型,为设备和驱动提供高层视图 (#227) * 添加base mod * 添加设备驱动模型相关文件 * 删除单独的mod文件,使用mod.rs,修改一些格式上的问题 * 移动驱动错误类型到该文件 * 修改一些格式上的问题 commit 5d00b1852818dd4b25952fd6a30deb20e7c7df53 Author: login Date: Wed Apr 5 00:53:35 2023 +0800 修复显示刷新线程的空指针问题 (#228) ```