LoGin
e8fc8b3af9
ci: 添加rust-slabmalloc的主机测试工作流和属性测试 ( #1577 )
...
Build multiversion docs / build-multiversion (push) Waiting to run
Details
Sync to CNB.cool / sync (push) Waiting to run
Details
Test MM (Host) / Build slab_stress (host) (push) Waiting to run
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (1, 128) (push) Blocked by required conditions
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (1, 255) (push) Blocked by required conditions
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (1, 256) (push) Blocked by required conditions
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (1, 64) (push) Blocked by required conditions
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (2, 128) (push) Blocked by required conditions
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (2, 255) (push) Blocked by required conditions
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (2, 256) (push) Blocked by required conditions
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (2, 64) (push) Blocked by required conditions
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (3, 128) (push) Blocked by required conditions
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (3, 255) (push) Blocked by required conditions
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (3, 256) (push) Blocked by required conditions
Details
Test MM (Host) / Slab allocator long-run (valgrind) - size=${{ matrix.size }}, seed=${{ matrix.seed }} (3, 64) (push) Blocked by required conditions
Details
Test x86_64 / Integration Test (push) Waiting to run
Details
- 新增GitHub Actions工作流,用于在主机上构建并运行slab_stress压力测试
- 添加proptest依赖,实现随机分配/释放序列的属性测试
- 新增slab_stress二进制工具,支持Valgrind内存检查
- 完善测试文档,说明主机测试的使用方法
- 修复页面状态迁移测试,确保Full/Partial/Empty列表转换正确
Signed-off-by: longjin <longjin@DragonOS.org>
2025-12-30 08:37:47 +08:00
LoGin
9411a468c5
refactor(slabmalloc): 优化页面状态管理并移除周期性重平衡 ( #1576 )
...
- 解决 #1466 的性能下降问题
- 引入 PageState 枚举和页面状态跟踪方法
- 在分配和释放时直接维护页面列表,移除 check_page_assignments 周期性重平衡
- 更新元数据开销常量并调整相关测试
Signed-off-by: longjin <longjin@DragonOS.org>
2025-12-30 08:29:30 +08:00
LoGin
45db3e09ba
feat(ext4): 将another_ext4库集成到内核仓库 ( #1556 )
...
Docs Translation / translate-and-pr (push) Waiting to run
Details
Build multiversion docs / build-multiversion (push) Waiting to run
Details
Sync to CNB.cool / sync (push) Waiting to run
Details
Test x86_64 / Integration Test (push) Waiting to run
Details
- 并且移除了another_ext4库的block cache相关的代码
Signed-off-by: longjin <longjin@DragonOS.org>
2025-12-27 01:04:49 +08:00
Vitus
66d902e24c
feat(loop_device): 新增loop设备子系统 ( #1261 )
...
- 新增loop设备驱动,支持将文件作为块设备使用
- 实现loop设备管理器,支持设备创建、绑定、删除等生命周期管理
- 新增loop-control字符设备,提供用户态控制接口
- 实现完整的ioctl命令集,包括LOOP_SET_FD、LOOP_CLR_FD、LOOP_SET_STATUS64等
- 添加设备状态机管理,支持Unbound、Bound、Rundown、Draining、Deleting状态
- 完善块设备卸载流程,支持并发I/O期间的设备删除
- 新增IDA分配器特定ID分配功能
- 更新GenDisk的read_at、write_at、metadata和ioctl实现
- 添加loop设备文档和测试用例
Signed-off-by: Vitus213 <zhzvitus@gmail.com>
Signed-off-by: longjin <longjin@DragonOS.org>
Co-authored-by: longjin <longjin@DragonOS.org>
2025-12-24 14:29:46 +08:00
LoGin
d1872d899a
feat(ext4): 修复死锁问题并增强文件系统功能 ( #1509 )
...
* feat(ext4): 修复死锁问题并增强文件系统功能
- 修复了ext4 inode读写操作中的自旋锁死锁问题
- 添加了父目录指针支持,实现parent()方法
- 改进了块设备寻址逻辑,统一使用512字节LBA
- 增强了根文件系统探测机制,支持ext4和FAT自动识别
- 修复了ELF加载器中解释器路径查找问题
- 更新了another_ext4依赖版本
Signed-off-by: longjin <longjin@DragonOS.org>
* feat(filesystem): 为ext4和fat文件系统添加探测方法并优化代码
- 在Ext4FileSystem和FATFileSystem中新增probe方法,用于探测gendisk是否包含对应文
件系统
- 重构vcore.rs中的文件系统探测逻辑,使用新的probe方法替代原有的独立探测函数
- 优化Ext4Inode构造函数中parent字段的默认值设置,使用unwrap_or_default替代unwrap
_or_else
- 在rcS启动脚本中添加PATH环境变量设置
Signed-off-by: longjin <longjin@DragonOS.org>
---------
Signed-off-by: longjin <longjin@DragonOS.org>
2025-12-21 21:04:12 +08:00
LoGin
0d10f70691
feat(vfs): 新增creat系统调用支持 ( #1482 )
...
* feat(vfs): 新增creat系统调用支持
- 实现creat系统调用处理器,遵循Linux语义:创建新文件或截断现有文件并打开为只写模式
- 在x86_64架构下注册creat系统调用到系统调用表
- 在gvisor测试白名单中添加creat测试项
Signed-off-by: longjin <longjin@DragonOS.org>
* feat(rust-jhash): Update Cargo.toml to specify Rust edition 2021
---------
Signed-off-by: longjin <longjin@DragonOS.org>
2025-12-16 23:58:15 +08:00
LoGin
b28f766956
feat(vfs): Implement append lock manager for file operations ( #1483 )
...
* feat(vfs): Implement append lock manager for file operations
- Introduced an `AppendLockManager` to ensure atomicity for append operations across filesystems, preventing data corruption in concurrent write scenarios.
- Updated file write methods to utilize the new append lock mechanism, ensuring that appending to files respects the latest end-of-file position.
- Enhanced `write_append` and `pwrite_append` methods to support forced append semantics, aligning with Linux behavior.
- Initialized the append lock manager during VFS initialization to ensure it is ready before any file write operations.
This addition improves the reliability of file operations in a multi-threaded environment, particularly for append scenarios.
Signed-off-by: longjin <longjin@DragonOS.org>
* feat(kernel): 添加jhash库并用于append_lock的哈希计算
Signed-off-by: longjin <longjin@DragonOS.org>
---------
Signed-off-by: longjin <longjin@DragonOS.org>
2025-12-16 23:55:53 +08:00
LoGin
84443be280
fix: 修复slab分配器迭代器越界访问和并发安全问题 ( #1464 )
...
Build multiversion docs / build-multiversion (push) Waiting to run
Details
Sync to CNB.cool / sync (push) Waiting to run
Details
Test x86_64 / Integration Test (push) Waiting to run
Details
- 为ObjectPageIterMut添加remaining字段,防止迭代越界
- 将SLABALLOCATOR改为SpinLock保护,修复并发访问问题
- 在kernel_allocator中正确使用锁保护slab分配器操作
Signed-off-by: longjin <longjin@DragonOS.org>
2025-12-15 00:42:59 +08:00
LoGin
f2cca87d2b
refactor(wait_queue): 重构等待队列机制,引入Waiter/Waker模式 ( #1452 )
...
* refactor(wait_queue): 重构等待队列机制,引入Waiter/Waker模式
- 重构WaitQueue,引入Waiter/Waker模式避免唤醒丢失
- 统一等待接口,提供wait_event_interruptible/uninterruptible方法
- 重构futex、epoll、eventfd、semaphore、completion等模块使用新等待队列
- 优化进程等待子进程退出逻辑,使用新等待队列接口
- 添加等待队列设计文档说明新机制
Signed-off-by: longjin <longjin@DragonOS.org>
* feat: 添加SKIP_GRUB选项以支持在CI或无图形界面环境中跳过GRUB安装
Signed-off-by: longjin <longjin@DragonOS.org>
* fix: 修复信号处理和futex唤醒的错误码
- 在sys_rt_sigtimedwait中消费信号后及时刷新HAS_PENDING_SIGNAL状态,避免后续等待路
径误判
- 将futex可中断唤醒的错误码从ERESTARTSYS改为EINTR,以符合Linux语义
Signed-off-by: longjin <longjin@DragonOS.org>
* ci: Update Docker image source in test-x86 workflow
- Changed the Docker image source from `docker.cnb.cool/dragonos-community/dragonos/dragonos-dev:v1.19` to `dragonos/dragonos-dev:v1.19` for consistency in CI workflows.
Signed-off-by: longjin <longjin@DragonOS.org>
---------
Signed-off-by: longjin <longjin@DragonOS.org>
2025-12-10 14:04:05 +08:00
LoGin
40e92db370
chore: Upgrade kernel toolchain to 250810 ( #1257 )
...
chore: 升级Rust工具链至nightly-2025-08-10
- 更新工作流容器版本至v1.14
- 升级Rust工具链至nightly-2025-08-10
- 更新多个依赖库版本(bitflags、gimli、itertools等)
- 修复代码格式和文档注释
- 优化内存对齐检查使用is_multiple_of()
- 改进错误处理和日志输出
- 移除过时的特性标记和代码
Signed-off-by: longjin <longjin@DragonOS.org>
2025-08-18 13:25:19 +08:00
LoGin
a6404b52b8
refactor(bitmap): 重构静态位图实现,移除incomplete_features依赖 ( #1256 )
...
* refactor(bitmap): 重构静态位图实现,移除incomplete_features依赖
- 移除generic_const_exprs特性依赖
- 引入static_bitmap_size常量函数和static_bitmap!宏
- 修改StaticBitmap结构体定义
- 更新相关测试和使用代码
Signed-off-by: longjin <longjin@DragonOS.org>
2025-08-12 01:06:05 +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
linfeng
723ac05719
feat: Update rbpf to mainline ( #1209 )
...
* feat: Update rbpf to mainline
Enable JIT compilation on x86 platform.
Signed-off-by: Godones <chenlinfeng25@outlook.com>
* fix: remove rbpf test
Signed-off-by: Godones <chenlinfeng25@outlook.com>
* fix: remove rbpf info
Signed-off-by: Godones <chenlinfeng25@outlook.com>
---------
Signed-off-by: Godones <chenlinfeng25@outlook.com>
2025-06-20 10:49:59 +08:00
LoGin
2c6e9dee73
fix: 检测不到ctrl+D的问题 && pid=1被kill的时候没报错的问题 ( #1206 )
...
Signed-off-by: longjin <longjin@DragonOS.org>
2025-06-12 14:23:29 +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
4cc267146a
feat(la64): 实现了较为早期的la64的异常处理的注册 ( #1138 )
...
* feat(la64): 实现了较为早期的la64的异常处理的注册
- 栈保存&恢复
- 开机时临时设置异常处理程序,并验证可进入异常处理程序
Signed-off-by: longjin <longjin@DragonOS.org>
2025-05-07 13:14:54 +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
linfeng
91cc4adba9
fix the panic error for riscv64 ( #1123 )
...
* fix the panic error for riscv64
2025-04-02 13:49:57 +08:00
LoGin
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
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
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
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
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
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
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
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
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
Jomo
53629ac383
feat: 释放slab中的空闲页面到buddy ( #932 )
...
* patch: 释放slab中的空闲页面到buddy
* 校验释放的slab_page的起始地址与大小 & SCAllcator增加空闲块计数器
2024-10-12 00:57:16 +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
LoGin
013ffb708f
feat(ida): IDA内部改为使用XArray实现 ( #934 )
...
目前可以记录哪些ID已经分配,支持了ID释放的功能.
Signed-off-by: longjin <longjin@DragonOS.org>
2024-09-25 11:20:52 +08:00
LoGin
db7c782a9a
feat: 允许通过multiboot引导(直到acpi初始化报错) ( #914 )
2024-09-06 20:04:36 +08:00
LoGin
dc9b4fea1b
fix: pipe 读取/写入阻塞时,无法kill进程的问题 ( #889 )
2024-08-27 13:01:11 +08:00
LoGin
bd70d2d1f4
chore: 将工具链更新到2024-07-23 ( #864 )
...
* chore: 将工具链更新到2024-07-23
2024-07-25 00:55:02 +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
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
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
MemoryShore
a17651b14b
feat(mm): 实现缺页中断处理,支持页面延迟分配和写时拷贝,以及用户栈自动拓展 ( #715 )
...
* 实现缺页中断处理
* 完善页表拷贝逻辑
* 优化代码结构
* 完善缺页异常信息
* 修改大页映射逻辑
* 修正大页映射错误
* 添加缺页中断支持标志
* 实现用户栈自动拓展功能
2024-04-22 15:10:47 +08:00
LoGin
d770de5d53
fix: 修复unified-init导致cargo check失败的问题 ( #747 )
2024-04-21 13:12:31 +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
LoGin
9621ab16ef
让riscv64能正常切换进程,并运行完所有的initcall ( #721 )
2024-04-14 20:39:20 +08:00
LoGin
da15231979
实现了rtc的抽象,并且把x86的cmos rtc接入到设备驱动模型 ( #674 )
...
* 实现了rtc的抽象,并且把x86的cmos rtc接入到设备驱动模型。
2024-03-28 00:28:13 +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
LoGin
840045af94
引入clippy,并根据clippy的提示,修改部分代码 ( #575 )
2024-03-10 21:45:34 +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
52da9a5937
完成与Linux兼容的Ntty ( #517 )
...
* 已经完成的功能:
- 写:printf能够正常在tty输出
- 读:与键盘驱动接上
- 信号: 能够正常通过ctrl向前台进程发送信号
* 支持目前的shell,改动printk使其与新版tty兼容。
* 删除原有tty文件夹,并更改新tty文件名
* 添加clear清屏程序
* 实现tty部分ioctl,更改部分问题
2024-02-26 15:27:19 +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