Skip to content

Commit

Permalink
Merge branch master into patch-refactor-mm (#257)
Browse files Browse the repository at this point in the history
* 新增VFS文档,以及修改文档配置 (#209)

* 1.新增vfs设计文档
2.修改文档版权标志为"2022-2023, DragonOS Community"
3.修改电脑版文档页面的宽度为90%

* layout.html末尾加空行

* 修正了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()

* 调整“最大允许的簇号”的常量放置的位置。


* 增加x87FPU支持 (#212)

* remove `ret_from_syscall`
*修复ps2键盘驱动程序inode在进程fork的时候导致死锁的问题.
*更新: VFS每次拷贝文件描述符的时候,都会去调用inode的open函数



* 部分函数从返回值为Result<<>,i32>修改为Result<<>,SystemError> (#210)

* 将Result<<>,i32>替换为Result<<>,SystemError>
* bugfix: 显示双缓冲区初始化的时候,连续注册了两次Video Softirq的问题。



* 第一套键盘扫描码的状态机 (#216)

第一套键盘扫描码的状态机

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

* 将stdio与tty接上

* Patch keyboard capslock alt (#219)

* keyboard-alt-capslock

* 解决键盘输入'%'字符的时候无法回显的bug



* Add dup,dup2 (#224)

* dup,dup2

* fix: sys_dup2语义与posix不一致的问题


* 添加了qemu使用VNC作为图像输出的选项 (#222)

* 添加了qemu使用VNC作为图像输出的选项

* 设置vnc端口为5900


* 软中断&定时器重构 (#223)

* 软中断&定时器重构


* 修改timer的clock()

* 删除debug信息



* V0.1.6发行日志&更新构建系统文档 (#225)

1.更新构建系统文档
2.V0.1.6发行日志

* Patch add 0.1.6 changelog (#226)

* 修正标题错误

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

* 新增设备驱动模型,为设备和驱动提供高层视图 (#227)

* 添加base mod

* 添加设备驱动模型相关文件

* 删除单独的mod文件,使用mod.rs,修改一些格式上的问题

* 移动驱动错误类型到该文件

* 修改一些格式上的问题

* 修改CFSqueue从Vec变成红黑树 (#229)

使用了由tickbh编写的rbtree: https://github.com/tickbh/rbtree-rs/blob/master/src/lib.rs


* new: lazy_init (#230)

* Patch add lazy init (#236)

* 修正并发安全问题

* pci重构+pcie支持 (#235)

* pci重构+pcie支持

* pci重构测试完成

* 修正makefile的问题

* 小修改

* 修改函数名字

* 增加对dhcpv4的支持(tcp、udp socket已写好,但由于缺少epoll机制,尚未完整测试) (#237)

* 为virtio网卡完成smoltcp的phy层配置

* raw socket

* 初步写完udp和tcp socket

* 能够正常通过dhcp获取ipv4地址(具有全局iface btree)



* 调整brk系统调用,使得参数、返回值与Linux一致 (#238)

* 新增用于测试relibc的app

* 为适配relibc,修改do_execve中关于用户栈的内容的设置

* 调整brk系统调用,使得参数、返回值与Linux一致

* 修改errno,使其与relibc的保持一致 (#234)

修改errno,使其与relibc的保持一致

* 修复ecam无法获取MCFG table的问题 (#241)

* 修复Issue#220;vnc的端口号恢复5900 (#243)


* 修复Issue#220

* qemu-vnc端口号恢复为5900

* new: DowncastArc and its docs (#244)

* 增加定时器和软中断文档,修改了softirq面向c的接口 (#245)

* 增加定时器和软中断文档

* 修改softirq对c的接口和文档

* 修改文档格式

* 新增网络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

* 新增SysFS (#250)

* 添加sysfs

* 注册sysfs

* 添加sysfs相关

* 添加rust-anlyzer辅助配置

* 将设备与sysfs相关联

* 添加单独的文件管理sysfs下的文件夹

* 解决使用zsh在构建DragonOS时,无法直接使用一键初始化脚本进行安装的问题  (#252)

* 匿名管道重构&增加IrqArch trait以及IrqFlags及其守卫 (#253)

* 实现匿名管道

* 增加IrqArch trait以及IrqFlags及其守卫


* 根据sysfs完善设备驱动模型 & 添加sysfs官方文档 (#254)

* 根据sysfs完善设备驱动模型

* 添加sysfs官方文档

* doc: V0.1.7发行日志 (#255)
  • Loading branch information
fslongjin authored Apr 28, 2023
1 parent ff74615 commit 6477493
Show file tree
Hide file tree
Showing 85 changed files with 5,778 additions and 809 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
!.gitkeep
DragonOS.iso
.idea/
/tmp/
kernel/kernel
.DS_Store

Expand Down
10 changes: 7 additions & 3 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -173,10 +173,14 @@
"user_namespace.h": "c",
"sleep.h": "c",
"net.h": "c",
"lz4.h": "c"
"lz4.h": "c",
"cmd_test.h": "c"
},
"C_Cpp.errorSquiggles": "Enabled",
"C_Cpp.errorSquiggles": "enabled",
"esbonio.sphinx.confDir": "",
"rust-analyzer.cargo.target": "x86_64-unknown-none",
"rust-analyzer.checkOnSave.allTargets": false
"rust-analyzer.checkOnSave.allTargets": false,
"rust-analyzer.linkedProjects": [
"./kernel/Cargo.toml"
]
}
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@
- David Wen
- [Seele.Clover](https://github.com/seeleclover)
- [FindWangHao](https://github.com/FindWangHao)
- [ferchiel](https://github.com/ferchiel)
- 叶锦毅
-
- Albert
Expand Down
1 change: 1 addition & 0 deletions README_EN.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ We hope that in the future, some enterprises can sponsor DragonOS and inject fin
- David Wen
- [Seele.Clover](https://github.com/seeleclover)
- [FindWangHao](https://github.com/FindWangHao)
- [ferchiel](https://github.com/ferchiel)
- 叶锦毅
-
- Albert
Expand Down
347 changes: 347 additions & 0 deletions docs/community/ChangeLog/V0.1.x/V0.1.7.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,347 @@
# V0.1.7

:::{note}
本文作者:龙进 <[email protected]>


2023年4月24日
:::

## 贡献者名单

DragonOS V0.1.7版本由以下小伙伴贡献代码:

- 龙进 <[email protected]>
- 关锦权 <[email protected]>
- 黄厅 <[email protected]>
- 侯嘉滢 <[email protected]>
- 吴宇健 <[email protected]>
- 苏琎韬 <[email protected]>
- 周瀚杰 <[email protected]>
- HoshuChiu <[email protected]>
- Bullet <[email protected]>

## 赞助者名单

感谢以下同学的赞赏,我们将不断努力!

- 万晓兰
- David Wen
- [Seele.Clover](https://github.com/seeleclover)
- [FindWangHao](https://github.com/FindWangHao)
- [ferchiel](https://github.com/ferchiel)
- 叶锦毅
-
- Albert
- [TerryLeeSCUT · GitHub](https://github.com/TerryLeeSCUT)
- slientbard
-
- 匿名热心人士

## 更新内容-内核

- scheduler: 修改CFSqueue从Vec变成红黑树 (#229)
- new: lazy_init (#230) (#236)
- pci: pci重构+pcie支持 (#235)
- net: 增加网络子系统,且能在用户态进行编程 (#237) (#247)
- mm: 调整brk系统调用,使得参数、返回值与Linux一致 (#238)
- 修改errno,使其与relibc的保持一致 (#234)
- pci: 修复ecam无法获取MCFG table的问题 (#241)
- libs: DowncastArc and its docs (#244)
- softirq: 增加定时器和软中断文档,修改了softirq面向c的接口 (#245)
- spinlock: 修复spinlock忘记恢复rflags的问题 (#247)
- waitqueue: 增加wakeup_all和sleep_without_schedule的功能 (#247)(#253)
- filesystem: 把PollStatus结构体改为使用bitflags库来实现 (#247)
- filesystem: 增加iovec的支持(暴力实现) (#247)
- filesystem: 新增SysFS (#250) (#254)
- driver: 根据sysfs,完善设备驱动模型 (#254)
- pipe: 匿名管道重构 (#253)
- irq: 新增IrqArch抽象。以及IrqFlagsGuard。以简化关中断-恢复中断的过程 (#253)


## 更新内容-用户环境

### 新增仓库

- 新增子项目:[dsc](https://github.com/DragonOS-Community/dsc.git)
- 新增子项目:[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 (#2)
- 添加原本的libc的内存分配器,修复对齐问题。 (#6) (#7)
- 配置网络相关的系统调用 (#8)
- 修复由于DragonOS不支持TLS(thread local storage)导致errno变量无法正常工作的问题. (#8)

## 更新内容-其他

- build: 修复Issue#220;vnc的端口号恢复5900 (#243)
- bootstrap: 解决使用zsh在构建DragonOS时,无法直接使用一键初始化脚本进行安装的问题 (#252)

## 更新内容-软件移植


## 源码、发布版镜像下载

&emsp;&emsp;您可以通过以下方式获得源代码:

### 通过Git获取

- 您可以访问[https://github.com/DragonOS-Community/DragonOS/releases](https://github.com/DragonOS-Community/DragonOS/releases)下载发布版的代码,以及编译好的,可运行的磁盘镜像。
- 我们在gitee上也有镜像仓库可供下载:[https://gitee.com/DragonOS/DragonOS](https://gitee.com/DragonOS/DragonOS)

### 通过DragonOS软件镜像站获取

&emsp;&emsp;为解决国内访问GitHub慢、不稳定的问题,同时为了方便开发者们下载DragonOS的每个版本的代码,我们特意搭建了镜像站,您可以通过以下地址访问镜像站:

&emsp;&emsp;您可以通过镜像站获取到DragonOS的代码压缩包,以及编译好的可运行的磁盘镜像。

- [https://mirrors.DragonOS.org](https://mirrors.DragonOS.org)
- [https://mirrors.DragonOS.org.cn](https://mirrors.DragonOS.org.cn)
- 国内镜像加速: [https://mirrors.ringotek.cn/] (https://mirrors.ringotek.cn/)

## 开放源代码声明


:::{note}
为促进DragonOS项目的健康发展,DragonOS以GPLv2开源协议进行发布。所有能获得到DragonOS源代码以及相应的软件制品(包括但不限于二进制副本、文档)的人,都能享有我们通过GPLv2协议授予您的权利,同时您也需要遵守协议中规定的义务。

这是一个相当严格的,保护开源软件健康发展,不被侵占的协议。

对于大部分的善意的人们而言,您不会违反我们的开源协议。

我们鼓励DragonOS的自由传播、推广,但是请确保所有行为没有侵犯他人的合法权益,也没有违反GPLv2协议。

请特别注意,对于违反开源协议的,尤其是**商业闭源使用以及任何剽窃、学术不端行为将会受到严肃的追责**。(这是最容易违反我们的开源协议的场景)。

并且,请注意,按照GPLv2协议的要求,基于DragonOS修改或二次开发的软件,必须同样采用GPLv2协议开源,并标明其基于DragonOS进行了修改。亦需保证这些修改版本的用户能方便的获取到DragonOS的原始版本。

您必须使得DragonOS的开发者们,能够以同样的方式,从公开渠道获取到您二次开发的版本的源代码,否则您将违反GPLv2协议。

关于协议详细内容,还敬请您请阅读项目根目录下的**LICENSE**文件。请注意,按照GPLv2协议的要求,**只有英文原版才具有法律效力**。任何翻译版本都仅供参考。
:::

### 开源软件使用情况

&emsp;&emsp;DragonOS在开发的过程中,参考了一些开源项目的设计,或者引入了他们的部分代码,亦或是受到了他们的启发。现将他们列在下面。我们对这些开源项目的贡献者们致以最衷心的感谢!

格式:<项目名> - <链接> - <开源协议>

- 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 - 《一个64位操作系统的设计与实现》田宇; 人民邮电出版社
- chcore - 《现代操作系统:设计与实现》陈海波,夏虞斌; 机械工业出版社
- 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

## 当前版本的所有提交记录

```text
commit e0de0fd6a52199753a3127cfbb5d12f0a1555aae
Author: TingHuang <[email protected]>
Date: Sun Apr 23 22:55:57 2023 +0800
根据sysfs完善设备驱动模型 & 添加sysfs官方文档 (#254)
* 根据sysfs完善设备驱动模型
* 添加sysfs官方文档
commit f678331a3315b7847f08ab32b42d5bf49a9f3a6a
Author: hanjiezhou <[email protected]>
Date: Sun Apr 23 21:05:10 2023 +0800
匿名管道重构&增加IrqArch trait以及IrqFlags及其守卫 (#253)
* 实现匿名管道
* 增加IrqArch trait以及IrqFlags及其守卫
---------
Co-authored-by: longjin <[email protected]>
commit 8a1e95abb5e4df5e872bb452efc26c9e9631157d
Author: Bullet <[email protected]>
Date: Fri Apr 21 23:36:54 2023 +0800
解决使用zsh在构建DragonOS时,无法直接使用一键初始化脚本进行安装的问题 (#252)
commit dd9f1fc1a42406461e6f0d38cce1e56e22a1a15f
Author: TingHuang <[email protected]>
Date: Fri Apr 21 16:03:42 2023 +0800
新增SysFS (#250)
* 添加sysfs
* 注册sysfs
* 添加sysfs相关
* 添加rust-anlyzer辅助配置
* 将设备与sysfs相关联
* 添加单独的文件管理sysfs下的文件夹
commit cde5492f725681ed89abe1e6eb088e05d943d793
Author: login <[email protected]>
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 <[email protected]>
commit 8fd71f277271ae68e648f290c67f187b030feae0
Author: houmkh <[email protected]>
Date: Mon Apr 17 17:17:06 2023 +0800
增加定时器和软中断文档,修改了softirq面向c的接口 (#245)
* 增加定时器和软中断文档
* 修改softirq对c的接口和文档
* 修改文档格式
commit 77c928f6ce3192c79ea42ab7bcba2713e289f73b
Author: login <[email protected]>
Date: Sun Apr 16 20:29:04 2023 +0800
new: DowncastArc and its docs (#244)
commit 7149abaa49a4ca70f0e42ad3b61fdfd6a941a092
Author: HoshuChiu <[email protected]>
Date: Sun Apr 16 14:47:51 2023 +0800
修复Issue#220;vnc的端口号恢复5900 (#243)
* 修复Issue#220
* qemu-vnc端口号恢复为5900
commit 5c1e552cc7f0a6ad75c8a1fa2928e3b9cc619657
Author: YJwu2023 <[email protected]>
Date: Fri Apr 14 12:21:08 2023 +0800
修复ecam无法获取MCFG table的问题 (#241)
commit 79a452ce8f27ad9c7283ac0bcf4078ed6fa018d7
Author: houmkh <[email protected]>
Date: Tue Apr 11 17:05:33 2023 +0800
修改errno,使其与relibc的保持一致 (#234)
修改errno,使其与relibc的保持一致
commit ac48398d3f17f24ff9b5da5e400ce912d05f0ba2
Author: login <[email protected]>
Date: Tue Apr 11 16:54:14 2023 +0800
调整brk系统调用,使得参数、返回值与Linux一致 (#238)
* 新增用于测试relibc的app
* 为适配relibc,修改do_execve中关于用户栈的内容的设置
* 调整brk系统调用,使得参数、返回值与Linux一致
commit 13776c114b15c406b1e0aaeeb71812ea6e471d2e
Author: login <[email protected]>
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 <[email protected]>
commit 78bf93f02f84bf5e024ddfb559f040e68ce39ccf
Author: YJwu2023 <[email protected]>
Date: Sun Apr 9 12:30:02 2023 +0800
pci重构+pcie支持 (#235)
* pci重构+pcie支持
* pci重构测试完成
* 修正makefile的问题
* 小修改
* 修改函数名字
commit 5c9a63df836eedaca33c8c4c600b7aaeb2caf9a6
Author: login <[email protected]>
Date: Sat Apr 8 23:53:53 2023 +0800
Patch add lazy init (#236)
* 修正并发安全问题
commit 766127209ee49465a8086cfd0bec90d8b79a96c0
Author: login <[email protected]>
Date: Thu Apr 6 19:01:30 2023 +0800
new: lazy_init (#230)
commit e0dfd4d5d70d1b50fc7ad3ed4bf84b7ba6dad19d
Author: hanjiezhou <[email protected]>
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 <[email protected]>
commit 2a7d773d3d39f1cb3d59d6baa817c896c6fd52d1
Author: TingHuang <[email protected]>
Date: Wed Apr 5 13:02:05 2023 +0800
新增设备驱动模型,为设备和驱动提供高层视图 (#227)
* 添加base mod
* 添加设备驱动模型相关文件
* 删除单独的mod文件,使用mod.rs,修改一些格式上的问题
* 移动驱动错误类型到该文件
* 修改一些格式上的问题
commit 5d00b1852818dd4b25952fd6a30deb20e7c7df53
Author: login <[email protected]>
Date: Wed Apr 5 00:53:35 2023 +0800
修复显示刷新线程的空指针问题 (#228)
```
1 change: 1 addition & 0 deletions docs/community/ChangeLog/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
.. toctree::
:maxdepth: 1

V0.1.x/V0.1.7
V0.1.x/V0.1.6
V0.1.x/V0.1.5
V0.1.x/V0.1.4
Expand Down
Loading

0 comments on commit 6477493

Please sign in to comment.