longjin
b7495981f4
fix: 修正IfaceCommon的bounds字段的锁使用问题&调度问题
...
- 中断上下文内用到的锁,在外面要irqsave.
- 把主线调度的pr应用到当前分支: https://github.com/DragonOS-Community/DragonOS/pull/1063
Signed-off-by: longjin <longjin@DragonOS.org>
2024-11-27 17:12:11 +00:00
1a046769ee
merge main
2024-11-13 20:08:46 +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
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
Cai Junyuan
fad1c09757
feat(net): 实现unix抽象地址空间 ( #1017 )
2024-10-28 20:29:08 +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
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
val213
886504ff9b
remove uevent test
2024-10-16 12:33:40 +08:00
val213
b9f04fc3a4
merge upstream
2024-10-16 12:32:37 +08:00
val213
d7be7deebc
清理积弊,不必要的动态分发和智能指针
2024-10-15 23:06:41 +08:00
8fe49e190e
make fmt
2024-10-14 12:11:27 +00:00
40d9375b6b
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
2024-10-10 17:53:39 +08:00
MemoryShore
a8753f8fff
feat(tty): 实现发送SIGINT终止信号 ( #952 )
...
* 实现SIGINT终止信号传递
* 添加test_sigint测试程序
2024-10-09 19:02:14 +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
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
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
TTaq
597ecc08c2
新加结构体POSIXSTATFS与SuperBlock用于处理statfs系统调用 ( #667 )
...
* 新加结构体POSIXSTATFS与SuperBlock用于处理statfs系统调用
2024-03-26 18:28:26 +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
GnoCiYeH
e3b898316b
增加ChangeLog V0.1.9,更改about.c版本 ( #600 )
2024-03-13 22:36:31 +08:00
裕依
bc6f0a967c
移除relibc和old libc以及旧的shell ( #529 )
...
移除relibc和old libc以及旧的shell
2024-03-04 14:20:01 +08:00
GnoCiYeH
52da9a5937
完成与Linux兼容的Ntty ( #517 )
...
* 已经完成的功能:
- 写:printf能够正常在tty输出
- 读:与键盘驱动接上
- 信号: 能够正常通过ctrl向前台进程发送信号
* 支持目前的shell,改动printk使其与新版tty兼容。
* 删除原有tty文件夹,并更改新tty文件名
* 添加clear清屏程序
* 实现tty部分ioctl,更改部分问题
2024-02-26 15:27:19 +08:00
LoGin
fccbe87dca
删除关于zulip的表述,替换为社区论坛 ( #508 )
2024-02-05 14:50:15 +08:00
Jomo
8d72b68da9
实现内核日志系统 ( #489 )
...
* 实现写日志和读取日志,并且能够在用户态下执行dmesg命令查看日志
* 通过klogctl实现dmesg
* 改用ConstGenericRingBuffer作内核缓冲区
* 更改缓冲区容量
* 将能够输出到控制台的日志级别改为日志级别枚举类,使用SpinLock控制KMSG,使用枚举类定义SYSLOG_ACTION,将do_syslog系统调用接口放在syscall.rs
* fix warning
* 完善do_syslog注释
* 将KMSG接入kinfo、kdebug等
* fix warning
* 修复显示的秒数不正确,·以及无法通过CI的问题
2024-01-24 16:13:15 +08:00
LoGin
c566df451c
添加帧缓冲区抽象并实现vesafb的驱动 ( #483 )
...
- 添加bootparams对象
- 修正由于bus的driver、device强弱引用关系 不正确从而导致对象被释放的bug
- 添加vesafb的驱动
- 实现framebuffer抽象层
- 为通用帧缓冲区抽象实现sysfs的属性
- 修改设备号DeviceNumber的定义
- 仿照linux,添加initcall,并在第一个内核线程中,调用他们。
2024-01-01 11:46:51 +08:00
LoGin
0d9b7d9240
添加prlimit64系统调用 ( #438 )
...
注意: 目前仅支持读取默认的rlimit值,尚不支持设置rlimit值.
2023-11-12 18:44:15 +08:00