903 Commits

Author SHA1 Message Date
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
c4c35ed0cc Merge remote-tracking branch 'upstream/master' into feat-network-rebuild 2025-01-12 20:30:27 +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
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
火花
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
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
longjin
b7495981f4 fix: 修正IfaceCommon的bounds字段的锁使用问题&调度问题
- 中断上下文内用到的锁,在外面要irqsave.
- 把主线调度的pr应用到当前分支: https://github.com/DragonOS-Community/DragonOS/pull/1063

Signed-off-by: longjin <longjin@DragonOS.org>
2024-11-27 17:12:11 +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
longjin
14c21430a5 Merge branch 'master' into feat-network-rebuild
Signed-off-by: longjin <longjin@DragonOS.org>
2024-11-27 14:34:12 +00:00
linfeng
539ee3eaeb
fix(backtrace):Use more reasonable compile options (#1056)
* fix(backtrace):Use more reasonable compile options

* 调整代码,同时解决rust analyzer未能提示warning的问题
---------

Co-authored-by: longjin <longjin@DragonOS.org>
2024-11-25 16:28:05 +08:00
dab9a7aad8 turn off syscall 2024-11-20 17:04:12 +08:00
f438808421 纸糊忙等tcp connecting,尚不明确连接可用的机制。 2024-11-20 16:59:11 +08:00
linfeng
081428c0d8
feat: update to new backtrace lib (#1049)
* feat: update to new backtrace lib

* feat: enable unwind for riscv64

---------

Co-authored-by: longjin <longjin@DragonOS.org>
2024-11-19 21:55:22 +08:00
linfeng
750b3b5d91
feat(debug)[WIP]: add static-keys support (#1025)
* feat: add static-keys support
2024-11-16 16:21:20 +08:00
1a046769ee merge main 2024-11-13 20:08:46 +08:00
e4115c9724 turn off syscall printings 2024-11-13 18:02:36 +08:00
aaf9a5f2e6 turn off syscall printing, remove unused imports and make fmt 2024-11-13 17:59:03 +08:00
d6755136f8
Merge branch 'DragonOS-Community:feat-network-rebuild' into feat-network-rebuild 2024-11-13 16:40:46 +08:00
MemoryShore
ff76b0fcb8
修复tty处理信号时错误地将前台进程组置空的问题 & clone时未拷贝父进程tty的问题 (#1043)
* 修复clone时未拷贝父进程tty的问题

* 修复tty处理信号时错误地将前台进程组置空的问题
2024-11-12 16:31:13 +08:00
LoGin
0f094e50de
fix: 修复了do execve 加载程序失败时,没能正确返回错误码给用户态的问题 (#1042)
* fix: 修复了do execve 加载程序失败时,没能正确返回错误码给用户态的问题
2024-11-12 14:01:26 +08:00
linfeng
7c28051e8c
chore: update toolchain version to 2024-11-05 (#1031)
* chore: update toolchain version to 2024-11-05

* update dragon reach to e945c217b3

* update dog to 6f2c0c8f12

---------

Co-authored-by: longjin <longjin@DragonOS.org>
2024-11-11 21:29:15 +08:00
曾俊
69715438f2
feat(pci): 解决了pci总线子系统中pci结构一致性问题,增加了pci设备的可读属性 (#1009)
---------

Co-authored-by: 黄铭涛 <1037827920@qq.com>
2024-11-11 20:57:08 +08:00
smallcjy
4e8c71b9eb fix: fix udp and run dog in udp 2024-11-11 16:24:37 +08:00
LoGin
20c58101dd
fix: do_signal函数在处理SIG_KILL时,有一处pcb强引用未归零的问题 (#1039)
Signed-off-by: longjin <longjin@DragonOS.org>
2024-11-11 11:38:57 +08:00
曾俊
f5c732d8dc
fix(video): 增加了对frame buffer操作的安全检查 (#1034)
fix(video): 增加了对frame buffer操作的安全检查
2024-11-10 23:46:56 +08:00
2b180c4fa5 debug and add socket option level print 2024-11-08 14:54:56 +08:00
ff13f9f622
fix(net): TCP Resources and add syscall print, change to use latest smoltcp (#1032)
* change to smoltcp

* add syscall, fix wront accept-listen logic

* add version and resource close
2024-11-07 14:38:31 +08:00
火花
01b8a76cdc
修复阻塞阅读eventfd时无法被中断的bug (#1030)
Co-authored-by: sparkzky <sparkhhhhhhhhh@outlook.com>
2024-11-05 16:47:44 +08:00
LoGin
c7ad61d495
fix: 删除在 #949 中意外添加的旧版ida (#1027)
https://github.com/DragonOS-Community/DragonOS/pull/949

Signed-off-by: longjin <longjin@DragonOS.org>
2024-10-31 22:14:45 +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
黄铭涛
84c528f53d
fix(driver/virtio): 修改pci transport中断初始化的位置 (#1018)
* fix(driver/virtio): 修改pci transport中断初始化的位置
2024-10-29 00:26:16 +08:00
Cai Junyuan
fad1c09757
feat(net): 实现unix抽象地址空间 (#1017) 2024-10-28 20:29:08 +08:00
火花
55e6f0b65f
feat:添加chown系统调用 (#962)
* 添加chown系统调用

---------

Co-authored-by: sparkzky <sparkhhhhhhhhh@outlook.com>
Co-authored-by: longjin <longjin@DragonOS.org>
2024-10-26 18:13:25 +08:00
LoGin
4dd4856f93
fix(tty): 修复tty对tab进行处理时产生数组越界panic的问题 (#1015)
Signed-off-by: longjin <longjin@DragonOS.org>
2024-10-26 12:55:31 +08:00
LoGin
a9e28e9ce9
fix: 临时修复键盘驱动与鼠标驱动冲突导致键盘无响应 (#1014)
暂时通过条件编译的方式解决. 目前认为是鼠标驱动问题,没有正确判断是不是自己的数据...
但是因为我们场景下,鼠标驱动几乎用不到,因此先条件编译屏蔽.

Signed-off-by: longjin <longjin@DragonOS.org>
2024-10-26 12:55:19 +08:00
LoGin
dc60d68f0e
fix: tty刷新线程初始化之前,键盘产生数据导致崩溃的问题 (#1013)
Signed-off-by: longjin <longjin@DragonOS.org>
2024-10-26 12:55:06 +08:00