1# V0.1.9 2 3:::{note} 4本文作者:何懿聪 <heyicong@dragonos.org> 5 6DragonOS官方论坛:[bbs.dragonos.org.cn](https://bbs.dragonos.org.cn) 7 82024年3月13日 9::: 10 11## 贡献者名单 12 13DragonOS V0.1.9版本由以下小伙伴贡献代码: 14 15- 龙进 <longjin@DragonOS.org> 16- 何懿聪 <heyicong@dragonos.rog> 17- 裕依 <68320855+yuyi2439@users.noreply.github.com> 18- R0ronoa <84278015+2447742618@users.noreply.github.com> 19- 池克俭 <39649411+Chiichen@users.noreply.github.com> 20- 吴宇健 <wuyujian@dragonos.org> 21- zhaoyao73 <zhaoyao73@users.noreply.github.com> 22- 胡兆朋 <105195940+MemoryShore@users.noreply.github.com> 23- 周瀚杰 <zhouhanjie@dragonos.org> 24- 栗子 <im.lechain@gmail.com> 25- Xshine <gshine@m.scnu.edu.cn> 26- Chenzx <109664121+schulice@users.noreply.github.com> 27- MContour <m-contour@qq.com> 28- Donkey Kane <109840258+xiaolin2004@users.noreply.github.com> 29- Luo Jia / Zhouqi Jiang <luojia@hust.edu.cn> 30- Wu Mianzhi <31810920+Hdksg10@users.noreply.github.com> 31- Xiaoye Zheng <xiaoyez@zju.edu.cn> 32- Plucky923 <107762234+Plucky923@users.noreply.github.com> 33- 许梓毫 <xuzihao@dragonos.org> 34 35## 赞助商列表 36 37- **[中国雅云](https://yacloud.net)** 雅安大数据产业园为DragonOS提供了云服务器支持。 38 39 40## 赞助者名单 41 42感谢以下同学的赞赏,我们将不断努力! 43 44 45- David Wen 46- 万晓兰 47- 龙进 48- 吴宇健 49 50 51两千元以下: 52 53- [Seele.Clover](https://github.com/seeleclover) 54- [FindWangHao](https://github.com/FindWangHao) 55- [ferchiel](https://github.com/ferchiel) 56- 叶锦毅 57- 林 58- Albert 59- [TerryLeeSCUT · GitHub](https://github.com/TerryLeeSCUT) 60- slientbard 61- 悟 62- 匿名热心人士 63 64## 更新内容-内核 65 66### 新特性 67 68- refactor: 重构进程管理模块 ([#380](https://github.com/DragonOS-Community/DragonOS/pull/380)) 69- feature: 完善设备驱动模型 ([#401](https://github.com/DragonOS-Community/DragonOS/pull/401)) 70- feature: 实现e1000e网卡驱动 ([#393](https://github.com/DragonOS-Community/DragonOS/pull/393)) 71- feature: DragonOS虚拟化框架([#389](https://github.com/DragonOS-Community/DragonOS/pull/389)) 72- feature: 支持syscall快速系统调用指令([#417](https://github.com/DragonOS-Community/DragonOS/pull/417)) 73- refactor: 重写apic驱动 ([#425](https://github.com/DragonOS-Community/DragonOS/pull/425)) 74- feature: 线程机制与futex ([#411](https://github.com/DragonOS-Community/DragonOS/pull/411)) 75- feature: DragonStub引导DragonOS内核 ([#460](https://github.com/DragonOS-Community/DragonOS/pull/460)) 76- feature: 实现Epoll IO多路复用机制 ([#455](https://github.com/DragonOS-Community/DragonOS/pull/455)) 77- feature: 帧缓冲抽象以及vesafb驱动 ([#483](https://github.com/DragonOS-Community/DragonOS/pull/483)) 78- feature: 增加early io remap的fixmap功能 ([#495](https://github.com/DragonOS-Community/DragonOS/pull/495)) 79- feature: 实现内核日志系统 ([#489](https://github.com/DragonOS-Community/DragonOS/pull/489)) 80- refactor: 使用Rust重写x86_64下内核初始化代码([#507](https://github.com/DragonOS-Community/DragonOS/pull/507)) 81- feature: 新增riscv64架构的内存管理等([#506](https://github.com/DragonOS-Community/DragonOS/pull/506)) 82- refactor: 中断管理模块重构完成([#554](https://github.com/DragonOS-Community/DragonOS/pull/554)) 83- refactor: 重构tty模块,实现unix兼容tty([#577](https://github.com/DragonOS-Community/DragonOS/pull/577)) 84- featurn: 实现若干POSIX标准系统调用 85 86### bugfix 87 88- bugfix: 修正由于init proc union导致的无法运行的问题 && 修正由于内核线程启动后默认sleep的行为导致init进程无法正常运行的bug ([#381](https://github.com/DragonOS-Community/DragonOS/pull/381)) 89- bugfix: 修复了Flusher Drop的时候没有自动刷新TLB的bug([#384](https://github.com/DragonOS-Community/DragonOS/pull/384)) 90- bugfix: multiboot2启动的信息因为没及时转存导致后面无法从其中进行查询的bug ([#405](https://github.com/DragonOS-Community/DragonOS/pull/405)) 91- bugfix: 修复bus/device manager对卸载逻辑的处理错误 ([#385](https://github.com/DragonOS-Community/DragonOS/pull/385)) 92- bugfix: 解决waitqueue sleep的时候,由于preempt count不为0,导致sched失败,从而导致该waitqueue下一次wakeup时,会把pcb多次加入调度队列的bug ([#419](https://github.com/DragonOS-Community/DragonOS/pull/419)) 93- bugfix: 修正fork的时候没有正确拷贝vm holes的bug ([#433](https://github.com/DragonOS-Community/DragonOS/pull/433)) 94- bugfix: 当物理机具有多个memory area的时候,无法正确使用这些区域的问题.以及在内核代码处出现内存空洞而导致无法正常运行的问题. ([#448](https://github.com/DragonOS-Community/DragonOS/pull/448)) 95- bugfix: 修复因rsdp v1 v2版本问题,导致ACPI无法正常初始化的bug ([#454](https://github.com/DragonOS-Community/DragonOS/pull/454)) 96- bugfix: 修正由于bus的driver、device强弱引用关系 不正确从而导致对象被释放的bug ([#483](https://github.com/DragonOS-Community/DragonOS/pull/483)) 97- bugfix: 修复文件关闭后epoll还持有对应描述符的文件弱引用的bug ([#455](https://github.com/DragonOS-Community/DragonOS/pull/455)) 98- bugfix: 修复无法sleep的问题以及进程处于block(true)状态时无法被信号唤醒&唤醒后不处理信号的问题 ([#470](https://github.com/DragonOS-Community/DragonOS/pull/470)) 99 100## 更新内容-用户环境 101 102### 新特性 103 104- feature: 新增init程序dragonreach ([#391](https://github.com/DragonOS-Community/DragonOS/pull/391)) 105- featurn: 新增shell程序NovaShell ([#456](https://github.com/DragonOS-Community/DragonOS/pull/456)) 106- featurn: 新增文本编辑器Held ([#583](https://github.com/DragonOS-Community/DragonOS/pull/583)) 107- featurn: 能够支持gcc,tar,redis等程序运行 108 109## 源码、发布版镜像下载 110 111  您可以通过以下方式获得源代码: 112 113### 通过Git获取 114 115- 您可以访问[https://github.com/DragonOS-Community/DragonOS/releases](https://github.com/DragonOS-Community/DragonOS/releases)下载发布版的代码,以及编译好的,可运行的磁盘镜像。 116 117### 通过DragonOS软件镜像站获取 118 119  为解决国内访问GitHub慢、不稳定的问题,同时为了方便开发者们下载DragonOS的每个版本的代码,我们特意搭建了镜像站,您可以通过以下地址访问镜像站: 120 121  您可以通过镜像站获取到DragonOS的代码压缩包,以及编译好的可运行的磁盘镜像。 122 123- [https://mirrors.DragonOS.org.cn](https://mirrors.DragonOS.org.cn) 124- [https://git.mirrors.DragonOS.org.cn](https://git.mirrors.DragonOS.org.cn) 125 126## 开放源代码声明 127 128:::{note} 129为促进DragonOS项目的健康发展,DragonOS以GPLv2开源协议进行发布。所有能获得到DragonOS源代码以及相应的软件制品(包括但不限于二进制副本、文档)的人,都能享有我们通过GPLv2协议授予您的权利,同时您也需要遵守协议中规定的义务。 130 131这是一个相当严格的,保护开源软件健康发展,不被侵占的协议。 132 133对于大部分的善意的人们而言,您不会违反我们的开源协议。 134 135我们鼓励DragonOS的自由传播、推广,但是请确保所有行为没有侵犯他人的合法权益,也没有违反GPLv2协议。 136 137请特别注意,对于违反开源协议的,尤其是**商业闭源使用以及任何剽窃、学术不端行为将会受到严肃的追责**。(这是最容易违反我们的开源协议的场景)。 138 139并且,请注意,按照GPLv2协议的要求,基于DragonOS修改或二次开发的软件,必须同样采用GPLv2协议开源,并标明其基于DragonOS进行了修改。亦需保证这些修改版本的用户能方便的获取到DragonOS的原始版本。 140 141您必须使得DragonOS的开发者们,能够以同样的方式,从公开渠道获取到您二次开发的版本的源代码,否则您将违反GPLv2协议。 142 143关于协议详细内容,还敬请您请阅读项目根目录下的**LICENSE**文件。请注意,按照GPLv2协议的要求,**只有英文原版才具有法律效力**。任何翻译版本都仅供参考。 144::: 145 146### 开源软件使用情况 147 148  DragonOS在开发的过程中,参考了Linux社区的一些设计,或者引入了他们的部分思想,亦或是受到了他们的启发。我们在这里对Linux社区以及Linux社区的贡献者们致以最衷心的感谢! 149 150## 当前版本的所有提交记录 151 152```text 153commit af59116e1b8643862598607dbc6ef7233f3791b5 154Author: MemoryShore <105195940+MemoryShore@users.noreply.github.com> 155Date: Tue Mar 12 17:52:14 2024 +0800 156 157 Update NovaShell version to c6454d3220 (#593) 158 159commit 59fdb447ee4f7b53b1d9c56ec1442aa8c597ac2b 160Author: LoGin <longjin@DragonOS.org> 161Date: Tue Mar 12 16:32:33 2024 +0800 162 163 fix: 键盘中断上下文不再直接操作tty,而是由专门的kthread来渲染 (#592) 164 165 fix: 键盘中断上下文不再直接操作tty,而是由专门的kthread来渲染 166 1.修正psmouse 日志 167 2. 键盘中断上下文不再直接操作tty,而是由专门的kthread来渲染 168 3. 由于调度器设计问题,load balance会由于时序问题导致错误.因此暂时只启用单核. 169 170commit 818a64c77613a9c2152739f1cddad78d61e4a94f 171Author: LoGin <longjin@DragonOS.org> 172Date: Tue Mar 12 15:33:01 2024 +0800 173 174 暂时禁用load balance (#591) 175 176 原因见issue: https://github.com/DragonOS-Community/DragonOS/issues/571 177 178commit 4374bd1d1177dbf94112aee3ea3f8e8c335a599c 179Author: GnoCiYeH <heyicong@dragonos.org> 180Date: Mon Mar 11 19:40:52 2024 +0800 181 182 修复get_random一个问题,添加Held配置文件 (#583) 183 184commit 52bcb59e9286def2b66d766f6bf6f46745795ec8 185Author: GnoCiYeH <heyicong@dragonos.org> 186Date: Mon Mar 11 15:13:37 2024 +0800 187 188 完善Tty的RawMode (#577) 189 190 * 完善rowmode,改掉一部分bug 191 192 * 增加两个ansi拓展功能功能,以及标记部分函数nerve inline 193 194 * 修改do_signal和其他中断上下文锁未关中断,以及拓展tty功能,修改tty几个算法bug 195 196 * 修改两个锁 197 198 * 修改syscall_64 199 200 * update 201 202commit 840045af94ea3391f29e87e968db5d9c48316981 203Author: LoGin <longjin@DragonOS.org> 204Date: Sun Mar 10 21:45:34 2024 +0800 205 206 引入clippy,并根据clippy的提示,修改部分代码 (#575) 207 208commit f4a82aa55c55e1a9233e99a5598e180f0858d877 209Author: LoGin <longjin@DragonOS.org> 210Date: Sun Mar 10 20:42:41 2024 +0800 211 212 Update Novashell version to 473d5c403c (#574) 213 214 - fix: 用户输入不正确的;以及单独输入单引号和双引号造成系统重启 215 - 修改命令解析算法 216 - fix: 输出多余的光标和命令信息 217 218commit 4f8f484930ed3c09ecf4b5b05b1dea14f7b05d8b 219Author: 栗子 <im.lechain@gmail.com> 220Date: Sat Mar 9 21:20:12 2024 +0800 221 222 修复Archlinux下的bootstrap脚本问题, (#552) 223 224 * 修复Archlinux下的bootstrap脚本问题, 225 226 由于archlinux 的 texinfo版本太新导致的gcc docs构建失败 227 使用 MAKEINFO=true 的make环境变量跳过gcc docs构建,绕过问题 228 229 230 --------- 231 232 Co-authored-by: longjin <longjin@dragonos.org> 233 234commit 3055390c25bb7b12279df174689ba09ec50c7d46 235Author: Jomo <xuzihao@dragonos.org> 236Date: Sat Mar 9 11:40:44 2024 +0800 237 238 完善重映射过程中获取新映射区域时的map_flags (#569) 239 240commit 5c4224e5a8244cb0fb32512e70354362fccd6321 241Author: LoGin <longjin@DragonOS.org> 242Date: Fri Mar 8 23:23:06 2024 +0800 243 244 在riscv上实现异常处理,能够进入异常处理程序 (#564) 245 246commit c3dc6f2ff9169c309d1cbf47dcb9e4528d509b2f 247Author: LoGin <longjin@DragonOS.org> 248Date: Fri Mar 8 23:22:48 2024 +0800 249 250 删除一些过时的C代码 (#565) 251 252 * 删除C版本的crc库 253 254 * 删除lockref 255 256 * 删除过时的libc文档以及wait.c 257 258 * 删除过时的C版本kfifo代码及文档 259 260 * 移除未用到的lz4库 261 262 * 删除内核的stdlib.c 263 264 * 删除fabs.c 265 266 * fmt 267 268 * 使得put_string系统调用能够通过tty输出颜色 269 暂且这样改,这一部分应该是用户层面提供的功能,后续删除 270 271 --------- 272 273 Co-authored-by: GnoCiYeH <heyicong@dragonos.org> 274 275commit 5eeefb8c80e5580641d295724f8d2190bd54979c 276Author: Chenzx <109664121+schulice@users.noreply.github.com> 277Date: Fri Mar 8 16:01:22 2024 +0800 278 279 实现SYS_RMDIR (#566) 280 281 * 实现rmdir系统调用,整理do_remove_dir逻辑 282 283commit 338f6903262c5031abad3c8e361813355a27fcdb 284Author: LoGin <longjin@DragonOS.org> 285Date: Tue Mar 5 17:22:04 2024 +0800 286 287 `riscv`: 初始化irq (#560) 288 289 完成riscv的irqchip初始化的代码。 290 291 这是该功能的第一个PR。由于还需要实现timer驱动才能测试,因此该功能将会通过2~3个PR来完成。 292 293commit bc6f0a967c8cb1e9379ced184b25a7722fbda2a4 294Author: 裕依 <68320855+yuyi2439@users.noreply.github.com> 295Date: Mon Mar 4 14:20:01 2024 +0800 296 297 移除relibc和old libc以及旧的shell (#529) 298 299 移除relibc和old libc以及旧的shell 300 301commit f3b05a97ec061e766247b18dc12e2a413b977b14 302Author: GnoCiYeH <heyicong@dragonos.org> 303Date: Mon Mar 4 14:10:26 2024 +0800 304 305 将tty输出接入串口 (#555) 306 307commit cf45dede2e46d9341cec75871fdc1bc5961ba5a2 308Author: MContour <m-contour@qq.com> 309Date: Sun Mar 3 17:20:11 2024 +0800 310 311 让 DragonOS 仓库管理 service 文件 (#548) 312 313 * feat: create `user/services` folder to store service files 314 315commit e28411791f090c421fe4b6fa5956fb1bd362a8d9 316Author: LoGin <longjin@DragonOS.org> 317Date: Sun Mar 3 16:31:08 2024 +0800 318 319 完成中断管理模块重构 (#554) 320 321 - 支持中断共享 322 - 把现有驱动程序移植到新的irq模块 323 - 使用`ProcessorId`标识处理器id 324 - 尚未实现threaded_irq 325 326 性能上,edge irq flow handler里面,对于锁的使用,可能有点问题。为了获取/修改common data还有其他几个结构体的状态,进行了多次加锁和放锁,导致性能降低。这是接下来需要优化的点。 327 328commit 44d051e5864adff6f4ace8a234ef57852840f365 329Author: Donkey Kane <109840258+xiaolin2004@users.noreply.github.com> 330Date: Sun Mar 3 15:22:45 2024 +0800 331 332 Modify dadk config to switch NovaShell revision (#550) 333 334commit 0e7c46939604a02e739546200bea847f4951a963 335Author: GnoCiYeH <heyicong@dragonos.org> 336Date: Fri Mar 1 15:07:00 2024 +0800 337 338 修改事件等待队列对于retain使用方法出错导致唤醒错误 (#551) 339 340commit be60c929c8285d3050e022aa23312a84129e54b2 341Author: GnoCiYeH <heyicong@dragonos.org> 342Date: Wed Feb 28 20:18:49 2024 +0800 343 344 修改tty几个bug (#549) 345 346 * 更改ioctl一处逻辑错误 347 348 * 删除不必要的impl 349 350 * 修改一处bug,并且加入tty的link,为pty做准备 351 352 * 修改一处因为vc的pos和x计算错误导致的溢出 353 354commit 52da9a59374752b4d01907b052135a0d317781dd 355Author: GnoCiYeH <heyicong@dragonos.org> 356Date: Mon Feb 26 15:27:19 2024 +0800 357 358 完成与Linux兼容的Ntty (#517) 359 360 * 已经完成的功能: 361 - 写:printf能够正常在tty输出 362 - 读:与键盘驱动接上 363 - 信号: 能够正常通过ctrl向前台进程发送信号 364 365 * 支持目前的shell,改动printk使其与新版tty兼容。 366 367 * 删除原有tty文件夹,并更改新tty文件名 368 369 * 添加clear清屏程序 370 371 * 实现tty部分ioctl,更改部分问题 372 373commit 9993c0fc61e9603f631bd6748ff0b4fecb7bd483 374Author: R0ronoa <84278015+2447742618@users.noreply.github.com> 375Date: Mon Feb 26 15:03:13 2024 +0800 376 377 添加i8042驱动 改正serio设备文件结构 (#538) 378 379 * 添加i8042驱动 改正serio设备文件结构 380 381commit d2b28acb4d1f160779b25d76afca49ed60ad5d48 382Author: 栗子 <im.lechain@gmail.com> 383Date: Sun Feb 25 19:57:30 2024 +0800 384 385 tools/bootstrap.sh: fix archlinux and zsh issue (#535) 386 387 1. archlinux上没有libssl-dev包,相对应的包名是openssl 388 2. zsh用户使用bootstrap.sh 会因为 source ~/.zshrc 389 导致bash执行很多zsh built-in 指令出现非常多错误 390 3. mkdir命令加-p选项避免对象目录存在时(反复执行脚本)报错 391 4. 修复简单错误(typo gcc 为 binutils) 392 5. 修复bootstrap.sh等脚本无法在非tools/目录执行的错误 393 394commit 7d66c3134c1c5566ac8f8b7524e98650d0480a4a 395Author: LoGin <longjin@DragonOS.org> 396Date: Mon Feb 19 21:40:37 2024 +0800 397 398 添加简单的cpumask (#533) 399 400commit b2ca6800f9d943e5d3656d9b50a099da768775a7 401Author: LoGin <longjin@DragonOS.org> 402Date: Mon Feb 19 19:50:03 2024 +0800 403 404 添加动态申请的bitmap (#532) 405 406commit 0e2c2e8b48369b201f44e0933f775b932b6776ef 407Author: 裕依 <68320855+yuyi2439@users.noreply.github.com> 408Date: Mon Feb 19 19:31:17 2024 +0800 409 410 修正systemerror号 (#527) 411 412 修正systemerror号 413 414commit 4cfa009b87c8431a41fab740ffdbd7b008965c9a 415Author: Jomo <xuzihao@dragonos.org> 416Date: Mon Feb 19 14:54:11 2024 +0800 417 418 实现mremap系统调用 (#518) 419 420 * mremap系统调用 421 422commit 27b967a38a6dd7a266c43b5e705c29dfbbd71ae4 423Author: 裕依 <68320855+yuyi2439@users.noreply.github.com> 424Date: Mon Feb 19 14:53:34 2024 +0800 425 426 添加pread&pwrite (#528) 427 428 添加pread&pwrite 429 430commit 701589559f912deb03eb5176d049d9d07fb29447 431Author: LoGin <longjin@DragonOS.org> 432Date: Mon Feb 19 11:17:23 2024 +0800 433 434 删除无用的C版本bitree和ida/idr. (#526) 435 436 这些数据结构不再使用,将其删除. 437 438commit 196b75dc17b5cc2ed84301bce776e496ddfe1ed1 439Author: LoGin <longjin@DragonOS.org> 440Date: Mon Feb 19 00:56:58 2024 +0800 441 442 把irqdesc添加到sysfs (#525) 443 444 * 把irqdesc添加到sysfs 445 446commit 3bc96fa4a9c01d91cddeb152fe78d6408351c29f 447Author: LoGin <longjin@DragonOS.org> 448Date: Mon Feb 19 00:36:36 2024 +0800 449 450 添加irqdesc的抽象,并在系统初始化时创建irqdesc (#522) 451 452 * 添加irqdesc的抽象,并在系统初始化时创建irqdesc 453 454commit ce5850adbf74ec6c6717bbb5b1749f1fbff4ca0d 455Author: LoGin <longjin@DragonOS.org> 456Date: Sun Feb 18 20:41:41 2024 +0800 457 458 添加irqchip这一层的数据结构(尚未接入真实的芯片) (#520) 459 460 * 添加irqchip这一层的数据结构(尚未接入真实的芯片) 461 462commit ca318c376bd9e39f8fe71f304974f7e99e8e01f4 463Author: LoGin <longjin@DragonOS.org> 464Date: Sat Feb 17 01:51:10 2024 +0800 465 466 update dragonreach to 3d99c3a9d9 (#519) 467 468commit 472f0b3931eadda2bbcc67889d612790f147190b 469Author: LoGin <longjin@DragonOS.org> 470Date: Tue Feb 13 12:14:12 2024 +0800 471 472 update dragonreach to 40362c48d6 (#516) 473 474commit d90848514bea7efd5898f5824b98f1bf2e54de8d 475Author: Luo Jia / Zhouqi Jiang <luojia@hust.edu.cn> 476Date: Sat Feb 10 23:20:50 2024 +0800 477 478 riscv: 更新sbi-rt至0.0.3版本 (#512) 479 480 先前使用git仓库链接的最新更新已发布至crates.io网站 481 482 Signed-off-by: Zhouqi Jiang <luojia@hust.edu.cn> 483 484commit 4ad52e57e612a88ab09413c7ac0072db96a93632 485Author: 裕依2439 <68320855+yuyi2439@users.noreply.github.com> 486Date: Wed Feb 7 18:06:15 2024 +0800 487 488 添加socketpair (#505) 489 490 * 添加对socketpair系统调用的处理 491 492 --------- 493 494 Co-authored-by: LoGin <longjin@DragonOS.org> 495 496commit cb23beb255d8e32b45d879ac19386a3597ca4115 497Author: LoGin <longjin@DragonOS.org> 498Date: Wed Feb 7 17:15:17 2024 +0800 499 500 riscv: probe sbi extensions (#511) 501 502commit f2022a8a1cc4a8e2a85e9061e036e9c491a2fa00 503Author: LoGin <longjin@DragonOS.org> 504Date: Wed Feb 7 13:29:47 2024 +0800 505 506 使用rust编写中断/异常的入口 (#509) 507 508 * 使用rust编写中断/异常的入口 509 510commit d14e28a8a9b023ee8df7c2e8eee43e523134dbb2 511Author: Luo Jia / Zhouqi Jiang <me@luojia.cc> 512Date: Wed Feb 7 11:38:15 2024 +0800 513 514 riscv: 使用sbi-rt库完成SBI操作 (#510) 515 516 未来的其它SBI操作也将使用sbi-rt 517 518 Signed-off-by: Zhouqi Jiang <luojia@hust.edu.cn> 519 520commit fccbe87dcae0f8e8fde611ef60b1f7923126d526 521Author: LoGin <longjin@DragonOS.org> 522Date: Mon Feb 5 14:50:15 2024 +0800 523 524 删除关于zulip的表述,替换为社区论坛 (#508) 525 526commit 5b59005f930266d0e9c0092373e894826150f862 527Author: LoGin <longjin@DragonOS.org> 528Date: Sun Feb 4 15:46:24 2024 +0800 529 530 x86_64: 使用Rust重写内核初始化代码 (#507) 531 532 * x86_64: 使用Rust重写内核初始化代码 533 534commit 453452cc02e2766a28d87dd47bdee37caddc4c44 535Author: LoGin <longjin@DragonOS.org> 536Date: Sun Feb 4 14:35:18 2024 +0800 537 538 初始化riscv的内存管理模块,并且设置保留内存 (#506) 539 540commit a02ce654cf0166720f8569827d0c5b2dfd0ca95a 541Author: Chiichen <chiichen@qq.com> 542Date: Sun Jan 28 20:29:01 2024 +0800 543 544 支持对动态链接文件的加载,支持通过musl工具链编写用户空间程序 (#504) 545 546 支持对动态链接文件的加载,支持通过musl工具链编写用户空间程序 547 548commit 5d549a76ab0cf66651a6614be92dcb481fe7af2a 549Author: Chiichen <chiichen@qq.com> 550Date: Fri Jan 26 20:45:08 2024 +0800 551 552 修改一处常量定义 (#503) 553 554 * 修改一处常量定义 555 556 * 修复ELF加载程序对用户程序加载地址判断不正确的地方 557 558 --------- 559 560 Co-authored-by: longjin <longjin@DragonOS.org> 561 562commit 9284987850c1da2ce607a539eeae8a353a8f6df9 563Author: LoGin <longjin@DragonOS.org> 564Date: Fri Jan 26 18:08:39 2024 +0800 565 566 riscv: 完成UEFI初始化,能正确设置memblock的信息 (#501) 567 568 * riscv: 完成UEFI初始化,能正确设置memblock的信息 569 570 * sbi增加reset功能 571 572 * 把虚拟CPU修改为sifive-u54,使qemu能更正确地模拟硬件行为 573 574 * 修复内存页面映射未设置“DIRTY”、”ACCESSED“、”GLOBAL“位,导致真机page fault的问题 575 576commit a381e482cbe742b2e4bbeaacae134a8131bf3f91 577Author: R0ronoa <84278015+2447742618@users.noreply.github.com> 578Date: Wed Jan 24 19:17:22 2024 +0800 579 580 实现Ps/2鼠标驱动 (#500) 581 582 实现Ps/2鼠标驱动 583 584commit 8d72b68da9339ec97e1b8929bcf2946f0fd83cd5 585Author: Jomo <xuzihao@dragonos.org> 586Date: Wed Jan 24 16:13:15 2024 +0800 587 588 实现内核日志系统 (#489) 589 590 * 实现写日志和读取日志,并且能够在用户态下执行dmesg命令查看日志 591 592 * 通过klogctl实现dmesg 593 594 * 改用ConstGenericRingBuffer作内核缓冲区 595 596 * 更改缓冲区容量 597 598 * 将能够输出到控制台的日志级别改为日志级别枚举类,使用SpinLock控制KMSG,使用枚举类定义SYSLOG_ACTION,将do_syslog系统调用接口放在syscall.rs 599 600 * fix warning 601 602 * 完善do_syslog注释 603 604 * 将KMSG接入kinfo、kdebug等 605 606 * fix warning 607 608 * 修复显示的秒数不正确,·以及无法通过CI的问题 609 610commit d46c6d27941a26de14f55a2bbf956219bcc70871 611Author: 裕依2439 <68320855+yuyi2439@users.noreply.github.com> 612Date: Tue Jan 23 23:36:52 2024 +0800 613 614 修复tty的buf满时始终阻塞的问题 (#493) 615 616 * 修复tty的buf满时始终阻塞的问题 617 618commit 43ef2a0d2b6ec427f6775cd4593c56897dd5bf6d 619Author: LoGin <longjin@DragonOS.org> 620Date: Sun Jan 21 18:45:07 2024 +0800 621 622 添加riscv64的github workflow (#499) 623 624 * 添加riscv64的github workflow 625 626commit 7a29d4fcbcd89a226289c7bf541c2c78623de3ad 627Author: LoGin <longjin@DragonOS.org> 628Date: Sun Jan 21 15:38:12 2024 +0800 629 630 riscv64: 映射uefi systemtable,并完善了riscv64页表填写的部分内容 (#498) 631 632 * 从fdt的chosen段获取几个需要的字段 633 634 * merge patch-early-ioremap 635 636 * feature: 增加early io remap的fixmap功能 637 638 允许在内存管理初始化之前,使用fixmap功能,映射一些物理内存,并记录. 639 640 * riscv64: 映射uefi systemtable,并完善了riscv64页表填写的部分内容 641 642 * 更新仓库网址 643 644commit 3e3c6316aaac5a8a2932bd1746ec8b900dc5e2c6 645Author: Chiichen <chiichen@qq.com> 646Date: Sun Jan 21 01:38:45 2024 +0800 647 648 fix: 修复了ps2和tty初始化顺序的错误 (#497) 649 650 * 修复了ps2和tty初始化顺序的错误 651 652commit 74ffde667e5e7f4ac8ce6d5a5ec2c1403f36cbb0 653Author: LoGin <longjin@DragonOS.org> 654Date: Sun Jan 21 01:21:55 2024 +0800 655 656 feature: 增加early io remap的fixmap功能 (#495) 657 658 允许在内存管理初始化之前,使用fixmap功能,映射一些物理内存,并记录. 659 660commit 1f58c8f5cff8e82441b66789c3dc7c009d52f29a 661Author: LoGin <longjin@DragonOS.org> 662Date: Thu Jan 18 22:39:58 2024 +0800 663 664 Update mini-backtrace版本到e0b1d90940 (#494) 665 666 内容: 667 668 [https://github.com/DragonOS-Community/mini-backtrace/pull/1](https://github.com/DragonOS-Community/mini-backtrace/pull/1) 669 670 Co-authored-by: Yao Zhao <dragonlinux@gmail.com> 671 672commit c75ef4e2126c180bf04c08635ffa5a278619c035 673Author: LoGin <longjin@DragonOS.org> 674Date: Thu Jan 18 00:09:36 2024 +0800 675 676 添加early ioremap支持 (#492) 677 678 * 使用early io remap来映射早期的vesa缓冲区 679 680commit d8e29bffeee4fe4fe76ead3c761dd03f5395e6c2 681Author: R0ronoa <84278015+2447742618@users.noreply.github.com> 682Date: Wed Jan 17 23:57:49 2024 +0800 683 684 增加serio总线和相关trait (#488) 685 686 * 新增serio总线和相关trait 687 688 * 补充SerioDeviceManager和SerioDriverManager 689 690commit 6994f6b113f6fea7b997ec07130a7bdaecfd67b7 691Author: LoGin <longjin@DragonOS.org> 692Date: Mon Jan 15 18:13:22 2024 +0800 693 694 完成bitmap的static bitmap功能,能够静态声明bitmap (#490) 695 696 * 完成bitmap的static bitmap功能,能够静态声明bitmap 697 698commit dcf232f378b36fad754799fc121a70cadc8d5cb3 699Author: LoGin <longjin@DragonOS.org> 700Date: Sun Jan 14 17:00:42 2024 +0800 701 702 当找不到内核日志缓冲区的时候,重试 (#491) 703 704commit 45626c859f95054b76d8b59afcbd24c6b235026f 705Author: LoGin <longjin@DragonOS.org> 706Date: Wed Jan 3 18:00:47 2024 +0800 707 708 riscv: 解析dtb,获取可用内存空间并添加到memblock (#486) 709 710commit 02343d0b5b47c07e7f4ec3818940795b1009fae1 711Author: LoGin <longjin@DragonOS.org> 712Date: Tue Jan 2 14:16:10 2024 +0800 713 714 增加/dev/fb0,能够在用户程序读写帧缓冲区 (#485) 715 716commit e7071df6a47c100381a8bc2000022e82d422361a 717Author: LoGin <longjin@DragonOS.org> 718Date: Mon Jan 1 11:53:49 2024 +0800 719 720 把opengrok.ringotek.cn替换为code.dragonos.org.cn (#484) 721 722commit c566df451ce6dbf2af684333e68b39fdfff86498 723Author: LoGin <longjin@DragonOS.org> 724Date: Mon Jan 1 11:46:51 2024 +0800 725 726 添加帧缓冲区抽象并实现vesafb的驱动 (#483) 727 728 - 添加bootparams对象 729 - 修正由于bus的driver、device强弱引用关系 不正确从而导致对象被释放的bug 730 - 添加vesafb的驱动 731 - 实现framebuffer抽象层 732 - 为通用帧缓冲区抽象实现sysfs的属性 733 - 修改设备号DeviceNumber的定义 734 - 仿照linux,添加initcall,并在第一个内核线程中,调用他们。 735 736commit e3eb08d4d7148d6dad369e2ef27979d1bcf85bd6 737Author: LoGin <longjin@DragonOS.org> 738Date: Sat Dec 30 16:23:26 2023 +0800 739 740 fix: 修复安装musl-gcc的脚本没能正确设置x86_64下的环境变量的问题 (#482) 741 742commit 81294aa2e6b257f0de5e3c28c3f3c89798330836 743Author: LoGin <longjin@DragonOS.org> 744Date: Wed Dec 27 20:32:25 2023 +0800 745 746 fix: 修正bootstrap脚本安装docker后会使得当前终端进入root的问题 (#481) 747 748commit cfd642e2835eded086b6e944427e4a88f03e2fff 749Author: MemoryShore <105195940+MemoryShore@users.noreply.github.com> 750Date: Wed Dec 27 15:07:01 2023 +0800 751 752 更新nova shell的revision为64ad1b282a (#477) 753 754 - 修复tab补全时始终基于根目录的问题 755 - 修复touch命令提示已存在文件的bug 756 757commit 5e948c56506aa0554d212341a7630587d55ebb87 758Author: GnoCiYeH <heyicong@dragonos.org> 759Date: Wed Dec 27 15:02:29 2023 +0800 760 761 修正pipe逻辑,将pipe接入epoll。 (#478) 762 763commit 0d6cf65aa124ee55bfee44cbb5196917ea6522fa 764Author: LoGin <longjin@DragonOS.org> 765Date: Wed Dec 27 14:27:12 2023 +0800 766 767 Patch fix sched and net lockdep error (#479) 768 769 - fix: 修复调度器,软中断,定时器,网络子系统的部分锁的使用不符合锁依赖安全规范的问题 770 - fix: 修复创建pcb时内核栈爆栈的问题 771 - 把异常的trap gate改成intr gate 772 773 --------- 774 775 Co-authored-by: GnoCiYeH <heyicong@dragonos.org> 776 777commit 91e9d4ab55ef960f57a1b6287bc523ca4341f67a 778Author: LoGin <longjin@DragonOS.org> 779Date: Mon Dec 25 23:12:27 2023 +0800 780 781 实现unified-init库,支持收集初始化函数到一个数组,并统一初始化 (#474) 782 783 * 添加“统一初始化”的过程宏,并把SystemError独立成crate 784 785 * 使用unified-init来初始化fbmem 786 787 * 更新workflow,增加内核自动化静态测试 788 789commit f110d330d5493f383067b4e82ebbfb72f40457b2 790Author: LoGin <longjin@DragonOS.org> 791Date: Mon Dec 25 21:54:00 2023 +0800 792 793 修复bootstrap在安装riscv gcc依赖时出现冲突的问题 (#476) 794 795commit 406099704eb939ae23b18f0cfb3ed36c534c1c84 796Author: GnoCiYeH <heyicong@dragonos.org> 797Date: Mon Dec 25 18:08:12 2023 +0800 798 799 增加epoll机制 (#455) 800 801 * ## 增加epoll机制 802 - 增加epoll机制 803 - 添加事件等待队列,提升socket性能 804 - 优化poll,删除不能poll的文件系统中的poll方法 805 806 * 添加细节注释 807 808 * 修复文件关闭后epoll还持有对应描述符的文件弱引用的bug 809 810 * 将EPollEvent设计为POSIX标准 811 812 * 修改s到us转换的计算错误 813 814commit 070e991008b268b7103236a46b8651a983522869 815Author: R0ronoa <84278015+2447742618@users.noreply.github.com> 816Date: Fri Dec 22 16:01:23 2023 +0800 817 818 解决由于Makefile问题导致make run-uefi无法正常启动的问题 (#473) 819 820commit 08a2ee408498b0db4c76c57b149f1cf047758f3c 821Author: LoGin <longjin@DragonOS.org> 822Date: Wed Dec 20 17:24:05 2023 +0800 823 824 添加FrameBuffer的接口抽象&完善设备驱动模型的class相关代码 (#472) 825 826 * 添加FrameBuffer的接口抽象(参考Linux 6.1.9) 827 828 * feature: 完善设备驱动模型的class的抽象,并创建graphics class 829 830 * feature: 完善设备驱动模型中Device对class的处理,使得能够在class下注册设备 831 832 目前注册了fbcon设备,但是由于虚拟终端还没写,因此fbcon的到终端以及帧缓冲区的映射还没加上去. 833 834commit 8612b6ce7afc903999ccf0b65bd65019484d2fad 835Author: LoGin <longjin@DragonOS.org> 836Date: Tue Dec 19 11:56:14 2023 +0800 837 838 bugfix: 修复无法sleep的问题以及进程处于block(true)状态时无法被信号唤醒&唤醒后不处理信号的问题 (#470) 839 840commit 24ff1faffb3d610cd55e3c658fd50ea0a0efedfb 841Author: LoGin <longjin@DragonOS.org> 842Date: Mon Dec 18 17:44:53 2023 +0800 843 844 doc: 修改Rust代码注释风格文档 (#471) 845 846commit 111c5407ccb7774695c8047cf895481d3387fda9 847Author: LoGin <longjin@DragonOS.org> 848Date: Sun Dec 17 21:08:03 2023 +0800 849 850 设置idle进程的时间片为0,降低调度延迟 (#469) 851 852commit 666cffedab3da9684e5abf5eebcbddae63590364 853Author: LoGin <longjin@DragonOS.org> 854Date: Sat Dec 16 22:26:26 2023 +0800 855 856 riscv: 映射内核到指定的虚拟地址,使得kinfo能正常工作 (#468) 857 858 * riscv: 映射内核到指定的虚拟地址,使得kinfo能正常工作 859 860commit cf442324231632df3c3b0da3d2c8e19087863aa0 861Author: LoGin <longjin@DragonOS.org> 862Date: Wed Dec 13 14:44:57 2023 +0800 863 864 修复x86下第二次编译的时候内核没有拷贝到磁盘的问题 (#467) 865 866commit 1a72a751b18cf5bbe7b5b9e91aff530de0c18501 867Author: LoGin <longjin@DragonOS.org> 868Date: Thu Dec 7 02:13:22 2023 +0800 869 870 在riscv输出hello world (#466) 871 872 增加了以下内容: 873 - SBI驱动 874 - 把内核的rust工具链升级到2023-08-15版本 875 - 输出riscv的helloworld 876 - 设置内核是PIC的 877 878commit fca83acef4ba261453f7c71960eacf83d0cf51f4 879Author: LoGin <longjin@DragonOS.org> 880Date: Mon Dec 4 22:10:10 2023 +0800 881 882 修复cache-toolchain.yml的格式问题 (#464) 883 884commit 6c7f966c2f3e3ed299168fc97ae346a85cc6e322 885Author: MemoryShore <105195940+MemoryShore@users.noreply.github.com> 886Date: Mon Dec 4 22:07:30 2023 +0800 887 888 NovaShell替换为默认shell (#456) 889 890 * NovaShell替换为默认shell 891 892 * delete some envvar 893 894 * 自动从dragonos镜像站更新dadk 895 896 * 更新github ci环境 897 898 * 修复yml格式问题 899 900 * 更新novashell到95738b235f 901 902 --------- 903 904 Co-authored-by: longjin <longjin@DragonOS.org> 905 906commit 09d2bf52a6d048929a879748ae26e4fdea45e5d5 907Author: LoGin <longjin@DragonOS.org> 908Date: Sun Dec 3 21:27:43 2023 +0800 909 910 update-dragon-stub-bf2617 (#463) 911 912commit af3543100543b9ac6159dc9f9367a76ff670b1f3 913Author: LoGin <longjin@DragonOS.org> 914Date: Sun Dec 3 17:16:03 2023 +0800 915 916 使用submodule引入DragonStub (#462) 917 918 * 修正构建系统文档: 使用repo工具克隆代码 919 920 * 使用submodule管理 921 922commit 83ed0ebc293d5a10245089f627f52770fd5b9dd4 923Author: LoGin <longjin@DragonOS.org> 924Date: Sun Dec 3 14:51:21 2023 +0800 925 926 修正构建系统文档: 使用repo工具克隆代码 (#461) 927 928commit 01090de77ef263b81edf449b77320d5fa28569de 929Author: LoGin <longjin@DragonOS.org> 930Date: Sun Dec 3 14:40:13 2023 +0800 931 932 使用DragonStub引导riscv下的DragonOS内核 (#460) 933 934commit 4fda81ce81939d83b74c8042d6fb4223deff3685 935Author: LoGin <longjin@DragonOS.org> 936Date: Sat Nov 25 12:07:39 2023 +0800 937 938 使得DragonOS kernel 能为riscv64编译通过(尚未能启动) (#457) 939 940 * 使得DragonOS kernel 能为riscv64编译通过(尚未能启动) 941 942 * 修正了系统调用号声明不正确的问题,同时添加了编译配置文档 943 944commit a1fd1cf1cbe6934221f95213ce02b21f21add225 945Author: LoGin <longjin@DragonOS.org> 946Date: Thu Nov 23 21:12:16 2023 +0800 947 948 把tar的二进制镜像源更换为国内源 (#458) 949 950commit cc5feaf67b914ecf701abcba70c01da149755491 951Author: Jomo <2512364506@qq.com> 952Date: Thu Nov 23 21:04:32 2023 +0800 953 954 bugfix: 修复因rsdp v1 v2版本问题,导致ACPI无法正常初始化的bug (#454) 955 956 bugfix: 修复因rsdp v1 v2版本问题,导致ACPI无法正常初始化的bug 957 958commit c89d0c12377cd406a9b7465d7c087aeb9faefa51 959Author: LoGin <longjin@DragonOS.org> 960Date: Tue Nov 21 20:24:43 2023 +0800 961 962 修复bootstrap的一系列脚本忘了source最新的shell rc的问题 (#453) 963 964commit c75089286e9d49cef8d039446bf570c1bd4d2550 965Author: LoGin <longjin@DragonOS.org> 966Date: Tue Nov 21 13:42:18 2023 +0800 967 968 调整脚本,使得能够创建riscv的磁盘镜像,并引导进入riscv下的grub (#450) 969 970 * 安装musl toolchain以及riscv相关的工具链 971 972 * 调整脚本,使得能够创建riscv的磁盘镜像,并引导进入riscv下的grub 973 974 ```shell 975 export ARCH=riscv64 976 make write_diskimage 977 make qemu 978 ``` 979 980 即可在serial_opt.txt看到进入grub的提示信息 981 982commit 48a3baa9b1d24dd1fc037cd9961945708c5c9b71 983Author: LoGin <longjin@DragonOS.org> 984Date: Tue Nov 21 13:42:06 2023 +0800 985 986 安装musl toolchain以及riscv相关的工具链 (#449) 987 988commit 84e7f7100664123d8ebc6b0f983c96242d15c396 989Author: LoGin <longjin@DragonOS.org> 990Date: Mon Nov 20 15:51:41 2023 +0800 991 992 添加赞助商雅安数字经济运营有限公司的信息到readme (#451) 993 994commit 99dbf38d2e279ea70e9e186753fd37001dbb749f 995Author: LoGin <longjin@DragonOS.org> 996Date: Sun Nov 19 11:42:53 2023 +0800 997 998 bugfix: 当物理机具有多个memory area的时候,无法正确使用这些区域的问题.以及在内核代码处出现内存空洞而导致无法正常运行的问题. (#448) 999 1000 * bugfix: 当物理机具有多个memory area的时候,无法正确使用这些区域的问题.以及在内核代码处出现内存空洞而导致无法正常运行的问题. 1001 1002 解决方案: 1003 1. 分区域把空闲页添加到buddy 1004 2. 将内核链接到16M的位置,以避免uefi带来的内存空洞. 1005 1006 这个值是因为我看到linux的救援内核也是在16M的地址,因此猜测厂商不会使用这块内存. 1007 尽管uefi规范讲的是固件可以采用任何地址,内核需要使用内核重定位技术去避免遇到内存空洞,但我没有这么做. 1008 1009commit 46e234aef65c081393fb7652e0ad2bae26786ce4 1010Author: LoGin <longjin@DragonOS.org> 1011Date: Fri Nov 17 21:25:15 2023 +0800 1012 1013 使用cargo管理一些C文件的编译,并且移动部分汇编到arch目录 (#447) 1014 1015 * 使用cargo管理main.c的编译 1016 1017 * 使用build-scripts编译架构相关的c代码 1018 1019 * 删除elf.h 1020 1021commit e4600f7f7d8f2295dbf970812ab1fcab81eb6eae 1022Author: Jomo <2512364506@qq.com> 1023Date: Fri Nov 17 21:23:01 2023 +0800 1024 1025 Kconfig (#432) 1026 1027 * 内核编译配置 1028 1029 * 将kernel.config的解析代码搬入crate 1030 1031 * 将设置feature函数放入CargoHandler中 1032 1033commit 11f78b73e7b18ef04e05e63612f8027eda0740e7 1034Author: LoGin <longjin@DragonOS.org> 1035Date: Fri Nov 17 20:05:57 2023 +0800 1036 1037 使用kernel-build脚本来编译所有的asm文件 (#445) 1038 1039commit e4fb6c9754e535861a5e67db29fb6e8c2e9c8469 1040Author: LoGin <longjin@DragonOS.org> 1041Date: Fri Nov 17 12:26:10 2023 +0800 1042 1043 美化readme (#446) 1044 1045 * 美化readme 1046 1047commit e26ca418df7af685226d12d7f22fe1785ba163e4 1048Author: LoGin <longjin@DragonOS.org> 1049Date: Fri Nov 17 11:26:26 2023 +0800 1050 1051 把内核构建脚本单独独立成一个crate (#444) 1052 1053commit a0c98cd4df88474f2efd927930862df50e016b73 1054Author: Jomo <xuzihao@dragonos.org> 1055Date: Thu Nov 16 21:37:04 2023 +0800 1056 1057 解决textui framework初始化成功后串口无法正常换行 (#443) 1058 1059commit edaf015400f83967c2fc940f07be0dbb5792246f 1060Author: LoGin <longjin@DragonOS.org> 1061Date: Wed Nov 15 17:17:56 2023 +0800 1062 1063 默认安装gnu tar到dragonos的/usr/bin目录下 (#442) 1064 1065commit 0fb515b011967be01006cf88d788793dbbce2967 1066Author: LoGin <longjin@DragonOS.org> 1067Date: Wed Nov 15 15:39:35 2023 +0800 1068 1069 完善pipe系统调用以及openat系统调用 (#441) 1070 1071commit bf4a48994a2b284ee34aa49a66b4dec1b6ebc07c 1072Author: LoGin <longjin@DragonOS.org> 1073Date: Mon Nov 13 23:02:21 2023 +0800 1074 1075 新增系统调用,并对照linux-6.1.9改写sys_wait4 (#440) 1076 1077 * 1. 新增以下系统调用 1078 - SYS_LSTAT 1079 - SYS_READV 1080 - SYS_ACCESS 1081 - SYS_UNLINK 1082 - SYS_CHMOD 1083 - SYS_FCHMOD 1084 - SYS_UMASK 1085 - SYS_SYSINFO 1086 - SYS_CLOCK_GETTIME 1087 - SYS_FCHMODAT 1088 - SYS_FACCESSAT 1089 1090 2. 修改sys_wait4,使得其部分符合Linux的行为(还是有些地方不符合的,详情请对比linux-6.1.9的sys_wait4接口) 1091 1092commit 9b0abe6da72176086c3188e0599fda950562668f 1093Author: LoGin <longjin@DragonOS.org> 1094Date: Sun Nov 12 21:23:48 2023 +0800 1095 1096 添加access、faccessat、faccessat2 (#439) 1097 1098commit 0d9b7d9240ef65c3e603a371db57a80d26a7b9dd 1099Author: LoGin <longjin@DragonOS.org> 1100Date: Sun Nov 12 18:44:15 2023 +0800 1101 1102 添加prlimit64系统调用 (#438) 1103 1104 注意: 目前仅支持读取默认的rlimit值,尚不支持设置rlimit值. 1105 1106commit 4a2d7191a3a6208b72e1d163c0235f566720f79a 1107Author: LoGin <longjin@DragonOS.org> 1108Date: Sun Nov 12 17:53:36 2023 +0800 1109 1110 bugfix: 解决shell在exec的时候传递的argv不正确的bug (#437) 1111 1112commit 709498cac1f2134b2a5e089366ee7136ee029369 1113Author: LoGin <longjin@DragonOS.org> 1114Date: Sun Nov 12 17:40:45 2023 +0800 1115 1116 feat: sys_readlink && sys_readlinkat (#436) 1117 1118commit be8cdf4b8edcd9579572672411f4489039dea313 1119Author: LoGin <longjin@DragonOS.org> 1120Date: Sun Nov 12 16:36:17 2023 +0800 1121 1122 增加getrusage,并把apic timer的频率调整为系统HZ (#435) 1123 1124commit 02e249f30bfe08b8a5cde1226ca0161f9e370927 1125Author: LoGin <longjin@DragonOS.org> 1126Date: Sun Nov 12 14:11:33 2023 +0800 1127 1128 添加uid、gid的系统调用(暴力封装返回0) (#434) 1129 1130commit ea8ad4d42e52016fe581a2451165146f109dfd6e 1131Author: LoGin <longjin@DragonOS.org> 1132Date: Sun Nov 12 13:40:17 2023 +0800 1133 1134 修正fork的时候没有正确拷贝vm holes的bug (#433) 1135 1136commit c47fe90440fb7c6c82953e28a4b9597b22924758 1137Author: LoGin <longjin@DragonOS.org> 1138Date: Thu Nov 9 18:20:27 2023 +0800 1139 1140 增加accept4系统调用 (#431) 1141 1142commit 393f691574844544e76231379e4938e9046be7b9 1143Author: LoGin <longjin@DragonOS.org> 1144Date: Thu Nov 9 16:48:45 2023 +0800 1145 1146 增加gettid以及线程组group leader相关的逻辑 (#430) 1147 1148 * 增加gettid以及线程组group leader相关的逻辑 1149 1150commit 0facf623d638816d7d01a700e19a52c3c16a8fa1 1151Author: LoGin <longjin@DragonOS.org> 1152Date: Thu Nov 9 00:10:34 2023 +0800 1153 1154 修正文件open和写入的错误 (#429) 1155 1156 1. 修正文件open的时候可能错误的把inode清空的问题(如果当前inode是mknod创建的) 1157 2. 修正fat和block device中,对文件写入部分的错误问题 1158 1159commit 04babc3faba81997149ed11fda2ed03b4bbf4700 1160Author: MemoryShore <105195940+MemoryShore@users.noreply.github.com> 1161Date: Wed Nov 8 21:42:51 2023 +0800 1162 1163 实现fat文件系统的truncate方法 (#428) 1164 1165commit df2f5051ac645f600f2aefcaff3a9608b2c0de3f 1166Author: LoGin <longjin@DragonOS.org> 1167Date: Wed Nov 8 20:01:51 2023 +0800 1168 1169 添加read the docs yml文件 (#427) 1170 1171commit 5eaf536d5b81c234f9aea560e0c9d994fac3eb76 1172Author: LoGin <longjin@DragonOS.org> 1173Date: Wed Nov 8 19:41:08 2023 +0800 1174 1175 添加初始化DragonOS的Rust-Musl工具链的脚本. (#426) 1176 1177commit 7b32f5080f42bcbf7d2421013f3ea53c776a063c 1178Author: LoGin <longjin@DragonOS.org> 1179Date: Tue Nov 7 21:39:27 2023 +0800 1180 1181 增加内存分配日志监视器 (#424) 1182 1183 * 完成内存日志监视,并输出日志到文件 1184 * 修复进程退出后,procfs查看进程status文件会崩溃的问题 1185 * 修复signal唤醒进程的判断条件问题 1186 1187commit 70a4e5550a9fb49b537092287c3ddc36448c5b78 1188Author: LoGin <longjin@DragonOS.org> 1189Date: Tue Nov 7 20:32:06 2023 +0800 1190 1191 使用rust重写了apic的驱动 (#425) 1192 1193 * 使用rust重写了apic的驱动。 1194 1195 * 修正signal和调度器的部分加锁逻辑,增加回退策略。 1196 1197 * 把pcb的flags字段替换为无锁的 1198 1199 * 使用cargo管理apic的编译 1200 1201 * 删除makefile中指定PIC的变量 1202 1203 --------- 1204 1205 Co-authored-by: Gou Ngai <ymd7823@outlook.com> 1206 Co-authored-by: 櫻井桃華 <89176634+TihayaKousaka@users.noreply.github.com> 1207 1208commit 4935c74f326cd4e0854959c0ec8ab1d726c05e41 1209Author: LoGin <longjin@DragonOS.org> 1210Date: Mon Nov 6 17:27:05 2023 +0800 1211 1212 添加自定义的crc库(支持crc64) (#423) 1213 1214commit 1effcfe519c06f04303340281fe9f62096184a74 1215Author: GnoCiYeH <heyicong@dragonos.org> 1216Date: Sun Nov 5 23:15:46 2023 +0800 1217 1218 修复readdir以及读磁盘时buf传错问题 (#422) 1219 1220 * 修复readdir以及读磁盘时buf传错问题 1221 1222 * fix potential memory problem 1223 1224 --------- 1225 1226 Co-authored-by: longjin <longjin@DragonOS.org> 1227 1228commit 1603395155fc166de0ac5f80369526e196526ed2 1229Author: GnoCiYeH <heyicong@dragonos.org> 1230Date: Sat Nov 4 21:39:44 2023 +0800 1231 1232 支持syscall快速系统调用指令 (#417) 1233 1234 * 支持syscall快速系统调用指令 1235 1236 --------- 1237 1238 Co-authored-by: LoGin <longjin@DragonOS.org> 1239 1240commit 2f6f547ae05c19871138e558ba6943ff07f4c68c 1241Author: GnoCiYeH <heyicong@dragonos.org> 1242Date: Sat Nov 4 21:35:25 2023 +0800 1243 1244 Patch fix sched (#419) 1245 1246 1.解决waitqueue sleep的时候,由于preempt count不为0,导致sched失败,从而导致该waitqueue下一次wakeup时,会把pcb多次加入调度队列的bug 1247 2.修复socket inode 的read和write方法里面没有使用no_preempt的问题 1248 3. 修复cpu0的内核栈由于脏数据导致new_idle的时候set pcb报错的问题 1249 1250 --------- 1251 1252 Co-authored-by: longjin <longjin@DragonOS.org> 1253 1254commit 8058ccb307bbaf06a5810af32bcba3e41ab9fb93 1255Author: LoGin <longjin@DragonOS.org> 1256Date: Fri Nov 3 21:01:09 2023 +0800 1257 1258 修复bootstrap.sh未能自动更换gcc镜像源, 未能自动安装docker的问题 (#418) 1259 1260commit d470019b1e675a04473cbb3c3eeaf180c8665e6d 1261Author: LoGin <longjin@DragonOS.org> 1262Date: Wed Nov 1 22:12:19 2023 +0800 1263 1264 patch add mini backtrace (#416) 1265 1266 * support rust panic backtrace 1267 1268 mini-backtrace has llvm's unwind cpp source to support backtrace/unwind. 1269 as unwind/backtrace needs dynamically allocates memory, mini-backtrace 1270 uses stack memory to capture fixed number of backtrace to avoid heap 1271 allocation. 1272 as unwind library needed, it needs to turn on eh_frame_hdr 1273 1274 * 修改忘了生成kernel.elf的问题 1275 1276 * 设置backtrace是默认的feature 1277 1278 --------- 1279 1280 Co-authored-by: Yao Zhao <dragonlinux@gmail.com> 1281 1282commit 8b3d1688daac2aaf4e87403ecda5467a01464f81 1283Author: yuyi2439 <68320855+yuyi2439@users.noreply.github.com> 1284Date: Wed Nov 1 21:11:55 2023 +0800 1285 1286 把pci驱动的读取acpi mcfg的代码,调整为从新的acpi驱动来读取 (#413) 1287 1288 * 把pci驱动的读取acpi mcfg的代码,调整为从新的acpi驱动来读取 1289 1290commit 971462be94ba0a5c74af7a5f9653dfabd4932a63 1291Author: GnoCiYeH <heyicong@dragonos.org> 1292Date: Wed Nov 1 20:55:57 2023 +0800 1293 1294 添加thread和futex机制 (#411) 1295 1296 * 初步实现clone系统调用 1297 1298 * 实现了线程,初步实现futex机制,添加了几个小的系统调用 1299 1300 * 更改pcb引用计数问题 1301 1302 * 解决死锁bug 1303 1304 --------- 1305 1306 Co-authored-by: LoGin <longjin@DragonOS.org> 1307 1308commit 665f4a7707e33f3b4d2fde77113fa3d13b5b52c4 1309Author: Chiichen <39649411+Chiichen@users.noreply.github.com> 1310Date: Wed Nov 1 14:18:00 2023 +0800 1311 1312 更新了使用clangd的.gitignore (#415) 1313 1314 Co-authored-by: chiichen <chiichen@qq.com> 1315 1316commit 77799ccaaca276fe127448d169f0e035837cce44 1317Author: Wu Mianzhi <31810920+Hdksg10@users.noreply.github.com> 1318Date: Mon Oct 30 00:08:52 2023 +0800 1319 1320 完成e1000e驱动 (#393) 1321 1322 * 测试RESET 1323 1324 * 测试RESET 1325 1326 * 基于轮询的实现 1327 1328 * 规范化部分unsafe的使用 1329 1330 * 完成中断处理函数,同时去除了不必要的内存拷贝行为,准备编写napi机制 1331 1332 * 实现现有协议栈下的部分napi机制;修复了内存泄漏的问题;添加了一部分代码注释 1333 1334 * 去除部分无用代码 1335 1336 * 去除一些无用代码 1337 1338 * 适配新的驱动模型 1339 1340 * 完成msi中断测试 1341 1342 * 去除一些无用代码 1343 1344 * 格式化代码 1345 1346 * 增加了一些注释,提高代码可读性 1347 1348 * 去除无关文件 1349 1350 * 优化了读取mac地址的方式,提高可读性 1351 1352commit fbe6becd6dd3cd72643707e0088f20364ac1b166 1353Author: LoGin <longjin@DragonOS.org> 1354Date: Thu Oct 26 23:08:39 2023 +0800 1355 1356 添加rust重构版本的HPET驱动和tsc驱动,并使用HPET校准tsc频率和cpu总线频率 (#412) 1357 1358 * 添加rust重构版本的HPET驱动和tsc驱动,并使用HPET校准tsc频率和cpu总线频率 1359 1360 * 把hpet.c移动到arch文件夹下 1361 1362commit ad1d649eddee4aa8ac81b2f44bc99da462a6a813 1363Author: GnoCiYeH <heyicong@dragonos.org> 1364Date: Tue Oct 24 19:59:01 2023 +0800 1365 1366 更新系统调用号 (#410) 1367 1368 * 更新系统调用号 1369 1370 * 更改DragonReach和relibc版本 1371 1372 * update 1373 1374 * update 1375 1376 * fix warning 1377 1378 --------- 1379 1380 Co-authored-by: longjin <longjin@RinGoTek.cn> 1381 1382commit f4082b86b15989a1d43e62050c6ba9b363c91ece 1383Author: LoGin <longjin@DragonOS.org> 1384Date: Tue Oct 24 16:40:49 2023 +0800 1385 1386 更改系统调用的寄存器传参顺序 (#409) 1387 1388commit 40314b30ab2a7e1fd06a05a00f693e644e446035 1389Author: Xiaoye Zheng <xiaoyez@zju.edu.cn> 1390Date: Tue Oct 24 14:31:56 2023 +0800 1391 1392 DragonOS虚拟化 (#389) 1393 1394 * try some ioctl flow & kvm device 1395 1396 * add sys ioctl 1397 1398 * 删掉一些debug信息 1399 1400 * 修改run-qemu.sh脚本,在QEMU中enable vmx 1401 1402 * 修改cr0,cr4,msr寄存器enable VMX operations 1403 1404 * enable vmx operation 1405 1406 * allocate memory for vmcs with bug 1407 1408 * allocate memory for vmcs 1409 1410 * cpu virt-50% 1411 1412 * single vcpu virt 1413 1414 * add vmcs fields 1415 1416 * CPU virt overall flow with bug 1417 1418 * run vmlaunch success 1419 1420 * run CPU virt with bug 1421 1422 * 成功运行non-root模式的guest 1423 1424 * 成功运行vmexit,进入vmx_return函数 1425 1426 * 成功运行vmlaunch, vmexit, vmresume 1427 1428 * vmexit handler with bug 1429 1430 * 完成vmexit cpuid handler 1431 1432 * fix vmresume guest状态恢复的bug 1433 1434 * 增加vm ioctl 1435 1436 * refactor kvm 50% 1437 1438 * refactor kvm 80% 1439 1440 * FIXME: kvm vmlaunch failed 1441 1442 * vmlaunch success 1443 1444 * FIXME: output error 1445 1446 * update guest_rsp 1447 1448 * cpu virt refactor 1449 1450 * add mmu related struct 1451 1452 * add usermemory region workflow 1453 1454 * add mem-virt workflow 1455 1456 * add mem-virt 1457 1458 * refactor code 1459 1460 * add vcpu ioctl set_regs 1461 1462 * rename hypervisor to vm & solve some deadlock bugs 1463 1464 * workout mem pipeline 1465 1466 * fix vmcs control setting bugs 1467 1468 * refactor segment regs initialization 1469 1470 * resovle conficts 1471 1472 * resovle conficts 1473 1474 * format code 1475 1476commit 485e2487616b1d33776b63724d4abc1ae8f506e8 1477Author: LoGin <longjin@DragonOS.org> 1478Date: Tue Oct 24 14:19:26 2023 +0800 1479 1480 修改脚本,只有当磁盘未安装Grub的时候,才执行grub-install. 节省编译时间 (#408) 1481 1482commit 46795849a29eef77fd6f7af548d05ee6e654c5bb 1483Author: LoGin <longjin@DragonOS.org> 1484Date: Tue Oct 24 13:56:57 2023 +0800 1485 1486 修复bootstrap.sh安装顺序导致的问题 (#407) 1487 1488commit 3c82aa56d1b784ea7371100b3e906365be8332fd 1489Author: Chiichen <39649411+Chiichen@users.noreply.github.com> 1490Date: Tue Oct 24 12:02:20 2023 +0800 1491 1492 Signal refactor (#402) 1493 1494 * 初步完成对 signal_types 和 部分signal代码的初始化 1495 1496 * 重构了一部分架构相关代码进入 arch 中 1497 1498 * 基本修改完成,编译通过,后续补上系统调用 1499 1500 * signal基本完成,能实现 Sigaction 系统调用 1501 1502 * 增加了一组枚举抽象 1503 1504 * 进一步重构了一部分C风格的代码 1505 1506 * 继续重构了一部分C风格代码 1507 1508 * 继续完善了一部分逻辑 1509 1510 * 修改了部分代码逻辑 1511 1512 * 补充了 fork 中复制信号信息的逻辑 1513 1514 * 修复了 kallsysms 未转义引号的问题 1515 1516 * 修复了无法跳转到 sigreturn 的bug 1517 1518 * 调通了 signal 1519 1520 * 实现了 signal 架构抽象层的 trait 1521 1522 * 为信号提供了默认处理函数 1523 1524 * 基本完成了 signal 的大体逻辑 1525 1526 * 修复了 Sigreturn 的一个小错误,格式化 1527 1528 * 修复了一个编译器漏报错误 1529 1530 * 删除了多余的代码 1531 1532 * 修改测试程序为链接 relibc 1533 1534 * 修复了信号处理过程中浮点寄存器错误保存的问题 1535 1536 * 修复了一个结构体错误引起的无法在relibc下正确运行的错误 1537 1538 * 修复了链接 relibc 时无法正常从信号处理返回的 bug 1539 1540 * 修复了 signal 处理流程中 rsp 指针错误导致的浮点运算触发GP 1541 1542 * 修复了一个死锁问题,解决了默认处理函数无法进入调度导致的bug 1543 1544 * 修复了一些错误 1545 1546 * 修改了 relibc 依赖版本号 1547 1548 * 删除了多余的 imports 1549 1550 * 删除一些debug日志 1551 1552 * 删除内核 signal.h 文件 1553 1554 * 删除一个依赖项 1555 1556 * 删除了 binding 相关依赖项 1557 1558commit d7f5742a206c6c25ed30009796eb8248429f0a1e 1559Author: LoGin <longjin@DragonOS.org> 1560Date: Mon Oct 23 21:40:39 2023 +0800 1561 1562 初步编写cpu信息获取的代码 (#406) 1563 1564 1. 启动时从acpi获取所有的cpu信息并存到SMP_BOOT_DATA 1565 2. 注册cpu subsystem/bus到sysfs(暂时未添加内容) 1566 1567 todo: 1568 1. build_cpu_map(在X86_64SmpManager中) 1569 2. 实现cpu mask 1570 3. 把cpu设备注册到sysfs 1571 1572commit 7eda31b2f07c6ef41dc0d2bd13051f0fce5e5976 1573Author: LoGin <longjin@DragonOS.org> 1574Date: Sun Oct 22 22:00:16 2023 +0800 1575 1576 在Sysfs中引入ACPI Firmware (#405) 1577 1578 - bugfix: multiboot2启动的信息因为没及时转存导致后面无法从其中进行查询的bug 1579 - feature: 把acpi表、acpi bus加入sysfs 1580 1581commit 01bd5258cf467326819c77584713fbc6ffe4fb32 1582Author: LoGin <longjin@DragonOS.org> 1583Date: Sun Oct 22 12:22:41 2023 +0800 1584 1585 解决shell无法输入大写字母'P'的问题 (#404) 1586 1587commit a03c4f9dee5705207325c56629c0ccd219168f10 1588Author: LoGin <longjin@DragonOS.org> 1589Date: Fri Oct 20 22:11:33 2023 +0800 1590 1591 设备驱动模型:完善platform bus相关内容。并注册串口到sysfs (#403) 1592 1593 * 完成初始化platform bus 1594 * 删除旧的sysfs 1595 * 把uart驱动移动到tty/serial文件夹下 1596 * 完成将串口挂载到sysfs 1597 * 修复vfs系统调用未能follow symlink的问题 1598 * 修复shell未能正确获取pwd的问题 1599 1600commit 06d5e247267cb65b84a80f219853ccd0f384b16e 1601Author: LoGin <longjin@DragonOS.org> 1602Date: Wed Oct 11 00:53:15 2023 +0800 1603 1604 完善设备驱动模型,基于kset、kobj来维护对象之间的关系 (#401) 1605 1606 * 使用kobj和kset管理/sys文件夹下的对象 1607 1608 * 修改notifier,把action从u64换为泛型。 1609 1610 * 完善设备驱动模型,基于kset、kobj来维护对象之间的关系 1611 1612commit 6abb8bd7c0ee7746f0b6cf682a0c4d112a2ef6a3 1613Author: LoGin <longjin@DragonOS.org> 1614Date: Mon Oct 9 01:55:58 2023 +0800 1615 1616 在github workflow的工具链配置文件里面添加rust-src组件 (#400) 1617 1618commit 9e9ffedfc59cd89f4cdbd7984abbb2ac19ea9575 1619Author: Plucky923 <107762234+Plucky923@users.noreply.github.com> 1620Date: Mon Oct 9 01:11:14 2023 +0800 1621 1622 syscall: 完善syscall代码 (#387) 1623 1624 * syscall: 完善syscall代码 1625 1626 修改代码使这段代码可以使用语法糖。修改SYS_READ和SYS_WRITE的安全检查为userbuffer 1627 1628 Signed-off-by: plucky <m202372036@hust.edu.cn> 1629 1630 * syscall: 修改SYS_READ和SYS_WRITE的权限检查为userbuffer 1631 1632 Signed-off-by: plucky <m202372036@hust.edu.cn> 1633 1634 * syscall: 有不知道如何修改的错误 1635 1636 Signed-off-by: plucky <m202372036@hust.edu.cn> 1637 1638 * syscall: 修改SYS_READ和SYS_WRITE并编译通过 1639 1640 Signed-off-by: plucky <m202372036@hust.edu.cn> 1641 1642commit 865f4ba4cdce23b154844d6d297f75033f3dcf70 1643Author: GnoCiYeH <heyicong@dragonos.org> 1644Date: Mon Oct 9 01:10:14 2023 +0800 1645 1646 修改shell执行exec时传参错误问题 (#399) 1647 1648 * 修改shell执行exec时传参错误问题 1649 1650commit b7b843beddea12cdedda90f6129b7c9980876112 1651Author: GnoCiYeH <heyicong@dragonos.org> 1652Date: Mon Oct 9 00:58:08 2023 +0800 1653 1654 wait4系统调用支持options字段 (#398) 1655 1656commit 2dbef7859f0af395ccec348f17cf0b79ed56e003 1657Author: GnoCiYeH <heyicong@dragonos.org> 1658Date: Mon Oct 9 00:28:08 2023 +0800 1659 1660 命名管道系统调用以及文件系统兼容特殊文件类型的接口 (#397) 1661 1662 * 修复pipe2在读端或写端关闭后还阻塞问题。 1663 1664 * 实现命名管道机制,增加特殊文件类型兼容普通文件系统的接口。 1665 1666 * 普通文件系统能够适配特殊文件(命名管道等) 1667 1668commit 34e6d6c80f36494088db3284f85d1a2c63aa18a8 1669Author: yuyi2439 <68320855+yuyi2439@users.noreply.github.com> 1670Date: Sun Oct 8 14:26:17 2023 +0800 1671 1672 实现free指令+修复 mountfs的内存泄露问题(#394) 1673 1674 * 实现meminfo文件 1675 1676 * 成功实现free指令,添加了一些string有关函数,并进行一些无影响的小改动 1677 1678 1679 * 解决内存泄露的问题:mountfs inode的wrap方法使用了Arc::into_raw而没有from_raw,导致inode始终无法释放 1680 1681 --------- 1682 1683 Co-authored-by: LoGin <longjin@DragonOS.org> 1684 Co-authored-by: longjin <longjin@RinGoTek.cn> 1685 1686commit afc95d5c2541c27c762091ad38fdffabe355db5a 1687Author: YJwu2023 <yujianwu2019@gmail.com> 1688Date: Tue Oct 3 12:09:29 2023 +0800 1689 1690 完善pci中断的设计 (#392) 1691 1692 * 完善pci中断的设计 1693 1694commit 876cb89ecf7c1bf1646bfc392efcbafacad2262f 1695Author: GnoCiYeH <heyicong@dragonos.org> 1696Date: Tue Oct 3 12:03:34 2023 +0800 1697 1698 修复pipe2在读端或写端关闭后还阻塞问题 (#396) 1699 1700 * 修复pipe2在读端或写端关闭后还阻塞问题。 1701 1702 * update 1703 1704 * update 1705 1706 * 修改cloexec 1707 1708 --------- 1709 1710 Co-authored-by: longjin <longjin@RinGoTek.cn> 1711 1712commit fba5623183378da6b120caafca120615328efa2e 1713Author: LoGin <longjin@DragonOS.org> 1714Date: Mon Oct 2 20:46:19 2023 +0800 1715 1716 引入intertrait库,支持trait之间的互相转换 (#395) 1717 1718 * 能过编译(test还没法跑) 1719 1720 * 初始化intertrait转换库 1721 1722 * update license of intertrait 1723 1724commit bb0e4d4131046a69bbccdc0cdf1d5db51a2c6126 1725Author: GnoCiYeH <heyicong@dragonos.org> 1726Date: Sat Sep 30 16:36:06 2023 +0800 1727 1728 使用DragonReach启动shell,修改getdents (#391) 1729 1730 * 使用DragonReach启动shell,修改getdents 1731 1732 * 更改关闭pipe时断言报错问题,以及DragonReach启动shell阶段版本 1733 1734 * 修改目录结构 1735 1736 * update 1737 1738 * 解决小问题 1739 1740 * 调整dragon reach版本号 1741 1742 * 设置make clean的时候不清空应用程序的缓存。 1743 指定relibc版本号 1744 1745 --------- 1746 1747 Co-authored-by: longjin <longjin@RinGoTek.cn> 1748 1749commit 0dd8ff43325b494ea777dbe6e552fdc77b9dabc8 1750Author: YJwu2023 <yujianwu2019@gmail.com> 1751Date: Thu Sep 21 23:23:57 2023 +0800 1752 1753 添加中断 (#370) 1754 1755 * 添加中断 1756 1757 * dhcp更改为全局socketset 1758 1759 * 解决异常中断的问题,使得能够使用中断来处理网卡数据 1760 1761 --------- 1762 1763 Co-authored-by: longjin <longjin@RinGoTek.cn> 1764 1765commit 6b4e7a2972cc06663754c0e35a0e541987006fa4 1766Author: LoGin <longjin@DragonOS.org> 1767Date: Tue Sep 19 19:46:59 2023 +0800 1768 1769 增加kernfs (#386) 1770 1771 * 增加kernfs 1772 1773 * kernfs文档 1774 1775commit ae5ede03bebe5c4b593ad7a350f0945f1367be7c 1776Author: LoGin <longjin@DragonOS.org> 1777Date: Mon Sep 18 07:38:04 2023 +0800 1778 1779 bugfix: bus/device manager对卸载逻辑的处理错误 (#385) 1780 1781 * 移动位置 1782 1783 * bugfix: bus/device manager对卸载逻辑的处理错误 1784 1785commit 7ae679ddd6481897a86523a52fad3b060254fa5b 1786Author: LoGin <longjin@DragonOS.org> 1787Date: Sun Sep 17 15:41:01 2023 +0800 1788 1789 ahci内存越界问题修复+ mm的bug修复+在rust中解析acpi table (#384) 1790 1791 * bugfix: 修复了Flusher Drop的时候没有自动刷新TLB的bug 1792 1793 * 解决进程管理未初始化时,trap.c尝试打印pid导致错误的问题 1794 1795 * 设置kmalloc默认强制清0 1796 1797 * 修复ahci驱动的内存越界问题 1798 * 修复mmio buddy忘记归还buddy block的问题 1799 * 新增acpi模块,暂时能解析acpi tables 1800 1801commit 11110997465e858757da54b5ce28d7c22690aaff 1802Author: hanjiezhou <zhouhanjie@dragonos.org> 1803Date: Sat Sep 16 20:14:56 2023 +0800 1804 1805 修改 tty 中resize bug (#383) 1806 1807commit 71474bc6829b3cd831df7ce24ea059557996524d 1808Author: LoGin <longjin@DragonOS.org> 1809Date: Sat Sep 16 16:16:43 2023 +0800 1810 1811 修复drop fd时,文件描述符引用不为0的问题 (#382) 1812 1813commit de71ec259cd21c782f4031b01635eb8ad3df1943 1814Author: LoGin <longjin@DragonOS.org> 1815Date: Fri Sep 15 19:44:11 2023 +0800 1816 1817 修正由于init proc union导致的无法运行的问题 && 修正由于内核线程启动后默认sleep的行为导致init进程无法正常运行的bug (#381) 1818 1819 1. 修正由于init proc union导致的无法运行的问题 1820 2. 修正由于内核线程启动后默认sleep的行为导致init进程无法正常运行的bug 1821 1822commit 1496ba7b24a5e6954291ca9643b9f3cec567479a 1823Author: LoGin <longjin@DragonOS.org> 1824Date: Fri Sep 15 14:58:19 2023 +0800 1825 1826 进程管理模块重构完成 (#380) 1827 1828 * 添加新版pcb的数据结构 (#273) 1829 1830 * 将pcb中的内容分类,分别加锁 (#305) 1831 1832 * 进程管理重构:完成fork的主体逻辑 (#309) 1833 1834 1.完成fork的主体逻辑 1835 2.将文件系统接到新的pcb上 1836 3.经过思考,暂时弃用signal机制,待进程管理重构完成后,重写signal机制.原因是原本的signal机制太烂了 1837 1838 * chdir getcwd pid pgid ppid (#310) 1839 1840 1841 --------- 1842 1843 Co-authored-by: longjin <longjin@RinGoTek.cn> 1844 1845 * 删除旧的fork以及signal的代码,并调整fork/vfork/execve系统调用 (#325) 1846 1847 1.删除旧的fork 1848 2.删除signal相关代码,等进程管理重构结束之后,再重新写. 1849 3.调整了fork/vfork/execve系统调用 1850 1851 * 实现切换进程的代码 (#331) 1852 1853 1854 1855 * 实现切换进程的代码 1856 1857 * Patch modify preempt (#332) 1858 1859 * 修改设置preempt的代码 1860 1861 * 删除rust的list和refcount 1862 1863 * 为每个核心初始化idle进程 (#333) 1864 1865 * 为每个核心初始化idle进程 1866 1867 * 完成了新的内核线程机制 (#335) 1868 1869 * 调度器的pcb替换为新的Arc<ProcessControlBlock>,把调度器队列锁从 RwSpinLock 替换为了 SpinLock (#336) 1870 1871 * 把调度器的pcb替换为新的Arc<ProcessControlBlock> 1872 1873 * 把调度器队列锁从 RwSpinLock 替换为了 SpinLock ,修改了签名以通过编译 1874 1875 * 修正一些双重加锁、细节问题 1876 1877 --------- 1878 1879 Co-authored-by: longjin <longjin@RinGoTek.cn> 1880 1881 * github workflow自动检查代码是否格式化 1882 1883 * cache toolchain yml 1884 1885 * 调整rust版本的waitqueue中的pcb为新版的pcb (#343) 1886 1887 * 解决设置rust workspace带来的“工具链不一致”的问题 (#344) 1888 1889 1890 * 解决设置rust workspace带来的“工具链不一致”的问题 1891 1892 更改workflow 1893 1894 * 调整pcb的sched_info和rwlock,以避免调度器死锁问题 (#341) 1895 1896 * 调整pcb的sched_info和rwlock,以避免调度器死锁问题 1897 1898 * 修改为在 WriterGuard 中维护 Irq_guard 1899 1900 * 修正了 write_irqsave方法 1901 1902 * 优化了代码 1903 1904 * 把 set state 操作从 wakup 移动到 sched_enqueue 中 1905 1906 * 修正为在 wakeup 中设置 running ,以保留 set_state 的私有性 1907 1908 * 移除了 process_wakeup 1909 1910 * 实现进程退出的逻辑 (#340) 1911 1912 实现进程退出的逻辑 1913 1914 * 标志进程sleep 1915 1916 * 修复wakeup的问题 1917 1918 --------- 1919 1920 Co-authored-by: longjin <longjin@RinGoTek.cn> 1921 1922 * rust 重构 completion (#350) 1923 1924 * 完成了completion的基本结构,待完善上级调用 1925 1926 * 用SpinLock保护结构体并发安全 1927 1928 * 修改原子变量为u32,修复符号错误 1929 1930 * irq guard 1931 1932 * 修改为具有内部可变性的结构体 1933 1934 * temp fix 1935 1936 * 修复了由于进程持有自旋锁导致的不被调度的问题 1937 1938 * 对 complete 系列方法上锁,保护 done 数据并发安全 1939 1940 * 移除了未使用的依赖 1941 1942 * 重写显示刷新驱动 (#363) 1943 1944 * 重构显示刷新驱动 1945 1946 * Patch refactor process management (#366) 1947 1948 * 维护进程树 1949 1950 * 维护进程树 1951 1952 * 更改代码结构 1953 1954 * 新建进程时,设置cwd 1955 1956 * 调整adopt childern函数,降低开销 1957 1958 --------- 1959 1960 Co-authored-by: longjin <longjin@RinGoTek.cn> 1961 1962 * waitqueue兼容C部分 (#351) 1963 1964 * PATH 1965 1966 * safe init 1967 1968 * waitqueue兼容C部分 1969 1970 * waitqueue兼容C部分 1971 1972 * 删除semaphore.c,在ps2_keyboard中使用waitqueue 1973 1974 * 删除semaphore.c,在ps2_keyboard中使用waitqueue 1975 1976 * current_pcb的C兼容 1977 1978 * current_pcb的C兼容 1979 1980 * current_pcb的C兼容 1981 1982 * fmt 1983 1984 * current_pcb的兼容 1985 1986 * 针对修改 1987 1988 * 调整代码 1989 1990 * fmt 1991 1992 * 删除pcb的set flags 1993 1994 * 更改函数名 1995 1996 --------- 1997 1998 Co-authored-by: longjin <longjin@RinGoTek.cn> 1999 2000 * merge master 2001 2002 * Patch debug process management refactor (#372) 2003 2004 * 能够调通,执行完textui_init 2005 2006 * 能跑到initial kernel thread 2007 2008 * fmt 2009 2010 * 能够正常初始化所有服务(尚未能切换到用户程序) 2011 2012 * 删除部分无用的extern 2013 2014 * 存在问题:ap处理器启动后,bsp的smp_init函数return之后就出错了,怀疑是栈损坏 2015 2016 * 解决smp启动由于未换栈导致的内存访问错误 2017 2018 * debug 2019 2020 * 1 2021 2022 * 1 2023 2024 * lock no preempt 2025 2026 * 调通 2027 2028 * 优化代码,删除一些调试日志 2029 2030 * fix 2031 2032 * 使用rust重写wait4 (#377) 2033 2034 * 维护进程树 2035 2036 * 维护进程树 2037 2038 * 更改代码结构 2039 2040 * 新建进程时,设置cwd 2041 2042 * 调整adopt childern函数,降低开销 2043 2044 * wait4 2045 2046 * 删除c_sys_wait4 2047 2048 * 使用userbuffer保护裸指针 2049 2050 --------- 2051 2052 Co-authored-by: longjin <longjin@RinGoTek.cn> 2053 2054 * 消除warning 2055 2056 * 1. 修正未设置cpu executing的问题 2057 2058 * 修正kthread机制可能存在的内存泄露问题 2059 2060 * 删除pcb文档 2061 2062 * 删除C的tss struct 2063 2064 --------- 2065 2066 Co-authored-by: Bullet <93781792+GP-Bullet@users.noreply.github.com> 2067 Co-authored-by: Chiichen <39649411+Chiichen@users.noreply.github.com> 2068 Co-authored-by: hanjiezhou <zhouhanjie@dragonos.org> 2069 Co-authored-by: GnoCiYeH <118462160+GnoCiYeH@users.noreply.github.com> 2070 Co-authored-by: houmkh <1119644616@qq.com> 2071 2072commit b087521e07f601b30e3d48df788fcc2f09f19566 2073Author: Chiichen <39649411+Chiichen@users.noreply.github.com> 2074Date: Wed Sep 13 18:01:52 2023 +0800 2075 2076 完善设备驱动模型&调试串口驱动 (#379) 2077 2078 * 完成了基本架构重构,正在进行兼容 2079 2080 * 重构了所有 Device Driver ,还没有接上具体设备 2081 2082 * 基本把 Uart 接上了,还没有测试 2083 2084 * 初步完成系统设备初始化 2085 2086 * 初步重构 BlockDevice ,使其兼容新的 Device 结构 2087 2088 * 修改文件系统内的部分函数调用以满足重构后的接口 2089 2090 * 测试完 Uart 设备的功能 2091 2092 * 移除了自动添加的文件 2093 2094 * 修复了 warning 和部分格式 2095 2096 * 解决warning,并且修正sysfs初始化的位置 2097 2098 * Patch fix 2099 2100 * 删除了 sysinfo 的默认实现 2101 2102 * 删除了字符设备读写的 offset 参数 2103 2104 * 修复了 warning 和一些小逻辑错误 2105 2106 --------- 2107 2108 Co-authored-by: longjin <longjin@RinGoTek.cn> 2109 2110commit 9029414af2089cbe7d2d2097be2e116c09beb6dd 2111Author: zhaoyao73 <zhaoyao73@users.noreply.github.com> 2112Date: Wed Sep 13 01:49:03 2023 -0400 2113 2114 use demangled names (#375) 2115 2116 there is no change for c symbols 2117 rust symbols name will be more readable 2118 2119commit 22c9db312a5f02b48a1bf7853dc53434da65e28a 2120Author: hanjiezhou <zhouhanjie@dragonos.org> 2121Date: Wed Sep 13 00:58:01 2023 +0800 2122 2123 Patch pipe2 (#364) 2124 2125commit 68312d3c68b9df288589f9636417745d46520ad2 2126Author: Xshine <gshine@m.scnu.edu.cn> 2127Date: Wed Sep 13 00:26:41 2023 +0800 2128 2129 修正造成 http server 的错误 (#378) 2130 2131 * 修正造成 http server 的错误 2132 2133commit 285de542f3ddb09bfdcad0a7022bd722f4f1cace 2134Author: zhaoyao73 <zhaoyao73@users.noreply.github.com> 2135Date: Wed Sep 6 06:08:52 2023 -0400 2136 2137 modify kernel link script (#373) 2138 2139 put rust text between _text and _etext, so rust symbols are included in 2140 kallsyms, traceback could use them. 2141 2142 modify grub_auto_install.sh to add arch linux support 2143 2144commit 3b0bf43bbb196a74a64cee8ecd2d4eb884c5e9ee 2145Author: zhaoyao73 <zhaoyao73@users.noreply.github.com> 2146Date: Mon Sep 4 00:57:52 2023 -0400 2147 2148 fix compiler warnings in pci_irq.c (#371) 2149 2150 Co-authored-by: Yao Zhao <dragonlinux@gmail.com> 2151 2152commit 607783d7414735d1dc54afb0c7346ed8e13303a2 2153Author: zhaoyao73 <zhaoyao73@users.noreply.github.com> 2154Date: Sun Sep 3 01:36:02 2023 -0400 2155 2156 fix pci_irq.c - memory leak - wrong irq_name allocated length (#367) 2157 2158 add function declaration to avoid compiling warning 2159 2160 add extra packages need for build 2161 2162 Co-authored-by: Yao Zhao <dragonlinux@gmail.com> 2163 2164commit d9113303d8e1d449a122f7a5f66453fbe7c26a46 2165Author: LoGin <longjin@DragonOS.org> 2166Date: Sun Sep 3 13:33:27 2023 +0800 2167 2168 relibc与旧的C库同时开始编译 (#369) 2169 2170commit 4895ff6968ae8f24c7a0d55dce6ae23082d60e3b 2171Author: yuyi2439 <68320855+yuyi2439@users.noreply.github.com> 2172Date: Sat Sep 2 00:27:41 2023 +0800 2173 2174 fix: DragonOS-Community/DragonOS#358 (#361) 2175 2176commit 8479f19979aa9ddc4e383651cc56a7a24bd94e21 2177Author: GnoCiYeH <118462160+GnoCiYeH@users.noreply.github.com> 2178Date: Fri Sep 1 21:46:36 2023 +0800 2179 2180 添加rust-gdb调试内核文档 (#357) 2181 2182 * 编写使用GDB调试内核文档 2183 2184commit 863a3cff06e618a5f0fc03920dfd5732452344c9 2185Author: LoGin <longjin@DragonOS.org> 2186Date: Thu Aug 31 20:25:00 2023 +0800 2187 2188 添加与rust std接口相同的once库 (#353) 2189 2190commit a3ef8f8ad5248e3424113871950eb9c80eeeb99e 2191Author: GnoCiYeH <118462160+GnoCiYeH@users.noreply.github.com> 2192Date: Thu Aug 31 19:52:32 2023 +0800 2193 2194 修改RamFS目前存在的BUG (#354) 2195 2196 * 修改RamFS目前存在的BUG 2197 2198commit c757940bd61b0125e037a59eb77565e42470201b 2199Author: YJwu2023 <yujianwu2019@gmail.com> 2200Date: Thu Aug 31 17:54:49 2023 +0800 2201 2202 优化makefile (#352) 2203 2204commit 2dd9f0c7503d1a325713764fedbce06fcab3a06b 2205Author: LoGin <longjin@DragonOS.org> 2206Date: Mon Aug 28 15:54:52 2023 +0800 2207 2208 mmio buddy新增guard,把映射的职责交由其守卫进行处理,并且守卫被drop的时候自动释放内存 (#346) 2209 2210 * mmio buddy新增guard,把映射的职责交由其守卫进行处理,并且守卫被drop的时候自动释放内存 2211 2212commit 8d94ea66a3eb3e02039730c8d08e9bead8c344b8 2213Author: YJwu2023 <yujianwu2019@gmail.com> 2214Date: Mon Aug 28 15:43:07 2023 +0800 2215 2216 Patch ahci (#348) 2217 2218 * Modify the ahci module and delete the useless c code 2219 2220 修改ahci使其不再依赖旧的pci函数 2221 删除旧的pci、msi函数代码 2222 2223commit f5df0e79c67a9508bc6a50fccded9dec78e7ed9d 2224Author: LoGin <longjin@DragonOS.org> 2225Date: Mon Aug 28 15:29:00 2023 +0800 2226 2227 解决userbufferwriter的长度错误问题,并修复gettimeofday的pagefault问题 (#349) 2228 2229 * 解决userbufferwriter的长度错误问题,并修复gettimeofday的pagefault问题 2230 2231commit ddb9d91712b6e87aa15b9cc4a8fdec8ae0996a5e 2232Author: Xshine <gshine@m.scnu.edu.cn> 2233Date: Sun Aug 27 15:54:19 2023 +0800 2234 2235 将 io 移动至 vfs 目录,并修正引用路径 (#339) 2236 2237 * 将 io 移动至 vfs 目录,并修正引用路径 2238 2239 * fix bug in makefile 2240 2241commit e92d02281005bac31fe80e9070ac4a2a6cef0419 2242Author: LoGin <longjin@DragonOS.org> 2243Date: Sat Aug 26 21:36:13 2023 +0800 2244 2245 解决设置rust workspace带来的“工具链不一致”的问题 (#345) 2246 2247 更改workflow 2248 2249commit 9a367aa7eb1576a235f5f52ee542132a1e5e39df 2250Author: LoGin <longjin@DragonOS.org> 2251Date: Thu Aug 24 18:50:52 2023 +0800 2252 2253 添加github workflow,检查代码是否已经格式化 (#342) 2254 2255 * 添加github workflow,检查代码是否已经格式化 2256 2257commit f09a98329c4ec77010de86d126516310b407455a 2258Author: LoGin <longjin@DragonOS.org> 2259Date: Wed Aug 23 16:09:29 2023 +0800 2260 2261 1. 修复bootstrap.sh在安装libssl-dev之前,安装dadk,从而导致错误的问题 (#338) 2262 2263 1. 修复bootstrap.sh在安装libssl-dev之前,安装dadk,从而导致错误的问题 2264 2. 构建系统的文档,补充对vnc端口的说明 2265 2266commit 4537ffb7e9afb2d96f2adcee32c8ac84b056d2e5 2267Author: Chiichen <39649411+Chiichen@users.noreply.github.com> 2268Date: Mon Aug 21 18:37:31 2023 +0800 2269 2270 实现了对用户空间传入指针抽象的UserBufferReader/Writer,来检验用户空间指针地址并提供一定的功能抽象 (#326) 2271 2272 * 构建了 Userbuffer 对用户空间传入的指针进行了抽象,并提供了读写操作 2273 2274 * 分成了Reader和Writer,增加了从地址读和写入到指定地址的功能 2275 2276 * 删除了多余的注释 2277 2278 * 增加了直接获取BufferWriter切片的函数 2279 2280 * 通过 where 的一个 Trick 实现了 const generic 和后续功能 2281 2282 * 替换为了 core::slice::align_to 实现&[u8}转&[T] 2283 2284 * 移除了 userbuffer.rs 2285 2286 * 提供了独立获取缓冲区中不同偏移量位置的数据的函数 2287 2288 * 替换了部分系统调用(还未测试 2289 2290 * 简化了代码 2291 2292 * 修复内存越界的bug 2293 2294 --------- 2295 2296 Co-authored-by: longjin <longjin@RinGoTek.cn> 2297 2298commit abe3a6ea3c543425e2cad12722e8a658b324d515 2299Author: hanjiezhou <zhouhanjie@dragonos.org> 2300Date: Sun Aug 20 00:19:36 2023 +0800 2301 2302 Patch refactor scm and textui (#289) 2303 2304 * 重构屏幕管理器和textui框架 2305 2306 * 切换字体为spleen,并增加对字体的抽象 2307 2308 * 修正文档 2309 2310 --------- 2311 2312 Co-authored-by: longjin <longjin@RinGoTek.cn> 2313 2314``` 2315