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
6b581d4dd8
feat: support tracepoint-based ebpf programs ( #1190 )
...
* feat: support tracepoint-based ebpf programs
Signed-off-by: Godones <chenlinfeng25@outlook.com >
* remove licenses
Signed-off-by: Godones <chenlinfeng25@outlook.com >
* feat: Supplement tracepoint related files
fix some warnings
add docs for tracepoint
Signed-off-by: Godones <chenlinfeng25@outlook.com >
---------
Signed-off-by: Godones <chenlinfeng25@outlook.com >
Co-authored-by: longjin <longjin@DragonOS.org >
2025-06-14 17:34:45 +08:00
8471e4173e
fix: epoll drop deadlock and open AT_FDCWD with empty relative path panic ( #1203 )
...
* fix(epoll): 解决进程持有epoll_inode的时候exit导致的死锁问题
解决由于进程在进入exit流程之前,没有关闭epoll inode导致exit流程死锁的bug
Signed-off-by: longjin <longjin@DragonOS.org >
* fix(vfs): 解决AT_FDCWD时,传入path为空导致内核panic的问题
Signed-off-by: longjin <longjin@DragonOS.org >
* chore: 更新Held项目的git revision
将Held项目的git revision从f192df4更新为5163c56。
Signed-off-by: longjin <longjin@DragonOS.org >
---------
Signed-off-by: longjin <longjin@DragonOS.org >
2025-06-14 17:32:15 +08:00
8ff7cd5546
fix(vfs):修复getdents系统调用 ( #1195 )
2025-06-05 15:09:43 +08:00
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
e92424df8d
fix(mm): 修复fat文件系统的PageCache同步问题 ( #1005 )
...
---------
Co-authored-by: longjin <longjin@DragonOS.org >
2025-01-01 23:38:00 +08:00
a08191c719
feat(fs/syscall): 实现fchdir系统调用 ( #1081 )
...
Signed-off-by: longjin <longjin@DragonOS.org >
2025-01-01 23:36:37 +08:00
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
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
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
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
01b8a76cdc
修复阻塞阅读eventfd时无法被中断的bug ( #1030 )
...
Co-authored-by: sparkzky <sparkhhhhhhhhh@outlook.com >
2024-11-05 16:47:44 +08:00
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
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
fae6e9ade4
feat(ebpf):[WIP] add eBPF support ( #948 )
...
* feat(kprobe): Add basic kprobe support for x86_64
* feat: add ebpf support (#912 )
- 实现bpf()一部分命令,包括几种基本map,相关的helper函数
- 实现部分perf相关的数据结构
- 暂时为文件实现简单mmap
- 实现一个使用kprobe统计syscall 调用次数的ebpf程序
对eBPF支持程度(基本):
- 简单的eBPF程序(没有指定特殊的Map)
- 使用内核已经实现的Map的eBPF程序
- 可以和kprobe配合使用
- 内核Map相关的接口定义已经实现,添加新的Map较为简单
不支持的功能:
- 区分不同的eBPF程序类型(Network/Cgroup)并限定可调用的helper函数集
- 与内核其它跟踪机制配合(tracepoint)
- 其它helper和Map
todo
- [ ] 修改mmap,需要讨论,因为这个和块缓存层相关
- [x] 添加文档
- [x] 修复可能的错误
- [x] 增加rbpf版本信息
* feat: add /sys/devices/system/cpu/possible file
* feat: add /sys/devices/system/cpu/online
2024-10-25 15:59:57 +08:00
01c18c64b1
feat:添加symlink系统调用 ( #984 )
...
* 添加symlink系统调用
* 修改FATInode的dname的获取逻辑
* 修改fat对Dname的处理,分离dname和inode缓存的key
---------
Co-authored-by: sparkzky <sparkhhhhhhhhh@outlook.com >
Co-authored-by: longjin <longjin@DragonOS.org >
2024-10-20 20:56:11 +08:00
dcd345f6d3
feat: 添加SYS_MKDIRAT系统调用 ( #986 )
...
将内核原本实现的do_mkdir_at暴露出来,实现SYS_MKDIRAT
Signed-off-by: longjin <longjin@DragonOS.org >
2024-10-17 11:38:40 +08:00
f9fe30be89
feat(boot): 内核启动命令行参数解析 ( #969 )
...
支持解析启动命令行参数,行为与Linux一致。具体见文档。
bbs链接:https://bbs.dragonos.org.cn/t/topic/362
issue: https://github.com/DragonOS-Community/DragonOS/issues/865
支持了三种参数:
- Arg (不带Value的参数)
- KV (正常的KV参数)
- EarlyKV (在内存管理初始化之前解析)
# TODO
- 支持在`/proc/cmdline`下面查看内核启动时的命令行参数。
- 支持回调函数,允许更加灵活的设置参数的值(目前用不到,就没写了)
Signed-off-by: longjin <longjin@DragonOS.org >
2024-10-13 23:39:55 +08:00
c709f79fda
feat(tty): 将tty设备适配epoll,修改串口部分问题 ( #968 )
...
- tty文件适配epoll,使epoll能够监听tty
- 修改串口handle_irq,原有每次只读取一个字节会导致:输入left(esc+[+A)被错误解析为(esc)+([)+(A)三个字符
- 为串口加上vcdata用于控制输入输出的格式问题(未解决,这个pr捎带)
2024-10-13 01:10:36 +08:00
d031d46fd9
feat: 添加serial console,支持non-graphic启动 ( #947 )
...
Signed-off-by: longjin <longjin@dragonos.org >
2024-10-01 11:35:48 +08:00
013ffb708f
feat(ida): IDA内部改为使用XArray实现 ( #934 )
...
目前可以记录哪些ID已经分配,支持了ID释放的功能.
Signed-off-by: longjin <longjin@DragonOS.org >
2024-09-25 11:20:52 +08:00
cf7f801e1d
feat(mm): 简单实现fat文件系统的文件映射 ( #840 )
...
- 添加文件映射相关接口,目前已简单实现fat文件系统的私有映射和共享映射
- 添加msync系统调用(由于当前未实现脏页自动回写,需要手动调用msync进行同步)
- 简单实现PageCache(暂时使用HashMap进行文件页号与页的映射)
- 添加新的PageFlags标志结构,原PageFlags改名为EntryFlags
- 参考linux使用protection_map映射表进行页面标志的获取
- 添加页面回收机制
- 添加页面回收内核线程
- 缺页中断使用的锁修改为irq_save; 添加脏页回写机制
- 修复do_cow_page死锁问题
- 访问非法地址时发送信号终止进程
- 修复重复插入反向vma表的错误
- 添加test_filemap文件映射测试程序
2024-09-05 00:35:27 +08:00
9fa0e95eee
feat: 添加gendisk抽象 ( #903 )
...
* feat: 添加gendisk抽象.
* 支持使用virtio磁盘作为根文件系统
* Update initial_kthread.rs to resolve conflict.
---------
Co-authored-by: Donkey Kane <109840258+xiaolin2004@users.noreply.github.com >
2024-09-02 23:37:55 +08:00
dc9b4fea1b
fix: pipe 读取/写入阻塞时,无法kill进程的问题 ( #889 )
2024-08-27 13:01:11 +08:00
4afc5b7b7b
feat: 增加tokio异步运行时支持 ( #894 )
...
* fix the EventFdFlags error
* feat: support tokio (Single thread version)
Fix deadlock issue on closing file.
Add function for PipeInode and EventFdInode.
2024-08-19 18:50:17 +08:00
f4acaec4ea
修复unlink、unlinkat系统调用的路径错误 ( #892 )
2024-08-15 00:31:38 +08:00
0648a547da
feat(cred): 初步实现Cred ( #846 )
...
* 初步实现Cred
* 添加seteuid和setegid
* 添加cred测试程序
* 修改Cred::fscmp返回结果为CredFsCmp枚举
* 完善root用户相关信息
2024-08-02 09:42:34 +08:00
703ce5a77c
fix: 修复由于升级到2024-07-23工具链之后,某些机器上面内核运行一直fault的问题。 ( #870 )
...
* fix: 修复由于升级到2024-07-23工具链之后,某些机器上面内核运行一直fault的问题。
2024-07-27 17:34:05 +08:00
86ee1395de
feat(fs): add eventfd syscall support ( #858 )
...
* feat(fs): add eventfd syscall support
2024-07-25 15:08:17 +08:00
bd70d2d1f4
chore: 将工具链更新到2024-07-23 ( #864 )
...
* chore: 将工具链更新到2024-07-23
2024-07-25 00:55:02 +08:00
6f189d2743
feat(time): Add syscall support for utime* ( #838 )
...
* feat(vfs): Add syscall support for utime*
impl sys_utimensat
impl sys_utimes
add utimensat test
fix some warning
* fix(vfs): Verify pointer validity
* fix: remove bad cfg
2024-06-27 17:43:25 +08:00
415e14e9c3
fix(driver): fix memory security problem in tty device ioctl ( #833 )
...
* add soft link to musl-gcc
* fix the tty_ioctl
* modified
* modified
2024-05-31 10:20:51 +08:00
3d4cd853a3
feat(procfs): update procfs ( #831 )
...
为procfs增加是否是kthread的显示
增加返回进程已经占用的文件描述符数量
2024-05-28 13:18:12 +08:00