:::{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 <longjin@DragonOS.org>

April 24, 2023
:::

## Contributors List

The DragonOS V0.1.7 version was contributed by the following contributors:

- Longjin <longjin@DragonOS.org>
- Guan Jinquan <guanjinquan@DragonOS.org>
- Huang Ting <huangting@DragonOS.org>
- Hou Jiaying <houjiaying@DragonOS.org>
- Wu Yujian <wuyujian@DragonOS.org>
- Su Jintao <sujintao@DragonOS.org>
- Zhou Hanjie <zhouhanjie@DragonOS.org>
- 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

&emsp;&emsp;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

&emsp;&emsp;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:

&emsp;&emsp;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

&emsp;&emsp;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: <Project Name> - <Link> - <Open Source License>

- 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 <zhouhanjie@dragonos.org>
Date:   Sun Apr 23 21:05:10 2023 +0800

    匿名管道重构&增加IrqArch trait以及IrqFlags及其守卫 (#253)
    
    * 实现匿名管道
    
    * 增加IrqArch trait以及IrqFlags及其守卫
    
    ---------
    
    Co-authored-by: longjin <longjin@RinGoTek.cn>

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 <longjin@DragonOS.org>
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 <longjin@DragonOS.org>
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 <yujianwu2019@gmail.com>
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 <longjin@DragonOS.org>
Date:   Tue Apr 11 16:54:14 2023 +0800

    调整brk系统调用，使得参数、返回值与Linux一致 (#238)
    
    * 新增用于测试relibc的app
    
    * 为适配relibc,修改do_execve中关于用户栈的内容的设置
    
    * 调整brk系统调用，使得参数、返回值与Linux一致

commit 13776c114b15c406b1e0aaeeb71812ea6e471d2e
Author: login <longjin@DragonOS.org>
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 <yujianwu2019@gmail.com>
Date:   Sun Apr 9 12:30:02 2023 +0800

    pci重构+pcie支持 (#235)
    
    * pci重构+pcie支持
    
    * pci重构测试完成
    
    * 修正makefile的问题
    
    * 小修改
    
    * 修改函数名字

commit 5c9a63df836eedaca33c8c4c600b7aaeb2caf9a6
Author: login <longjin@DragonOS.org>
Date:   Sat Apr 8 23:53:53 2023 +0800

    Patch add lazy init (#236)
    
    * 修正并发安全问题

commit 766127209ee49465a8086cfd0bec90d8b79a96c0
Author: login <longjin@DragonOS.org>
Date:   Thu Apr 6 19:01:30 2023 +0800

    new: lazy_init (#230)

commit e0dfd4d5d70d1b50fc7ad3ed4bf84b7ba6dad19d
Author: hanjiezhou <zhouhanjie@dragonos.org>
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 <tickdream125@hotmail.com>

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 <longjin@DragonOS.org>
Date:   Wed Apr 5 00:53:35 2023 +0800

    修复显示刷新线程的空指针问题 (#228)

```
