1233 Commits

Author SHA1 Message Date
2452957cf4 feat(net): 引入kthread,将Inet-网卡处理流程移入内核线程中 2025-04-09 12:12:49 +08:00
LoGin
8fef80f8ed
refactor: 移除网络重构分支中,use xxx::*的内容 (#1117)
Signed-off-by: longjin <longjin@DragonOS.org>
2025-03-27 20:32:09 +08:00
longjin
870c34c6f2 refactor: 删除多余的代码
Signed-off-by: longjin <longjin@DragonOS.org>
2025-03-25 13:48:59 +08:00
longjin
06b0853a1b Merge branch 'master' into feat-network-rebuild 2025-03-25 13:43:48 +08:00
Z Fan
4729ec69c4
feat(kvm): 删除了旧版本kvm的代码 (#1093)
* feat(kvm): 删除了旧版本kvm的代码

* chore(kernel): 将release profile中的debug选项设置为false

Signed-off-by: longjin <longjin@DragonOS.org>

---------

Signed-off-by: longjin <longjin@DragonOS.org>
Co-authored-by: longjin <longjin@DragonOS.org>
2025-03-25 13:41:30 +08:00
LoGin
8b8f2f7981
chore: 将cargo.lock恢复提交到git (#1114)
Signed-off-by: longjin <longjin@DragonOS.org>
2025-03-25 11:27:50 +08:00
火花
9fb1d18715
fmt (#1110) 2025-03-25 00:40:44 +08:00
LoGin
f8c5e12d70
fix: 修复slab分配器的UAF\内存越界问题 (#1111)
- 新增 `tests.rs` 模块,包含多个测试用例以验证内存分配器的正确性和性能。
- 优化 `pages.rs` 中的 `Bitfield` 实现,移除不必要的 `get_offset_for_align` 函数。
- 在 `zone.rs` 中新增 `try_reclaim_pages_in_slab` 方法,用于在特定 slab 中回收页面。
- 修复 `kernel_allocator.rs` 中的 `allocator_select_condition` 逻辑,移除对 `slab_init_state` 的依赖。
- 移除 `slab.rs` 中的 `slab_init_state` 函数,简化初始化状态检查。

Signed-off-by: longjin <longjin@DragonOS.org>
2025-03-24 23:21:22 +08:00
LoGin
13514f6695
fix: 修复nttyData的buffer导致初始化时,栈溢出的问题 (#1112)
Signed-off-by: longjin <longjin@DragonOS.org>
2025-03-24 23:17:06 +08:00
91511c9de9
Merge branch 'master' into feat-network-rebuild 2025-03-18 20:43:41 +08:00
火花
95f5e0807e
make fmt (#1109) 2025-03-18 20:42:09 +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
longjin
17aa298971 refactor: 将设备名称 "lo" 提取为常量 DEVICE_NAME
Signed-off-by: longjin <longjin@DragonOS.org>
2025-03-13 13:33:20 +08:00
9700b685d6 cleanup codes 2025-03-12 11:37:21 +08:00
be0f09c9ec
Merge pull request #1101 from DragonOS-Community/revert-1097-merge-network-refactor
Revert "Merge Master"
2025-03-12 11:12:34 +08:00
a22408b65b
Revert "Merge Master" 2025-03-12 11:12:03 +08:00
LoGin
65f6119c9f
chore: 删除package-lock.json并恢复.gdbinit配置文件 (#1100)
撤销 [#1073](https://github.com/DragonOS-Community/DragonOS/pull/1073) 错误操作的两个文件

Signed-off-by: longjin <longjin@DragonOS.org>
2025-03-12 00:23:08 +08:00
火花
24b102b030
添加set_user_sigmask (#1090) 2025-03-11 23:25:42 +08:00
a02f4c0b92 feat(net): Add Inet documenation 2025-03-11 09:08:47 +08:00
b361310953 fmt 2025-03-11 09:08:38 +08:00
LoGin
5644e716e1 fix: 在插入新的timer时,边界条件判断不正确的问题 (#1091)
修复split_pos 初始值错误导致原本应该被插入到链表末尾的定时器,插入到了链表头

Signed-off-by: longjin <longjin@DragonOS.org>
2025-03-11 09:06:54 +08:00
Z Fan
3364e0424f feat(virtualization): 内核虚拟化支持 (#1073)
* 几个结构体

* 通过vmx_init以及create_vm,create_vcpu部分TODO

* kvm_run完成一半

* 能够成功vmlaunch,但是在vmexit时候还有些问题未排查出来

* 解决了vmlaunch导致的cpu_reset的问题

* 整理代码

* 暂时性push到hyc仓库

* 修改内存虚拟化部分参数传入,解决死锁问题

* 初步完成ept映射.但不停EPT_VIOLATION

* 初步完成了EPT映射,但是读写内存还是有点问题

* fixme

* 更新了一些truncate到from_bits_unchecked的实现

* 完成内存虚拟化EPT_VIOLATION的映射

* fmt

* Remove /fixme from .gitignore

* Remove /fixme file

* Update kernel/src/init/init.rs

Co-authored-by: Samuel Dai <samuka007@dragonos.org>

* Update kernel/src/init/init.rs

Co-authored-by: Samuel Dai <samuka007@dragonos.org>

* 修改了注释格式,删除了附带的一些文件操作

* feat(syscall): 实现syscall restart (#1075)

能够在系统调用返回ERESTARTSYS时,信号处理结束后,自动重启系统调用.

TODO: 实现wait等需要restart_block的系统调用的重启

Signed-off-by: longjin <longjin@DragonOS.org>

* chore: update docker image version in script && update doc (#1076)

* chore: update docker image version in script

* chore: replace lots of spaces with newline in doc

* fix: 修复wait4系统调用部分语义与Linux不一致的问题 (#1080)

* fix: 修复wait4系统调用部分语义与Linux不一致的问题

解决wait不住/wait之后卡死的bug

---------

Signed-off-by: longjin <longjin@DragonOS.org>

* feat(fs/syscall): 实现fchdir系统调用 (#1081)

Signed-off-by: longjin <longjin@DragonOS.org>

* fix(mm): 修复fat文件系统的PageCache同步问题 (#1005)


---------

Co-authored-by: longjin <longjin@DragonOS.org>

* fix: 修正nographic启动时,控制台日志未能输出到文件的问题 (#1082)

Signed-off-by: longjin <longjin@DragonOS.org>

* fix(process): 修复copy_process的一些bug & 支持默认init进程传参 (#1083)

- 修复`copy_process`函数对标志位处理不正确的bug
- init进程搜索列表中,支持为默认init程序传入参数

Signed-off-by: longjin <longjin@DragonOS.org>

* feat: 完善sys_reboot (#1084)

* fix(process): 修复copy_process的一些bug & 支持默认init进程传参

- 修复`copy_process`函数对标志位处理不正确的bug
- init进程搜索列表中,支持为默认init程序传入参数

Signed-off-by: longjin <longjin@DragonOS.org>

* feat: 完善sys_reboot

- 校验magic number
- 支持多个cmd (具体内容未实现)

Signed-off-by: longjin <longjin@DragonOS.org>

---------

Signed-off-by: longjin <longjin@DragonOS.org>

* fix: 修复do_wait函数在wait所有子进程时,忘了释放锁就sleep的bug (#1089)

Signed-off-by: longjin <longjin@DragonOS.org>

* pull主线并且fmt

---------

Signed-off-by: longjin <longjin@DragonOS.org>
Co-authored-by: GnoCiYeH <heyicong@dragonos.org>
Co-authored-by: Samuel Dai <samuka007@dragonos.org>
Co-authored-by: LoGin <longjin@DragonOS.org>
Co-authored-by: LIU Yuwei <22045841+Marsman1996@users.noreply.github.com>
Co-authored-by: MemoryShore <1353318529@qq.com>
2025-03-11 09:06:54 +08:00
LoGin
152dbf125a fix: 修复do_wait函数在wait所有子进程时,忘了释放锁就sleep的bug (#1089)
Signed-off-by: longjin <longjin@DragonOS.org>
2025-03-11 09:06:54 +08:00
LoGin
5b4d581e92 feat: 完善sys_reboot (#1084)
* fix(process): 修复copy_process的一些bug & 支持默认init进程传参

- 修复`copy_process`函数对标志位处理不正确的bug
- init进程搜索列表中,支持为默认init程序传入参数

Signed-off-by: longjin <longjin@DragonOS.org>

* feat: 完善sys_reboot

- 校验magic number
- 支持多个cmd (具体内容未实现)

Signed-off-by: longjin <longjin@DragonOS.org>

---------

Signed-off-by: longjin <longjin@DragonOS.org>
2025-03-11 09:06:54 +08:00
LoGin
55d7280a51 fix(process): 修复copy_process的一些bug & 支持默认init进程传参 (#1083)
- 修复`copy_process`函数对标志位处理不正确的bug
- init进程搜索列表中,支持为默认init程序传入参数

Signed-off-by: longjin <longjin@DragonOS.org>
2025-03-11 09:06:54 +08:00
69dde46586
fix(net): misc of resources release (#1096)
* fix: TCP socket miss activation after close

* fix: TCP socket miss activation after close (#1085)

* fix: loopback, udp resource aquire
- remove tcp useless status update
- enable smoltcp medium-ip feature
- change loopback device use ip for addressing, avoid arp procedure
- fix udp couldn't close bug
- fix udp resource aquire didn't lock port
- remove useless Timer in network initialization

* fmt: format

* fix: loopback and udp resource problem (#1086)

* fix: loopback, udp resource aquire
- remove tcp useless status update
- enable smoltcp medium-ip feature
- change loopback device use ip for addressing, avoid arp procedure
- fix udp couldn't close bug
- fix udp resource aquire didn't lock port
- remove useless Timer in network initialization

* fix(net): Unix 资源释放 (#1087)

* unix socket 相关资源释放 #991
* 完善streamsocket资源释放
* 解决inode和id不匹配

* fix TCP socketset release (#1095)

* fix: TCP socket miss activation after close

* fix: loopback, udp resource aquire
- remove tcp useless status update
- enable smoltcp medium-ip feature
- change loopback device use ip for addressing, avoid arp procedure
- fix udp couldn't close bug
- fix udp resource aquire didn't lock port
- remove useless Timer in network initialization

---------

Co-authored-by: YuLong Huang <139891737+LINGLUO00@users.noreply.github.com>
2025-03-10 12:58:39 +08:00
LoGin
6fa06ff08a
fix: 在插入新的timer时,边界条件判断不正确的问题 (#1091)
修复split_pos 初始值错误导致原本应该被插入到链表末尾的定时器,插入到了链表头

Signed-off-by: longjin <longjin@DragonOS.org>
2025-03-07 12:05:45 +08:00
Z Fan
597315b04d
feat(virtualization): 内核虚拟化支持 (#1073)
* 几个结构体

* 通过vmx_init以及create_vm,create_vcpu部分TODO

* kvm_run完成一半

* 能够成功vmlaunch,但是在vmexit时候还有些问题未排查出来

* 解决了vmlaunch导致的cpu_reset的问题

* 整理代码

* 暂时性push到hyc仓库

* 修改内存虚拟化部分参数传入,解决死锁问题

* 初步完成ept映射.但不停EPT_VIOLATION

* 初步完成了EPT映射,但是读写内存还是有点问题

* fixme

* 更新了一些truncate到from_bits_unchecked的实现

* 完成内存虚拟化EPT_VIOLATION的映射

* fmt

* Remove /fixme from .gitignore

* Remove /fixme file

* Update kernel/src/init/init.rs

Co-authored-by: Samuel Dai <samuka007@dragonos.org>

* Update kernel/src/init/init.rs

Co-authored-by: Samuel Dai <samuka007@dragonos.org>

* 修改了注释格式,删除了附带的一些文件操作

* feat(syscall): 实现syscall restart (#1075)

能够在系统调用返回ERESTARTSYS时,信号处理结束后,自动重启系统调用.

TODO: 实现wait等需要restart_block的系统调用的重启

Signed-off-by: longjin <longjin@DragonOS.org>

* chore: update docker image version in script && update doc (#1076)

* chore: update docker image version in script

* chore: replace lots of spaces with newline in doc

* fix: 修复wait4系统调用部分语义与Linux不一致的问题 (#1080)

* fix: 修复wait4系统调用部分语义与Linux不一致的问题

解决wait不住/wait之后卡死的bug

---------

Signed-off-by: longjin <longjin@DragonOS.org>

* feat(fs/syscall): 实现fchdir系统调用 (#1081)

Signed-off-by: longjin <longjin@DragonOS.org>

* fix(mm): 修复fat文件系统的PageCache同步问题 (#1005)


---------

Co-authored-by: longjin <longjin@DragonOS.org>

* fix: 修正nographic启动时,控制台日志未能输出到文件的问题 (#1082)

Signed-off-by: longjin <longjin@DragonOS.org>

* fix(process): 修复copy_process的一些bug & 支持默认init进程传参 (#1083)

- 修复`copy_process`函数对标志位处理不正确的bug
- init进程搜索列表中,支持为默认init程序传入参数

Signed-off-by: longjin <longjin@DragonOS.org>

* feat: 完善sys_reboot (#1084)

* fix(process): 修复copy_process的一些bug & 支持默认init进程传参

- 修复`copy_process`函数对标志位处理不正确的bug
- init进程搜索列表中,支持为默认init程序传入参数

Signed-off-by: longjin <longjin@DragonOS.org>

* feat: 完善sys_reboot

- 校验magic number
- 支持多个cmd (具体内容未实现)

Signed-off-by: longjin <longjin@DragonOS.org>

---------

Signed-off-by: longjin <longjin@DragonOS.org>

* fix: 修复do_wait函数在wait所有子进程时,忘了释放锁就sleep的bug (#1089)

Signed-off-by: longjin <longjin@DragonOS.org>

* pull主线并且fmt

---------

Signed-off-by: longjin <longjin@DragonOS.org>
Co-authored-by: GnoCiYeH <heyicong@dragonos.org>
Co-authored-by: Samuel Dai <samuka007@dragonos.org>
Co-authored-by: LoGin <longjin@DragonOS.org>
Co-authored-by: LIU Yuwei <22045841+Marsman1996@users.noreply.github.com>
Co-authored-by: MemoryShore <1353318529@qq.com>
2025-03-04 10:56:20 +08:00
LoGin
01dcb5d7a8
fix: 修复do_wait函数在wait所有子进程时,忘了释放锁就sleep的bug (#1089)
Signed-off-by: longjin <longjin@DragonOS.org>
2025-02-08 23:35:09 +08:00
LoGin
7ae6621cfa
feat: 完善sys_reboot (#1084)
* fix(process): 修复copy_process的一些bug & 支持默认init进程传参

- 修复`copy_process`函数对标志位处理不正确的bug
- init进程搜索列表中,支持为默认init程序传入参数

Signed-off-by: longjin <longjin@DragonOS.org>

* feat: 完善sys_reboot

- 校验magic number
- 支持多个cmd (具体内容未实现)

Signed-off-by: longjin <longjin@DragonOS.org>

---------

Signed-off-by: longjin <longjin@DragonOS.org>
2025-02-06 22:55:45 +08:00
LoGin
a3011dd24a
fix(process): 修复copy_process的一些bug & 支持默认init进程传参 (#1083)
- 修复`copy_process`函数对标志位处理不正确的bug
- init进程搜索列表中,支持为默认init程序传入参数

Signed-off-by: longjin <longjin@DragonOS.org>
2025-02-06 22:51:51 +08:00
c4c35ed0cc Merge remote-tracking branch 'upstream/master' into feat-network-rebuild 2025-01-12 20:30:27 +08:00
LoGin
a05738e7cc
fix: 修正nographic启动时,控制台日志未能输出到文件的问题 (#1082)
Signed-off-by: longjin <longjin@DragonOS.org>
2025-01-01 23:38:43 +08:00
MemoryShore
e92424df8d
fix(mm): 修复fat文件系统的PageCache同步问题 (#1005)
---------

Co-authored-by: longjin <longjin@DragonOS.org>
2025-01-01 23:38:00 +08:00
LoGin
a08191c719
feat(fs/syscall): 实现fchdir系统调用 (#1081)
Signed-off-by: longjin <longjin@DragonOS.org>
2025-01-01 23:36:37 +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
LIU Yuwei
57b20d2326
chore: update docker image version in script && update doc (#1076)
* chore: update docker image version in script

* chore: replace lots of spaces with newline in doc
2024-12-16 01:48: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
linfeng
72423f90bb
feat(ebpf): support Aya framework. (#1070)
* feat(ebpf): support Aya framework.

1. fix the rbpf bug
2. use new Aya template
3. add kprobe related device files and attributes to sysfs

---
Signed-off-by: chenlinfeng <chenlinfeng25@outlook.com>
2024-12-07 16:41:37 +08:00
LoGin
c09af909c5
chore: 修复编译镜像未能正确安装工具链的问题 (#1071)
Signed-off-by: longjin <longjin@DragonOS.org>
2024-12-07 16:37:15 +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
LoGin
1848f09ea4
Merge pull request #1068 from fslongjin/patch-merge-master-1129
merge master into network refactor branch
2024-11-29 21:06:34 +08:00
longjin
0e6201779a fmt 2024-11-29 13:06:04 +00:00
longjin
b9c07e0be2 Merge remote-tracking branch 'origin/master' into patch-merge-master-1129 2024-11-29 13:01:15 +00:00
LoGin
ffa8e88c60
fix:命名管道读行为不符合posix规范问题 (#1066)
fix(pipe): 增强FIFO管道的读写逻辑,解决问题一:非阻塞模式下的无写端错误返回
feat(test_fifo_write): 增强FIFO写入测试,添加信号处理、非阻塞模式支持和多场景测试

---------
Signed-off-by: xiaolin2004 <1553367438@qq.com>
Co-authored-by: xiaolin2004 <1553367438@qq.com>
2024-11-28 23:57:19 +08:00
0896c3311c
Merge pull request #1064 from fslongjin:patch-fix-a-locking-problem
fix: 修正IfaceCommon的bounds字段的锁使用问题&调度问题
2024-11-28 22:26:17 +08:00
xiaolin2004
bbea79ec19 feat(socket): 添加shutdown方法并实现ShutdownTemp的TryFrom转换 2024-11-28 19:20:01 +08:00
xiaolin2004
57e0b2e96a feat(socket): 实现shutdown系统调用的基础结构并启用相关方法 2024-11-28 14:38:54 +08:00
LoGin
df3bf6d60a
fix: 修复无唤醒事件时,核心卡死在idle进程的问题 (#1063)
Signed-off-by: longjin <longjin@DragonOS.org>
2024-11-28 14:33:14 +08:00