91511c9de9
Merge branch 'master' into feat-network-rebuild
2025-03-18 20:43:41 +08:00
LoGin
488718dc2e
feat: 实现poll系统调用实现并修复相关bug ( #1098 )
...
feat: 实现poll系统调用实现并修复相关bug
- 实现poll系统调用,增加对EPollEvent的处理逻辑
- 修复LockedPipeInode中epitems的锁管理问题
- 添加RestartBlock支持,处理系统调用重启逻辑
- 修复EventPoll中epoll_wait的超时处理逻辑
- 新增test_poll测试程序,验证poll功能
Signed-off-by: longjin <longjin@DragonOS.org>
2025-03-14 10:48:06 +08:00
火花
24b102b030
添加set_user_sigmask ( #1090 )
2025-03-11 23:25:42 +08:00
c4c35ed0cc
Merge remote-tracking branch 'upstream/master' into feat-network-rebuild
2025-01-12 20:30:27 +08:00
LoGin
bcf0382763
fix: 修复wait4系统调用部分语义与Linux不一致的问题 ( #1080 )
...
* fix: 修复wait4系统调用部分语义与Linux不一致的问题
解决wait不住/wait之后卡死的bug
---------
Signed-off-by: longjin <longjin@DragonOS.org>
2025-01-01 14:25:46 +08:00
LoGin
2b72148cae
feat(syscall): 实现syscall restart ( #1075 )
...
能够在系统调用返回ERESTARTSYS时,信号处理结束后,自动重启系统调用.
TODO: 实现wait等需要restart_block的系统调用的重启
Signed-off-by: longjin <longjin@DragonOS.org>
2024-12-13 00:56:20 +08:00
火花
6e85059fbc
feat:添加sigprocmask系统调用 ( #1046 )
...
* 添加sigprocmask系统调用
---------
Signed-off-by: sparkzky <sparkhhhhhhhhh@outlook.com>
Co-authored-by: longjin <longjin@DragonOS.org>
2024-12-07 16:36:55 +08:00
LoGin
4f8f269baf
fix: 解决进程退出时没有主动释放fdtable的问题 ( #1069 )
...
会导致http server被kill时,pcb没有drop
Signed-off-by: longjin <longjin@DragonOS.org>
2024-12-02 00:39:52 +08:00
longjin
b9c07e0be2
Merge remote-tracking branch 'origin/master' into patch-merge-master-1129
2024-11-29 13:01:15 +00:00
LoGin
62da73bbe5
fix: 修正进程pcb的on_cpu
字段未设置导致的panic问题 ( #1057 )
...
Signed-off-by: longjin <longjin@DragonOS.org>
2024-11-28 01:04:48 +08:00
1a046769ee
merge main
2024-11-13 20:08:46 +08:00
MemoryShore
ff76b0fcb8
修复tty处理信号时错误地将前台进程组置空的问题 & clone时未拷贝父进程tty的问题 ( #1043 )
...
* 修复clone时未拷贝父进程tty的问题
* 修复tty处理信号时错误地将前台进程组置空的问题
2024-11-12 16:31:13 +08:00
codeironman
f5b2038871
ospp project (feature) add namespace overlayfs cgroup ( #949 )
...
## 开发进展:
## namespace
- pid_namespace 基本实现,基于pid_struct等数据结构实现隔离
- mnt_namespace 基本实现,挂载点的隔离通过不同的挂载树来实现
- usernamespace 作为支持性的namespace,目前受限实现全局静态
## overlayfs
- 实现若干个文件系统的叠加,在mount中传入多个路径作为多个fs的mount路径以及最后merge层的fs路径
- copy-up机制的,除最上层外其他层为只读层,满足写时拷贝,需要修改的时候copy到上层修改
- whiteout特殊文件,用于标记在下层需要被删除的文件用来掩盖需要删除的文件
## cgroups
- 目前cgroups还处于框架阶段,之后具体实现具体的内存、CPU等子系统
2024-10-31 00:50:34 +08:00
LoGin
cae6182257
fix: 临时修复线程退出时处理tty前台进程组产生panic的bug ( #985 )
2024-10-18 17:47:28 +08:00
40d9375b6b
ready for merge in master ( #964 )
...
uevent should be format
Enum of smoltcp socket should be optimized.
need to add interface for routing subsys
actix is still not abled to run.
clean some casual added code to other places
2024-10-10 17:53:39 +08:00
MemoryShore
a8753f8fff
feat(tty): 实现发送SIGINT终止信号 ( #952 )
...
* 实现SIGINT终止信号传递
* 添加test_sigint测试程序
2024-10-09 19:02:14 +08:00
LoGin
dc9b4fea1b
fix: pipe 读取/写入阻塞时,无法kill进程的问题 ( #889 )
2024-08-27 13:01:11 +08:00
Jomo
0648a547da
feat(cred): 初步实现Cred ( #846 )
...
* 初步实现Cred
* 添加seteuid和setegid
* 添加cred测试程序
* 修改Cred::fscmp返回结果为CredFsCmp枚举
* 完善root用户相关信息
2024-08-02 09:42:34 +08:00
LoGin
703ce5a77c
fix: 修复由于升级到2024-07-23工具链之后,某些机器上面内核运行一直fault的问题。 ( #870 )
...
* fix: 修复由于升级到2024-07-23工具链之后,某些机器上面内核运行一直fault的问题。
2024-07-27 17:34:05 +08:00
LoGin
bd70d2d1f4
chore: 将工具链更新到2024-07-23 ( #864 )
...
* chore: 将工具链更新到2024-07-23
2024-07-25 00:55:02 +08:00
donjuanplatinum
3d4cd853a3
feat(procfs): update procfs ( #831 )
...
为procfs增加是否是kthread的显示
增加返回进程已经占用的文件描述符数量
2024-05-28 13:18:12 +08:00
曾俊
2eab6dd743
feat(log): 将内核日志统一为新的logger ( #814 )
2024-05-16 17:25:23 +08:00
LoGin
352ee04918
fix: disable mm debug log to prevent system lockup due to thingbuf issue ( #808 )
2024-05-11 18:02:13 +08:00
SMALLC
fbd63a301c
feat: alarm系统调用实现 ( #710 )
...
* alarm系统调用实现
2024-04-16 21:34:36 +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
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
GnoCiYeH
dfe53cf087
实现pty,附带测试程序 ( #685 )
...
* 实现pty,附带测试程序
* fmt ** clippy
* 将file层的锁粒度缩小,从而不使用no_preempt。更改pipe在sleep部分的bug
* 修复拼写错误
2024-04-05 00:21:55 +08:00
LoGin
401699735b
riscv: 进程管理初始化 ( #654 )
2024-03-23 16:25:56 +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
LoGin
8cb2e9b344
重写SMP模块 ( #633 )
...
* 修复cpumask的迭代器的错误。
* 能进系统(AP核心还没有初始化自身)
* 初始化ap core
* 修改percpu
* 删除无用的cpu.c
* riscv64编译通过
2024-03-21 19:19:32 +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
GnoCiYeH
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
LoGin
e28411791f
完成中断管理模块重构 ( #554 )
...
- 支持中断共享
- 把现有驱动程序移植到新的irq模块
- 使用`ProcessorId`标识处理器id
- 尚未实现threaded_irq
性能上,edge irq flow handler里面,对于锁的使用,可能有点问题。为了获取/修改common data还有其他几个结构体的状态,进行了多次加锁和放锁,导致性能降低。这是接下来需要优化的点。
2024-03-03 16:31:08 +08:00
GnoCiYeH
52da9a5937
完成与Linux兼容的Ntty ( #517 )
...
* 已经完成的功能:
- 写:printf能够正常在tty输出
- 读:与键盘驱动接上
- 信号: 能够正常通过ctrl向前台进程发送信号
* 支持目前的shell,改动printk使其与新版tty兼容。
* 删除原有tty文件夹,并更改新tty文件名
* 添加clear清屏程序
* 实现tty部分ioctl,更改部分问题
2024-02-26 15:27:19 +08:00
裕依2439
4ad52e57e6
添加socketpair ( #505 )
...
* 添加对socketpair系统调用的处理
---------
Co-authored-by: LoGin <longjin@DragonOS.org>
2024-02-07 18:06:15 +08:00
LoGin
f2022a8a1c
使用rust编写中断/异常的入口 ( #509 )
...
* 使用rust编写中断/异常的入口
2024-02-07 13:29:47 +08:00
LoGin
5b59005f93
x86_64: 使用Rust重写内核初始化代码 ( #507 )
...
* x86_64: 使用Rust重写内核初始化代码
2024-02-04 15:46:24 +08:00
Chiichen
a02ce654cf
支持对动态链接文件的加载,支持通过musl工具链编写用户空间程序 ( #504 )
...
支持对动态链接文件的加载,支持通过musl工具链编写用户空间程序
2024-01-28 20:29:01 +08:00
裕依2439
d46c6d2794
修复tty的buf满时始终阻塞的问题 ( #493 )
...
* 修复tty的buf满时始终阻塞的问题
2024-01-23 23:36:52 +08:00
LoGin
c566df451c
添加帧缓冲区抽象并实现vesafb的驱动 ( #483 )
...
- 添加bootparams对象
- 修正由于bus的driver、device强弱引用关系 不正确从而导致对象被释放的bug
- 添加vesafb的驱动
- 实现framebuffer抽象层
- 为通用帧缓冲区抽象实现sysfs的属性
- 修改设备号DeviceNumber的定义
- 仿照linux,添加initcall,并在第一个内核线程中,调用他们。
2024-01-01 11:46:51 +08:00
LoGin
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
LoGin
91e9d4ab55
实现unified-init库,支持收集初始化函数到一个数组,并统一初始化 ( #474 )
...
* 添加“统一初始化”的过程宏,并把SystemError独立成crate
* 使用unified-init来初始化fbmem
* 更新workflow,增加内核自动化静态测试
2023-12-25 23:12:27 +08:00
LoGin
1a72a751b1
在riscv输出hello world ( #466 )
...
增加了以下内容:
- SBI驱动
- 把内核的rust工具链升级到2023-08-15版本
- 输出riscv的helloworld
- 设置内核是PIC的
2023-12-07 02:13:22 +08:00
LoGin
4fda81ce81
使得DragonOS kernel 能为riscv64编译通过(尚未能启动) ( #457 )
...
* 使得DragonOS kernel 能为riscv64编译通过(尚未能启动)
* 修正了系统调用号声明不正确的问题,同时添加了编译配置文档
2023-11-25 12:07:39 +08:00
LoGin
bf4a48994a
新增系统调用,并对照linux-6.1.9改写sys_wait4 ( #440 )
...
* 1. 新增以下系统调用
- SYS_LSTAT
- SYS_READV
- SYS_ACCESS
- SYS_UNLINK
- SYS_CHMOD
- SYS_FCHMOD
- SYS_UMASK
- SYS_SYSINFO
- SYS_CLOCK_GETTIME
- SYS_FCHMODAT
- SYS_FACCESSAT
2. 修改sys_wait4,使得其部分符合Linux的行为(还是有些地方不符合的,详情请对比linux-6.1.9的sys_wait4接口)
2023-11-13 23:02:21 +08:00
LoGin
be8cdf4b8e
增加getrusage,并把apic timer的频率调整为系统HZ ( #435 )
2023-11-12 16:36:17 +08:00
LoGin
393f691574
增加gettid以及线程组group leader相关的逻辑 ( #430 )
...
* 增加gettid以及线程组group leader相关的逻辑
2023-11-09 16:48:45 +08:00
LoGin
7b32f5080f
增加内存分配日志监视器 ( #424 )
...
* 完成内存日志监视,并输出日志到文件
* 修复进程退出后,procfs查看进程status文件会崩溃的问题
* 修复signal唤醒进程的判断条件问题
2023-11-07 21:39:27 +08:00