f3bfe77712
fix(boot): won't fail to boot when kvm not available ( #1152 )
...
* fix(boot): won't fail to boot when kvm not available
* feat(kvm): add additional debug message on kvm init fail
2025-05-07 23:23:10 +08:00
LoGin
5e87c41d96
chore: 更新loongArch64依赖版本至0.2.5 ( #1151 )
...
将loongArch64依赖从git版本切换为crates.io注册表版本0.2.5,
Signed-off-by: longjin <longjin@DragonOS.org>
2025-05-07 19:00:02 +08:00
LoGin
4cc267146a
feat(la64): 实现了较为早期的la64的异常处理的注册 ( #1138 )
...
* feat(la64): 实现了较为早期的la64的异常处理的注册
- 栈保存&恢复
- 开机时临时设置异常处理程序,并验证可进入异常处理程序
Signed-off-by: longjin <longjin@DragonOS.org>
2025-05-07 13:14:54 +08:00
火花
fcb5bf4496
Feat(process): 增加ProcessGroup以及Session机制 ( #1115 )
...
* 添加make run-nographic
* 添加session和processgroup结构体
* 添加一些有关进程组的syscall
* 在fork中加入set_group
* 修改broadcast未实现的信息
* 添加对kill缺失的进程组的逻辑的补充
2025-04-22 13:22:42 +08:00
linfeng
50bbcae01a
feat:Add tracepoint prototype ( #1088 )
...
* feat:Add tracepoint prototype
Signed-off-by: Godones <chenlinfeng25@outlook.com>
2025-04-22 01:58:44 +08:00
LoGin
e80796eb82
feat: la64 boot ( #1132 )
...
* la64能够进入到kernel_main
* ci: 添加为ubuntu编译qemu-loongarch64的脚本
* feat: la64能输出hello world
* la64 安装gcc && 配置github ci
* chore: 更新CI工作流和构建脚本中的Docker镜像版本至v1.10
Signed-off-by: longjin <longjin@DragonOS.org>
2025-04-20 18:51:45 +08:00
linfeng
167d272792
refactor epoll related implementation ( #1128 )
...
* Refactor epoll related implementation
Add PollableInode trait
Implement PollableInode for pollable inodes
fix https://github.com/DragonOS-Community/DragonOS/issues/1094
Signed-off-by: Godones <chenlinfeng25@outlook.com>
2025-04-20 16:41:49 +08:00
0f827fb191
fix(build): filter out mislinked debug symbol in the first link stage ( #1129 )
2025-04-14 10:11:14 +08:00
linfeng
1485456bf3
refacotr: remove all c files ( #1131 )
...
* refacotr: remove all c files
Use Rust to implement the symbol table generator.
Delete unused header files and c files
Adjust the makefile in the debug directory
Signed-off-by: Godones <chenlinfeng25@outlook.com>
* fix: remove extern "C" rs_* functions
move gen_kallsyms.rs to build-scripts
Signed-off-by: Godones <chenlinfeng25@outlook.com>
2025-04-14 09:56:14 +08:00
LoGin
2d06264d79
feat: 实现ppoll系统调用并优化poll相关功能 ( #1127 )
...
- 新增ppoll系统调用,支持信号屏蔽和精确超时控制
- 优化poll系统调用,修复超时处理逻辑
- 新增ProcessControlBlock::has_pending_not_masked_signal方法,优化信号检测
- 添加Instant::saturating_sub方法,改进时间计算
- 新增rt_sigpending系统调用,支持获取待处理信号
- 添加ppoll测试程序,验证ppoll功能
Signed-off-by: longjin <longjin@DragonOS.org>
2025-04-02 21:10:52 +08:00
linfeng
91cc4adba9
fix the panic error for riscv64 ( #1123 )
...
* fix the panic error for riscv64
2025-04-02 13:49:57 +08:00
LoGin
03015e2559
feat: 支持在rv64下,运行rust编写的helloworld程序 ( #1125 )
...
* 添加 riscv_rust_init 这个helloworld程序
Signed-off-by: longjin <longjin@DragonOS.org>
* feat: 支持在riscv下启动rust编写的hello world程序
TODO: 支持sys ppoll
Signed-off-by: longjin <longjin@DragonOS.org>
* chore: 更新构建容器版本至v1.9
Signed-off-by: longjin <longjin@DragonOS.org>
* 1
---------
Signed-off-by: longjin <longjin@DragonOS.org>
2025-03-30 01:28:41 +08:00
LoGin
55833537f1
fix: 修复elf加载器在读取解释器路径时的越界问题 ( #1124 )
...
Signed-off-by: longjin <longjin@DragonOS.org>
2025-03-29 23:46:55 +08:00
LoGin
b6db20c072
feature: virtio console support ( #1113 )
...
feat(virtio): add virtio console driver support
- Implement virtio console driver with TTY interface
- Add HVC device support for console output
- Update devfs to handle HVC devices
- Fix virtio driver registration and initialization
- Improve virtio net driver interrupt handling
- Clean up block device naming implementation
- Add clippy lint checks to multiple crates
- Fix slab allocator alignment issues
- Update QEMU run script for virtio consoleagonOS.org>
---------
Signed-off-by: longjin <longjin@DragonOS.org>
2025-03-27 20:48:40 +08:00
linfeng
3d663af8a2
fix: remove useless c code ( #1116 )
...
* fix: remove useless c code
remove printk.c file
remove old test_ebpf file
implement `lookup_kallsyms` and `addr_from_symbol` using rust
* fix the weak linkage
* feat(kernel): 添加cfg-if依赖并优化panic模块的条件编译
Signed-off-by: longjin <longjin@DragonOS.org>
---------
Signed-off-by: longjin <longjin@DragonOS.org>
Co-authored-by: longjin <longjin@DragonOS.org>
2025-03-27 14:16:10 +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
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
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
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
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
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
LoGin
df3bf6d60a
fix: 修复无唤醒事件时,核心卡死在idle进程的问题 ( #1063 )
...
Signed-off-by: longjin <longjin@DragonOS.org>
2024-11-28 14:33:14 +08:00
LoGin
62da73bbe5
fix: 修正进程pcb的on_cpu
字段未设置导致的panic问题 ( #1057 )
...
Signed-off-by: longjin <longjin@DragonOS.org>
2024-11-28 01:04:48 +08: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
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
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
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
火花
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
火花
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