f5b20388 | 30-Oct-2024 |
codeironman <1553389239@qq.com> |
ospp project (feature) add namespace overlayfs cgroup (#949)
## 开发进展:
## namespace
- pid_namespace 基本实现,基于pid_struct等数据结构实现隔离
- mnt_namespace 基本实现,挂载点的隔离通过不同的挂载树来实现
- usernamespace 作为支持性的namesp
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等子系统
show more ...
|
fae6e9ad | 25-Oct-2024 |
linfeng <chenlinfeng25@outlook.com> |
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相关的数据结构
- 暂时为文件实现简
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
show more ...
|
f9fe30be | 13-Oct-2024 |
LoGin <longjin@DragonOS.org> |
feat(boot): 内核启动命令行参数解析 (#969)
支持解析启动命令行参数,行为与Linux一致。具体见文档。
bbs链接:https://bbs.dragonos.org.cn/t/topic/362
issue: https://github.com/DragonOS-Community/DragonOS/issues/865
支持了三种参数:
- Arg (不带
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>
show more ...
|
59a6bcf6 | 09-Oct-2024 |
LoGin <longjin@DragonOS.org> |
feat: Add HVM boot support for x86_64 (#953)
Signed-off-by: longjin <longjin@DragonOS.org> |
db7c782a | 06-Sep-2024 |
LoGin <longjin@DragonOS.org> |
feat: 允许通过multiboot引导(直到acpi初始化报错) (#914) |
2b7818e8 | 05-Sep-2024 |
LoGin <longjin@DragonOS.org> |
feat: 添加对内核引导协议的抽象 (#913)
* 添加multiboot header
* head.S传参增加bootloader类型
* feat: 添加引导加载协议的抽象,并为multiboot2实现这个抽象.
* 把framebuffer的映射地址改为从early ioremap和mmio pool分配
* riscv64能运行 |
9fa0e95e | 02-Sep-2024 |
LoGin <longjin@DragonOS.org> |
feat: 添加gendisk抽象 (#903)
* feat: 添加gendisk抽象.
* 支持使用virtio磁盘作为根文件系统
* Update initial_kthread.rs to resolve conflict.
---------
Co-authored-by: Donkey Kane <109840258+xiaolin2004@users.no
feat: 添加gendisk抽象 (#903)
* feat: 添加gendisk抽象.
* 支持使用virtio磁盘作为根文件系统
* Update initial_kthread.rs to resolve conflict.
---------
Co-authored-by: Donkey Kane <109840258+xiaolin2004@users.noreply.github.com>
show more ...
|
232570ae | 29-Aug-2024 |
LoGin <longjin@DragonOS.org> |
fix: 修复存在多个virtio设备时,中断号冲突的问题 (#904) |
703ce5a7 | 27-Jul-2024 |
LoGin <longjin@DragonOS.org> |
fix: 修复由于升级到2024-07-23工具链之后,某些机器上面内核运行一直fault的问题。 (#870)
* fix: 修复由于升级到2024-07-23工具链之后,某些机器上面内核运行一直fault的问题。 |
bd70d2d1 | 24-Jul-2024 |
LoGin <longjin@DragonOS.org> |
chore: 将工具链更新到2024-07-23 (#864)
* chore: 将工具链更新到2024-07-23 |
1ea2daad | 22-Jul-2024 |
SMALLC <121806694+smallcjy@users.noreply.github.com> |
feat(driver/net): 实现Loopback网卡接口 (#845)
* 初步实现loopback设备 |
2eab6dd7 | 16-May-2024 |
曾俊 <110876916+ZZJJWarth@users.noreply.github.com> |
feat(log): 将内核日志统一为新的logger (#814) |
92deae63 | 16-May-2024 |
LoGin <longjin@DragonOS.org> |
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
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.
show more ...
|
942cf26b | 28-Apr-2024 |
LoGin <longjin@DragonOS.org> |
fix(riscv/process): 把riscv的调度时钟节拍率与HZ同步,并且修复切换到用户态的时候忘了在内核态关中断的bug (#780) |
f75cb0f8 | 27-Apr-2024 |
LoGin <longjin@DragonOS.org> |
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_t
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程序,直到某个运行成功
show more ...
|
471d65cf | 26-Apr-2024 |
LoGin <longjin@DragonOS.org> |
feat(riscv): riscv下能够运行hello world用户程序 (#770)
* feat(riscv): riscv下能够运行hello world用户程序 |
731bc2b3 | 23-Apr-2024 |
LoGin <longjin@DragonOS.org> |
feat(virtio): riscv: 添加virtio-blk driver,并在riscv下能够正确挂载FAT32 (#761) |
418ad41f | 17-Apr-2024 |
LoGin <longjin@DragonOS.org> |
Feat(tty): add dummy console (#735)
使得riscv能暂时完成stdio_init(将来需要实现riscv的串口console) |
3959e94d | 10-Apr-2024 |
曾俊 <110876916+ZZJJWarth@users.noreply.github.com> |
bugfix: 修复smp启动的时候,损坏0号核心的idle进程的内核栈的问题 (#711)
---------
Co-authored-by: longjin <longjin@DragonOS.org>
Co-authored-by: heyicong <heyicong@dragonos.org> |
23ef2b33 | 06-Apr-2024 |
LoGin <longjin@DragonOS.org> |
riscv: 把内核编译target改为riscv64gc & 获取time csr的频率 & 修正浮点保存与恢复的汇编的问题 (#699)
* 1. 把内核编译target改为riscv64gc
2. fix: 修正浮点保存与恢复的汇编的问题
* riscv: 获取time csr的频率 |
f0c87a89 | 05-Apr-2024 |
GnoCiYeH <heyicong@dragonos.org> |
重写调度模块 (#679)
## PR:重写调度模块
---
### 完成的部分
- 实现cfs调度策略
- 搭建框架,后续功能可以迭代开发
- 目前能跑,未测试性能
### 需要后续接力的部分
- 实现组内调度(task_group)
- 实现跨核负载均衡(pelt算法)
- 接入sysfs,实现参数动态调节(sched_stat等)
- nice值以及priori
重写调度模块 (#679)
## PR:重写调度模块
---
### 完成的部分
- 实现cfs调度策略
- 搭建框架,后续功能可以迭代开发
- 目前能跑,未测试性能
### 需要后续接力的部分
- 实现组内调度(task_group)
- 实现跨核负载均衡(pelt算法)
- 接入sysfs,实现参数动态调节(sched_stat等)
- nice值以及priority等参数的设置及调优
show more ...
|
b5b571e0 | 22-Mar-2024 |
LoGin <longjin@DragonOS.org> |
修复内核的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: them
修复内核的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>
show more ...
|
8cb2e9b3 | 21-Mar-2024 |
LoGin <longjin@DragonOS.org> |
重写SMP模块 (#633)
* 修复cpumask的迭代器的错误。
* 能进系统(AP核心还没有初始化自身)
* 初始化ap core
* 修改percpu
* 删除无用的cpu.c
* riscv64编译通过 |
59fdb447 | 12-Mar-2024 |
LoGin <longjin@DragonOS.org> |
fix: 键盘中断上下文不再直接操作tty,而是由专门的kthread来渲染 (#592)
fix: 键盘中断上下文不再直接操作tty,而是由专门的kthread来渲染
1.修正psmouse 日志
2. 键盘中断上下文不再直接操作tty,而是由专门的kthread来渲染
3. 由于调度器设计问题,load balance会由于时序问题导致错误.因此暂时只启用单核. |
5c4224e5 | 08-Mar-2024 |
LoGin <longjin@DragonOS.org> |
在riscv上实现异常处理,能够进入异常处理程序 (#564) |