xref: /DragonOS/docs/community/ChangeLog/V0.1.x/V0.1.8.md (revision 5db5a5652c9f4ae77bc8dc298f02057299442208)
1*5db5a565SLoGin# V0.1.8
2*5db5a565SLoGin
3*5db5a565SLoGin:::{note}
4*5db5a565SLoGin本文作者:龙进 <longjin@DragonOS.org>
5*5db5a565SLoGin
6*5db5a565SLoGin
7*5db5a565SLoGin2023年8月16日
8*5db5a565SLoGin:::
9*5db5a565SLoGin
10*5db5a565SLoGin## 贡献者名单
11*5db5a565SLoGin
12*5db5a565SLoGinDragonOS V0.1.8版本由以下小伙伴贡献代码:
13*5db5a565SLoGin
14*5db5a565SLoGin- 龙进 <longjin@DragonOS.org>
15*5db5a565SLoGin- 侯嘉滢 <houjiaying@DragonOS.org>
16*5db5a565SLoGin- 吴宇健 <wuyujian@DragonOS.org>
17*5db5a565SLoGin- 黄厅 <huangting@DragonOS.org>
18*5db5a565SLoGin- 孔维超 <kongweichao@DragonOS.org>
19*5db5a565SLoGin- 蔡嘉鑫 <caijiaxin@DragonOS.org>
20*5db5a565SLoGin- 池克俭 <chikejhian@DragonOS.org>
21*5db5a565SLoGin- zhaoyao73 <dragonlinux@gmail.com>
22*5db5a565SLoGin- 周瀚杰 <zhouhanjie@DragonOS.org>
23*5db5a565SLoGin- Bullet <93781792+GP-Bullet@users.noreply.github.com>
24*5db5a565SLoGin- 櫻井桃華 <89176634+TihayaKousaka@users.noreply.github.com>
25*5db5a565SLoGin- Tptogiar <2528891112@qq.com>
26*5db5a565SLoGin
27*5db5a565SLoGin## 赞助者名单
28*5db5a565SLoGin
29*5db5a565SLoGin感谢以下同学的赞赏,我们将不断努力!
30*5db5a565SLoGin
31*5db5a565SLoGin- 万晓兰
32*5db5a565SLoGin- David Wen
33*5db5a565SLoGin- [Seele.Clover](https://github.com/seeleclover)
34*5db5a565SLoGin- [FindWangHao](https://github.com/FindWangHao)
35*5db5a565SLoGin- [ferchiel](https://github.com/ferchiel)
36*5db5a565SLoGin- 叶锦毅
37*5db5a565SLoGin- 林
38*5db5a565SLoGin- Albert
39*5db5a565SLoGin- [TerryLeeSCUT · GitHub](https://github.com/TerryLeeSCUT)
40*5db5a565SLoGin- slientbard
41*5db5a565SLoGin- 悟
42*5db5a565SLoGin- 匿名热心人士
43*5db5a565SLoGin
44*5db5a565SLoGin## 更新内容-内核
45*5db5a565SLoGin
46*5db5a565SLoGin### 新特性
47*5db5a565SLoGin
48*5db5a565SLoGin- refactor: 重构系统调用模块 (#267)
49*5db5a565SLoGin- feature: 添加AlignBox和int_like宏 (#272)
50*5db5a565SLoGin- refactor: 新的ipi功能&kick_cpu功能的重写 (#274)
51*5db5a565SLoGin- feature: 实现gettimeofday()系统调用和clocksource+timekeeping子模块 (#278)
52*5db5a565SLoGin- refactor: PCI设备中断重构,并删去USB相关代码 (#285)
53*5db5a565SLoGin- feature: 注册串口设备,创建字符设备框架(#290)
54*5db5a565SLoGin- refactor: 新的内存管理模块 (#303)
55*5db5a565SLoGin- feature: 新的二进制加载器、elf解析器 (#303)
56*5db5a565SLoGin- feature: 增加 ListenTable 来检测端口占用 (#291)
57*5db5a565SLoGin- feature: 替换 local_irq_save 为 IrqFlagsGuard 实现 (#317)
58*5db5a565SLoGin- feature: 实现系统调用Fstat (#295)
59*5db5a565SLoGin- feature: 实现内核通知链 notifier chain (#316)
60*5db5a565SLoGin- feature: 增加fcntl系统调用 (#323)
61*5db5a565SLoGin- feature: 添加per cpu变量支持 (#327)
62*5db5a565SLoGin- feature: spinlock守卫新增leak,spinlock新增force unlock功能.(#329)
63*5db5a565SLoGin
64*5db5a565SLoGin### bugfix
65*5db5a565SLoGin- bugfix: 修复无法正常读取stdin的问题 (#264)
66*5db5a565SLoGin- bugfix: 修复了当传入ahci驱动的缓冲区地址为用户缓冲区时,产生的内存越界问题.(采用分配内核缓冲区的方式临时解决) (#265)
67*5db5a565SLoGin- bugfix: 解决由于local_irq_save、local_irq_restore函数的汇编不规范导致影响栈行为的bug。 (#303)
68*5db5a565SLoGin- bugfix: 解决local_irq_save未关中断的错误 (#303)
69*5db5a565SLoGin- bugfix: 解决arch_try_cmpxchg对于指针处理的错误 (#307)
70*5db5a565SLoGin- bugfix: 修复了wait4的异常报错 (#312)
71*5db5a565SLoGin- bugfix: 修正null设备以及zero设备无法open、行为不符合预期的问题 (#314)
72*5db5a565SLoGin- bugfix: 修正fat文件系统未能正确的扩展文件大小的bug (#323)
73*5db5a565SLoGin- bugfix: 修正rwlock有的地方由于未使用ManuallyDrop导致的use after free问题 (#329)
74*5db5a565SLoGin
75*5db5a565SLoGin
76*5db5a565SLoGin## 更新内容-用户环境
77*5db5a565SLoGin
78*5db5a565SLoGin### 新特性
79*5db5a565SLoGin- feature: 新增http server (#265)
80*5db5a565SLoGin
81*5db5a565SLoGin### bugfix
82*5db5a565SLoGin- bugfix: 解决链接时,由于crt*.o未按照升序排列导致init段链接错误的问题 (#265)
83*5db5a565SLoGin
84*5db5a565SLoGin
85*5db5a565SLoGin## 更新内容-其他
86*5db5a565SLoGin
87*5db5a565SLoGin- bugfix: 固定编译工具链、修复由于新版rust编译器问题导致的报错。 (#258)
88*5db5a565SLoGin- feature: Makefile: 根目录下添加make help命令 (#271)
89*5db5a565SLoGin- doc: 更新github issue模板 (#277)
90*5db5a565SLoGin- bugfix: 解决relibc的头文件没能识别__dragonos__定义的问题 (#315)
91*5db5a565SLoGin- feature: 设置内核、relibc的远程为dragonos的git镜像站,防止国内网络问题导致编译失败 (#318)
92*5db5a565SLoGin- feature: 自动安装、更新dadk (#319)
93*5db5a565SLoGin
94*5db5a565SLoGin## 更新内容-软件移植
95*5db5a565SLoGin
96*5db5a565SLoGin- feature: 移植了sqlite3 (#323)
97*5db5a565SLoGin
98*5db5a565SLoGin## 源码、发布版镜像下载
99*5db5a565SLoGin
100*5db5a565SLoGin&emsp;&emsp;您可以通过以下方式获得源代码:
101*5db5a565SLoGin
102*5db5a565SLoGin### 通过Git获取
103*5db5a565SLoGin
104*5db5a565SLoGin- 您可以访问[https://github.com/DragonOS-Community/DragonOS/releases](https://github.com/DragonOS-Community/DragonOS/releases)下载发布版的代码,以及编译好的,可运行的磁盘镜像。
105*5db5a565SLoGin- 我们在gitee上也有镜像仓库可供下载:[https://gitee.com/DragonOS/DragonOS](https://gitee.com/DragonOS/DragonOS)
106*5db5a565SLoGin
107*5db5a565SLoGin### 通过DragonOS软件镜像站获取
108*5db5a565SLoGin
109*5db5a565SLoGin&emsp;&emsp;为解决国内访问GitHub慢、不稳定的问题,同时为了方便开发者们下载DragonOS的每个版本的代码,我们特意搭建了镜像站,您可以通过以下地址访问镜像站:
110*5db5a565SLoGin
111*5db5a565SLoGin&emsp;&emsp;您可以通过镜像站获取到DragonOS的代码压缩包,以及编译好的可运行的磁盘镜像。
112*5db5a565SLoGin
113*5db5a565SLoGin- [https://mirrors.DragonOS.org](https://mirrors.DragonOS.org)
114*5db5a565SLoGin- [https://git.mirrors.DragonOS.org](https://git.mirrors.DragonOS.org)
115*5db5a565SLoGin- 国内镜像加速: [https://mirrors.ringotek.cn/](https://mirrors.ringotek.cn/)
116*5db5a565SLoGin
117*5db5a565SLoGin## 开放源代码声明
118*5db5a565SLoGin
119*5db5a565SLoGin
120*5db5a565SLoGin:::{note}
121*5db5a565SLoGin为促进DragonOS项目的健康发展,DragonOS以GPLv2开源协议进行发布。所有能获得到DragonOS源代码以及相应的软件制品(包括但不限于二进制副本、文档)的人,都能享有我们通过GPLv2协议授予您的权利,同时您也需要遵守协议中规定的义务。
122*5db5a565SLoGin
123*5db5a565SLoGin这是一个相当严格的,保护开源软件健康发展,不被侵占的协议。
124*5db5a565SLoGin
125*5db5a565SLoGin对于大部分的善意的人们而言,您不会违反我们的开源协议。
126*5db5a565SLoGin
127*5db5a565SLoGin我们鼓励DragonOS的自由传播、推广,但是请确保所有行为没有侵犯他人的合法权益,也没有违反GPLv2协议。
128*5db5a565SLoGin
129*5db5a565SLoGin请特别注意,对于违反开源协议的,尤其是**商业闭源使用以及任何剽窃、学术不端行为将会受到严肃的追责**。(这是最容易违反我们的开源协议的场景)。
130*5db5a565SLoGin
131*5db5a565SLoGin并且,请注意,按照GPLv2协议的要求,基于DragonOS修改或二次开发的软件,必须同样采用GPLv2协议开源,并标明其基于DragonOS进行了修改。亦需保证这些修改版本的用户能方便的获取到DragonOS的原始版本。
132*5db5a565SLoGin
133*5db5a565SLoGin您必须使得DragonOS的开发者们,能够以同样的方式,从公开渠道获取到您二次开发的版本的源代码,否则您将违反GPLv2协议。
134*5db5a565SLoGin
135*5db5a565SLoGin关于协议详细内容,还敬请您请阅读项目根目录下的**LICENSE**文件。请注意,按照GPLv2协议的要求,**只有英文原版才具有法律效力**。任何翻译版本都仅供参考。
136*5db5a565SLoGin:::
137*5db5a565SLoGin
138*5db5a565SLoGin### 开源软件使用情况
139*5db5a565SLoGin
140*5db5a565SLoGin&emsp;&emsp;DragonOS在开发的过程中,参考了一些开源项目的设计,或者引入了他们的部分代码,亦或是受到了他们的启发。现将他们列在下面。我们对这些开源项目的贡献者们致以最衷心的感谢!
141*5db5a565SLoGin
142*5db5a565SLoGin格式:<项目名> - <链接> - <开源协议>
143*5db5a565SLoGin
144*5db5a565SLoGin- Linux - 	https://git.kernel.org/ - GPLv2
145*5db5a565SLoGin- skiftOS - https://github.com/skiftOS/skift - MIT
146*5db5a565SLoGin- FYSOS - https://github.com/fysnet/FYSOS - [FYSOS' License](https://github.com/fysnet/FYSOS/blob/9a8968e3d6600de34539c028c843f4c06d134039/license.txt)
147*5db5a565SLoGin- LemonOS - https://github.com/LemonOSProject/LemonOS.git - BSD 2-Clause License
148*5db5a565SLoGin- LZ4 - https://github.com/lz4/lz4 - BSD 2-Clause license
149*5db5a565SLoGin- SerenityOS - https://github.com/SerenityOS/serenity.git - BSD 2-Clause license
150*5db5a565SLoGin- MINE - 《一个64位操作系统的设计与实现》田宇; 人民邮电出版社
151*5db5a565SLoGin- chcore - 《现代操作系统:设计与实现》陈海波,夏虞斌; 机械工业出版社
152*5db5a565SLoGin- SimpleKernel - https://github.com/Simple-XX/SimpleKernel - MIT
153*5db5a565SLoGin- rcore-fs - https://github.com/rcore-os/rcore-fs.git - MIT
154*5db5a565SLoGin- redox - https://gitlab.redox-os.org/redox-os/redox - MIT
155*5db5a565SLoGin
156*5db5a565SLoGin## 当前版本的所有提交记录
157*5db5a565SLoGin
158*5db5a565SLoGin```text
159*5db5a565SLoGincommit 40176b1c6603d487b7eb66fb81e641f0932ab90a
160*5db5a565SLoGinAuthor: longjin <longjin@RinGoTek.cn>
161*5db5a565SLoGinDate:   Tue Aug 15 15:06:57 2023 +0000
162*5db5a565SLoGin
163*5db5a565SLoGin    删除无用代码,并把about app的版本号更新为0.1.8
164*5db5a565SLoGin
165*5db5a565SLoGincommit 67b481888770c6469f572f244a4f97e42da77d1f
166*5db5a565SLoGinAuthor: houmkh <1119644616@qq.com>
167*5db5a565SLoGinDate:   Mon Aug 14 12:18:46 2023 +0800
168*5db5a565SLoGin
169*5db5a565SLoGin    移动fstat (#330)
170*5db5a565SLoGin
171*5db5a565SLoGin    * 移动fstat
172*5db5a565SLoGin
173*5db5a565SLoGincommit 90a0a49048fdaf5e31320d0c87f8bed8db1bd882
174*5db5a565SLoGinAuthor: LoGin <longjin@DragonOS.org>
175*5db5a565SLoGinDate:   Mon Aug 14 01:24:49 2023 +0800
176*5db5a565SLoGin
177*5db5a565SLoGin    修正rwlock有的地方由于未使用ManuallyDrop导致的use after free && spinlock守卫新增leak,spinlock新增force unlock功能.(#329)
178*5db5a565SLoGin
179*5db5a565SLoGin    1.修正rwlock有的地方由于未使用ManuallyDrop导致的use after free
180*5db5a565SLoGin    2. spinlock守卫新增leak,spinlock新增force unlock功能.
181*5db5a565SLoGin
182*5db5a565SLoGincommit c3dad0011d331d782670e14723aa48e98fbac787
183*5db5a565SLoGinAuthor: LoGin <longjin@DragonOS.org>
184*5db5a565SLoGinDate:   Sun Aug 13 16:28:24 2023 +0800
185*5db5a565SLoGin
186*5db5a565SLoGin    添加per cpu变量支持 (#327)
187*5db5a565SLoGin
188*5db5a565SLoGincommit 42c97fa7f4fee7eeefeda5d2b7ed14f598a58493
189*5db5a565SLoGinAuthor: LoGin <longjin@DragonOS.org>
190*5db5a565SLoGinDate:   Tue Aug 8 23:45:04 2023 +0800
191*5db5a565SLoGin
192*5db5a565SLoGin    删除旧的libELF (#324)
193*5db5a565SLoGin
194*5db5a565SLoGincommit 6d81180b3b7328466b976b69c5f7782aa66d8a89
195*5db5a565SLoGinAuthor: LoGin <longjin@DragonOS.org>
196*5db5a565SLoGinDate:   Tue Aug 8 23:39:22 2023 +0800
197*5db5a565SLoGin
198*5db5a565SLoGin    移植sqlite3,并修复一些bug (#323)
199*5db5a565SLoGin
200*5db5a565SLoGin    * bugfix: 程序加载器映射内存时,计算要映射的大小不正确的问题。
201*5db5a565SLoGin
202*5db5a565SLoGin    * 修正brk系统调用不符合规范的地方
203*5db5a565SLoGin
204*5db5a565SLoGin    * bugfix: 修正fat文件系统未能正确的扩展文件大小的bug
205*5db5a565SLoGin
206*5db5a565SLoGin    * 增加fcntl系统调用
207*5db5a565SLoGin
208*5db5a565SLoGin    * 移植sqlite3
209*5db5a565SLoGin
210*5db5a565SLoGincommit 26887c6334cdca2d13ad71dec27fb69faa0a57be
211*5db5a565SLoGinAuthor: LoGin <longjin@DragonOS.org>
212*5db5a565SLoGinDate:   Mon Aug 7 01:38:52 2023 +0800
213*5db5a565SLoGin
214*5db5a565SLoGin    bugfix: 解决取消低地址映射时,错误的把重映射的物理页释放,从而导致的use after free问题。 (#321)
215*5db5a565SLoGin
216*5db5a565SLoGincommit 729a96ef47f473d535d8317a2ace5ba141fd282a
217*5db5a565SLoGinAuthor: Xshine <gshine@m.scnu.edu.cn>
218*5db5a565SLoGinDate:   Sun Aug 6 12:53:47 2023 +0800
219*5db5a565SLoGin
220*5db5a565SLoGin    实现内核通知链 notifier chain (#316)
221*5db5a565SLoGin
222*5db5a565SLoGin    * 实现通知链块结构
223*5db5a565SLoGin
224*5db5a565SLoGin    * 实现通知链的基本功能
225*5db5a565SLoGin
226*5db5a565SLoGin    * 实现 atomic notifier chain
227*5db5a565SLoGin
228*5db5a565SLoGin    * 实现 blocking notifier chain
229*5db5a565SLoGin
230*5db5a565SLoGin    * 使用 rust 范式完成功能
231*5db5a565SLoGin
232*5db5a565SLoGin    * 支持回调次数 nr_to_call
233*5db5a565SLoGin
234*5db5a565SLoGin    * 移动至 libs 目录
235*5db5a565SLoGin
236*5db5a565SLoGin    * 完善通知链相关方法
237*5db5a565SLoGin
238*5db5a565SLoGin    * 修正相关格式
239*5db5a565SLoGin
240*5db5a565SLoGin    * 文档编写
241*5db5a565SLoGin
242*5db5a565SLoGin    * 更改文档路径
243*5db5a565SLoGin
244*5db5a565SLoGincommit be63f3b2b6b472daa3ee17180aa607409cb9d182
245*5db5a565SLoGinAuthor: houmkh <1119644616@qq.com>
246*5db5a565SLoGinDate:   Sat Aug 5 18:52:46 2023 +0800
247*5db5a565SLoGin
248*5db5a565SLoGin    实现系统调用Fstat (#295)
249*5db5a565SLoGin
250*5db5a565SLoGin    * fstat
251*5db5a565SLoGin
252*5db5a565SLoGin    * 修改syscall.rs中的verify_area
253*5db5a565SLoGin
254*5db5a565SLoGincommit 9550910ae1de900e0291a84d268e8873fa142902
255*5db5a565SLoGinAuthor: Chiichen <39649411+Chiichen@users.noreply.github.com>
256*5db5a565SLoGinDate:   Sat Aug 5 18:30:55 2023 +0800
257*5db5a565SLoGin
258*5db5a565SLoGin     替换 local_irq_save 为 IrqFlagsGuard 实现 (#317)
259*5db5a565SLoGin
260*5db5a565SLoGincommit abf3f634bf7e13e829556e962e7c73a85d163335
261*5db5a565SLoGinAuthor: LoGin <longjin@DragonOS.org>
262*5db5a565SLoGinDate:   Sat Aug 5 15:30:06 2023 +0800
263*5db5a565SLoGin
264*5db5a565SLoGin    自动安装、更新dadk (#319)
265*5db5a565SLoGin
266*5db5a565SLoGin    * auto install/auto update dadk
267*5db5a565SLoGin
268*5db5a565SLoGincommit d6fd9c1e8025dd679339f9156477cb7d26d3db0d
269*5db5a565SLoGinAuthor: LoGin <longjin@DragonOS.org>
270*5db5a565SLoGinDate:   Sat Aug 5 15:04:08 2023 +0800
271*5db5a565SLoGin
272*5db5a565SLoGin    设置内核、relibc的远程为dragonos的git镜像站,防止国内网络问题导致编译失败 (#318)
273*5db5a565SLoGin
274*5db5a565SLoGincommit 1a62e7767c1215f9668915b42de770e7993711bf
275*5db5a565SLoGinAuthor: LoGin <longjin@DragonOS.org>
276*5db5a565SLoGinDate:   Wed Aug 2 18:11:05 2023 +0800
277*5db5a565SLoGin
278*5db5a565SLoGin    解决relibc的头文件没能识别__dragonos__定义的问题 (#315)
279*5db5a565SLoGin
280*5db5a565SLoGincommit 06500303303ec14711b4f995e2058e12703f0f2c
281*5db5a565SLoGinAuthor: LoGin <longjin@DragonOS.org>
282*5db5a565SLoGinDate:   Wed Aug 2 17:33:16 2023 +0800
283*5db5a565SLoGin
284*5db5a565SLoGin    修正null设备以及zero设备无法open、行为不符合预期的问题 (#314)
285*5db5a565SLoGin
286*5db5a565SLoGincommit 4da3758acf0327d429dfce3d313b50c2e0fc7723
287*5db5a565SLoGinAuthor: Chiichen <39649411+Chiichen@users.noreply.github.com>
288*5db5a565SLoGinDate:   Wed Aug 2 14:29:59 2023 +0800
289*5db5a565SLoGin
290*5db5a565SLoGin    修复了wait4的异常报错 (#312)
291*5db5a565SLoGin
292*5db5a565SLoGin    * 修复了wait4的异常报错
293*5db5a565SLoGin
294*5db5a565SLoGincommit 821bb9a2dcfd28f9878d53ba722bdf164cf00f69
295*5db5a565SLoGinAuthor: Xshine <caijiaxin@dragonos.org>
296*5db5a565SLoGinDate:   Fri Jul 28 17:51:05 2023 +0800
297*5db5a565SLoGin
298*5db5a565SLoGin    增加 ListenTable 来检测端口占用 (#291)
299*5db5a565SLoGin
300*5db5a565SLoGin    * 增加 ListenTable 来检测端口占用
301*5db5a565SLoGin
302*5db5a565SLoGin
303*5db5a565SLoGin    * 使用Arc封装GlobalSocketHandle
304*5db5a565SLoGin
305*5db5a565SLoGin    * 删除 listen 处的端口检测逻辑,延至实现端口复用时完成
306*5db5a565SLoGin
307*5db5a565SLoGin    * 设立两张表,分别记录TCP和UDP的端口占用
308*5db5a565SLoGin
309*5db5a565SLoGin    * 实现 meatadata 相关逻辑
310*5db5a565SLoGin
311*5db5a565SLoGin    * 实现socket关闭时,端口在表中移除
312*5db5a565SLoGin
313*5db5a565SLoGin    * 使用端口管理器重构端口记录表
314*5db5a565SLoGin
315*5db5a565SLoGin    * 修正与RawSocket相关的端口管理逻辑
316*5db5a565SLoGin
317*5db5a565SLoGin    * 补充测试文件
318*5db5a565SLoGin
319*5db5a565SLoGin    * 修正 unbind_port 在逻辑错误
320*5db5a565SLoGin
321*5db5a565SLoGin    * 修正格式问题
322*5db5a565SLoGin
323*5db5a565SLoGin    ---------
324*5db5a565SLoGin
325*5db5a565SLoGin    Co-authored-by: longjin <longjin@RinGoTek.cn>
326*5db5a565SLoGin
327*5db5a565SLoGincommit 7cc4a02c7ff7bafd798b185beb7b0c2986b9f32f
328*5db5a565SLoGinAuthor: zhaoyao73 <zhaoyao73@users.noreply.github.com>
329*5db5a565SLoGinDate:   Fri Jul 28 03:44:45 2023 -0400
330*5db5a565SLoGin
331*5db5a565SLoGin    fix arch_try_cmpxchg macro declaration (#307)
332*5db5a565SLoGin
333*5db5a565SLoGin    fix arch_try_cmpxchg in atomic_cmpxchg
334*5db5a565SLoGin
335*5db5a565SLoGin    Co-authored-by: Yao Zhao <dragonlinux@gmail.com>
336*5db5a565SLoGin
337*5db5a565SLoGincommit a30434f5201ca4c60b9515c8c23444fea3b5a8c6
338*5db5a565SLoGinAuthor: zhaoyao73 <zhaoyao73@users.noreply.github.com>
339*5db5a565SLoGinDate:   Tue Jul 25 10:02:42 2023 -0400
340*5db5a565SLoGin
341*5db5a565SLoGin    fix some script bugs (#304)
342*5db5a565SLoGin
343*5db5a565SLoGin    add arch linux prerequisited packages
344*5db5a565SLoGin
345*5db5a565SLoGin    Co-authored-by: Yao Zhao <dragonlinux@gmail.com>
346*5db5a565SLoGin
347*5db5a565SLoGincommit 40fe15e0953f989ccfeb74826d61621d43dea6bb
348*5db5a565SLoGinAuthor: LoGin <longjin@DragonOS.org>
349*5db5a565SLoGinDate:   Sat Jul 22 16:27:02 2023 +0800
350*5db5a565SLoGin
351*5db5a565SLoGin    新的内存管理模块 (#303)
352*5db5a565SLoGin
353*5db5a565SLoGin    &emsp;&emsp;实现了具有优秀架构设计的新的内存管理模块,对内核空间和用户空间的内存映射、分配、释放、管理等操作进行了封装,使得内核开发者可以更加方便地进行内存管理。
354*5db5a565SLoGin
355*5db5a565SLoGin    &emsp;&emsp;内存管理模块主要由以下类型的组件组成:
356*5db5a565SLoGin
357*5db5a565SLoGin    - **硬件抽象层(MemoryManagementArch)** - 提供对具体处理器架构的抽象,使得内存管理模块可以在不同的处理器架构上运行
358*5db5a565SLoGin    - **页面映射器(PageMapper)**- 提供对虚拟地址和物理地址的映射,以及页表的创建、填写、销毁、权限管理等操作。分为两种类型:内核页表映射器(KernelMapper)和用户页表映射器(位于具体的用户地址空间结构中)
359*5db5a565SLoGin    - **页面刷新器(PageFlusher)** - 提供对页表的刷新操作(整表刷新、单页刷新、跨核心刷新)
360*5db5a565SLoGin    - **页帧分配器(FrameAllocator)** - 提供对页帧的分配、释放、管理等操作。具体来说,包括BumpAllocator、BuddyAllocator
361*5db5a565SLoGin    - **小对象分配器** - 提供对小内存对象的分配、释放、管理等操作。指的是内核里面的SlabAllocator (SlabAllocator的实现目前还没有完成)
362*5db5a565SLoGin    - **MMIO空间管理器** - 提供对MMIO地址空间的分配、管理操作。(目前这个模块待进一步重构)
363*5db5a565SLoGin    - **用户地址空间管理机制** - 提供对用户地址空间的管理。
364*5db5a565SLoGin        - VMA机制 - 提供对用户地址空间的管理,包括VMA的创建、销毁、权限管理等操作
365*5db5a565SLoGin        - 用户映射管理 - 与VMA机制共同作用,管理用户地址空间的映射
366*5db5a565SLoGin    - **系统调用层** - 提供对用户空间的内存管理系统调用,包括mmap、munmap、mprotect、mremap等
367*5db5a565SLoGin    - **C接口兼容层** - 提供对原有的C代码的接口,是的C代码能够正常运行。
368*5db5a565SLoGin
369*5db5a565SLoGin
370*5db5a565SLoGin    除上面的新增内容以外,其它的更改内容:
371*5db5a565SLoGin    - 新增二进制加载器,以及elf的解析器
372*5db5a565SLoGin    - 解决由于local_irq_save、local_irq_restore函数的汇编不规范导致影响栈行为的bug。
373*5db5a565SLoGin    - 解决local_irq_save未关中断的错误。
374*5db5a565SLoGin    - 修复sys_gettimeofday对timezone参数的处理的bug
375*5db5a565SLoGin
376*5db5a565SLoGin    ---------
377*5db5a565SLoGin
378*5db5a565SLoGin    Co-authored-by: kong <kongweichao@dragonos.org>
379*5db5a565SLoGin
380*5db5a565SLoGincommit bb5f098a864cee36b7d2c1ab9c029c0280d94a8a
381*5db5a565SLoGinAuthor: LoGin <longjin@DragonOS.org>
382*5db5a565SLoGinDate:   Sat Jul 22 16:24:55 2023 +0800
383*5db5a565SLoGin
384*5db5a565SLoGin    Revert "新的内存管理模块 (#301)" (#302)
385*5db5a565SLoGin
386*5db5a565SLoGin    This reverts commit d8ad0a5e7724469abd5cc3cf271993538878033e.
387*5db5a565SLoGin
388*5db5a565SLoGincommit d8ad0a5e7724469abd5cc3cf271993538878033e
389*5db5a565SLoGinAuthor: LoGin <longjin@DragonOS.org>
390*5db5a565SLoGinDate:   Sat Jul 22 16:22:17 2023 +0800
391*5db5a565SLoGin
392*5db5a565SLoGin    新的内存管理模块 (#301)
393*5db5a565SLoGin
394*5db5a565SLoGin    &emsp;&emsp;实现了具有优秀架构设计的新的内存管理模块,对内核空间和用户空间的内存映射、分配、释放、管理等操作进行了封装,使得内核开发者可以更加方便地进行内存管理。
395*5db5a565SLoGin
396*5db5a565SLoGin    &emsp;&emsp;内存管理模块主要由以下类型的组件组成:
397*5db5a565SLoGin
398*5db5a565SLoGin    - **硬件抽象层(MemoryManagementArch)** - 提供对具体处理器架构的抽象,使得内存管理模块可以在不同的处理器架构上运行
399*5db5a565SLoGin    - **页面映射器(PageMapper)**- 提供对虚拟地址和物理地址的映射,以及页表的创建、填写、销毁、权限管理等操作。分为两种类型:内核页表映射器(KernelMapper)和用户页表映射器(位于具体的用户地址空间结构中)
400*5db5a565SLoGin    - **页面刷新器(PageFlusher)** - 提供对页表的刷新操作(整表刷新、单页刷新、跨核心刷新)
401*5db5a565SLoGin    - **页帧分配器(FrameAllocator)** - 提供对页帧的分配、释放、管理等操作。具体来说,包括BumpAllocator、BuddyAllocator
402*5db5a565SLoGin    - **小对象分配器** - 提供对小内存对象的分配、释放、管理等操作。指的是内核里面的SlabAllocator (SlabAllocator的实现目前还没有完成)
403*5db5a565SLoGin    - **MMIO空间管理器** - 提供对MMIO地址空间的分配、管理操作。(目前这个模块待进一步重构)
404*5db5a565SLoGin    - **用户地址空间管理机制** - 提供对用户地址空间的管理。
405*5db5a565SLoGin        - VMA机制 - 提供对用户地址空间的管理,包括VMA的创建、销毁、权限管理等操作
406*5db5a565SLoGin        - 用户映射管理 - 与VMA机制共同作用,管理用户地址空间的映射
407*5db5a565SLoGin    - **系统调用层** - 提供对用户空间的内存管理系统调用,包括mmap、munmap、mprotect、mremap等
408*5db5a565SLoGin    - **C接口兼容层** - 提供对原有的C代码的接口,是的C代码能够正常运行。
409*5db5a565SLoGin
410*5db5a565SLoGin
411*5db5a565SLoGin    除上面的新增内容以外,其它的更改内容:
412*5db5a565SLoGin    - 新增二进制加载器,以及elf的解析器
413*5db5a565SLoGin    - 解决由于local_irq_save、local_irq_restore函数的汇编不规范导致影响栈行为的bug。
414*5db5a565SLoGin    - 解决local_irq_save未关中断的错误。
415*5db5a565SLoGin    - 修复sys_gettimeofday对timezone参数的处理的bug
416*5db5a565SLoGin
417*5db5a565SLoGincommit 0663027b111ffb6ff93becd60ffef1e2b8fbd4c6
418*5db5a565SLoGinAuthor: TingHuang <92705854+TingSHub@users.noreply.github.com>
419*5db5a565SLoGinDate:   Wed Jul 12 12:49:45 2023 +0800
420*5db5a565SLoGin
421*5db5a565SLoGin    注册串口设备,创建字符设备框架(#290)
422*5db5a565SLoGin
423*5db5a565SLoGin    * 按照rust规范修改两个函数名称
424*5db5a565SLoGin
425*5db5a565SLoGin    * 修改一些函数句柄以符合rust规范
426*5db5a565SLoGin
427*5db5a565SLoGin    * 添加字符设备相关
428*5db5a565SLoGin
429*5db5a565SLoGin    * 添加字符设备相关文件
430*5db5a565SLoGin
431*5db5a565SLoGin    * 添加字符设备驱动框架代码
432*5db5a565SLoGin
433*5db5a565SLoGin    * 将串口注册
434*5db5a565SLoGin
435*5db5a565SLoGin    * 规范代码
436*5db5a565SLoGin
437*5db5a565SLoGincommit cc36cf4a186be834e6c2ab857b9b9501ddb8b1eb
438*5db5a565SLoGinAuthor: YJwu2023 <yujianwu2019@gmail.com>
439*5db5a565SLoGinDate:   Sat Jul 8 17:22:42 2023 +0800
440*5db5a565SLoGin
441*5db5a565SLoGin    PCI设备中断重构,删去USB相关代码 (#285)
442*5db5a565SLoGin
443*5db5a565SLoGin    * 修复ecam无法获取MCFG table的问题
444*5db5a565SLoGin
445*5db5a565SLoGin    * 完善pcie
446*5db5a565SLoGin
447*5db5a565SLoGin    * 完善irq的错误检测机制
448*5db5a565SLoGin
449*5db5a565SLoGincommit 2311e2f30048d09250afc3e2e4e7029627996655
450*5db5a565SLoGinAuthor: 櫻井桃華 <89176634+TihayaKousaka@users.noreply.github.com>
451*5db5a565SLoGinDate:   Fri Jul 7 22:50:46 2023 +0800
452*5db5a565SLoGin
453*5db5a565SLoGin    修改makefile通过编译 (#287)
454*5db5a565SLoGin
455*5db5a565SLoGincommit 36fd013004ee0bd5fc7cfb452ba22531a83a859c
456*5db5a565SLoGinAuthor: houmkh <1119644616@qq.com>
457*5db5a565SLoGinDate:   Sat Jun 17 22:48:15 2023 +0800
458*5db5a565SLoGin
459*5db5a565SLoGin    实现gettimeofday()系统调用和clocksource+timekeeping子模块 (#278)
460*5db5a565SLoGin
461*5db5a565SLoGin    - 实现gettimeofday()系统调用
462*5db5a565SLoGin    - 实现clocksource+timekeeping子模块部分功能
463*5db5a565SLoGin    - 实现了timespec转换成日期时间
464*5db5a565SLoGin
465*5db5a565SLoGincommit a55ac7b928a6ca08483bbb3355bea55f1446ccab
466*5db5a565SLoGinAuthor: LoGin <longjin@DragonOS.org>
467*5db5a565SLoGinDate:   Tue Jun 6 17:44:54 2023 +0800
468*5db5a565SLoGin
469*5db5a565SLoGin    Update issue templates (#277)
470*5db5a565SLoGin
471*5db5a565SLoGincommit 5f57834372f6cb720ba14103effa4799e195a963
472*5db5a565SLoGinAuthor: Tptogiar <2528891112@qq.com>
473*5db5a565SLoGinDate:   Tue Jun 6 16:41:02 2023 +0800
474*5db5a565SLoGin
475*5db5a565SLoGin    Makefile: 根目录下添加make help命令 (#271)
476*5db5a565SLoGin
477*5db5a565SLoGin    * Makefile: 根目录下添加make help命令
478*5db5a565SLoGin
479*5db5a565SLoGin    * Makefile: 补充根目录Makefile的help命令
480*5db5a565SLoGin
481*5db5a565SLoGincommit aa0367d69e15989684109c5b454e85da9ecb1975
482*5db5a565SLoGinAuthor: LoGin <longjin@DragonOS.org>
483*5db5a565SLoGinDate:   Tue May 30 10:21:11 2023 +0800
484*5db5a565SLoGin
485*5db5a565SLoGin    新的ipi功能&kick_cpu功能的重写 (#274)
486*5db5a565SLoGin
487*5db5a565SLoGincommit bb24249faabc5006784aa98ca17b4cbdcb788c65
488*5db5a565SLoGinAuthor: LoGin <longjin@DragonOS.org>
489*5db5a565SLoGinDate:   Sun May 28 23:00:37 2023 +0800
490*5db5a565SLoGin
491*5db5a565SLoGin    添加AlignBox和int_like宏 (#272)
492*5db5a565SLoGin
493*5db5a565SLoGincommit ab5c8ca46db8e7d4793a9791292122b0b9684274
494*5db5a565SLoGinAuthor: login <longjin@DragonOS.org>
495*5db5a565SLoGinDate:   Wed May 24 17:05:33 2023 +0800
496*5db5a565SLoGin
497*5db5a565SLoGin    重构系统调用模块 (#267)
498*5db5a565SLoGin
499*5db5a565SLoGin    * 完成系统调用模块重构
500*5db5a565SLoGin
501*5db5a565SLoGin    * 更新github workflow
502*5db5a565SLoGin
503*5db5a565SLoGincommit 660a04cef803fd73e9b294b30a96421b021a4b9b
504*5db5a565SLoGinAuthor: login <longjin@DragonOS.org>
505*5db5a565SLoGinDate:   Sat May 13 21:17:12 2023 +0800
506*5db5a565SLoGin
507*5db5a565SLoGin    新增http server (#265)
508*5db5a565SLoGin
509*5db5a565SLoGin    * 1.修复了当传入ahci驱动的缓冲区地址为用户缓冲区时,产生的内存越界问题.(采用分配内核缓冲区的方式临时解决)
510*5db5a565SLoGin    2.新增http server
511*5db5a565SLoGin
512*5db5a565SLoGin    * 把libssl-dev添加到bootstrap.sh
513*5db5a565SLoGin
514*5db5a565SLoGin    * http_server增加对父级相对路径的安全检查,防止访问系统内的其他文件
515*5db5a565SLoGin
516*5db5a565SLoGin    * 检查空指针情况
517*5db5a565SLoGin
518*5db5a565SLoGin    * 解决由于链接时,crt*.o未按照升序排列导致init段链接错误的问题
519*5db5a565SLoGin
520*5db5a565SLoGincommit 49249f4ec94fad7baf923aed68d9a7b2da3de3d4
521*5db5a565SLoGinAuthor: Bullet <93781792+GP-Bullet@users.noreply.github.com>
522*5db5a565SLoGinDate:   Sat May 13 09:55:24 2023 +0800
523*5db5a565SLoGin
524*5db5a565SLoGin    把调度器实例的裸指针改为Option (#262)
525*5db5a565SLoGin
526*5db5a565SLoGincommit bfafc102798ab1968ccf6b04315d8d3359a70ca8
527*5db5a565SLoGinAuthor: login <longjin@DragonOS.org>
528*5db5a565SLoGinDate:   Thu May 11 17:41:42 2023 +0800
529*5db5a565SLoGin
530*5db5a565SLoGin    修复读取stdin时,无法正常读取的问题。 (#264)
531*5db5a565SLoGin
532*5db5a565SLoGincommit 7285c927d95bb4b5c692c51a8f86c47009d07667
533*5db5a565SLoGinAuthor: login <longjin@DragonOS.org>
534*5db5a565SLoGinDate:   Thu May 11 16:17:58 2023 +0800
535*5db5a565SLoGin
536*5db5a565SLoGin    添加dadk支持 (#263)
537*5db5a565SLoGin
538*5db5a565SLoGin    * 引入dadk,使用dadk0.1.1来编译test-relibc程序
539*5db5a565SLoGin
540*5db5a565SLoGin    * 由于gitee仓库体积限制导致无法继续使用gitee上的rust索引,因此更换为清华源
541*5db5a565SLoGin
542*5db5a565SLoGin    * github workflow的环境中,安装dadk
543*5db5a565SLoGin
544*5db5a565SLoGin    * Auto configure dragonos rust toolchain
545*5db5a565SLoGin
546*5db5a565SLoGincommit b11bb1b25676f528ec1b0e1da0af82b4652f70c4
547*5db5a565SLoGinAuthor: login <longjin@DragonOS.org>
548*5db5a565SLoGinDate:   Sun May 7 22:20:33 2023 +0800
549*5db5a565SLoGin
550*5db5a565SLoGin    固定编译工具链、修复由于新版rust编译器问题导致的报错。 (#258)
551*5db5a565SLoGin
552*5db5a565SLoGin    * 固定编译工具链、修复由于新版rust编译器问题导致的报错。
553*5db5a565SLoGin
554*5db5a565SLoGin    * 完善github workflow环境配置
555*5db5a565SLoGin
556*5db5a565SLoGin```