:::{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.6.md

- Translation time: 2025-05-19 01:44:51

- Translation model: `Qwen/Qwen3-8B`

Please report issues via [Community Channel](https://github.com/DragonOS-Community/DragonOS/issues)

:::

# V0.1.6

:::{note}
Author: Longjin <longjin@DragonOS.org>

April 2, 2023
:::

## Contributors List

The DragonOS V0.1.6 version was contributed by the following developers:

- Longjin <longjin@DragonOS.org>
- Guan Jinquan <guanjinquan@DragonOS.org>
- Su Jintao <sujintao@DragonOS.org>
- Hou Jiaying <houjiaying@DragonOS.org>
- Wu Yujian <wuyujian@DragonOS.org>
- Mork <91721145+MorkCarpenter@users.noreply.github.com>
- WaferJay <17383312+WaferJay@users.noreply.github.com>
- HoshuChiu <129569557+HoshuChiu@users.noreply.github.com>

## Sponsors List

Thank you to the following individuals for their support. We will continue to strive for excellence!

- Wan Xiaolan
- David Wen
- [Seele.Clover](https://github.com/seeleclover)
- [FindWangHao](https://github.com/FindWangHao)
- Ye Jinyi
- Lin
- Albert
- [TerryLeeSCUT · GitHub](https://github.com/TerryLeeSCUT)
- slientbard
- Wu
- Anonymous Kind-hearted Person

## Update Content - Kernel

- softirq: Refactored softirq (#_translated_label__223_en)
- timer: Refactored system timer (#_translated_label__223_en)
- stdio: Added tty device for standard input and output (#_translated_label__202_en) (#_translated_label__217_en)
- lib: First set of keyboard scan code state machine (#_translated_label__216_en) (#_translated_label__219_en)
- syscall: Added dup and dup2 system calls (#_translated_label__224_en)
- syscall: Added SystemError enum type to make error handling clearer (#_translated_label__205_en)
- driver: Added support for x87 floating-point processor (#_translated_label__212_en)
- driver: VirtIO network card can now send and receive data normally (#_translated_label__204_en)
- filesystem: Fixed FAT32 judgment logic, resolving the issue where the system could not boot normally when the file system was FAT12/16. (#_translated_label__211_en)
- filesystem: Added VFS document and modified document configuration (#_translated_label__209_en)
- textui: Fixed the issue where the process scheduler did not run when "processes output characters continuously" due to textui locking and changes in preempt_count. (#_translated_label__203_en)
- scheduler: Solved the issue of double locking in cpu_queue caused by not disabling interrupts during sched_enqueue outside of interrupt context. (#_translated_label__201_en)

## Update Content - User Environment

### New Repositories

- Added a sub-project: [dsc](https://github.com/DragonOS-Community/dsc.git)
- Transplanted relic: [DragonOS-relibc](https://github.com/DragonOS-Community/relibc.git)

## Update Content - Others

- build: Added an option for using VNC as the image output for QEMU (#_translated_label__222_en)

## Update Content - Software Porting

None

## Source Code and Release Image Download

&emsp;&emsp;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/DragonOS-Community/DragonOS/releases](https://github.com/DragonOS-Community/DragonOS/releases).
- 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 address the slow and unstable access to GitHub in China, and to make it convenient 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:

&emsp;&emsp;You can obtain the DragonOS source code archive 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 DragonOS source code and corresponding software products (including but not limited to binary copies and documentation) can enjoy the rights granted by us through the GPLv2 protocol, while you also need to comply with the obligations stipulated in the protocol.

This is a rather strict protocol 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 protocol.

Please pay special attention to the fact that violations of the open source license, especially **commercial closed-source usage and any acts of plagiarism or academic misconduct**, will be subject to serious accountability. (This is the most common scenario of violating our open source license.)

Also, please note that according to the requirements of the GPLv2 protocol, any software modified or developed based on DragonOS must also be open-sourced under the GPLv2 protocol and must indicate that it is based on DragonOS. It is also necessary to ensure that users of these modified versions can easily access the original version of DragonOS.

You must make sure that the DragonOS developers can obtain the source code of your modified version through public channels in the same way, otherwise you will violate the GPLv2 protocol.

For detailed information about the protocol, please read the **LICENSE** file in the root directory of the project. Please note that according to the requirements of the GPLv2 protocol, **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 were referenced, or parts of their code were introduced, or they inspired us. 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 - "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
- 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 bacd691c9ef0502b5cc618aad50517f9e59df5e0
Author: login <longjin@DragonOS.org>
Date:   Sun Apr 2 17:09:33 2023 +0800

    软中断&定时器重构 (#223)
    
    * 软中断&定时器重构
    
    Co-authored-by: houmkh<houjiaying@DragonOS.org>
    
    * 修改timer的clock()
    
    * 删除debug信息
    
    ---------
    
    Co-authored-by: houmkh <1119644616@qq.com>

commit 6d345b774223b0daaf0ee629c7fb595a1912a9e2
Author: HoshuChiu <129569557+HoshuChiu@users.noreply.github.com>
Date:   Sun Apr 2 15:55:24 2023 +0800

    添加了qemu使用VNC作为图像输出的选项 (#222)
    
    * 添加了qemu使用VNC作为图像输出的选项
    
    * 设置vnc端口为5900
    
    ---------
    
    Co-authored-by: longjin <longjin@RinGoTek.cn>

commit 2b771e32f5795e0fdda458e3bb2651ef6b9673ac
Author: Gou Ngai <sujintao@dragonos.org>
Date:   Sun Apr 2 15:43:53 2023 +0800

    Add dup,dup2 (#224)
    
    * dup,dup2
    
    * fix: sys_dup2语义与posix不一致的问题
    
    ---------
    
    Co-authored-by: longjin <longjin@RinGoTek.cn>

commit d7b31a969ff091224a4929496f0278d024f78c77
Author: Gou Ngai <sujintao@dragonos.org>
Date:   Fri Mar 31 18:23:58 2023 +0800

    Patch keyboard capslock alt (#219)
    
    * keyboard-alt-capslock
    
    * 解决键盘输入'%'字符的时候无法回显的bug
    
    ---------
    
    Co-authored-by: longjin <longjin@RinGoTek.cn>

commit 20e3152e1eea97f87d644c3023391e172bc83c93
Author: login <longjin@DragonOS.org>
Date:   Fri Mar 31 12:54:37 2023 +0800

    将TTY与stdio进行连接,实现基本的stdio功能 (#217)
    
    * 将stdio与tty接上

commit 5fb12ce447710edf8566f250655a06cb27519fca
Author: Gou Ngai <sujintao@dragonos.org>
Date:   Thu Mar 30 18:19:02 2023 +0800

    第一套键盘扫描码的状态机 (#216)
    
    第一套键盘扫描码的状态机
    ---------
    
    Co-authored-by: guanjinquan <1666320330@qq.com>
    Co-authored-by: longjin <longjin@RinGoTek.cn>

commit 676b8ef62e1a0a1e52d65b40c53c1636a2954040
Author: Mork <91721145+MorkCarpenter@users.noreply.github.com>
Date:   Wed Mar 29 21:24:11 2023 +0800

    部分函数从返回值为Result<<>,i32>修改为Result<<>,SystemError> (#210)
    
    * 将Result<<>,i32>替换为Result<<>,SystemError>
    * bugfix: 显示双缓冲区初始化的时候，连续注册了两次Video Softirq的问题。
    
    Co-authored-by: longjin <longjin@RinGoTek.cn>

commit 64aea4b3494bee7375e1c1ee5739c9fab0db0cb7
Author: Gou Ngai <sujintao@dragonos.org>
Date:   Tue Mar 28 20:44:26 2023 +0800

    增加x87FPU支持 (#212)
    
    * remove `ret_from_syscall`
    *修复ps2键盘驱动程序inode在进程fork的时候导致死锁的问题.
    *更新: VFS每次拷贝文件描述符的时候,都会去调用inode的open函数
    
    ---------
    
    Co-authored-by: longjin <longjin@RinGoTek.cn>

commit 2286eda6526ed1b46afd79b47dc701034b9e903d
Author: WaferJay <17383312+WaferJay@users.noreply.github.com>
Date:   Mon Mar 27 09:32:43 2023 +0800

    修正了FAT32判断逻辑，解决了文件系统为FAT12/16时系统无法正常启动的问题。 (#211)
    
    * fix(fat): fix determination of fat type casue crash if fs is fat12/16
    
    * refactor(fat): split BiosParameterBlock.validate() into BiosParameterBlockFAT32.validate() and BiosParameterBlockLegacy.validate()
    
    * 调整“最大允许的簇号”的常量放置的位置。
    
    ---------
    
    Co-authored-by: longjin <longjin@RinGoTek.cn>

commit 45b8371173b070028457f7ee64be33f68b4f9ada
Author: login <longjin@DragonOS.org>
Date:   Sat Mar 25 14:51:16 2023 +0800

    新增VFS文档，以及修改文档配置 (#209)
    
    * 1.新增vfs设计文档
    2.修改文档版权标志为"2022-2023, DragonOS Community"
    3.修改电脑版文档页面的宽度为90%
    
    * layout.html末尾加空行

commit 73c607aaddf6e4634cad179a81d3f1bc589f7220
Author: YJwu2023 <119829947+YJwu2023@users.noreply.github.com>
Date:   Sat Mar 18 20:43:37 2023 +0800

    VirtIO网卡能够正常发送、接收数据 (#204)
    
    * virtio-net小修改
    
    * 移动volatile.rs到libs文件夹
    
    * 使用virtio-drivers 0.3.0
    
    * bugfix: 初始化BAR之后，未正确设置command register的问题
    
    
    ---------
    
    Co-authored-by: longjin <longjin@dragonos.org>

commit 4454d1a2dd1f1078750151c028a794cfd9a04a1b
Author: login <longjin@DragonOS.org>
Date:   Sat Mar 18 20:26:05 2023 +0800

    新增SystemError枚举类型，使得错误处理更清晰 (#205)

commit 0d48c3c9c21a2dd470d0e1e58b507db60e0887bb
Author: login <longjin@DragonOS.org>
Date:   Thu Mar 16 19:48:59 2023 +0800

    new: tty设备（尚未与stdio接上） (#202)

commit 790d45764090bce3bbfb96b42b2818100a8cef9a
Author: login <longjin@DragonOS.org>
Date:   Wed Mar 15 11:42:41 2023 +0800

    修复由于textui加锁，更改了preempt_count导致“进程长时间连续输出字符”的情况下，进程调度器不运行的问题。 (#203)

commit c2e757d8cbeed01b16f48bea48ed8447685e6f1a
Author: login <longjin@DragonOS.org>
Date:   Mon Mar 13 22:22:23 2023 +0800

    解决由于在中断上下文以外，sched_enqueue时，未关中断导致cpu_queue双重加锁的问题 (#201)

```
