火花
7e8a84fb73
feat(filesystem): improve mknod support for devfs and tmpfs ( #1698 )
...
Implement proper mknod syscall support in DevFS and TmpFS by adding
logic to create character devices, block devices, and FIFO pipes
based on the mode parameter.
- DevFS: Add mknod method to create device nodes
- TmpFS: Enhance mknod to correctly set file type and device number
- Remove ENOSYS error for block/char device creation in TmpFS
Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
2026-01-22 11:51:31 +08:00
xboHodx
f7298ff726
feat: 增强VFS系统调用并重构sysinfo ( #1622 )
...
- 修复do_fchmodat中空路径返回ENOENT的问题
- 在do_sys_openat2中添加O_NOFOLLOW符号链接处理
- 改进do_mkdir_at的权限检查顺序以符合Linux语义
- 重构sysinfo系统调用为独立模块并添加进程计数
- 添加uptime_secs函数并优化时间更新逻辑
- 移除gvisor测试黑名单以启用更多测试用例
Signed-off-by: xbohodx2024 <xbohodx2024@gmail.com>
2026-01-17 22:33:55 +08:00
LoGin
d3aea1d238
refactor(syscall): 重构系统调用处理为独立模块 ( #1580 )
...
- 将bpf、eventfd、poll、ppoll、perf_event_open、rseq、getrandom系统调用从Syscall
trait移至独立模块
Signed-off-by: longjin <longjin@DragonOS.org>
2026-01-01 19:16:05 +08:00
LoGin
073432f930
feat: 实现 Restartable Sequences (rseq) 机制 ( #1565 )
...
- 新增 rseq 内核支持,包括系统调用、进程状态管理和用户态辅助向量
- 在调度、信号处理和异常返回路径中集成 rseq 事件处理
- 添加 rseq 相关文档和测试用例
- 修复用户栈扩展逻辑中的边界检查问题
- 调整 Makefile 构建选项以支持测试
Signed-off-by: longjin <longjin@DragonOS.org>
2025-12-27 20:34:35 +08:00
火花
3c0a4eb13a
refactor(procfs): 重构为基于模板的模块化架构( #1514 )
...
- 引入模板系统(template模块),提供ProcFile、ProcDir、ProcSym泛型包装器
- 将原有单体式procfs拆分为模块化结构:cmdline、cpuinfo、meminfo、mounts、pid、se
lf_、sys、thread_self、version等
- 实现动态进程目录(/proc/[pid]),按需创建进程相关文件
- 新增/proc/kmsg、/proc/version_signature等文件支持
- 改进命名空间文件(/proc/*/ns/*)实现,支持动态inode ID和魔法链接
- 优化文件描述符目录(/proc/[pid]/fd)实现,支持chroot视图
- 保持与现有测试的兼容性,包括gVisor测试套件
Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
2025-12-27 00:37:56 +08:00
LoGin
bccc0e391a
refactor(net): 重构网络系统调用为syscall table机制 ( #1551 )
...
* refactor(net): 重构网络系统调用为syscall table机制
- 将单个syscall.rs文件拆分为模块化结构,每个系统调用独立文件
- 新增syscall/mod.rs作为模块入口,统一导出所有网络系统调用处理器
- 实现Syscall trait的统一接口,支持参数格式化和错误处理
- 移除原syscall.rs中的网络系统调用实现,迁移至新架构
- 保持原有功能不变,仅重构代码组织结构
Signed-off-by: longjin <longjin@DragonOS.org>
* refactor(net): 统一使用UserBufferReader/Writer进行用户空间内存访问
- 在Endpoint::write_to_user中替换verify_area为UserBufferReader/Writer
- 移除accept/accept4中冗余的SOCK_CLOEXEC和SOCK_NONBLOCK常量定义
- 在getsockopt中增加optval长度限制并统一使用UserBufferReader/Writer
Signed-off-by: longjin <longjin@DragonOS.org>
---------
Signed-off-by: longjin <longjin@DragonOS.org>
2025-12-25 11:38:23 +08:00
LoGin
31d25c7478
feat(net): 完善Unix域数据报套接字功能 ( #1550 )
...
* feat(net): 完善Unix域数据报套接字功能
- 为MsgHdr结构体添加64位平台填充字段以保持与Linux布局一致
- 实现Unix域数据报套接字的SO_SNDBUF、SO_RCVBUF、SO_SNDTIMEO、SO_RCVTIMEO选项支持
- 添加sendmsg系统调用支持,完善recvmsg实现
- 支持SOCK_RAW类型映射到SOCK_DGRAM,遵循Linux行为
- 实现发送缓冲区记账机制,支持阻塞/非阻塞发送等待
- 添加MSG_PEEK和MSG_TRUNC标志支持,完善数据报截断处理
- 修复getsockopt系统调用,支持更多选项类型
- 在recv/recvfrom/send/sendto中正确处理文件描述符的O_NONBLOCK标志
Signed-off-by: longjin <longjin@DragonOS.org>
2025-12-25 00:22:02 +08:00
xboHodx
fd5cc66440
feat(fadvise64): 实现fadvise64系统调用和页面缓存管理功能 ( #1439 )
...
* feat(fs): 实现fadvise64系统调用和页面缓存管理功能
- 新增fadvise64系统调用实现
- 添加页面缓存范围写回和驱逐功能
- 改进预读机制,支持随机访问模式
- 扩展文件访问模式标志管理
* fmt
* feat(vfs): 添加带权限检查的文件描述符获取方法
- 在FileDescriptorVec中新增get_file_by_fd_not_raw方法
- 修改sys_fadvise64使用新方法进行权限检查
* 增强可读性
* 修改gvisor白名单
* refactor(vfs): 封装文件预读状态访问并优化fadvise64实现
- 将File结构体的ra_state字段改为私有并提供get/set方法
- 在sys_fadvise64中使用新的访问方法
- 修复fadvise64中页边界检查逻辑
- 移除syscall模块中未实现的fadvise64 stub
Signed-off-by: xbohodx <xbohodx2024@gmail.com>
2025-12-09 23:22:47 +08:00
LoGin
bb7a632c2b
feat(sched): implement POSIX scheduling system calls ( #1416 )
...
- Add sched_getparam syscall to retrieve process scheduling parameters
- Add sched_getscheduler syscall to get process scheduling policy
- Refactor sched_yield into separate module with proper syscall handler
- Add utility functions for scheduling permission checks
- Remove old do_sched_yield implementation from main syscall module
Signed-off-by: longjin <longjin@DragonOS.org>
2025-12-01 21:39:57 +08:00
aLinChe
cd45a996f4
fix(mkdir): 修复sys_mkdir逻辑错误和权限截断问题,并添加sys_umask ( #1419 )
...
* fix(sys_mkdir): fix ModeType and feat sys_umask
Signed-off-by: aLinChe <1129332011@qq.com>
* fix(sys_mknod): fix mknod
Signed-off-by: aLinChe <1129332011@qq.com>
* use ModeType to set_umask
Signed-off-by: aLinChe <1129332011@qq.com>
---------
Signed-off-by: aLinChe <1129332011@qq.com>
2025-12-01 21:34:49 +08:00
LoGin
a7b30bcf1c
feat(process): 实现prctl系统调用支持PR_SET_PDEATHSIG和PR_SET_NAME选项 ( #1386 )
...
- 新增pdeath_signal字段到ProcessControlBlock,支持父进程退出信号设置
- 实现prctl系统调用,支持设置/获取进程名和父进程退出信号
- 在进程退出时向设置了pdeath_signal的子进程发送相应信号
- 添加prctl测试用例到gvisor测试白名单
Signed-off-by: longjin <longjin@DragonOS.org>
2025-11-19 15:32:49 +08:00
LoGin
d93301b512
feat: 实现基于异常表的安全用户空间内存访问机制 ( #1383 )
...
* feat: 实现基于异常表的安全用户空间内存访问机制
- 新增异常表机制,在系统调用中安全处理用户空间内存访问错误
- 实现带异常表保护的memcpy和memset函数,防止无效用户地址导致内核在内存拷贝处以及pagefault处理程序之间反复横跳
- 重构用户空间访问API,提供安全的UserBuffer包装类型
- 更新页错误处理程序,支持异常表修复路径
- 添加异常表测试程序,验证各种边界情况
- 更新内存管理文档,详细说明异常表设计原理和使用场景
Signed-off-by: longjin <longjin@DragonOS.org>
* chore: 更新应用黑名单配置
- 添加 test_ebpf_new, test_ebpf_tp 到黑名单,原因:aya上游发版问题导致CI失败
Signed-off-by: longjin <longjin@DragonOS.org>
---------
Signed-off-by: longjin <longjin@DragonOS.org>
2025-11-18 21:02:07 +08:00
LoGin
40a3a3ec72
refactor(smp): 将smp模块的系统调用适配syscall table ( #1367 )
...
Signed-off-by: longjin <longjin@DragonOS.org>
2025-11-12 20:28:40 +08:00
JingXuan_Wei
bb99d3f6ed
feat(kexec & initram):Add kexec and initram support for x86 architecture ( #1303 )
...
- Support embedding initram and using Ramfs as the file system for extracting initram
- Support kexec series system calls, including load series and reboot
- Support u-root as the root file system to boot in Go language
- Add sysfs such as boot_crams and memmap
- Add a series of peripheral system calls related to the above
Signed-off-by: JensenWei007 <jensenwei007@gmail.com>
2025-10-30 13:32:40 +08:00
LoGin
0fdf7e1123
feat(ipc): 实现 rt_sigtimedwait 系统调用并优化信号处理机制 ( #1323 )
...
* feat(ipc): 实现 rt_sigtimedwait 系统调用并优化信号处理机制
- 添加标准 POSIX siginfo_t 结构体及相关类型,用于用户态接口
- 实现 rt_sigtimedwait 系统调用,支持等待特定信号并处理超时
- 优化信号处理逻辑,确保信号正确标记为 pending
- 修复生命周期标注问题,提高代码健壮性
- 添加完整的系统调用测试用例
Signed-off-by: longjin <longjin@DragonOS.org>
* feat(signal): 扩展实时信号支持并优化信号处理逻辑
- 新增实时信号定义(SIGRTMIN+1至SIGRTMIN+31)
- 改进信号唤醒机制,修复阻塞状态下的信号处理
- 增强内存错误日志,添加进程ID和RIP信息
- 重构抢占管理,引入PreemptGuard机制
- 优化rt_sigtimedwait系统调用实现
Signed-off-by: longjin <longjin@DragonOS.org>
2025-10-14 00:01:48 +08:00
LoGin
bc7c38b705
refactor(futex): 迁移futex系统调用到syscall table机制 ( #1320 )
...
- 将futex系统调用从通用系统调用模块中分离
- 为futex和robust futex创建独立的系统调用处理器
Signed-off-by: longjin <longjin@DragonOS.org>
2025-10-10 22:49:38 +08:00
LoGin
3b3b55bfc9
fix(futex): 修复futex的一些bug ( #1311 )
...
* feat(filesystem): 实现truncate系统调用
- 添加VFS层的统一vfs_truncate封装,包含文件类型和只读挂载检查
- 实现truncate系统调用处理,支持路径解析和符号链接跟随
- 修复FAT文件系统resize方法,确保页缓存和元数据同步更新
- 添加全面的用户空间测试用例,覆盖各种边界条件和错误情况
- 优化文件截断流程,统一通过VFS封装处理类型和只读检查
Signed-off-by: longjin <longjin@DragonOS.org>
* fix(page_cache): 修复新文件截断时的错误处理逻辑
Signed-off-by: longjin <longjin@DragonOS.org>
* style(filesystem): 移除vcore.rs中的调试日志和注释
Signed-off-by: longjin <longjin@DragonOS.org>
* feat(futex): 完善共享匿名映射的futex支持
- 实现共享匿名映射的futex键生成机制
- 添加跨进程共享匿名futex的测试用例
- 增加futex操作的调试日志输出
- 修复私有futex键的构建问题
Signed-off-by: longjin <longjin@DragonOS.org>
* fix(futex): 修复futex超时处理并增加调试日志
- 修复零超时时间立即返回ETIMEDOUT的逻辑
- 简化超时检查条件,移除错误的FLAGS_HAS_TIMEOUT检查
Signed-off-by: longjin <longjin@DragonOS.org>
* feat(runner): 添加输出到控制台的选项
- 添加Config结构体中的output_to_stdout字段
- 根据配置决定测试输出方式(文件或控制台)
- 添加--stdout命令行参数以启用控制台输出
Signed-off-by: longjin <longjin@DragonOS.org>
* fix(futex): 修复futex等待和唤醒机制
- 修正bitset匹配逻辑,使用位与操作而非不等比较
- 移除wake_up函数的inline(always)属性
- 实现FUTEX_WAIT_BITSET的绝对超时处理
- 添加时间合法性检查和时钟选择逻辑
Signed-off-by: longjin <longjin@DragonOS.org>
* fix(process): 修复futex和进程ID管理相关问题
- 修正FLAGS_MATCH_NONE常量值为0x00
- 确保非组长线程的TGID与组长一致
- 调整clear_child_tid操作顺序以符合Linux语义
- 优化pid_nr_ns方法实现避免潜在panic
- 添加futex测试的blocklist和白名单配置
Signed-off-by: longjin <longjin@DragonOS.org>
---------
Signed-off-by: longjin <longjin@DragonOS.org>
2025-10-10 13:39:47 +08:00
黄铭涛
625abda35e
feat(misc/reboot): 进一步完善reboot系统调用 ( #1157 )
...
* feat(misc/reboot): 进一步完善reboot系统调用
* 删除多余的注释
* fix: 添加riscv, loongarch的reboot占位函数
* format: 格式化代码
https://github.com/DragonOS-Community/DragonOS/pull/1157
* Update kernel/src/debug/sysfs/mod.rs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* refactor(reboot): modify reboot syscall from match to syscall table
* 添加restart模式的重启测试用例
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-09 22:45:18 +08:00
LoGin
225be1aff8
refactor(time): 将时间相关系统调用重构到syscall table机制下 ( #1314 )
...
* refactor(time): 将时间相关系统调用重构到syscall table机制下
- sys_alarm
- sys_clock_gettime
- sys_gettimeofday
Signed-off-by: longjin <longjin@DragonOS.org>
* fix(time): 修复sys_alarm系统调用的逻辑错误
- 修复初始化alarm时使用固定值0的问题,改为使用传入的秒数
- 在取消alarm时正确清空pcb_alarm并返回剩余时间
Signed-off-by: longjin <longjin@DragonOS.org>
---------
Signed-off-by: longjin <longjin@DragonOS.org>
2025-10-09 22:21:48 +08:00
LoGin
f1ca2910e6
feat: add sys_clock_nanosleep, tgkill, tkill ( #1307 )
...
* feat(syscall): 实现 clock_nanosleep 系统调用及信号重启机制
- 添加 clock_nanosleep 系统调用实现,支持相对和绝对时间睡眠
- 完善信号中断后的系统调用重启机制,特别是 ERESTART_RESTARTBLOCK 的处理
- 为 nanosleep 添加重启块支持,实现 SA_RESTART 标志的语义
- 添加 clock_nanosleep 的测试用例
- 修复 TKILL 系统调用返回 ENOSYS 而非 0
Signed-off-by: longjin <longjin@DragonOS.org>
* feat(ipc): 新增 tkill 和 tgkill 系统调用实现
- 添加 tkill 和 tgkill 系统调用及相关信号处理功能
- 实现 pause 系统调用
- 改进 nanosleep 和 clock_nanosleep 功能
- 添加相关测试用例
Signed-off-by: longjin <longjin@DragonOS.org>
* style(time): 优化睡眠函数代码结构并移除调试日志
- 重构nanosleep函数中was_interrupted变量的赋值逻辑
- 移除clock_nanosleep和nanosleep函数中的调试日志输出
Signed-off-by: longjin <longjin@DragonOS.org>
* refactor: 将 SigCode 枚举从各架构特定文件移至通用 signal_types.rs
- 消除 loongarch64、riscv64 和 x86_64 架构中的重复 SigCode 定义
- 统一信号代码处理逻辑到 signal_types.rs 模块
- 更新相关文件的导入路径以适应新的 SigCode 位置
Signed-off-by: longjin <longjin@DragonOS.org>
---------
Signed-off-by: longjin <longjin@DragonOS.org>
2025-10-08 14:19:27 +08:00
LoGin
afc09a460b
feat(process): 新增进程资源限制(rlimit)管理功能及相关系统调用 ( #1300 )
...
-
为ProcessControlBlock添加rlimits字段,存储进程资源限制,默认初始化典型值(如nofi
le软限制1024、硬限制65536)
- 实现进程rlimit的获取、设置及继承机制(inherit_rlimits_from)
- 在dup2、fcntl等函数中添加RLIMIT_NOFILE检查,确保文件描述符不超过软限制
- 实现sys_prlimit64和sys_setrlimit系统调用,支持查询和设置进程资源限制
- 调整测试用例,添加dup_test到gvisor白名单,忽略未支持的测试
Signed-off-by: longjin <longjin@DragonOS.org>
2025-09-27 22:01:34 +08:00
LoGin
6b7088f6b4
fix(syscall): 处理不支持的系统调用,返回错误而非panic ( #1297 )
...
* fix(syscall): 处理不支持的系统调用,返回错误而非panic
- 将不支持的系统调用处理从panic改为记录error日志
- 返回ENOSYS错误码表示功能未实现
- 添加相关测试用例到白名单
---------
Signed-off-by: longjin <longjin@DragonOS.org>
2025-09-25 20:00:30 +08:00
linfeng
509ee34586
refactor: Add system call number to name conversion ( #1279 )
...
* refactor: Add system call number to name conversion
add a ptmx test.
fix typo.
Signed-off-by: Godones <chenlinfeng25@outlook.com>
* add a tty test
Signed-off-by: Godones <chenlinfeng25@outlook.com>
* fix: fix ptmx bugs.
1. Fix epoll bug.
2. Fix ptmx logic.
3. update tests
Signed-off-by: Godones <chenlinfeng25@outlook.com>
---------
Signed-off-by: Godones <chenlinfeng25@outlook.com>
2025-09-16 01:48:40 +08:00
Samuel Dai
6f371967c3
refactor(net): the big network rebuild ( #977 )
...
* 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
* updates uevent and make fmt
* 新增CommonAttrGroup,基本支持sysfs下各种类型设备的uevent属性文件的读测试
* 修改net设备的uevent内容,使之与Linux语义一致
* 删除无用注释
* feat: 支持 sysfs下 block, char, Net, rtc, tty 等类型设备的 uevent 文件读操作 (#973 )
* 新增CommonAttrGroup,基本支持sysfs下各种类型设备的uevent属性文件的读测试
* 修改net设备的uevent内容,使之与Linux语义一致
* 删除无用注释
* can ctrl-c interupt from blocking accept
* make fmt
* clean debug messages
* 清理积弊,不必要的动态分发和智能指针
* remove uevent and netlink
* fmt
* remove uevent test
* 重新组织代码分布
* remove unused imports
* fix it back to old syscall printing style
* regulate naming to posix
* todo: socket close 及 port 接触占用
* fix: format check
* feat: remove syscall prettier printing (#988 )
* 重新组织代码分布
* remove unused imports
* fix it back to old syscall printing style
* regulate naming to posix
* todo: socket close 及 port 接触占用
* fix: format check
* remove unnecessary warnings and impls
* loopback assign single ip, remove unnecessary comments
* fmt
* 去除virtio_blk, virtio_net expect错误处理,直接返回错误
* fix: 修复网卡顺序的bug (#996 )
* fix: 修复网卡顺序的bug
* make fmt
* feat: 添加默认网卡字段
* make fmt
* 删掉奇怪加入的文件
* fix: ipv6, AddressFamily有转换问题。
* make fmt
* feat(net): 实现unix抽象地址空间 (#1017 )
* feat(doc):添加网络子系统模块 (#1020 )
* feat(doc): 添加网络子系统文档
* make fmt
* 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
* debug and add socket option level print
* fix: fix udp and run dog in udp
* turn off syscall printing, remove unused imports and make fmt
* turn off syscall printings
* 纸糊忙等tcp connecting,尚不明确连接可用的机制。
* turn off syscall
* fix: 修正IfaceCommon的bounds字段的锁使用问题&调度问题
- 中断上下文内用到的锁,在外面要irqsave.
- 把主线调度的pr应用到当前分支: https://github.com/DragonOS-Community/DragonOS/pull/1063
Signed-off-by: longjin <longjin@DragonOS.org>
* feat(socket): 实现shutdown系统调用的基础结构并启用相关方法
* feat(socket): 添加shutdown方法并实现ShutdownTemp的TryFrom转换
* fmt
* 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>
* 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>
* 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>
* fix: 在插入新的timer时,边界条件判断不正确的问题 (#1091 )
修复split_pos 初始值错误导致原本应该被插入到链表末尾的定时器,插入到了链表头
Signed-off-by: longjin <longjin@DragonOS.org>
* fmt
* feat(net): Add Inet documenation
* Revert "Merge Master"
* cleanup codes
* refactor: 将设备名称 "lo" 提取为常量 DEVICE_NAME
Signed-off-by: longjin <longjin@DragonOS.org>
* make fmt (#1109 )
* fmt (#1110 )
* refactor: 删除多余的代码
Signed-off-by: longjin <longjin@DragonOS.org>
* refactor: 移除网络重构分支中,use xxx::*的内容 (#1117 )
Signed-off-by: longjin <longjin@DragonOS.org>
* feat(net): 引入kthread,将Inet-网卡处理流程移入内核线程中
* change socket interface
* add check target vscode settings
* fix(net,unix): fix miss create of file
* fix(net): format codes
* fix: 修复缺失的glibc和busybox的toml文件
Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
* fmt
Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
* refactor: 统一接口到 Socket trait 一层
* fix(user): http_server 错误判断创建socket的返回值
* feat(net): add epoll logical support for inet sockets
* fix(net): can write file, have problem in notification
* refactor: 消除warning,优化代码结构
Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
* fix(epoll): 修复connect的忙等待逻辑,以及支持socket加入epoll
Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
* fmt
Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
* feat: 简单实现unix stream & seqpacket
Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
* fix(unix):让 unix socket 的close方法返回Ok
Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
* chore: 更新依赖镜像并调整调试输出
- 将inherit-methods-macro依赖从GitHub迁移至DragonOS镜像源
- 移除rust-analyzer的allTargets检查配置
- 简化LoopbackInterface和IfaceCommon的Debug实现
- 移除socket resize方法中的冗余警告日志
Signed-off-by: longjin <longjin@DragonOS.org>
---------
Signed-off-by: longjin <longjin@DragonOS.org>
Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
Co-authored-by: val213 <1042594899@qq.com>
Co-authored-by: Val213 <112376067+val213@users.noreply.github.com>
Co-authored-by: 黄铭涛 <1037827920@qq.com>
Co-authored-by: Cai Junyuan <121806694+smallcjy@users.noreply.github.com>
Co-authored-by: smallcjy <2628035541@qq.com>
Co-authored-by: longjin <longjin@DragonOS.org>
Co-authored-by: xiaolin2004 <1553367438@qq.com>
Co-authored-by: YuLong Huang <139891737+LINGLUO00@users.noreply.github.com>
Co-authored-by: Z Fan <140599389+BrahmaMantra@users.noreply.github.com>
Co-authored-by: GnoCiYeH <heyicong@dragonos.org>
Co-authored-by: LIU Yuwei <22045841+Marsman1996@users.noreply.github.com>
Co-authored-by: MemoryShore <1353318529@qq.com>
Co-authored-by: 火花 <sparkhhhhhhhhhh@outlook.com>
2025-09-12 00:35:13 +08:00
kaleidoscope416
b1c4f459b2
refactor(vfs/syscall): 重构部分vfs下的系统调用 ( #1236 )
...
* refactor(vfs/syscall): 重构部分vfs下的系统调用
* refactor(vfs/syscall): 把 chdir 添加到调用表
* refactor(vfs/syscall): 把 fchdir 添加到调用表
* refactor(vfs/syscall): 把 getcwd 添加到调用表
* refactor(vfs/syscall): 把 getdents|gendents64 添加到调用表
* refactor(vfs/syscall): 把 lseek 添加到调用表
* refactor(vfs/syscall): 把 openat 添加到调用表
* refactor(vfs/syscall): 把 pread64 添加到调用表
* refactor(vfs/syscall): 把 pwrite64 添加到调用表
* refactor(vfs/syscall): 把 mkdir 添加到调用表
* refactor(vfs/syscall): 把 mkdirat 添加到调用表
* refactor(vfs/syscall): 把 link 添加到调用表
* refactor(vfs/syscall): 把 linkat 添加到调用表
* refactor(vfs/syscall): 把 unlinkat 添加到调用表
* refactor(vfs/syscall): 把 rename 添加到调用表
* refactor(vfs/syscall): 把 renameat 添加到调用表
* refactor(vfs/syscall): 把 renameat2 添加到调用表
* refactor(vfs/syscall): 把 rmdir 添加到调用表
* refactor(vfs/syscall): 把 unlink 添加到调用表
* 迁移sys_utimes系统调用
* 迁移futimesat和utimensat系统调用
* 迁移fchown
* 迁移fchownat
* refactor(vfs/syscall):迁移lchown
* refactor(vfs/syscall):迁移chown
* refactor(vfs/syscall):迁移fchmod
* refactor(vfs/syscall):迁移fchmodat
* refactor(vfs/syscall):迁移chmod
* refactor(vfs/syscall):迁移faccessat和faccessat2
* refactor(vfs/syscall):迁移access
* refactor(vfs/syscall):迁移readlink和readlinkat
* refactor(vfs/syscall):迁移dup,dup2,dup3,fcntl
* refactor(vfs/syscall):迁移ftruncate
* refactor(vfs/syscall):迁移mknod
* refactor(vfs/syscall):迁移newfstatat
* refactor(vfs/syscall):迁移statx
* refactor(vfs/syscall):迁移statfs
* refactor(vfs/syscall):迁移fstatfs
* refactor(vfs/syscall):迁移newfstat
* refactor(vfs/syscall):make fmt
* fix: 更新root_inode的获取
Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
---------
Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
Co-authored-by: dolzhuying <1240800466@qq.com>
Co-authored-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
2025-08-04 11:11:06 +08:00
LoGin
5038bf86d5
feat: implement namespace proxy and PID namespace support ( #1244 )
...
- Add nsproxy module for unified namespace management across process types
- Implement complete PID namespace isolation with process ID mapping and management
- Refactor credential system to use Arc<Cred> for improved performance and memory safety
- Unify namespace common field management to enhance code reusability
- Optimize PID namespace process lookup and management mechanisms
- Enhance TTY subsystem with improved terminal job control and virtual terminal management
- Improve signal handling system with namespace-level signal isolation
- Add sys_getpgrp system call and refine process group management
- Refactor signal processing modules across x86 and RISC-V architectures
2025-07-30 22:54:43 +08:00
LoGin
c8af029744
refactor(time): 将nanosleep系统调用适配新的syscall table ( #1233 )
...
Signed-off-by: longjin <longjin@DragonOS.org>
2025-07-12 22:54:40 +08:00
LoGin
cade251128
fix: 解决syscall_table处理结束后,忘记执行调度的bug ( #1234 )
...
同时,将sys_fork\sys_vfork调整为使用syscall table机制来实现
Signed-off-by: longjin <longjin@DragonOS.org>
2025-07-12 10:57:45 +08:00
LoGin
9156c83658
fix: 临时修复进程execve没恢复默认的sighandler的问题 ( #1232 )
...
* feat: 添加测试fork/wait功能的用户程序
1. 在kernel错误日志中添加当前进程ID信息
2. 新增test-fork-wait用户程序,包含Makefile、main.c和配置文件
3. 程序用于测试fork和wait系统调用功能
Signed-off-by: longjin <longjin@DragonOS.org>
* fix: 临时修复进程execve没恢复默认的sighandle的问题
Signed-off-by: longjin <longjin@DragonOS.org>
---------
Signed-off-by: longjin <longjin@DragonOS.org>
2025-07-10 23:45:24 +08:00
火花
1e574d89fa
feat(fs): 补充mount系统调用,增加对硬盘挂载 & ext4文件系统的支持 ( #1182 )
...
主要变更:
* 实现完整的mount系统调用,支持从块设备挂载文件系统
* 新增ext4文件系统支持,基于another_ext4库实现
* 引入MountableFileSystem trait和文件系统工厂模式,提升VFS架构
* 完善块设备管理,自动将磁盘和分区注册到devfs(/dev)
* 支持virtio块设备的分区检测和挂载
* 新增umount2系统调用支持文件系统卸载
* 重构symlink相关系统调用,提升代码组织
* 提供硬盘镜像制作脚本和测试程序
技术细节:
- 支持ext4和vfat文件系统的挂载
- 实现MBR分区表解析和GenDisk管理
- 集成页面缓存支持提升文件系统性能
- 完善错误处理和设备号管理
- 新增详细的VFS挂载机制文档
测试验证:
- 新增test-mount-ext4和test-mount-fat测试程序
- 提供make_fs_image.sh脚本创建测试镜像
- 验证挂载、读写、卸载完整流程
Co-authored-by: Samuka007 <samuka007@dragon-os.org>
Co-authored-by: oeasy1412 <oeasy1412@gmail.com>
Co-authored-by: fslongjin <longjin@DragonOS.org>
2025-06-29 17:05:06 +08:00
LoGin
f8f7bcf2a3
refactor: Remove namespace related code ( #1218 )
...
* 删除mnt namespace
* 移除Namespace代码
Signed-off-by: longjin <longjin@DragonOS.org>
* 删除Namespace相关文档
Signed-off-by: longjin <longjin@DragonOS.org>
---------
Signed-off-by: longjin <longjin@DragonOS.org>
2025-06-28 21:20:21 +08:00
黄铭涛
a69d1a93b6
fix(fs, mm): 修复fs、mm上有关系统调用的bug ( #1208 )
...
* fix(fs, mm): 修复fs、mm上有关系统调用的bug
**filesystem:**
- 修改read系统调用:修复`O_PATH`文件模式该有的功能,使其能通过gvisor/syscall/read的测试。参考:[[file_table.c - fs/file_table.c - Linux source code v2.6.39 - Bootlin Elixir Cross Referencer](https://elixir.bootlin.com/linux/v2.6.39/source/fs/file_table.c#L331 )](https://elixir.bootlin.com/linux/v2.6.39/source/fs/file_table.c#L331 ),在读取之前先进行检查文件模式是否为`O_PATH`
- 修改getcwd系统调用:修正成跟linux语义一样,返回目录长度而不是地址。因为gvisor用这个系统调用如果返回的是地址是会报错的,改成跟linux一样就不会报错了。参考:[[dcache.c - fs/dcache.c - Linux source code v2.6.39 - Bootlin Elixir Cross Referencer](https://elixir.bootlin.com/linux/v2.6.39/source/fs/dcache.c#L2774 )](https://elixir.bootlin.com/linux/v2.6.39/source/fs/dcache.c#L2774 )
- 修改unlink系统调用:在unlink删除inode之后,要将inode对应的pagecache的dirty标识去掉,否则在`flush_dirty_pages()`的时候,会将标记为dirty的pagecache进行`page_writeback()`,但是对应的pagecache的inode已经被释放了,这时候直接unwrap()就会导致panic。参考:[[namei.c - fs/namei.c - Linux source code v2.6.6 - Bootlin Elixir Cross Referencer](https://elixir.bootlin.com/linux/v2.6.6/source/fs/namei.c#L1714 )](https://elixir.bootlin.com/linux/v2.6.6/source/fs/namei.c#L1714 )
**mm:**
- 添加`truncate_inode_pages()`,用来截断文件从指定偏移量的页缓存,但目前该函数功能仅是将pagecache的dirty标识去掉。参考:[[truncate.c - mm/truncate.c - Linux source code v2.6.6 - Bootlin Elixir Cross Referencer](https://elixir.bootlin.com/linux/v2.6.6/source/mm/truncate.c#L112 )](https://elixir.bootlin.com/linux/v2.6.6/source/mm/truncate.c#L112 )
**syscall:**
- 修改了`convert_with_offset()`的判断逻辑,使其能够从用户空间读取0字节的数据,也是为了能够通过gvisor/syscall/read的测试
目前是能够跑通gvisor syscall测试`read_test`并通过所有测例

2025-06-27 10:40:49 +08:00
火花
996150bbc4
fix(sbrk): 将sbrk移出syscall_table ( #1197 )
...
Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
2025-06-06 21:56:06 +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
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
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
火花
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
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
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
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
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
火花
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
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
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