1187 Commits

Author SHA1 Message Date
LoGin
9621ab16ef
让riscv64能正常切换进程,并运行完所有的initcall (#721) 2024-04-14 20:39:20 +08:00
LoGin
9fab312ea9
Update DragonOS description and introduction (#717) 2024-04-12 15:27:44 +08:00
LoGin
f049d1af01
初始化riscv-sbi-timer (#716) 2024-04-12 14:46:47 +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
GnoCiYeH
9365e8017b
完善pty,目前pty能够支持ssh (#708) 2024-04-10 19:00:12 +08:00
Chiichen
4b0170bd6b
chore(tools): add bootstrap support for Centos/RHEL8/fedora (#713)
Co-authored-by: kejianchi <kejianchi@tencent.com>
2024-04-10 18:58:54 +08:00
Jomo
15b94df01a
add xuzihao (#712) 2024-04-10 10:58:07 +08:00
Jomo
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
曾俊
eb49bb993a
BlockCache-read cache支持 (#521)
支持block cache的读缓存
2024-04-07 14:03:51 +08:00
hmt
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
LoGin
23ef2b33d1
riscv: 把内核编译target改为riscv64gc & 获取time csr的频率 & 修正浮点保存与恢复的汇编的问题 (#699)
* 1. 把内核编译target改为riscv64gc
2. fix: 修正浮点保存与恢复的汇编的问题

* riscv: 获取time csr的频率
2024-04-06 22:13:26 +08:00
GnoCiYeH
f0c87a897f
重写调度模块 (#679)
## PR:重写调度模块
--- 
### 完成的部分
- 实现cfs调度策略
- 搭建框架,后续功能可以迭代开发
- 目前能跑,未测试性能

### 需要后续接力的部分
- 实现组内调度(task_group)
- 实现跨核负载均衡(pelt算法)
- 接入sysfs,实现参数动态调节(sched_stat等)
- nice值以及priority等参数的设置及调优
2024-04-05 17:54:48 +08:00
LoGin
e8eab1ac82
riscv: copy-thread (#696) 2024-04-05 16:37:08 +08:00
GnoCiYeH
dfe53cf087
实现pty,附带测试程序 (#685)
* 实现pty,附带测试程序

* fmt ** clippy

* 将file层的锁粒度缩小,从而不使用no_preempt。更改pipe在sleep部分的bug

* 修复拼写错误
2024-04-05 00:21:55 +08:00
Donkey Kane
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
yuyi2439
9430523b46
使nproc可以正确获取到cpu核心数 (#689) 2024-04-04 12:41:19 +08:00
LoGin
9b96c5b547
riscv64: switch process (#678)
* riscv64: switch process

* fixname
2024-03-31 22:53:01 +08:00
Val213
7d580ef99d
修复get_ramdom的长度错误问题() (#677) 2024-03-31 18:01:32 +08:00
Jomo
56cc4dbe27
实现页面反向映射 (#670)
* 实现页面反向映射

* 完善PAGE_MANAGER初始化时机 && 封装lock函数 && 删掉过时注释
2024-03-31 16:33:49 +08:00
BrahmaMantra
924d64de8d
修复了ramfs中move_to未更新parent字段的bug (#673)
修复了ramfs中move_to未更新parent字段的bug

---------

Co-authored-by: Samuel Dai <samuka007@qq.com>
2024-03-31 15:19:12 +08:00
sun5etop
9d9a09841c
修复udp bind的时候,对port0处理不正确的问题(#676) 2024-03-31 15:11:10 +08:00
LoGin
da15231979
实现了rtc的抽象,并且把x86的cmos rtc接入到设备驱动模型 (#674)
* 实现了rtc的抽象,并且把x86的cmos rtc接入到设备驱动模型。
2024-03-28 00:28:13 +08:00
TTaq
597ecc08c2
新加结构体POSIXSTATFS与SuperBlock用于处理statfs系统调用 (#667)
* 新加结构体POSIXSTATFS与SuperBlock用于处理statfs系统调用
2024-03-26 18:28:26 +08:00
LoGin
0cb807346c
修复tty设备显示在/sys目录下的bug (#668) 2024-03-26 18:26:02 +08:00
曾俊
2755467c79
支持绘制24位深和16位深显示缓冲区 (#640)
* 修复了初始化时显示,边界条件的一个bug

* 解决了内存未初始前字体显示的兼容性问题
* 支持绘制24位深和16位深显示缓冲区
2024-03-25 16:39:36 +08:00
LoGin
4256da7fb6
把Device trait的set_class改为设置Weak指针,以避免循环引用问题。 (#666) 2024-03-25 15:47:05 +08:00
LoGin
5c20e05a2e
修改bug report模版label (#665) 2024-03-25 13:59:00 +08:00
Val213
7c958c9ef0
移植dns查询工具dog的--tcp功能 (#652)
* add dog, modify user/Makefile and user.sysconfig

* add dog, modify user/Makefile and user.sysconfig

* fix tty unicode

* 修正无法正确编译dog的问题

---------

Co-authored-by: val213 <val213666@gmail.com>
Co-authored-by: GnoCiYeH <heyicong@dragonos.org>
Co-authored-by: longjin <longjin@DragonOS.org>
2024-03-25 13:04:53 +08:00
Donkey Kane
911132c4b8
修复clock_gettime返回类型错误,修复小时间间隔duration返回0问题 (#664)
* 修复clock_gettime返回类型错误,修正wtm初始化逻辑

* 修复duration在小时间间隔下为0的问题

* 临时修复时间流逝速度异常,在test-mount中加入运行时间检测
2024-03-25 13:04:32 +08:00
LoGin
401699735b
riscv: 进程管理初始化 (#654) 2024-03-23 16:25:56 +08:00
裕依
6046f77591
Patch socketpair (#576)
* 将sockets分成inet和unix域
- 添加File端点
- 添加SocketPair trait并将Socket trait中的pair相关方法移动
- 添加对SockAddrUn的处理

* 精简SocketHandleItem

* 重构socketpair相关逻辑
- 将File端点换成Inode端点
- 尝试使用SocketInode进行socketpair(未成功)


* 将SocketPair trait合并到Socket trait中,去除downcast
2024-03-23 15:56:49 +08:00
LoGin
3660256a9e
只对x86_64进行clippy check (#651) 2024-03-23 11:51:30 +08:00
LoGin
4e4c8c41e9
添加clippy检测的自动化工作流 (#649)
* 添加clippy检测的自动化工作流

* fmt

* 1
2024-03-22 23:56:30 +08:00
LoGin
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
Chenzx
4695947e1b
实现SYS_LINK和SYS_LINKAT (#611)
* 实现do_linkat及SYS_LINK和SYS_LINKAT

* 未在riscv上测试,添加target_arch

* 将c字符串检查移动到vfs/syscall.rs,修改do_linkat()逻辑

* 修改部分注释
2024-03-22 18:27:07 +08:00
LoGin
70f159a398
riscv64: 添加flush tlb的ipi (#636)
* riscv64: 添加flush tlb的ipi

* update triagebot
2024-03-21 21:35:39 +08:00
TTaq
b4eb05a17f
Statx (#632)
* 实现statx及测试的应用程序
2024-03-21 19:59:10 +08:00
LoGin
8cb2e9b344
重写SMP模块 (#633)
* 修复cpumask的迭代器的错误。

* 能进系统(AP核心还没有初始化自身)

* 初始化ap core

* 修改percpu

* 删除无用的cpu.c

* riscv64编译通过
2024-03-21 19:19:32 +08:00
Donkey Kane
1d37ca6d17
添加mount系统调用 (#561)
* Modify dadk config to switch NovaShell revision

* finish primary build of mount(2), usable now

* 使用read_from_cstr函数优化代码可读性 , 针对文件系统新增错误EUNSUPFS

* small changes

* 添加系统调用文档

* cargo fmt

* Revert "small changes"

This reverts commit e1991314ce687faa2d652479e8ef64f5bea25fa1.

* 修复用户程序参数传入错误

* Revert "small changes"

This reverts commit e1991314ce687faa2d652479e8ef64f5bea25fa1.

* 解决合并冲突,最终提交

* 将dadk_config切换为相对路径以修复依赖问题

* Update settings.json

* Delete user/apps/test-mount/LICENSE

* 换用更好的c字符串读取函数,优化系统调用函数注释,修复错误处理bug,删除无用文件,修改测试程序readme

* 修改用户程序readme

* 代码格式化,初级版本

* 初级版本,未实现文件系统管理器,未支持设备挂载

* 为文件系统添加name方法,返回文件系统名字字符串,为挂载查询服务

* mount系统调用:添加统一文件系统初始化管理器

* null

* 解除冲突

* 删除无用kdebug
2024-03-20 15:31:20 +08:00
LoGin
1cd9bb43f0
添加core utils到系统 (#624) 2024-03-19 21:31:02 +08:00
sspphh
8c6f21840f
实现uname系统调用 (#614)
* 实现uname系统调用

Co-authored-by: longjin <longjin@DragonOS.org>
2024-03-19 17:01:20 +08:00
hmt
82df0a1310
fix: mkdir输出错误信息; feat: 实现get_pathname (#615)
* fix: mkdir输出错误信息; feat: 实现get_pathname

* fix: 将处理路径的操作放入vfs而不是在syscall/mod.rs中

* 调整入参类型

---------

Co-authored-by: longjin <longjin@DragonOS.org>
2024-03-19 16:45:44 +08:00
TTaq
9e481b3bfe
实现了sys_rename (#578)
* 基本实现了rename的系统调用

* 实现相对路径的mv

* confilct resolve

* make fmt

* 更改校验位置,
 增加了SYS_RENAMEAT与SYS_RENAMEAT2两个系统调用,其实现与SYS_RENAME基本一致

* 删除了fat中的link

* fix

* 修改注释格式,删除管道文件判断

* 1
2024-03-18 14:47:59 +08:00
LoGin
c3c7344451
更新triagebot配置 (#616)
* 更新triagebot配置
2024-03-16 22:28:59 +08:00
LoGin
4fd916113e
triagebot-add-shortcut (#612) 2024-03-16 18:09:32 +08:00
LoGin
fbc174499f
添加triagebot文件 (#608)
* 添加triagebot文件
2024-03-15 20:06:24 +08:00
GnoCiYeH
e3b898316b
增加ChangeLog V0.1.9,更改about.c版本 (#600) V0.1.9 2024-03-13 22:36:31 +08:00
MemoryShore
af59116e1b
Update NovaShell version to c6454d3220 (#593) 2024-03-12 17:52:14 +08:00
LoGin
59fdb447ee
fix: 键盘中断上下文不再直接操作tty,而是由专门的kthread来渲染 (#592)
fix: 键盘中断上下文不再直接操作tty,而是由专门的kthread来渲染
1.修正psmouse 日志
2. 键盘中断上下文不再直接操作tty,而是由专门的kthread来渲染
3. 由于调度器设计问题,load balance会由于时序问题导致错误.因此暂时只启用单核.
2024-03-12 16:32:33 +08:00
LoGin
818a64c776
暂时禁用load balance (#591)
原因见issue: https://github.com/DragonOS-Community/DragonOS/issues/571
2024-03-12 15:33:01 +08:00