1# V0.1.7
2
3:::{note}
4本文作者:龙进 <longjin@DragonOS.org>
5
6
72023年4月24日
8:::
9
10## 贡献者名单
11
12DragonOS V0.1.7版本由以下小伙伴贡献代码:
13
14- 龙进 <longjin@DragonOS.org>
15- 关锦权 <guanjinquan@DragonOS.org>
16- 黄厅 <huangting@DragonOS.org>
17- 侯嘉滢 <houjiaying@DragonOS.org>
18- 吴宇健 <wuyujian@DragonOS.org>
19- 苏琎韬 <sujintao@DragonOS.org>
20- 周瀚杰 <zhouhanjie@DragonOS.org>
21- HoshuChiu <129569557+HoshuChiu@users.noreply.github.com>
22- Bullet <93781792+GP-Bullet@users.noreply.github.com>
23
24## 赞助者名单
25
26感谢以下同学的赞赏,我们将不断努力!
27
28- 万晓兰
29- David Wen
30- [Seele.Clover](https://github.com/seeleclover)
31- [FindWangHao](https://github.com/FindWangHao)
32- [ferchiel](https://github.com/ferchiel)
33- 叶锦毅
34- 林
35- Albert
36- [TerryLeeSCUT · GitHub](https://github.com/TerryLeeSCUT)
37- slientbard
38- 悟
39- 匿名热心人士
40
41## 更新内容-内核
42
43- scheduler: 修改CFSqueue从Vec变成红黑树 (#229)
44- new: lazy_init (#230) (#236)
45- pci: pci重构+pcie支持 (#235)
46- net: 增加网络子系统,且能在用户态进行编程 (#237) (#247)
47- mm: 调整brk系统调用,使得参数、返回值与Linux一致 (#238)
48- 修改errno,使其与relibc的保持一致 (#234)
49- pci: 修复ecam无法获取MCFG table的问题 (#241)
50- libs: DowncastArc and its docs (#244)
51- softirq: 增加定时器和软中断文档,修改了softirq面向c的接口 (#245)
52- spinlock: 修复spinlock忘记恢复rflags的问题 (#247)
53- waitqueue: 增加wakeup_all和sleep_without_schedule的功能 (#247)(#253)
54- filesystem: 把PollStatus结构体改为使用bitflags库来实现 (#247)
55- filesystem: 增加iovec的支持(暴力实现) (#247)
56- filesystem: 新增SysFS (#250) (#254)
57- driver: 根据sysfs,完善设备驱动模型 (#254)
58- pipe: 匿名管道重构 (#253)
59- irq: 新增IrqArch抽象。以及IrqFlagsGuard。以简化关中断-恢复中断的过程 (#253)
60
61
62## 更新内容-用户环境
63
64### 新增仓库
65
66- 新增子项目:[dsc](https://github.com/DragonOS-Community/dsc.git)
67- 新增子项目:[DADK](https://github.com/DragonOS-Community/DADK.git) DragonOS Application Development Kit
68
69### [DragonOS-relibc](https://github.com/DragonOS-Community/relibc.git)
70
71- Add sys_dup and sys_dup2 support (#2)
72- 添加原本的libc的内存分配器,修复对齐问题。 (#6) (#7)
73- 配置网络相关的系统调用 (#8)
74- 修复由于DragonOS不支持TLS(thread local storage)导致errno变量无法正常工作的问题. (#8)
75
76## 更新内容-其他
77
78- build: 修复Issue#220;vnc的端口号恢复5900 (#243)
79- bootstrap: 解决使用zsh在构建DragonOS时,无法直接使用一键初始化脚本进行安装的问题 (#252)
80
81## 更新内容-软件移植
82
8384
85## 源码、发布版镜像下载
86
87&emsp;&emsp;您可以通过以下方式获得源代码:
88
89### 通过Git获取
90
91- 您可以访问[https://github.com/DragonOS-Community/DragonOS/releases](https://github.com/DragonOS-Community/DragonOS/releases)下载发布版的代码,以及编译好的,可运行的磁盘镜像。
92- 我们在gitee上也有镜像仓库可供下载:[https://gitee.com/DragonOS/DragonOS](https://gitee.com/DragonOS/DragonOS)
93
94### 通过DragonOS软件镜像站获取
95
96&emsp;&emsp;为解决国内访问GitHub慢、不稳定的问题,同时为了方便开发者们下载DragonOS的每个版本的代码,我们特意搭建了镜像站,您可以通过以下地址访问镜像站:
97
98&emsp;&emsp;您可以通过镜像站获取到DragonOS的代码压缩包,以及编译好的可运行的磁盘镜像。
99
100- [https://mirrors.DragonOS.org](https://mirrors.DragonOS.org)
101- [https://mirrors.DragonOS.org.cn](https://mirrors.DragonOS.org.cn)
102- 国内镜像加速: [https://mirrors.ringotek.cn/] (https://mirrors.ringotek.cn/)
103
104## 开放源代码声明
105
106
107:::{note}
108为促进DragonOS项目的健康发展,DragonOS以GPLv2开源协议进行发布。所有能获得到DragonOS源代码以及相应的软件制品(包括但不限于二进制副本、文档)的人,都能享有我们通过GPLv2协议授予您的权利,同时您也需要遵守协议中规定的义务。
109
110这是一个相当严格的,保护开源软件健康发展,不被侵占的协议。
111
112对于大部分的善意的人们而言,您不会违反我们的开源协议。
113
114我们鼓励DragonOS的自由传播、推广,但是请确保所有行为没有侵犯他人的合法权益,也没有违反GPLv2协议。
115
116请特别注意,对于违反开源协议的,尤其是**商业闭源使用以及任何剽窃、学术不端行为将会受到严肃的追责**。(这是最容易违反我们的开源协议的场景)。
117
118并且,请注意,按照GPLv2协议的要求,基于DragonOS修改或二次开发的软件,必须同样采用GPLv2协议开源,并标明其基于DragonOS进行了修改。亦需保证这些修改版本的用户能方便的获取到DragonOS的原始版本。
119
120您必须使得DragonOS的开发者们,能够以同样的方式,从公开渠道获取到您二次开发的版本的源代码,否则您将违反GPLv2协议。
121
122关于协议详细内容,还敬请您请阅读项目根目录下的**LICENSE**文件。请注意,按照GPLv2协议的要求,**只有英文原版才具有法律效力**。任何翻译版本都仅供参考。
123:::
124
125### 开源软件使用情况
126
127&emsp;&emsp;DragonOS在开发的过程中,参考了一些开源项目的设计,或者引入了他们的部分代码,亦或是受到了他们的启发。现将他们列在下面。我们对这些开源项目的贡献者们致以最衷心的感谢!
128
129格式:<项目名> - <链接> - <开源协议>
130
131- Linux - 	https://git.kernel.org/ - GPLv2
132- skiftOS - https://github.com/skiftOS/skift - MIT
133- FYSOS - https://github.com/fysnet/FYSOS - [FYSOS' License](https://github.com/fysnet/FYSOS/blob/9a8968e3d6600de34539c028c843f4c06d134039/license.txt)
134- LemonOS - https://github.com/LemonOSProject/LemonOS.git - BSD 2-Clause License
135- LZ4 - https://github.com/lz4/lz4 - BSD 2-Clause license
136- SerenityOS - https://github.com/SerenityOS/serenity.git - BSD 2-Clause license
137- MINE - 《一个64位操作系统的设计与实现》田宇; 人民邮电出版社
138- chcore - 《现代操作系统:设计与实现》陈海波,夏虞斌; 机械工业出版社
139- SimpleKernel - https://github.com/Simple-XX/SimpleKernel - MIT
140- rcore-fs - https://github.com/rcore-os/rcore-fs.git - MIT
141- redox - https://gitlab.redox-os.org/redox-os/redox - MIT
142
143## 当前版本的所有提交记录
144
145```text
146commit e0de0fd6a52199753a3127cfbb5d12f0a1555aae
147Author: TingHuang <92705854+TingSHub@users.noreply.github.com>
148Date:   Sun Apr 23 22:55:57 2023 +0800
149
150    根据sysfs完善设备驱动模型 & 添加sysfs官方文档 (#254)
151
152    * 根据sysfs完善设备驱动模型
153
154    * 添加sysfs官方文档
155
156commit f678331a3315b7847f08ab32b42d5bf49a9f3a6a
157Author: hanjiezhou <zhouhanjie@dragonos.org>
158Date:   Sun Apr 23 21:05:10 2023 +0800
159
160    匿名管道重构&增加IrqArch trait以及IrqFlags及其守卫 (#253)
161
162    * 实现匿名管道
163
164    * 增加IrqArch trait以及IrqFlags及其守卫
165
166    ---------
167
168    Co-authored-by: longjin <longjin@RinGoTek.cn>
169
170commit 8a1e95abb5e4df5e872bb452efc26c9e9631157d
171Author: Bullet <93781792+GP-Bullet@users.noreply.github.com>
172Date:   Fri Apr 21 23:36:54 2023 +0800
173
174    解决使用zsh在构建DragonOS时,无法直接使用一键初始化脚本进行安装的问题  (#252)
175
176commit dd9f1fc1a42406461e6f0d38cce1e56e22a1a15f
177Author: TingHuang <92705854+TingSHub@users.noreply.github.com>
178Date:   Fri Apr 21 16:03:42 2023 +0800
179
180    新增SysFS (#250)
181
182    * 添加sysfs
183
184    * 注册sysfs
185
186    * 添加sysfs相关
187
188    * 添加rust-anlyzer辅助配置
189
190    * 将设备与sysfs相关联
191
192    * 添加单独的文件管理sysfs下的文件夹
193
194commit cde5492f725681ed89abe1e6eb088e05d943d793
195Author: login <longjin@DragonOS.org>
196Date:   Wed Apr 19 18:05:02 2023 +0800
197
198    新增网络socket的系统调用接口 (#247)
199
200    1.修复spinlock忘记恢复rflags的问题
201    2.WaitQueue增加wakeup_all的功能
202    3.完善tcp,udp,raw socket
203    4.把PollStatus结构体改为使用bitflags
204    5.新增iovec结构体
205    6.完成网络的系统调用
206    7.在bootstrap里面添加dnsmasq bridge-utils iptables
207
208    ---------
209
210    Co-authored-by: guanjinquan <1666320330@qq.com>
211
212commit 8fd71f277271ae68e648f290c67f187b030feae0
213Author: houmkh <1119644616@qq.com>
214Date:   Mon Apr 17 17:17:06 2023 +0800
215
216    增加定时器和软中断文档,修改了softirq面向c的接口 (#245)
217
218    * 增加定时器和软中断文档
219
220    * 修改softirq对c的接口和文档
221
222    * 修改文档格式
223
224commit 77c928f6ce3192c79ea42ab7bcba2713e289f73b
225Author: login <longjin@DragonOS.org>
226Date:   Sun Apr 16 20:29:04 2023 +0800
227
228    new: DowncastArc and its docs (#244)
229
230commit 7149abaa49a4ca70f0e42ad3b61fdfd6a941a092
231Author: HoshuChiu <129569557+HoshuChiu@users.noreply.github.com>
232Date:   Sun Apr 16 14:47:51 2023 +0800
233
234    修复Issue#220;vnc的端口号恢复5900 (#243)
235
236
237    * 修复Issue#220
238
239    * qemu-vnc端口号恢复为5900
240
241commit 5c1e552cc7f0a6ad75c8a1fa2928e3b9cc619657
242Author: YJwu2023 <yujianwu2019@gmail.com>
243Date:   Fri Apr 14 12:21:08 2023 +0800
244
245    修复ecam无法获取MCFG table的问题 (#241)
246
247commit 79a452ce8f27ad9c7283ac0bcf4078ed6fa018d7
248Author: houmkh <1119644616@qq.com>
249Date:   Tue Apr 11 17:05:33 2023 +0800
250
251    修改errno,使其与relibc的保持一致 (#234)
252
253    修改errno,使其与relibc的保持一致
254
255commit ac48398d3f17f24ff9b5da5e400ce912d05f0ba2
256Author: login <longjin@DragonOS.org>
257Date:   Tue Apr 11 16:54:14 2023 +0800
258
259    调整brk系统调用,使得参数、返回值与Linux一致 (#238)
260
261    * 新增用于测试relibc的app
262
263    * 为适配relibc,修改do_execve中关于用户栈的内容的设置
264
265    * 调整brk系统调用,使得参数、返回值与Linux一致
266
267commit 13776c114b15c406b1e0aaeeb71812ea6e471d2e
268Author: login <longjin@DragonOS.org>
269Date:   Mon Apr 10 20:22:39 2023 +0800
270
271    增加对dhcpv4的支持(tcp、udp socket已写好,但由于缺少epoll机制,尚未完整测试) (#237)
272
273    * 为virtio网卡完成smoltcp的phy层配置
274
275    * raw socket
276
277    * 初步写完udp和tcp socket
278
279    * 能够正常通过dhcp获取ipv4地址(具有全局iface btree)
280
281    ---------
282
283    Co-authored-by: guanjinquan <1666320330@qq.com>
284
285commit 78bf93f02f84bf5e024ddfb559f040e68ce39ccf
286Author: YJwu2023 <yujianwu2019@gmail.com>
287Date:   Sun Apr 9 12:30:02 2023 +0800
288
289    pci重构+pcie支持 (#235)
290
291    * pci重构+pcie支持
292
293    * pci重构测试完成
294
295    * 修正makefile的问题
296
297    * 小修改
298
299    * 修改函数名字
300
301commit 5c9a63df836eedaca33c8c4c600b7aaeb2caf9a6
302Author: login <longjin@DragonOS.org>
303Date:   Sat Apr 8 23:53:53 2023 +0800
304
305    Patch add lazy init (#236)
306
307    * 修正并发安全问题
308
309commit 766127209ee49465a8086cfd0bec90d8b79a96c0
310Author: login <longjin@DragonOS.org>
311Date:   Thu Apr 6 19:01:30 2023 +0800
312
313    new: lazy_init (#230)
314
315commit e0dfd4d5d70d1b50fc7ad3ed4bf84b7ba6dad19d
316Author: hanjiezhou <zhouhanjie@dragonos.org>
317Date:   Thu Apr 6 00:50:14 2023 +0800
318
319    修改CFSqueue从Vec变成红黑树 (#229)
320
321    使用了由tickbh编写的rbtree: https://github.com/tickbh/rbtree-rs/blob/master/src/lib.rs
322
323    Co-authored-by: tickbh <tickdream125@hotmail.com>
324
325commit 2a7d773d3d39f1cb3d59d6baa817c896c6fd52d1
326Author: TingHuang <92705854+TingSHub@users.noreply.github.com>
327Date:   Wed Apr 5 13:02:05 2023 +0800
328
329    新增设备驱动模型,为设备和驱动提供高层视图 (#227)
330
331    * 添加base mod
332
333    * 添加设备驱动模型相关文件
334
335    * 删除单独的mod文件,使用mod.rs,修改一些格式上的问题
336
337    * 移动驱动错误类型到该文件
338
339    * 修改一些格式上的问题
340
341commit 5d00b1852818dd4b25952fd6a30deb20e7c7df53
342Author: login <longjin@DragonOS.org>
343Date:   Wed Apr 5 00:53:35 2023 +0800
344
345    修复显示刷新线程的空指针问题 (#228)
346
347```