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
e8b1db320d
chore: Bump dadk to 0.2.0 ( #1058 )
...
# 概述
把dadk版本升级到0.2.0
dadk 0.2.0能够提升编译速度,并且支持使用dadk对内核进行profiling。
新版dadk的文档: https://docs.dragonos.org.cn/p/dadk/
# 注意
这是一个breaking change,升级后,将无法使用dadk 0.2.0去编译旧的项目。如有需要,请手动降级到dadk 0.1.11:
```shell
cargo install --git https://git.mirrors.dragonos.org.cn/DragonOS-Community/DADK --tag v0.1.11
```
# 更改列表
* chore: 把管理用户程序编译的dadk配置文件改为新格式的
* feat: 使用新版dadk来创建\挂载\卸载磁盘镜像
* chore: bump dadk min version to 0.2.0
* chore: fix ci
* chore: 更新github ci镜像到1.7
* doc: 添加文档
---------
Co-Authored-by: xuzihao <xuzihao@dragonos.org>
Signed-off-by: longjin <longjin@DragonOS.org>
2024-11-27 01:30:31 +08:00
yuyi2439
23ccf763b6
fix(user): 修复clean ./user时出现参数过长的问题 ( #1037 )
2024-11-22 22:49:10 +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
LoGin
5d54e74768
fix: add gitignore to test_namespace ( #1038 )
2024-11-10 20:04:23 +08:00
MemoryShore
2e7e4cecb0
Update NovaShell to cb835e03e4 ( #1022 )
2024-10-31 13:48:23 +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
火花
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
linfeng
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
MemoryShore
b9966addf1
update novashell to 7bb802ad1e ( #1006 )
2024-10-22 22:32:50 +08:00
sparkzky
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
MemoryShore
a8753f8fff
feat(tty): 实现发送SIGINT终止信号 ( #952 )
...
* 实现SIGINT终止信号传递
* 添加test_sigint测试程序
2024-10-09 19:02:14 +08:00
Jomo
52dc4c3ee8
fix: 修复root用户信息未正确换行的问题 ( #955 )
2024-10-07 23:45:52 +08:00
LoGin
047dbfd44b
fix(kbd): 修复键盘命令解析器生成的字节码与Linux不一致的问题 ( #946 )
...
Signed-off-by: longjin <longjin@dragonos.org>
2024-09-29 03:15:21 +08:00
LoGin
2b7818e80e
feat: 添加对内核引导协议的抽象 ( #913 )
...
* 添加multiboot header
* head.S传参增加bootloader类型
* feat: 添加引导加载协议的抽象,并为multiboot2实现这个抽象.
* 把framebuffer的映射地址改为从early ioremap和mmio pool分配
* riscv64能运行
2024-09-05 21:12:20 +08:00
MemoryShore
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
linfeng
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
Jomo
0648a547da
feat(cred): 初步实现Cred ( #846 )
...
* 初步实现Cred
* 添加seteuid和setegid
* 添加cred测试程序
* 修改Cred::fscmp返回结果为CredFsCmp枚举
* 完善root用户相关信息
2024-08-02 09:42:34 +08:00
linfeng
86ee1395de
feat(fs): add eventfd syscall support ( #858 )
...
* feat(fs): add eventfd syscall support
2024-07-25 15:08:17 +08:00
LoGin
bd70d2d1f4
chore: 将工具链更新到2024-07-23 ( #864 )
...
* chore: 将工具链更新到2024-07-23
2024-07-25 00:55:02 +08:00
SMALLC
1ea2daad81
feat(driver/net): 实现Loopback网卡接口 ( #845 )
...
* 初步实现loopback设备
2024-07-22 16:22:45 +08:00
linfeng
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
Jomo
03746da3d9
feat(user): user management tool ( #825 )
...
* 用户管理工具
* 重构
* 改为多个bin文件入口
* bin文件的usage显示自身程序名而非固定程序名
2024-06-05 13:00:19 +08:00
LoGin
ce48b93437
doc: add v0.1.10 changelog ( #813 )
...
* 完成v0.1.10 changelog
2024-05-13 16:56:26 +08:00
LoGin
352ee04918
fix: disable mm debug log to prevent system lockup due to thingbuf issue ( #808 )
2024-05-11 18:02:13 +08:00
Samuel Dai
37cef00bb4
fix(net): Fix TCP Unresponsiveness and Inability to Close Connections ( #791 )
...
* fix(net): Improve stability. 为RawSocket与UdpSocket实现close时调用close方法,符合smoltcp的行为。为SocketInode实现drop,保证程序任何情况下退出时都能正确close对应socket, 释放被占用的端口。
* fix(net): Correct socket close behavior.
2024-05-11 17:17:43 +08:00
laokengwt
7401bec5e3
feat(mm): add slab usage calculation ( #768 )
...
* Add slab free space calculation and add it to freeram of sysinfo
2024-04-29 23:03:33 +08:00
LoGin
182b778a3c
chore: 适配dadk 0.1.11 ( #777 )
...
* chore: 适配dadk 0.1.11
2024-04-28 13:39:51 +08:00
zwb0x00
40348dd8d5
feat(fs): add sys_dup3 ( #755 )
...
* feat(fs): add sys_dup3
2024-04-23 19:35:02 +08:00
laokengwt
70c991af20
fix(dog): 添加CC环境变量,解决编译时找不到musl-gcc的问题 ( #753 )
2024-04-22 17:40:03 +08:00
MemoryShore
a17651b14b
feat(mm): 实现缺页中断处理,支持页面延迟分配和写时拷贝,以及用户栈自动拓展 ( #715 )
...
* 实现缺页中断处理
* 完善页表拷贝逻辑
* 优化代码结构
* 完善缺页异常信息
* 修改大页映射逻辑
* 修正大页映射错误
* 添加缺页中断支持标志
* 实现用户栈自动拓展功能
2024-04-22 15:10:47 +08:00
Saga1718
1012552dea
删除无用的hid代码 ( #734 )
2024-04-16 21:37:42 +08:00
SMALLC
fbd63a301c
feat: alarm系统调用实现 ( #710 )
...
* alarm系统调用实现
2024-04-16 21:34:36 +08:00
Samuel Dai
1074eb34e7
feat(filesystem): 引入Umount系统调用 ( #719 )
...
* feat(filesystem): 引入Umount系统调用
* 将所有ENOSYS误用更正
* 修复了一个使同一个挂载点可以挂载2个文件系统的bug
* 统一注释,增强程序稳定性,统一接口。注意:Umount时在fatfs的路径要使用大写,此受限于当前文件系统设计。
2024-04-15 13:02:04 +08:00
Saga1718
c719ddc631
feat(net): 实现tcp backlog功能 ( #714 )
...
* feat:实现tcp的backlog功能
2024-04-14 23:51:47 +08:00
Jomo
6fc066ac11
实现SystemV共享内存 ( #690 )
...
* 实现SystemV共享内存
* 测试shm
* 添加测试程序
* 完善细节
* 修正shm的时间数据错误的问题
* fix: devfs的metadata权限为0x777的错误
---------
Co-authored-by: longjin <longjin@DragonOS.org>
2024-04-07 14:04:19 +08:00
曾俊
eb49bb993a
BlockCache-read cache支持 ( #521 )
...
支持block cache的读缓存
2024-04-07 14:03:51 +08:00
hmt
06560afa2a
Patch feat robust futex ( #682 )
...
* feat: 实现robust lock机制
* 前面更改vscode,修改回来
* 修改dadk的路径
* 提交.gitnore和.cargo,删除LICENSE,修改README
* 修改一个warn
* 删除.rustc_info.json
* 删除target文件夹
* 恢复DragonOS的LICENSE,删除Cargo.lock
* 将校验用户空间地址的代码写入函数内;将部分match分支用ok_or代替
* 修改wakeup函数获取running queue时unwrap一个None值发生panic
* 测试程序使用syscalls库进行系统调用
2024-04-06 22:26:34 +08:00
GnoCiYeH
dfe53cf087
实现pty,附带测试程序 ( #685 )
...
* 实现pty,附带测试程序
* fmt ** clippy
* 将file层的锁粒度缩小,从而不使用no_preempt。更改pipe在sleep部分的bug
* 修复拼写错误
2024-04-05 00:21:55 +08:00
Donkey Kane
b8ed38251d
修复jiffy时钟过快问题,启用gettimeofday测试,修改mount测试 ( #680 )
...
1. 把clock tick rate与hpet频率关联起来
2. 修复墙上时间同步错误的问题
3. 启用时间watch dog.
4. 修复时间流逝速度异常
---------
Co-authored-by: longjin <longjin@DragonOS.org>
2024-04-05 00:06:26 +08:00
yuyi2439
9430523b46
使nproc可以正确获取到cpu核心数 ( #689 )
2024-04-04 12:41:19 +08:00
TTaq
597ecc08c2
新加结构体POSIXSTATFS与SuperBlock用于处理statfs系统调用 ( #667 )
...
* 新加结构体POSIXSTATFS与SuperBlock用于处理statfs系统调用
2024-03-26 18:28:26 +08:00
Val213
7c958c9ef0
移植dns查询工具dog的--tcp功能 ( #652 )
...
* add dog, modify user/Makefile and user.sysconfig
* add dog, modify user/Makefile and user.sysconfig
* fix tty unicode
* 修正无法正确编译dog的问题
---------
Co-authored-by: val213 <val213666@gmail.com>
Co-authored-by: GnoCiYeH <heyicong@dragonos.org>
Co-authored-by: longjin <longjin@DragonOS.org>
2024-03-25 13:04:53 +08:00
Donkey Kane
911132c4b8
修复clock_gettime返回类型错误,修复小时间间隔duration返回0问题 ( #664 )
...
* 修复clock_gettime返回类型错误,修正wtm初始化逻辑
* 修复duration在小时间间隔下为0的问题
* 临时修复时间流逝速度异常,在test-mount中加入运行时间检测
2024-03-25 13:04:32 +08:00
裕依
6046f77591
Patch socketpair ( #576 )
...
* 将sockets分成inet和unix域
- 添加File端点
- 添加SocketPair trait并将Socket trait中的pair相关方法移动
- 添加对SockAddrUn的处理
* 精简SocketHandleItem
* 重构socketpair相关逻辑
- 将File端点换成Inode端点
- 尝试使用SocketInode进行socketpair(未成功)
* 将SocketPair trait合并到Socket trait中,去除downcast
2024-03-23 15:56:49 +08:00
TTaq
b4eb05a17f
Statx ( #632 )
...
* 实现statx及测试的应用程序
2024-03-21 19:59:10 +08:00
Donkey Kane
1d37ca6d17
添加mount系统调用 ( #561 )
...
* Modify dadk config to switch NovaShell revision
* finish primary build of mount(2), usable now
* 使用read_from_cstr函数优化代码可读性 , 针对文件系统新增错误EUNSUPFS
* small changes
* 添加系统调用文档
* cargo fmt
* Revert "small changes"
This reverts commit e1991314ce687faa2d652479e8ef64f5bea25fa1.
* 修复用户程序参数传入错误
* Revert "small changes"
This reverts commit e1991314ce687faa2d652479e8ef64f5bea25fa1.
* 解决合并冲突,最终提交
* 将dadk_config切换为相对路径以修复依赖问题
* Update settings.json
* Delete user/apps/test-mount/LICENSE
* 换用更好的c字符串读取函数,优化系统调用函数注释,修复错误处理bug,删除无用文件,修改测试程序readme
* 修改用户程序readme
* 代码格式化,初级版本
* 初级版本,未实现文件系统管理器,未支持设备挂载
* 为文件系统添加name方法,返回文件系统名字字符串,为挂载查询服务
* mount系统调用:添加统一文件系统初始化管理器
* null
* 解除冲突
* 删除无用kdebug
2024-03-20 15:31:20 +08:00
LoGin
1cd9bb43f0
添加core utils到系统 ( #624 )
2024-03-19 21:31:02 +08:00
GnoCiYeH
e3b898316b
增加ChangeLog V0.1.9,更改about.c版本 ( #600 )
2024-03-13 22:36:31 +08:00
MemoryShore
af59116e1b
Update NovaShell version to c6454d3220 ( #593 )
2024-03-12 17:52:14 +08:00