1203 Commits

Author SHA1 Message Date
LoGin
e696ba4440
fix: 解决创建buddy的函数栈帧过大的问题 (#1189)
* fix: 解决创建buddy的函数栈帧过大的问题

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

* chore(kernel): 移除smoltcp的log依赖项

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

---------

Signed-off-by: longjin <longjin@DragonOS.org>
2025-06-08 10:56:26 +08:00
火花
996150bbc4
fix(sbrk): 将sbrk移出syscall_table (#1197)
Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
2025-06-06 21:56:06 +08:00
LoGin
78588e88b1
refactor-process-pcb-init (#1193)
将`do_create_pcb()`的内存占用量从10k降低到5k

Signed-off-by: longjin <longjin@DragonOS.org>
2025-06-05 22:51:27 +08:00
kaleidoscope416
0b358b9db5
refactor(mm/syscall): 重构mm下的系统调用 (#1185)
* refactor(mm/syscall): 把sys_brk加到调用表
* refactor(mm/syscall): 把sys_sbrk加到调用表
* refactor(mm/syscall): 把sys_mmap加到调用表
* refactor(mm/syscall): 把sys_munmap加到调用表
* refactor(mm/syscall): 把sys_mremap加到调用表
* refactor(mm/syscall): 把sys_mprotect加到调用表
* refactor(mm/syscall): 把sys_madvise加到调用表
* refactor(mm/syscall): 把sys_msync加到调用表
2025-06-05 20:06:57 +08:00
DoL
8ff7cd5546
fix(vfs):修复getdents系统调用 (#1195) 2025-06-05 15:09:43 +08:00
DoL
326cf3e0a3
refactor(process): 重构process下的系统调用 (#1184)
* refactor(process):迁移geteuid系统调用

* refactor(process):迁移getegid系统调用

* refactor(process):迁移getgid系统调用

* refactor(process):迁移getpgid系统调用

* refactor(process):迁移getpid系统调用

* refactor(process):迁移getppid系统调用

* refactor(process):迁移getsid系统调用

* refactor(process):迁移gettid系统调用

* refactor(process):迁移getuid系统调用

* refactor(process):迁移set_tid_address系统调用

* refactor(process):迁移setfsgid系统调用

* refactor(process):迁移setfsuid系统调用

* refactor(process):迁移setgid系统调用

* refactor(process):迁移setpgid系统调用

* refactor(process):迁移setresgid系统调用

* refactor(process):迁移setresuid系统调用

* refactor(process):迁移setsid系统调用

* refactor(process):迁移setuid系统调用

* refactor(process):删除部分已迁移的syscall(id相关)的原有部分

* refactor(process):make fmt

* refactor(process):迁移sys_get_rusage系统调用

* refactor(process):迁移exit exit_group 系统调用

* refactor(process):删除重构syscall下的mod中的全架构条件编译

* refactor(process):迁移sys_wait4系统调用

* refactor(process):迁移sys_getrlimit sys_prlimit64 系统调用

* make fmt

* refactor(process):迁移sys_uname系统调用

* fix(ipc):修复rebase时的错误冲突

* refactor(process):修改已迁移的系统调用的handle参数from_user-->frame

* refactor(process):迁移execve系统调用

* refactor(process):迁移clone系统调用

* refactor(process):迁移fork、vfork系统调用

* refactor(process):删除原有syscall文件,将迁移后的文件夹重命名为syscall

* refactor(process):修复条件编译错误
2025-06-04 21:29:51 +08:00
linfeng
58e7943c13
refactor: refactor tracepoint (#1186)
* Refactor: refactor tracepoint

Move tracepoints into separate module.
Macro implementation closer to Linux.
Add the id and formt files corresponding to each tracepoint.
Correctly handle trace/trace_pipe files.

Signed-off-by: Godones <chenlinfeng25@outlook.com>
2025-06-04 13:53:27 +08:00
LoGin
41c7f962c9
refactor(irq): 拆分inner_setup_irq函数,降低栈内存峰值 (#1187)
* refactor(irq): 将错误处理函数重构为类方法

将原先的闭包错误处理函数重构为IrqManager的类方法,减少栈内存使用量864字节

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

* refactor(irq): 重构中断设置逻辑并优化日志处理

- 将inner_setup_irq拆分为prepare_irq_setup和finalize_irq_setup,使得没有栈帧的大小超过4k.降低内存占用峰值

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

* refactor(irq): 拆分finalize_irq_setup为setup_irq_resources和activate_irq_line

将原finalize_irq_setup函数拆分为两个更小、职责更明确的函数,并引入SetupIrqResourcesResp结构体管理中间状态。

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

* fmt

---------

Signed-off-by: longjin <longjin@DragonOS.org>
2025-06-04 13:10:47 +08:00
DoL
9f9b37c492
refactor(syscall):将syscall trait 中的handle参数from_user修改为TrapFrame (#1188)
* refactor(syscall):将syscall trait 中的handle参数from_user修改为frame,

* refactor: 将x86_64::interrupt::TrapFrame替换为arch::interrupt::TrapFrame

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

---------

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
Co-authored-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
2025-06-04 10:18:03 +08:00
Vitus
5db1f9ad54
refactor(ipc): Refactor the syscalls in ipc (#1183)
* feat(ipc): 完成对ipc的系统调用的重构

* refactor(ipc): 优化结构

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

* feat: fmt

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

---------

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
Co-authored-by: Vitus <zhzvitus@gmail.com>
Co-authored-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
2025-05-30 20:52:44 +08:00
LoGin
6ac8e1f0cd
refactor(mm): 优化内存管理模块代码结构 (#1181)
- 将 `MmioBuddyMemPool` 中的 `free_regions` 从数组改为 `Vec`, 降低初始化的栈内存使用
- 移除不必要的 `LinkedList` 依赖,使用 `Vec` 替代

Signed-off-by: longjin <longjin@DragonOS.org>
2025-05-29 17:40:11 +08:00
LoGin
1032474cbf
refactor(driver/acpi): 重构ACPI表读取逻辑并优化栈内存使用 (#1178)
重构了ACPI表读取逻辑,使用宏定义表结构体并拆分读取函数以减少栈内存使用。

Signed-off-by: longjin <longjin@DragonOS.org>
2025-05-29 16:42:11 +08:00
火花
a951a88bee
refactor(epoll): epoll syscall refactor (#1180)
* feat(epoll): Move epoll functionality into filesystem module

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

* refactor(epoll): refactor epoll syscall

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

* feat(epoll): move do_epoll_wait into epoll_utils

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

* fmt

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

---------

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
2025-05-27 14:05:18 +08:00
LoGin
e9d82983e1
refactor(x86_64/process): 简化TSSManager初始化方式 (#1179)
移除TSSManager::new()构造函数,改为直接初始化静态变量

Signed-off-by: longjin <longjin@DragonOS.org>
2025-05-27 14:03:09 +08:00
YJwu2023
ef9c935732
fix: 检查栈帧大小 (#1126)
* feat: 打开clippy的stack overflow静态检查

*限制栈大小最大为4096字节
*限制栈中的数组最大为1024字节

* fix: 修复部分函数的爆栈问题 (#1172)

* fix:修复部分函数的爆栈问题

* feat(filesystem): 重构FAT文件系统重命名和移动文件逻辑

将rename_file_in_same_dir和move_file_to_other_dir函数重构为LockedFATInode的方法,优化代码结构。同时更新clippy配置,添加栈大小和数组大小阈值。

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

---------

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

---------

Signed-off-by: longjin <longjin@DragonOS.org>
Co-authored-by: DoL <1240800466@qq.com>
Co-authored-by: longjin <longjin@DragonOS.org>
2025-05-26 17:33:25 +08:00
LoGin
a56444e1ad
refactor(vfs): refactor some fs syscalls to syscall-table (#1177)
* refactor(vfs/syscall): 把sys_open加到调用表

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

* refactor(vfs): 将文件系统相关系统调用拆分为独立模块

将 `close`、`fstat`、`lstat` 和 `stat` 系统调用从 `mod.rs` 中拆分为独立的模块

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

* refactor(vfs): 将ioctl系统调用处理逻辑移至独立模块

将ioctl系统调用的处理逻辑从`mod.rs`中提取到独立的`sys_ioctl.rs`模块中,以提高代码的可维护性和可读性。

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

* refactor(vfs): 重构stat相关系统调用实现

将sys_fstat、sys_lstat和sys_stat的实现统一改为调用Syscall::newfstat,移除重复代码

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

* refactor(vfs): 将do_open函数提取到open_utils模块

将sys_open.rs中的do_open函数提取到新建的open_utils模块,并在多处调用处更新引用路径。

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

---------

Signed-off-by: longjin <longjin@DragonOS.org>
2025-05-24 23:17:26 +08:00
火花
aa394c1f6f
feat(wait): 调整内核wait4函数参数类型 (#1175)
* feat:补充wait4的逻辑,添加对进程组的判断

* fix: 修复进程退出码的返回,将正常退出的进程的退出码移动至高8位

* fix: 移除session和processgroup的debug trait

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

* fix: 删除shell.service文件中对于backspace的单独设置

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

* fix: 更新exit函数文档,明确状态码移位规则

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

---------

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
2025-05-24 13:31:20 +08:00
LoGin
ae987c6f9a
doc: Add Q&A docs (#1174)
* docs: 添加常见问题解答文档并更新工作流配置

- 新增questions目录及构建错误FAQ文档
- 更新文档翻译工作流触发分支为master和doc-*
- 优化PR创建时的提交信息格式

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

* ci: 改进文档翻译工作流并添加失败处理

- 添加获取短SHA步骤用于PR标题
- 在翻译脚本中添加失败退出逻辑

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

* docs: Translation update [b7b5ea2c] (#1173)

* Update translated documentation
---------

Co-authored-by: dragonosbot <bot@dragonos.org>

* 1

* 1

---------

Signed-off-by: longjin <longjin@DragonOS.org>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: dragonosbot <bot@dragonos.org>
2025-05-23 02:02:48 +08:00
LoGin
6242ecb2bd
ci: 添加文档翻译的GitHub Actions工作流 (#1171)
* ci: 添加文档翻译的GitHub Actions工作流

新增了用于自动翻译文档的GitHub Actions工作流

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


---------

Signed-off-by: longjin <longjin@DragonOS.org>
2025-05-22 15:09:37 +08:00
LoGin
b397190fea
docs: 更新README文件并添加README_CN.md和SUPPORTERS.md (#1170)
更新了README文件的内容,添加了README_CN.md和SUPPORTERS.md文件,以提供更详细的项目信息和贡献者名单。

Signed-off-by: longjin <longjin@DragonOS.org>
2025-05-22 12:32:23 +08:00
linfeng
ba734c8d6b
fix: Fix stack related errors (#1167)
* fix: Fix stack related errors

Increase kernel stack to 32k.
Add a stack overflow test.
Remove manual placement of guard pages

Signed-off-by: Godones <chenlinfeng25@outlook.com>

* fix: update userstack comments

Signed-off-by: Godones <chenlinfeng25@outlook.com>

---------

Signed-off-by: Godones <chenlinfeng25@outlook.com>
2025-05-22 08:52:32 +08:00
LoGin
880720250e
doc: Add ai doc translate tool and add English doc. (#1168)
- add tools/doc_translator.py
- translated docs into English

Signed-off-by: longjin <longjin@DragonOS.org>
2025-05-20 10:44:28 +08:00
chiichen
fccfa6f7ff
feat: 支持动态链接 (#910)
* feat: 支持动态链接

Authored-By: chiichen <chiichen@qq.com>
Co-authored-by: longjin <longjin@DragonOS.org>
Signed-off-by: longjin <longjin@DragonOS.org>

* build: 更新构建容器版本至v1.12并指定DADK安装版本

- 将BUILD_CONTAINER_VERSION从v1.11升级到v1.12
- 修改bootstrap.sh和user/Makefile中DADK的安装方式,明确指定版本v0.4.0

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

---------

Signed-off-by: longjin <longjin@dragonos.org>
Co-authored-by: chiichen <chiichen@qq.com>
Co-authored-by: longjin <longjin@dragonos.org>
Co-authored-by: Jomo <xuzihao@dragonos.org>
Co-authored-by: MemoryShore <1353318529@qq.com>
2025-05-19 14:29:55 +08:00
LoGin
b322121dd9
feat(syscall): 添加syscall table的实现 (#1164)
* feat(syscall): 添加syscall table的实现

- 实现syscall table
- 为syscall table适配write/writev、read和readv系统调用

---------

Signed-off-by: longjin <longjin@DragonOS.org>
2025-05-13 18:59:18 +08:00
火花
545bc2c346
fix: 为ctrl+C设置trap,防止shell进程意外退出 (#1162)
* 为sigint进行trap设置

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
2025-05-12 21:55:47 +08:00
火花
0bc74e16e0
fix:修改busybox编译选项,启用busybox作为初始引导程序以及shell程序 (#1161) 2025-05-10 20:56:36 +08:00
LoGin
d3ae9c7c4a
fix(page_cache): 修复pagecache无法直接mmap然后读写文件的bug (#1158)
* fix(page_cache): 修复pagecache无法直接mmap然后读写文件的bug

经过此commit,用户程序可以直接mmap文件然后读写(无需通过read/write去读取)

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

* fix(page_cache): 修复pagecache 文件映射的bug

- 修复对同一文件mmap两次时,第二次map之后写入文件,内核panic的问题
- 修复address space已经drop之后,页面回写时的panic的问题
- 为PageCache和InnerPageCache添加唯一ID支持
- 优化页面错误处理函数,添加inline(never)属性
- 修复页面映射范围计算错误
- 改进页面回收器的地址空间处理逻辑

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

---------

Signed-off-by: longjin <longjin@DragonOS.org>
2025-05-10 12:12:03 +08:00
linfeng
7486ad438c
fix bugs in poll and epoll (#1135)
* fix bugs in poll and epoll

Signed-off-by: Godones <chenlinfeng25@outlook.com>

* fix: wakeup all epitems instead of the first

Signed-off-by: Godones <chenlinfeng25@outlook.com>

* Fix wakeup_epoll error

Signed-off-by: Godones <chenlinfeng25@outlook.com>

* Make test_epoll pass

Signed-off-by: Godones <chenlinfeng25@outlook.com>

---------

Signed-off-by: Godones <chenlinfeng25@outlook.com>
2025-05-09 23:08:50 +08:00
LoGin
cd3289e4b4
feat: 实现并测试 newfstatat 系统调用 (#1153)
* feat: 实现并测试 newfstatat 系统调用

新增了 newfstatat 系统调用的实现,并添加了相应的测试应用。

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

* feat(loongarch64/riscv64): 添加文件系统模块并实现GenericPosixStat结构

为loongarch64和riscv64架构添加filesystem模块,包含stat子模块,并实现GenericPosixStat结构用于处理文件状态信息。

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

---------

Signed-off-by: longjin <longjin@DragonOS.org>
2025-05-09 23:04:58 +08:00
火花
5422256d63
fix: 修复无法执行当前目录下程序的bug (#1154)
* 更改pcb中的fs以及fNsSet结构体,以便从fs中获取pwd inode

* fmt

* 更改run-qemu.sh,为x86_64传入KERNEL_CMDLINE参数

* 提取FsStruct中的root和pwd信息

* chore(run-qemu.sh): 重构内核启动参数处理逻辑

- 优化KERNEL_CMDLINE拼接逻辑,确保参数顺序正确
- 统一使用sh -c执行QEMU命令

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

* refactor(mnt_namespace): 重构FsStruct使用ModeType并移除Arc包装

- 将umask类型从u32改为ModeType
- 移除path_context的Arc包装,改为直接使用RwLock
- 实现Clone trait替代自动derive
- 更新默认umask值为ModeType::S_IWUGO

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

* fix(run-qemu): 修改x86_64架构的init程序路径

将x86_64架构的init程序从/bin/busybox改为/bin/dragonreach

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

---------

Signed-off-by: longjin <longjin@DragonOS.org>
Co-authored-by: longjin <longjin@DragonOS.org>
2025-05-09 15:16:10 +08:00
LoGin
0b89d7130e
refactor(vfs): 重构statx系统调用的实现 (#1149)
- 将kstat的获取,与posix statx的获取进行分离.
- 修复statx没有处理dirfd的bug
- 在Metadata结构体中新增btime字段,表示文件的创建时间
- 更新多个文件系统的metadata实现,添加对btime的支持
- 引入derive_builder crate以简化Metadata构建过程
- 重构vfs模块,将core重命名为vcore以避免命名冲突
- 实现vfs_statx和vfs_getattr函数,支持更详细的文件属性查询
- 新增LookUpFlags定义,用于路径查找时的标志位

Signed-off-by: longjin <longjin@dragonos.org>
2025-05-09 14:46:10 +08:00
火花
bc9bb9607f
Feat(tty): Supplement process group logic (#1139)
* 添加busybox的编译

* 完善tty job control的逻辑

* 修改copy_sighand的逻辑,符合Linux语义

* 以busybox作为启动shell去运行

* 修改setsid的逻辑

* 解决前台进程组无法处理信号的问题

* 移除ProcessBasicInfo其中的pgid和sid信息

* 修改setsid

* 新增get_pcb_info

* 在etc目录下新增必要的文件

* 改用busybox init作为引导程序

* 恢复dragonreach文件

* 修改busybox编译选项,能够读取环境变量

* 先让SYS_RT_SIGTIMEDWAIT返回Ok(0),能够正常进入系统

* 一些小更改

* 删除get_pcb_info

* 增加对默认termios的判断

* 完成backspace的修复

* 更改inittab,在shell启动之后更改termios

* 增加executable_path信息

* 补充proc下的exe链接文件以及读取逻辑

* 更改PosixTermios,使用stty完成erase的设置

* 用busybox作为引导程序

* 修改波特率的获取

* 修改函数方法

* 在baud_rate方法中添加对于cbaud的与操作

* 为rv64下的SigSet实现From<Signal>

* refactor(driver): 移除`#[derive(Debug)]`并手动实现`Debug` trait

移除`VirtIOBlkDevice`、`VirtIOConsoleDevice`和`VirtIONetDevice`的`#[derive(Debug)]`,并手动实现`Debug` trait以提供更详细的调试信息。

Co-authored-by: longjin <longjin@DragonOS.org>
2025-05-08 15:05:02 +08:00
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
37aa18e09f
ci: 限制Docker镜像推送和CNB.cool同步任务仅在主仓库执行 (#1150)
Signed-off-by: longjin <longjin@DragonOS.org>
2025-05-07 13:20:06 +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
LoGin
ed0561424e
fix(tools): 调整bootstrap.sh脚本中的banner和依赖安装顺序 (#1144)
- 修改bootstrap.sh的成功的banner: `make run`为`make run-nographic`以适应新需求。
- 优化rust组件安装逻辑,调整`cargo-binutils`和`bpf-linker`的安装位置,确保工具链配置正确。

Signed-off-by: longjin <longjin@dragonos.org>
2025-04-29 01:27:44 +08:00
LoGin
187a501f4b
feat: 添加同步到CNB.cool的GitHub Actions工作流 (#1136)
Signed-off-by: longjin <longjin@DragonOS.org>
2025-04-22 21:01:35 +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
2c81a9760e
fix: la64 ci (#1134)
Signed-off-by: longjin <longjin@DragonOS.org>
2025-04-22 01:35:30 +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