LoGin
8b8f2f7981
chore: 将cargo.lock恢复提交到git ( #1114 )
...
Signed-off-by: longjin <longjin@DragonOS.org>
2025-03-25 11:27:50 +08:00
LoGin
f8c5e12d70
fix: 修复slab分配器的UAF\内存越界问题 ( #1111 )
...
- 新增 `tests.rs` 模块,包含多个测试用例以验证内存分配器的正确性和性能。
- 优化 `pages.rs` 中的 `Bitfield` 实现,移除不必要的 `get_offset_for_align` 函数。
- 在 `zone.rs` 中新增 `try_reclaim_pages_in_slab` 方法,用于在特定 slab 中回收页面。
- 修复 `kernel_allocator.rs` 中的 `allocator_select_condition` 逻辑,移除对 `slab_init_state` 的依赖。
- 移除 `slab.rs` 中的 `slab_init_state` 函数,简化初始化状态检查。
Signed-off-by: longjin <longjin@DragonOS.org>
2025-03-24 23:21:22 +08:00
LoGin
13514f6695
fix: 修复nttyData的buffer导致初始化时,栈溢出的问题 ( #1112 )
...
Signed-off-by: longjin <longjin@DragonOS.org>
2025-03-24 23:17:06 +08:00
LoGin
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
火花
24b102b030
添加set_user_sigmask ( #1090 )
2025-03-11 23:25:42 +08:00
LoGin
6fa06ff08a
fix: 在插入新的timer时,边界条件判断不正确的问题 ( #1091 )
...
修复split_pos 初始值错误导致原本应该被插入到链表末尾的定时器,插入到了链表头
Signed-off-by: longjin <longjin@DragonOS.org>
2025-03-07 12:05:45 +08:00
Z Fan
597315b04d
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>
2025-03-04 10:56:20 +08:00
LoGin
01dcb5d7a8
fix: 修复do_wait函数在wait所有子进程时,忘了释放锁就sleep的bug ( #1089 )
...
Signed-off-by: longjin <longjin@DragonOS.org>
2025-02-08 23:35:09 +08:00
LoGin
7ae6621cfa
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>
2025-02-06 22:55:45 +08:00
LoGin
a3011dd24a
fix(process): 修复copy_process的一些bug & 支持默认init进程传参 ( #1083 )
...
- 修复`copy_process`函数对标志位处理不正确的bug
- init进程搜索列表中,支持为默认init程序传入参数
Signed-off-by: longjin <longjin@DragonOS.org>
2025-02-06 22:51:51 +08:00
MemoryShore
e92424df8d
fix(mm): 修复fat文件系统的PageCache同步问题 ( #1005 )
...
---------
Co-authored-by: longjin <longjin@DragonOS.org>
2025-01-01 23:38:00 +08:00
LoGin
a08191c719
feat(fs/syscall): 实现fchdir系统调用 ( #1081 )
...
Signed-off-by: longjin <longjin@DragonOS.org>
2025-01-01 23:36:37 +08:00
LoGin
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
LoGin
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
linfeng
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
火花
6e85059fbc
feat:添加sigprocmask系统调用 ( #1046 )
...
* 添加sigprocmask系统调用
---------
Signed-off-by: sparkzky <sparkhhhhhhhhh@outlook.com>
Co-authored-by: longjin <longjin@DragonOS.org>
2024-12-07 16:36:55 +08:00
LoGin
4f8f269baf
fix: 解决进程退出时没有主动释放fdtable的问题 ( #1069 )
...
会导致http server被kill时,pcb没有drop
Signed-off-by: longjin <longjin@DragonOS.org>
2024-12-02 00:39:52 +08:00
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
df3bf6d60a
fix: 修复无唤醒事件时,核心卡死在idle进程的问题 ( #1063 )
...
Signed-off-by: longjin <longjin@DragonOS.org>
2024-11-28 14:33:14 +08:00
LoGin
62da73bbe5
fix: 修正进程pcb的`on_cpu`字段未设置导致的panic问题 ( #1057 )
...
Signed-off-by: longjin <longjin@DragonOS.org>
2024-11-28 01:04:48 +08:00
linfeng
539ee3eaeb
fix(backtrace):Use more reasonable compile options ( #1056 )
...
* fix(backtrace):Use more reasonable compile options
* 调整代码,同时解决rust analyzer未能提示warning的问题
---------
Co-authored-by: longjin <longjin@DragonOS.org>
2024-11-25 16:28:05 +08:00
linfeng
081428c0d8
feat: update to new backtrace lib ( #1049 )
...
* feat: update to new backtrace lib
* feat: enable unwind for riscv64
---------
Co-authored-by: longjin <longjin@DragonOS.org>
2024-11-19 21:55:22 +08:00
linfeng
750b3b5d91
feat(debug)[WIP]: add static-keys support ( #1025 )
...
* feat: add static-keys support
2024-11-16 16:21:20 +08:00
MemoryShore
ff76b0fcb8
修复tty处理信号时错误地将前台进程组置空的问题 & clone时未拷贝父进程tty的问题 ( #1043 )
...
* 修复clone时未拷贝父进程tty的问题
* 修复tty处理信号时错误地将前台进程组置空的问题
2024-11-12 16:31:13 +08:00
LoGin
0f094e50de
fix: 修复了do execve 加载程序失败时,没能正确返回错误码给用户态的问题 ( #1042 )
...
* fix: 修复了do execve 加载程序失败时,没能正确返回错误码给用户态的问题
2024-11-12 14:01:26 +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
曾俊
69715438f2
feat(pci): 解决了pci总线子系统中pci结构一致性问题,增加了pci设备的可读属性 ( #1009 )
...
---------
Co-authored-by: 黄铭涛 <1037827920@qq.com>
2024-11-11 20:57:08 +08:00
LoGin
20c58101dd
fix: do_signal函数在处理SIG_KILL时,有一处pcb强引用未归零的问题 ( #1039 )
...
Signed-off-by: longjin <longjin@DragonOS.org>
2024-11-11 11:38:57 +08:00
曾俊
f5c732d8dc
fix(video): 增加了对frame buffer操作的安全检查 ( #1034 )
...
fix(video): 增加了对frame buffer操作的安全检查
2024-11-10 23:46:56 +08:00
火花
01b8a76cdc
修复阻塞阅读eventfd时无法被中断的bug ( #1030 )
...
Co-authored-by: sparkzky <sparkhhhhhhhhh@outlook.com>
2024-11-05 16:47:44 +08:00
LoGin
c7ad61d495
fix: 删除在 #949 中意外添加的旧版ida ( #1027 )
...
https://github.com/DragonOS-Community/DragonOS/pull/949
Signed-off-by: longjin <longjin@DragonOS.org>
2024-10-31 22:14:45 +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
黄铭涛
84c528f53d
fix(driver/virtio): 修改pci transport中断初始化的位置 ( #1018 )
...
* fix(driver/virtio): 修改pci transport中断初始化的位置
2024-10-29 00:26:16 +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
LoGin
4dd4856f93
fix(tty): 修复tty对tab进行处理时产生数组越界panic的问题 ( #1015 )
...
Signed-off-by: longjin <longjin@DragonOS.org>
2024-10-26 12:55:31 +08:00
LoGin
a9e28e9ce9
fix: 临时修复键盘驱动与鼠标驱动冲突导致键盘无响应 ( #1014 )
...
暂时通过条件编译的方式解决. 目前认为是鼠标驱动问题,没有正确判断是不是自己的数据...
但是因为我们场景下,鼠标驱动几乎用不到,因此先条件编译屏蔽.
Signed-off-by: longjin <longjin@DragonOS.org>
2024-10-26 12:55:19 +08:00
LoGin
dc60d68f0e
fix: tty刷新线程初始化之前,键盘产生数据导致崩溃的问题 ( #1013 )
...
Signed-off-by: longjin <longjin@DragonOS.org>
2024-10-26 12:55:06 +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
LoGin
cae6182257
fix: 临时修复线程退出时处理tty前台进程组产生panic的bug ( #985 )
2024-10-18 17:47:28 +08:00
LoGin
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
LoGin
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
GnoCiYeH
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
Jomo
53629ac383
feat: 释放slab中的空闲页面到buddy ( #932 )
...
* patch: 释放slab中的空闲页面到buddy
* 校验释放的slab_page的起始地址与大小 & SCAllcator增加空闲块计数器
2024-10-12 00:57:16 +08:00
LoGin
415e46ea47
build: Remove DragonOS_GCC And make CI use docker image ( #954 )
...
* build: 不再需要x86_64-elf-gcc的支持
* ci: 添加ci用的docker镜像
* 切换workflow到构建用的容器上
---------
Signed-off-by: longjin <longjin@DragonOS.org>
2024-10-10 00:59:50 +08:00
黄铭涛
1bd12bc2ff
fix(driver/net): 修复iface设备无法中断的bug ( #957 )
2024-10-09 21:44:12 +08:00
LoGin
59a6bcf6ae
feat: Add HVM boot support for x86_64 ( #953 )
...
Signed-off-by: longjin <longjin@DragonOS.org>
2024-10-09 21:36:18 +08:00
MemoryShore
a8753f8fff
feat(tty): 实现发送SIGINT终止信号 ( #952 )
...
* 实现SIGINT终止信号传递
* 添加test_sigint测试程序
2024-10-09 19:02:14 +08:00
LoGin
d031d46fd9
feat: 添加serial console,支持non-graphic启动 ( #947 )
...
Signed-off-by: longjin <longjin@dragonos.org>
2024-10-01 11:35:48 +08:00
MemoryShore
103f13024b
修复tcsetpgrp函数设置进程组不正确的问题 ( #950 )
2024-09-30 21:19:31 +08:00
LoGin
047dbfd44b
fix(kbd): 修复键盘命令解析器生成的字节码与Linux不一致的问题 ( #946 )
...
Signed-off-by: longjin <longjin@dragonos.org>
2024-09-29 03:15:21 +08:00
LoGin
013ffb708f
feat(ida): IDA内部改为使用XArray实现 ( #934 )
...
目前可以记录哪些ID已经分配,支持了ID释放的功能.
Signed-off-by: longjin <longjin@DragonOS.org>
2024-09-25 11:20:52 +08:00
黄铭涛
28fe4ad2a0
feat(driver/net): 将网络设备注册到sysfs, 添加设备类属性文件 ( #919 )
2024-09-11 14:30:53 +08:00
MemoryShore
a3571c8b79
fix(mm): 修复riscv64启动时的PageFault ( #915 )
...
* 修复riscv64启动时的PageFault
* 优化代码结构
2024-09-06 23:02:50 +08:00
LoGin
db7c782a9a
feat: 允许通过multiboot引导(直到acpi初始化报错) ( #914 )
2024-09-06 20:04:36 +08:00
曾俊
886ce28516
fix(virtio):修复了特定virtio设备环境下中断号重复错误,以及开机内核panic的bug ( #881 )
2024-09-06 19:56:49 +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
LoGin
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
LoGin
232570ae98
fix: 修复存在多个virtio设备时,中断号冲突的问题 ( #904 )
2024-08-29 22:58:59 +08:00
LoGin
dc9b4fea1b
fix: pipe 读取/写入阻塞时,无法kill进程的问题 ( #889 )
2024-08-27 13:01:11 +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
Samuel Dai
09836e1b39
fix: socket shutdown wrong implement ( #893 )
2024-08-15 18:30:44 +08:00
MemoryShore
f4acaec4ea
修复unlink、unlinkat系统调用的路径错误 ( #892 )
2024-08-15 00:31:38 +08:00
LoGin
a1fc824fcc
fix: 修复键盘码解析器没能正确处理类似ctrl C的控制字符的问题 ( #877 )
...
* fix: 修复键盘码解析器没能正确处理类似ctrl C的控制字符的问题
* fix: 解决ntty潜在的panic问题
2024-08-06 19:51:45 +08:00
Jomo
0648a547da
feat(cred): 初步实现Cred ( #846 )
...
* 初步实现Cred
* 添加seteuid和setegid
* 添加cred测试程序
* 修改Cred::fscmp返回结果为CredFsCmp枚举
* 完善root用户相关信息
2024-08-02 09:42:34 +08:00
LoGin
703ce5a77c
fix: 修复由于升级到2024-07-23工具链之后,某些机器上面内核运行一直fault的问题。 ( #870 )
...
* fix: 修复由于升级到2024-07-23工具链之后,某些机器上面内核运行一直fault的问题。
2024-07-27 17:34:05 +08:00
LoGin
816ee5ae54
refactor: 删除过时的va-pa转换函数,改为统一使用MMArch ( #862 )
2024-07-26 00:27:35 +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
LoGin
634349e0eb
fix: tcp poll没有正确处理posix socket的listen状态的问题 ( #859 )
2024-07-24 18:21:39 +08:00
SMALLC
1ea2daad81
feat(driver/net): 实现Loopback网卡接口 ( #845 )
...
* 初步实现loopback设备
2024-07-22 16:22:45 +08:00
黄铭涛
af097f9f4b
fix(time): modify update wall time ( #836 )
...
更改了时间子系统的update_wall_time函数,通过读取当前周期数,计算delta值进行更新,而不是通过传入delta值进行更新
2024-07-16 21:51:21 +08:00
MemoryShore
38458c7267
修复mprotect系统调用未正确设置vm_flags的错误 ( #847 )
2024-07-16 19:26:53 +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
laokengwt
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
MemoryShore
de199e3c86
feat(mm): 修复mmap未延迟分配内存的问题 ( #837 )
...
* 20240524 3:40
* 20240527 0010
* 修复mmap未延迟分配内存的问题
* Revert "Merge branch 'patch-add-file-mapping' into patch-fix-mmap"
This reverts commit 8eb687c60b , reversing
changes made to 33e9f0b34f .
2024-05-28 20:06:23 +08:00
donjuanplatinum
3d4cd853a3
feat(procfs): update procfs ( #831 )
...
为procfs增加是否是kthread的显示
增加返回进程已经占用的文件描述符数量
2024-05-28 13:18:12 +08:00
BrahmaMantra
975f77a3bc
fix(time):修复了issue #816 ( #830 )
2024-05-19 23:27:41 +08:00
Mingtao Huang
bde08cded6
feat(driver/pci): 完善pci root结构体,增加portio的pci配置空间访问 ( #818 )
...
* feat(driver/pci): 完善pci root结构体,增加portio的pci配置空间访问
2024-05-16 17:47:01 +08:00
LoGin
0897bd8e75
fix(log): 修复pr #814 的问题 ( #821 )
2024-05-16 17:32:39 +08:00
曾俊
2eab6dd743
feat(log): 将内核日志统一为新的logger ( #814 )
2024-05-16 17:25:23 +08:00
LoGin
92deae638b
chore: move setup_arch_post timepoint to before clocksource_boot_finish ( #820 )
...
This commit adjusts the timing of the setup_arch_post event to occur before the clocksource_boot_finish event, allowing the time subsystem to properly register architecture-specific clock sources.
2024-05-16 14:06:23 +08:00
LoGin
236e88d5ef
fix(driver/apic_timer): 修复local apic timer初始化顺序导致的在某些云服务器上无法收到中断的bug ( #815 )
2024-05-14 02:50:58 +08:00
LoGin
ce48b93437
doc: add v0.1.10 changelog ( #813 )
...
* 完成v0.1.10 changelog
2024-05-13 16:56:26 +08:00
曾俊
1f4877a4c5
feat(driver/pci): add pci bus into sysfs ( #792 )
...
把pci设备加入sysfs
2024-05-13 15:27:08 +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
LoGin
0102d69fdd
feat:(riscv/intr) 实现riscv plic驱动,能处理外部中断 ( #799 )
...
* feat:(riscv/intr) 实现riscv plic驱动,能处理外部中断
- 实现riscv plic驱动,能处理外部中断
- 能收到virtio-blk的中断
- 实现fasteoi interrupt handler
2024-05-01 21:11:32 +08:00
MemoryShore
17dc558977
修复vma映射标志错误 ( #801 )
2024-05-01 21:09:51 +08:00
LoGin
7db6e06354
feat(bitmap): Add bit and for AllocBitMap ( #793 )
2024-04-30 18:45:01 +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
曾俊
bde4a334c1
修复了未初始化时ui显示模块内存越界的问题,优化了代码结构 ( #789 )
2024-04-29 18:55:17 +08:00
LoGin
0722a06a09
fix: (riscv/timer): 修复riscv下没有更新墙上时钟以及没有处理软中断的bug ( #783 )
2024-04-28 19:40:09 +08:00
LoGin
942cf26b48
fix(riscv/process): 把riscv的调度时钟节拍率与HZ同步,并且修复切换到用户态的时候忘了在内核态关中断的bug ( #780 )
2024-04-28 16:49:40 +08:00
曾俊
13b057cc0f
fix(libs/lib_ui): fix the display errors when system initialize ( #779 )
...
* 修复了系统初启动时会花屏的bug
2024-04-28 16:49:19 +08:00
Mingtao Huang
dd8e74ef0d
feat(driver/acpi_pm): Implement ACPI PM Timer ( #772 )
...
* feat: Implement ACPI PM Timer
2024-04-28 13:25:12 +08:00
LoGin
f75cb0f8ed
refactor(process): 调整arch_switch_to_user函数,把riscv和x86_64的共用逻辑抽取出来。 ( #773 )
...
* refactor(process): Extract common logic for riscv and x86_64 in arch_switch_to_user to run_init_process
调整arch_switch_to_user函数,把riscv和x86_64的共用逻辑抽取出来。写成run_init_process函数,并且能够尝试运行多个不同的init程序,直到某个运行成功
2024-04-27 15:35:24 +08:00
zwb0x00
173c4567cf
feat(sched): add sched_yield ( #766 )
...
* 实现sched_yield系统调用
2024-04-26 15:33:29 +08:00
LoGin
471d65cf15
feat(riscv): riscv下能够运行hello world用户程序 ( #770 )
...
* feat(riscv): riscv下能够运行hello world用户程序
2024-04-26 11:59:47 +08:00
zwb0x00
40348dd8d5
feat(fs): add sys_dup3 ( #755 )
...
* feat(fs): add sys_dup3
2024-04-23 19:35:02 +08:00
LoGin
731bc2b32d
feat(virtio): riscv: 添加virtio-blk driver,并在riscv下能够正确挂载FAT32 ( #761 )
2024-04-23 17:19:54 +08:00
LoGin
e32effb150
feat(driver): 把virtio添加到sysfs ( #752 )
2024-04-22 15:11:47 +08:00
MemoryShore
a17651b14b
feat(mm): 实现缺页中断处理,支持页面延迟分配和写时拷贝,以及用户栈自动拓展 ( #715 )
...
* 实现缺页中断处理
* 完善页表拷贝逻辑
* 优化代码结构
* 完善缺页异常信息
* 修改大页映射逻辑
* 修正大页映射错误
* 添加缺页中断支持标志
* 实现用户栈自动拓展功能
2024-04-22 15:10:47 +08:00
sun5etop
93c379703e
feat(net): 实现raw socket的poll ( #739 )
...
feat(net): 实现raw socket的poll
2024-04-21 13:36:44 +08:00
LoGin
b502fbf0b9
chore: Update virtio-drivers to commit 61ece509c4 and modify max_queue_size implementation ( #748 )
2024-04-21 13:30:29 +08:00
LoGin
d770de5d53
fix: 修复unified-init导致cargo check失败的问题 ( #747 )
2024-04-21 13:12:31 +08:00
yuyi2439
881ff6f95e
将smoltcp升级到0.11.0版本 ( #740 )
2024-04-21 11:39:00 +08:00
LoGin
370472f728
pci: 添加pci root manager来管理pci root,并使得riscv能够正常扫描pci设备. ( #745 )
...
* pci: 添加pci root manager来管理pci root.
pci: 使得riscv能够正常扫描pci设备.
* doc: 添加注释
2024-04-21 11:27:36 +08:00
LoGin
2709e017d0
pci: 统一使用ecam root ( #744 )
2024-04-20 18:31:56 +08:00
LoGin
418ad41fd8
Feat(tty): add dummy console ( #735 )
...
使得riscv能暂时完成stdio_init(将来需要实现riscv的串口console)
2024-04-17 10:03:22 +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
GnoCiYeH
d623e90231
socket统一改用`GlobalSocketHandle`,并且修复fcntl SETFD的错误 ( #730 )
...
* socket统一改用`GlobalSocketHandle`,并且修复fcntl SETFD的错误
---------
Co-authored-by: longjin <longjin@DragonOS.org>
2024-04-15 22:01:32 +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
laokengwt
ceeb2e943c
feat(mm): 添加slab内存分配器 ( #683 )
...
feat(mm): 添加slab内存分配器
---------
Co-authored-by: longjin <longjin@DragonOS.org>
2024-04-15 12:51:14 +08:00
Saga1718
c719ddc631
feat(net): 实现tcp backlog功能 ( #714 )
...
* feat:实现tcp的backlog功能
2024-04-14 23:51:47 +08:00
LoGin
9621ab16ef
让riscv64能正常切换进程,并运行完所有的initcall ( #721 )
2024-04-14 20:39:20 +08:00
LoGin
f049d1af01
初始化riscv-sbi-timer ( #716 )
2024-04-12 14:46:47 +08:00
曾俊
3959e94df3
bugfix: 修复smp启动的时候,损坏0号核心的idle进程的内核栈的问题 ( #711 )
...
---------
Co-authored-by: longjin <longjin@DragonOS.org>
Co-authored-by: heyicong <heyicong@dragonos.org>
2024-04-10 19:00:32 +08:00
GnoCiYeH
9365e8017b
完善pty,目前pty能够支持ssh ( #708 )
2024-04-10 19:00:12 +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
LoGin
23ef2b33d1
riscv: 把内核编译target改为riscv64gc & 获取time csr的频率 & 修正浮点保存与恢复的汇编的问题 ( #699 )
...
* 1. 把内核编译target改为riscv64gc
2. fix: 修正浮点保存与恢复的汇编的问题
* riscv: 获取time csr的频率
2024-04-06 22:13:26 +08:00
GnoCiYeH
f0c87a897f
重写调度模块 ( #679 )
...
## PR:重写调度模块
---
### 完成的部分
- 实现cfs调度策略
- 搭建框架,后续功能可以迭代开发
- 目前能跑,未测试性能
### 需要后续接力的部分
- 实现组内调度(task_group)
- 实现跨核负载均衡(pelt算法)
- 接入sysfs,实现参数动态调节(sched_stat等)
- nice值以及priority等参数的设置及调优
2024-04-05 17:54:48 +08:00
LoGin
e8eab1ac82
riscv: copy-thread ( #696 )
2024-04-05 16:37:08 +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
LoGin
9b96c5b547
riscv64: switch process ( #678 )
...
* riscv64: switch process
* fixname
2024-03-31 22:53:01 +08:00
Val213
7d580ef99d
修复get_ramdom的长度错误问题() ( #677 )
2024-03-31 18:01:32 +08:00
Jomo
56cc4dbe27
实现页面反向映射 ( #670 )
...
* 实现页面反向映射
* 完善PAGE_MANAGER初始化时机 && 封装lock函数 && 删掉过时注释
2024-03-31 16:33:49 +08:00
BrahmaMantra
924d64de8d
修复了ramfs中move_to未更新parent字段的bug ( #673 )
...
修复了ramfs中move_to未更新parent字段的bug
---------
Co-authored-by: Samuel Dai <samuka007@qq.com>
2024-03-31 15:19:12 +08:00
sun5etop
9d9a09841c
修复udp bind的时候,对port0处理不正确的问题( #676 )
2024-03-31 15:11:10 +08:00
LoGin
da15231979
实现了rtc的抽象,并且把x86的cmos rtc接入到设备驱动模型 ( #674 )
...
* 实现了rtc的抽象,并且把x86的cmos rtc接入到设备驱动模型。
2024-03-28 00:28:13 +08:00
TTaq
597ecc08c2
新加结构体POSIXSTATFS与SuperBlock用于处理statfs系统调用 ( #667 )
...
* 新加结构体POSIXSTATFS与SuperBlock用于处理statfs系统调用
2024-03-26 18:28:26 +08:00
LoGin
0cb807346c
修复tty设备显示在/sys目录下的bug ( #668 )
2024-03-26 18:26:02 +08:00
曾俊
2755467c79
支持绘制24位深和16位深显示缓冲区 ( #640 )
...
* 修复了初始化时显示,边界条件的一个bug
* 解决了内存未初始前字体显示的兼容性问题
* 支持绘制24位深和16位深显示缓冲区
2024-03-25 16:39:36 +08:00
LoGin
4256da7fb6
把Device trait的set_class改为设置Weak指针,以避免循环引用问题。 ( #666 )
2024-03-25 15:47:05 +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
LoGin
401699735b
riscv: 进程管理初始化 ( #654 )
2024-03-23 16:25:56 +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
LoGin
3660256a9e
只对x86_64进行clippy check ( #651 )
2024-03-23 11:51:30 +08:00
LoGin
4e4c8c41e9
添加clippy检测的自动化工作流 ( #649 )
...
* 添加clippy检测的自动化工作流
* fmt
* 1
2024-03-22 23:56:30 +08:00
LoGin
b5b571e026
修复内核的clippy检查报错 ( #637 )
...
修复内核的clippy检查报错
---------
Co-authored-by: Samuel Dai <947309196@qq.com>
Co-authored-by: Donkey Kane <109840258+xiaolin2004@users.noreply.github.com>
Co-authored-by: themildwind <107623059+themildwind@users.noreply.github.com>
Co-authored-by: GnoCiYeH <heyicong@dragonos.org>
Co-authored-by: MemoryShore <105195940+MemoryShore@users.noreply.github.com>
Co-authored-by: 曾俊 <110876916+ZZJJWarth@users.noreply.github.com>
Co-authored-by: sun5etop <146408999+sun5etop@users.noreply.github.com>
Co-authored-by: hmt <114841534+1037827920@users.noreply.github.com>
Co-authored-by: laokengwt <143977175+laokengwt@users.noreply.github.com>
Co-authored-by: TTaq <103996388+TTaq@users.noreply.github.com>
Co-authored-by: Jomo <2512364506@qq.com>
Co-authored-by: Samuel Dai <samuka007@qq.com>
Co-authored-by: sspphh <112558065+sspphh@users.noreply.github.com>
2024-03-22 23:26:39 +08:00
Chenzx
4695947e1b
实现SYS_LINK和SYS_LINKAT ( #611 )
...
* 实现do_linkat及SYS_LINK和SYS_LINKAT
* 未在riscv上测试,添加target_arch
* 将c字符串检查移动到vfs/syscall.rs,修改do_linkat()逻辑
* 修改部分注释
2024-03-22 18:27:07 +08:00
LoGin
70f159a398
riscv64: 添加flush tlb的ipi ( #636 )
...
* riscv64: 添加flush tlb的ipi
* update triagebot
2024-03-21 21:35:39 +08:00
TTaq
b4eb05a17f
Statx ( #632 )
...
* 实现statx及测试的应用程序
2024-03-21 19:59:10 +08:00
LoGin
8cb2e9b344
重写SMP模块 ( #633 )
...
* 修复cpumask的迭代器的错误。
* 能进系统(AP核心还没有初始化自身)
* 初始化ap core
* 修改percpu
* 删除无用的cpu.c
* riscv64编译通过
2024-03-21 19:19:32 +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 e1991314ce .
* 修复用户程序参数传入错误
* Revert "small changes"
This reverts commit e1991314ce .
* 解决合并冲突,最终提交
* 将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
sspphh
8c6f21840f
实现uname系统调用 ( #614 )
...
* 实现uname系统调用
Co-authored-by: longjin <longjin@DragonOS.org>
2024-03-19 17:01:20 +08:00
hmt
82df0a1310
fix: mkdir输出错误信息; feat: 实现get_pathname ( #615 )
...
* fix: mkdir输出错误信息; feat: 实现get_pathname
* fix: 将处理路径的操作放入vfs而不是在syscall/mod.rs中
* 调整入参类型
---------
Co-authored-by: longjin <longjin@DragonOS.org>
2024-03-19 16:45:44 +08:00
TTaq
9e481b3bfe
实现了sys_rename ( #578 )
...
* 基本实现了rename的系统调用
* 实现相对路径的mv
* confilct resolve
* make fmt
* 更改校验位置,
增加了SYS_RENAMEAT与SYS_RENAMEAT2两个系统调用,其实现与SYS_RENAME基本一致
* 删除了fat中的link
* fix
* 修改注释格式,删除管道文件判断
* 1
2024-03-18 14:47:59 +08:00
LoGin
59fdb447ee
fix: 键盘中断上下文不再直接操作tty,而是由专门的kthread来渲染 ( #592 )
...
fix: 键盘中断上下文不再直接操作tty,而是由专门的kthread来渲染
1.修正psmouse 日志
2. 键盘中断上下文不再直接操作tty,而是由专门的kthread来渲染
3. 由于调度器设计问题,load balance会由于时序问题导致错误.因此暂时只启用单核.
2024-03-12 16:32:33 +08:00
LoGin
818a64c776
暂时禁用load balance ( #591 )
...
原因见issue: https://github.com/DragonOS-Community/DragonOS/issues/571
2024-03-12 15:33:01 +08:00
GnoCiYeH
4374bd1d11
修复get_random一个问题,添加Held配置文件 ( #583 )
2024-03-11 19:40:52 +08:00
GnoCiYeH
52bcb59e92
完善Tty的RawMode ( #577 )
...
* 完善rowmode,改掉一部分bug
* 增加两个ansi拓展功能功能,以及标记部分函数nerve inline
* 修改do_signal和其他中断上下文锁未关中断,以及拓展tty功能,修改tty几个算法bug
* 修改两个锁
* 修改syscall_64
* update
2024-03-11 15:13:37 +08:00
LoGin
840045af94
引入clippy,并根据clippy的提示,修改部分代码 ( #575 )
2024-03-10 21:45:34 +08:00
Jomo
3055390c25
完善重映射过程中获取新映射区域时的map_flags ( #569 )
2024-03-09 11:40:44 +08:00
LoGin
5c4224e5a8
在riscv上实现异常处理,能够进入异常处理程序 ( #564 )
2024-03-08 23:23:06 +08:00
LoGin
c3dc6f2ff9
删除一些过时的C代码 ( #565 )
...
* 删除C版本的crc库
* 删除lockref
* 删除过时的libc文档以及wait.c
* 删除过时的C版本kfifo代码及文档
* 移除未用到的lz4库
* 删除内核的stdlib.c
* 删除fabs.c
* fmt
* 使得put_string系统调用能够通过tty输出颜色
暂且这样改,这一部分应该是用户层面提供的功能,后续删除
---------
Co-authored-by: GnoCiYeH <heyicong@dragonos.org>
2024-03-08 23:22:48 +08:00
Chenzx
5eeefb8c80
实现SYS_RMDIR ( #566 )
...
* 实现rmdir系统调用,整理do_remove_dir逻辑
2024-03-08 16:01:22 +08:00
LoGin
338f690326
`riscv`: 初始化irq ( #560 )
...
完成riscv的irqchip初始化的代码。
这是该功能的第一个PR。由于还需要实现timer驱动才能测试,因此该功能将会通过2~3个PR来完成。
2024-03-05 17:22:04 +08:00
裕依
bc6f0a967c
移除relibc和old libc以及旧的shell ( #529 )
...
移除relibc和old libc以及旧的shell
2024-03-04 14:20:01 +08:00
GnoCiYeH
f3b05a97ec
将tty输出接入串口 ( #555 )
2024-03-04 14:10:26 +08:00
LoGin
e28411791f
完成中断管理模块重构 ( #554 )
...
- 支持中断共享
- 把现有驱动程序移植到新的irq模块
- 使用`ProcessorId`标识处理器id
- 尚未实现threaded_irq
性能上,edge irq flow handler里面,对于锁的使用,可能有点问题。为了获取/修改common data还有其他几个结构体的状态,进行了多次加锁和放锁,导致性能降低。这是接下来需要优化的点。
2024-03-03 16:31:08 +08:00
GnoCiYeH
0e7c469396
修改事件等待队列对于retain使用方法出错导致唤醒错误 ( #551 )
2024-03-01 15:07:00 +08:00
GnoCiYeH
be60c929c8
修改tty几个bug ( #549 )
...
* 更改ioctl一处逻辑错误
* 删除不必要的impl
* 修改一处bug,并且加入tty的link,为pty做准备
* 修改一处因为vc的pos和x计算错误导致的溢出
2024-02-28 20:18:49 +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
R0ronoa
9993c0fc61
添加i8042驱动 改正serio设备文件结构 ( #538 )
...
* 添加i8042驱动 改正serio设备文件结构
2024-02-26 15:03:13 +08:00
LoGin
7d66c3134c
添加简单的cpumask ( #533 )
2024-02-19 21:40:37 +08:00
LoGin
b2ca6800f9
添加动态申请的bitmap ( #532 )
2024-02-19 19:50:03 +08:00
裕依
0e2c2e8b48
修正systemerror号 ( #527 )
...
修正systemerror号
2024-02-19 19:31:17 +08:00
Jomo
4cfa009b87
实现mremap系统调用 ( #518 )
...
* mremap系统调用
2024-02-19 14:54:11 +08:00
裕依
27b967a38a
添加pread&pwrite ( #528 )
...
添加pread&pwrite
2024-02-19 14:53:34 +08:00
LoGin
701589559f
删除无用的C版本bitree和ida/idr. ( #526 )
...
这些数据结构不再使用,将其删除.
2024-02-19 11:17:23 +08:00
LoGin
196b75dc17
把irqdesc添加到sysfs ( #525 )
...
* 把irqdesc添加到sysfs
2024-02-19 00:56:58 +08:00
LoGin
3bc96fa4a9
添加irqdesc的抽象,并在系统初始化时创建irqdesc ( #522 )
...
* 添加irqdesc的抽象,并在系统初始化时创建irqdesc
2024-02-19 00:36:36 +08:00
LoGin
ce5850adbf
添加irqchip这一层的数据结构(尚未接入真实的芯片) ( #520 )
...
* 添加irqchip这一层的数据结构(尚未接入真实的芯片)
2024-02-18 20:41:41 +08:00
Luo Jia / Zhouqi Jiang
d90848514b
riscv: 更新sbi-rt至0.0.3版本 ( #512 )
...
先前使用git仓库链接的最新更新已发布至crates.io网站
Signed-off-by: Zhouqi Jiang <luojia@hust.edu.cn>
2024-02-10 23:20:50 +08:00
裕依2439
4ad52e57e6
添加socketpair ( #505 )
...
* 添加对socketpair系统调用的处理
---------
Co-authored-by: LoGin <longjin@DragonOS.org>
2024-02-07 18:06:15 +08:00
LoGin
cb23beb255
riscv: probe sbi extensions ( #511 )
2024-02-07 17:15:17 +08:00
LoGin
f2022a8a1c
使用rust编写中断/异常的入口 ( #509 )
...
* 使用rust编写中断/异常的入口
2024-02-07 13:29:47 +08:00
Luo Jia / Zhouqi Jiang
d14e28a8a9
riscv: 使用sbi-rt库完成SBI操作 ( #510 )
...
未来的其它SBI操作也将使用sbi-rt
Signed-off-by: Zhouqi Jiang <luojia@hust.edu.cn>
2024-02-07 11:38:15 +08:00
LoGin
5b59005f93
x86_64: 使用Rust重写内核初始化代码 ( #507 )
...
* x86_64: 使用Rust重写内核初始化代码
2024-02-04 15:46:24 +08:00
LoGin
453452cc02
初始化riscv的内存管理模块,并且设置保留内存 ( #506 )
2024-02-04 14:35:18 +08:00
Chiichen
a02ce654cf
支持对动态链接文件的加载,支持通过musl工具链编写用户空间程序 ( #504 )
...
支持对动态链接文件的加载,支持通过musl工具链编写用户空间程序
2024-01-28 20:29:01 +08:00
Chiichen
5d549a76ab
修改一处常量定义 ( #503 )
...
* 修改一处常量定义
* 修复ELF加载程序对用户程序加载地址判断不正确的地方
---------
Co-authored-by: longjin <longjin@DragonOS.org>
2024-01-26 20:45:08 +08:00
LoGin
9284987850
riscv: 完成UEFI初始化,能正确设置memblock的信息 ( #501 )
...
* riscv: 完成UEFI初始化,能正确设置memblock的信息
* sbi增加reset功能
* 把虚拟CPU修改为sifive-u54,使qemu能更正确地模拟硬件行为
* 修复内存页面映射未设置“DIRTY”、”ACCESSED“、”GLOBAL“位,导致真机page fault的问题
2024-01-26 18:08:39 +08:00
R0ronoa
a381e482cb
实现Ps/2鼠标驱动 ( #500 )
...
实现Ps/2鼠标驱动
2024-01-24 19:17:22 +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
裕依2439
d46c6d2794
修复tty的buf满时始终阻塞的问题 ( #493 )
...
* 修复tty的buf满时始终阻塞的问题
2024-01-23 23:36:52 +08:00
LoGin
43ef2a0d2b
添加riscv64的github workflow ( #499 )
...
* 添加riscv64的github workflow
2024-01-21 18:45:07 +08:00
LoGin
7a29d4fcbc
riscv64: 映射uefi systemtable,并完善了riscv64页表填写的部分内容 ( #498 )
...
* 从fdt的chosen段获取几个需要的字段
* merge patch-early-ioremap
* feature: 增加early io remap的fixmap功能
允许在内存管理初始化之前,使用fixmap功能,映射一些物理内存,并记录.
* riscv64: 映射uefi systemtable,并完善了riscv64页表填写的部分内容
* 更新仓库网址
2024-01-21 15:38:12 +08:00
Chiichen
3e3c6316aa
fix: 修复了ps2和tty初始化顺序的错误 ( #497 )
...
* 修复了ps2和tty初始化顺序的错误
2024-01-21 01:38:45 +08:00
LoGin
74ffde667e
feature: 增加early io remap的fixmap功能 ( #495 )
...
允许在内存管理初始化之前,使用fixmap功能,映射一些物理内存,并记录.
2024-01-21 01:21:55 +08:00
LoGin
1f58c8f5cf
Update mini-backtrace版本到e0b1d90940 ( #494 )
...
内容:
[https://github.com/DragonOS-Community/mini-backtrace/pull/1 ](https://github.com/DragonOS-Community/mini-backtrace/pull/1 )
Co-authored-by: Yao Zhao <dragonlinux@gmail.com>
2024-01-18 22:39:58 +08:00
LoGin
c75ef4e212
添加early ioremap支持 ( #492 )
...
* 使用early io remap来映射早期的vesa缓冲区
2024-01-18 00:09:36 +08:00