|
cf7f801e1d
|
feat(mm): 简单实现fat文件系统的文件映射 (#840)
- 添加文件映射相关接口,目前已简单实现fat文件系统的私有映射和共享映射
- 添加msync系统调用(由于当前未实现脏页自动回写,需要手动调用msync进行同步)
- 简单实现PageCache(暂时使用HashMap进行文件页号与页的映射)
- 添加新的PageFlags标志结构,原PageFlags改名为EntryFlags
- 参考linux使用protection_map映射表进行页面标志的获取
- 添加页面回收机制
- 添加页面回收内核线程
- 缺页中断使用的锁修改为irq_save; 添加脏页回写机制
- 修复do_cow_page死锁问题
- 访问非法地址时发送信号终止进程
- 修复重复插入反向vma表的错误
- 添加test_filemap文件映射测试程序
|
2024-09-05 00:35:27 +08:00 |
|
|
dc9b4fea1b
|
fix: pipe 读取/写入阻塞时,无法kill进程的问题 (#889)
|
2024-08-27 13:01:11 +08:00 |
|
|
a1fc824fcc
|
fix: 修复键盘码解析器没能正确处理类似ctrl C的控制字符的问题 (#877)
* fix: 修复键盘码解析器没能正确处理类似ctrl C的控制字符的问题
* fix: 解决ntty潜在的panic问题
|
2024-08-06 19:51:45 +08:00 |
|
|
bd70d2d1f4
|
chore: 将工具链更新到2024-07-23 (#864)
* chore: 将工具链更新到2024-07-23
|
2024-07-25 00:55:02 +08:00 |
|
|
0897bd8e75
|
fix(log): 修复pr #814 的问题 (#821)
|
2024-05-16 17:32:39 +08:00 |
|
|
2eab6dd743
|
feat(log): 将内核日志统一为新的logger (#814)
|
2024-05-16 17:25:23 +08:00 |
|
|
0102d69fdd
|
feat:(riscv/intr) 实现riscv plic驱动,能处理外部中断 (#799)
* feat:(riscv/intr) 实现riscv plic驱动,能处理外部中断
- 实现riscv plic驱动,能处理外部中断
- 能收到virtio-blk的中断
- 实现fasteoi interrupt handler
|
2024-05-01 21:11:32 +08:00 |
|
|
7db6e06354
|
feat(bitmap): Add bit and for AllocBitMap (#793)
|
2024-04-30 18:45:01 +08:00 |
|
|
bde4a334c1
|
修复了未初始化时ui显示模块内存越界的问题,优化了代码结构 (#789)
|
2024-04-29 18:55:17 +08:00 |
|
|
13b057cc0f
|
fix(libs/lib_ui): fix the display errors when system initialize (#779)
* 修复了系统初启动时会花屏的bug
|
2024-04-28 16:49:19 +08:00 |
|
|
471d65cf15
|
feat(riscv): riscv下能够运行hello world用户程序 (#770)
* feat(riscv): riscv下能够运行hello world用户程序
|
2024-04-26 11:59:47 +08:00 |
|
|
731bc2b32d
|
feat(virtio): riscv: 添加virtio-blk driver,并在riscv下能够正确挂载FAT32 (#761)
|
2024-04-23 17:19:54 +08:00 |
|
|
a17651b14b
|
feat(mm): 实现缺页中断处理,支持页面延迟分配和写时拷贝,以及用户栈自动拓展 (#715)
* 实现缺页中断处理
* 完善页表拷贝逻辑
* 优化代码结构
* 完善缺页异常信息
* 修改大页映射逻辑
* 修正大页映射错误
* 添加缺页中断支持标志
* 实现用户栈自动拓展功能
|
2024-04-22 15:10:47 +08:00 |
|
|
1074eb34e7
|
feat(filesystem): 引入Umount系统调用 (#719)
* feat(filesystem): 引入Umount系统调用
* 将所有ENOSYS误用更正
* 修复了一个使同一个挂载点可以挂载2个文件系统的bug
* 统一注释,增强程序稳定性,统一接口。注意:Umount时在fatfs的路径要使用大写,此受限于当前文件系统设计。
|
2024-04-15 13:02:04 +08:00 |
|
|
3959e94df3
|
bugfix: 修复smp启动的时候,损坏0号核心的idle进程的内核栈的问题 (#711)
---------
Co-authored-by: longjin <longjin@DragonOS.org>
Co-authored-by: heyicong <heyicong@dragonos.org>
|
2024-04-10 19:00:32 +08:00 |
|
|
6fc066ac11
|
实现SystemV共享内存 (#690)
* 实现SystemV共享内存
* 测试shm
* 添加测试程序
* 完善细节
* 修正shm的时间数据错误的问题
* fix: devfs的metadata权限为0x777的错误
---------
Co-authored-by: longjin <longjin@DragonOS.org>
|
2024-04-07 14:04:19 +08:00 |
|
|
06560afa2a
|
Patch feat robust futex (#682)
* feat: 实现robust lock机制
* 前面更改vscode,修改回来
* 修改dadk的路径
* 提交.gitnore和.cargo,删除LICENSE,修改README
* 修改一个warn
* 删除.rustc_info.json
* 删除target文件夹
* 恢复DragonOS的LICENSE,删除Cargo.lock
* 将校验用户空间地址的代码写入函数内;将部分match分支用ok_or代替
* 修改wakeup函数获取running queue时unwrap一个None值发生panic
* 测试程序使用syscalls库进行系统调用
|
2024-04-06 22:26:34 +08:00 |
|
|
f0c87a897f
|
重写调度模块 (#679)
## PR:重写调度模块
---
### 完成的部分
- 实现cfs调度策略
- 搭建框架,后续功能可以迭代开发
- 目前能跑,未测试性能
### 需要后续接力的部分
- 实现组内调度(task_group)
- 实现跨核负载均衡(pelt算法)
- 接入sysfs,实现参数动态调节(sched_stat等)
- nice值以及priority等参数的设置及调优
|
2024-04-05 17:54:48 +08:00 |
|
|
dfe53cf087
|
实现pty,附带测试程序 (#685)
* 实现pty,附带测试程序
* fmt ** clippy
* 将file层的锁粒度缩小,从而不使用no_preempt。更改pipe在sleep部分的bug
* 修复拼写错误
|
2024-04-05 00:21:55 +08:00 |
|
|
b8ed38251d
|
修复jiffy时钟过快问题,启用gettimeofday测试,修改mount测试 (#680)
1. 把clock tick rate与hpet频率关联起来
2. 修复墙上时间同步错误的问题
3. 启用时间watch dog.
4. 修复时间流逝速度异常
---------
Co-authored-by: longjin <longjin@DragonOS.org>
|
2024-04-05 00:06:26 +08:00 |
|
|
9430523b46
|
使nproc可以正确获取到cpu核心数 (#689)
|
2024-04-04 12:41:19 +08:00 |
|
|
2755467c79
|
支持绘制24位深和16位深显示缓冲区 (#640)
* 修复了初始化时显示,边界条件的一个bug
* 解决了内存未初始前字体显示的兼容性问题
* 支持绘制24位深和16位深显示缓冲区
|
2024-03-25 16:39:36 +08:00 |
|
|
b5b571e026
|
修复内核的clippy检查报错 (#637)
修复内核的clippy检查报错
---------
Co-authored-by: Samuel Dai <947309196@qq.com>
Co-authored-by: Donkey Kane <109840258+xiaolin2004@users.noreply.github.com>
Co-authored-by: themildwind <107623059+themildwind@users.noreply.github.com>
Co-authored-by: GnoCiYeH <heyicong@dragonos.org>
Co-authored-by: MemoryShore <105195940+MemoryShore@users.noreply.github.com>
Co-authored-by: 曾俊 <110876916+ZZJJWarth@users.noreply.github.com>
Co-authored-by: sun5etop <146408999+sun5etop@users.noreply.github.com>
Co-authored-by: hmt <114841534+1037827920@users.noreply.github.com>
Co-authored-by: laokengwt <143977175+laokengwt@users.noreply.github.com>
Co-authored-by: TTaq <103996388+TTaq@users.noreply.github.com>
Co-authored-by: Jomo <2512364506@qq.com>
Co-authored-by: Samuel Dai <samuka007@qq.com>
Co-authored-by: sspphh <112558065+sspphh@users.noreply.github.com>
|
2024-03-22 23:26:39 +08:00 |
|
|
8cb2e9b344
|
重写SMP模块 (#633)
* 修复cpumask的迭代器的错误。
* 能进系统(AP核心还没有初始化自身)
* 初始化ap core
* 修改percpu
* 删除无用的cpu.c
* riscv64编译通过
|
2024-03-21 19:19:32 +08:00 |
|
|
59fdb447ee
|
fix: 键盘中断上下文不再直接操作tty,而是由专门的kthread来渲染 (#592)
fix: 键盘中断上下文不再直接操作tty,而是由专门的kthread来渲染
1.修正psmouse 日志
2. 键盘中断上下文不再直接操作tty,而是由专门的kthread来渲染
3. 由于调度器设计问题,load balance会由于时序问题导致错误.因此暂时只启用单核.
|
2024-03-12 16:32:33 +08:00 |
|
|
52bcb59e92
|
完善Tty的RawMode (#577)
* 完善rowmode,改掉一部分bug
* 增加两个ansi拓展功能功能,以及标记部分函数nerve inline
* 修改do_signal和其他中断上下文锁未关中断,以及拓展tty功能,修改tty几个算法bug
* 修改两个锁
* 修改syscall_64
* update
|
2024-03-11 15:13:37 +08:00 |
|
|
840045af94
|
引入clippy,并根据clippy的提示,修改部分代码 (#575)
|
2024-03-10 21:45:34 +08:00 |
|
|
5c4224e5a8
|
在riscv上实现异常处理,能够进入异常处理程序 (#564)
|
2024-03-08 23:23:06 +08:00 |
|
|
c3dc6f2ff9
|
删除一些过时的C代码 (#565)
* 删除C版本的crc库
* 删除lockref
* 删除过时的libc文档以及wait.c
* 删除过时的C版本kfifo代码及文档
* 移除未用到的lz4库
* 删除内核的stdlib.c
* 删除fabs.c
* fmt
* 使得put_string系统调用能够通过tty输出颜色
暂且这样改,这一部分应该是用户层面提供的功能,后续删除
---------
Co-authored-by: GnoCiYeH <heyicong@dragonos.org>
|
2024-03-08 23:22:48 +08:00 |
|
|
338f690326
|
riscv : 初始化irq (#560)
完成riscv的irqchip初始化的代码。
这是该功能的第一个PR。由于还需要实现timer驱动才能测试,因此该功能将会通过2~3个PR来完成。
|
2024-03-05 17:22:04 +08:00 |
|
|
f3b05a97ec
|
将tty输出接入串口 (#555)
|
2024-03-04 14:10:26 +08:00 |
|
|
e28411791f
|
完成中断管理模块重构 (#554)
- 支持中断共享
- 把现有驱动程序移植到新的irq模块
- 使用`ProcessorId`标识处理器id
- 尚未实现threaded_irq
性能上,edge irq flow handler里面,对于锁的使用,可能有点问题。为了获取/修改common data还有其他几个结构体的状态,进行了多次加锁和放锁,导致性能降低。这是接下来需要优化的点。
|
2024-03-03 16:31:08 +08:00 |
|
|
0e7c469396
|
修改事件等待队列对于retain使用方法出错导致唤醒错误 (#551)
|
2024-03-01 15:07:00 +08:00 |
|
|
52da9a5937
|
完成与Linux兼容的Ntty (#517)
* 已经完成的功能:
- 写:printf能够正常在tty输出
- 读:与键盘驱动接上
- 信号: 能够正常通过ctrl向前台进程发送信号
* 支持目前的shell,改动printk使其与新版tty兼容。
* 删除原有tty文件夹,并更改新tty文件名
* 添加clear清屏程序
* 实现tty部分ioctl,更改部分问题
|
2024-02-26 15:27:19 +08:00 |
|
|
7d66c3134c
|
添加简单的cpumask (#533)
|
2024-02-19 21:40:37 +08:00 |
|
|
701589559f
|
删除无用的C版本bitree和ida/idr. (#526)
这些数据结构不再使用,将其删除.
|
2024-02-19 11:17:23 +08:00 |
|
|
f2022a8a1c
|
使用rust编写中断/异常的入口 (#509)
* 使用rust编写中断/异常的入口
|
2024-02-07 13:29:47 +08:00 |
|
|
5b59005f93
|
x86_64: 使用Rust重写内核初始化代码 (#507)
* x86_64: 使用Rust重写内核初始化代码
|
2024-02-04 15:46:24 +08:00 |
|
|
453452cc02
|
初始化riscv的内存管理模块,并且设置保留内存 (#506)
|
2024-02-04 14:35:18 +08:00 |
|
|
a02ce654cf
|
支持对动态链接文件的加载,支持通过musl工具链编写用户空间程序 (#504)
支持对动态链接文件的加载,支持通过musl工具链编写用户空间程序
|
2024-01-28 20:29:01 +08:00 |
|
|
5d549a76ab
|
修改一处常量定义 (#503)
* 修改一处常量定义
* 修复ELF加载程序对用户程序加载地址判断不正确的地方
---------
Co-authored-by: longjin <longjin@DragonOS.org>
|
2024-01-26 20:45:08 +08:00 |
|
|
8d72b68da9
|
实现内核日志系统 (#489)
* 实现写日志和读取日志,并且能够在用户态下执行dmesg命令查看日志
* 通过klogctl实现dmesg
* 改用ConstGenericRingBuffer作内核缓冲区
* 更改缓冲区容量
* 将能够输出到控制台的日志级别改为日志级别枚举类,使用SpinLock控制KMSG,使用枚举类定义SYSLOG_ACTION,将do_syslog系统调用接口放在syscall.rs
* fix warning
* 完善do_syslog注释
* 将KMSG接入kinfo、kdebug等
* fix warning
* 修复显示的秒数不正确,·以及无法通过CI的问题
|
2024-01-24 16:13:15 +08:00 |
|
|
e7071df6a4
|
把opengrok.ringotek.cn替换为code.dragonos.org.cn (#484)
|
2024-01-01 11:53:49 +08:00 |
|
|
0d6cf65aa1
|
Patch fix sched and net lockdep error (#479)
- fix: 修复调度器,软中断,定时器,网络子系统的部分锁的使用不符合锁依赖安全规范的问题
- fix: 修复创建pcb时内核栈爆栈的问题
- 把异常的trap gate改成intr gate
---------
Co-authored-by: GnoCiYeH <heyicong@dragonos.org>
|
2023-12-27 14:27:12 +08:00 |
|
|
91e9d4ab55
|
实现unified-init库,支持收集初始化函数到一个数组,并统一初始化 (#474)
* 添加“统一初始化”的过程宏,并把SystemError独立成crate
* 使用unified-init来初始化fbmem
* 更新workflow,增加内核自动化静态测试
|
2023-12-25 23:12:27 +08:00 |
|
|
406099704e
|
增加epoll机制 (#455)
* ## 增加epoll机制
- 增加epoll机制
- 添加事件等待队列,提升socket性能
- 优化poll,删除不能poll的文件系统中的poll方法
* 添加细节注释
* 修复文件关闭后epoll还持有对应描述符的文件弱引用的bug
* 将EPollEvent设计为POSIX标准
* 修改s到us转换的计算错误
|
2023-12-25 18:08:12 +08:00 |
|
|
1a72a751b1
|
在riscv输出hello world (#466)
增加了以下内容:
- SBI驱动
- 把内核的rust工具链升级到2023-08-15版本
- 输出riscv的helloworld
- 设置内核是PIC的
|
2023-12-07 02:13:22 +08:00 |
|
|
4fda81ce81
|
使得DragonOS kernel 能为riscv64编译通过(尚未能启动) (#457)
* 使得DragonOS kernel 能为riscv64编译通过(尚未能启动)
* 修正了系统调用号声明不正确的问题,同时添加了编译配置文档
|
2023-11-25 12:07:39 +08:00 |
|
|
46e234aef6
|
使用cargo管理一些C文件的编译,并且移动部分汇编到arch目录 (#447)
* 使用cargo管理main.c的编译
* 使用build-scripts编译架构相关的c代码
* 删除elf.h
|
2023-11-17 21:25:15 +08:00 |
|
|
a0c98cd4df
|
解决textui framework初始化成功后串口无法正常换行 (#443)
|
2023-11-16 21:37:04 +08:00 |
|