LoGin
|
880720250e
|
doc: Add ai doc translate tool and add English doc. (#1168)
- add tools/doc_translator.py
- translated docs into English
Signed-off-by: longjin <longjin@DragonOS.org>
|
2025-05-20 10:44:28 +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 |
|
火花
|
bc9bb9607f
|
Feat(tty): Supplement process group logic (#1139)
* 添加busybox的编译
* 完善tty job control的逻辑
* 修改copy_sighand的逻辑,符合Linux语义
* 以busybox作为启动shell去运行
* 修改setsid的逻辑
* 解决前台进程组无法处理信号的问题
* 移除ProcessBasicInfo其中的pgid和sid信息
* 修改setsid
* 新增get_pcb_info
* 在etc目录下新增必要的文件
* 改用busybox init作为引导程序
* 恢复dragonreach文件
* 修改busybox编译选项,能够读取环境变量
* 先让SYS_RT_SIGTIMEDWAIT返回Ok(0),能够正常进入系统
* 一些小更改
* 删除get_pcb_info
* 增加对默认termios的判断
* 完成backspace的修复
* 更改inittab,在shell启动之后更改termios
* 增加executable_path信息
* 补充proc下的exe链接文件以及读取逻辑
* 更改PosixTermios,使用stty完成erase的设置
* 用busybox作为引导程序
* 修改波特率的获取
* 修改函数方法
* 在baud_rate方法中添加对于cbaud的与操作
* 为rv64下的SigSet实现From<Signal>
* refactor(driver): 移除`#[derive(Debug)]`并手动实现`Debug` trait
移除`VirtIOBlkDevice`、`VirtIOConsoleDevice`和`VirtIONetDevice`的`#[derive(Debug)]`,并手动实现`Debug` trait以提供更详细的调试信息。
Co-authored-by: longjin <longjin@DragonOS.org>
|
2025-05-08 15:05:02 +08:00 |
|
火花
|
fcb5bf4496
|
Feat(process): 增加ProcessGroup以及Session机制 (#1115)
* 添加make run-nographic
* 添加session和processgroup结构体
* 添加一些有关进程组的syscall
* 在fork中加入set_group
* 修改broadcast未实现的信息
* 添加对kill缺失的进程组的逻辑的补充
|
2025-04-22 13:22:42 +08:00 |
|
linfeng
|
3d663af8a2
|
fix: remove useless c code (#1116)
* fix: remove useless c code
remove printk.c file
remove old test_ebpf file
implement `lookup_kallsyms` and `addr_from_symbol` using rust
* fix the weak linkage
* feat(kernel): 添加cfg-if依赖并优化panic模块的条件编译
Signed-off-by: longjin <longjin@DragonOS.org>
---------
Signed-off-by: longjin <longjin@DragonOS.org>
Co-authored-by: longjin <longjin@DragonOS.org>
|
2025-03-27 14:16:10 +08:00 |
|
LIU Yuwei
|
57b20d2326
|
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
|
2024-12-16 01:48:46 +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 |
|
LoGin
|
2cac148dc1
|
doc: 添加dadk文档的链接,并且修正namespace文档的一些问题 (#1053)
Signed-off-by: longjin <longjin@DragonOS.org>
|
2024-11-18 20:57: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 |
|
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 |
|
|
6171c42402
|
update rintotek message (#1003)
|
2024-10-21 01:24:07 +08:00 |
|
LoGin
|
abc421a67f
|
修正开发者参与指南的链接 (#1002)
|
2024-10-21 00:16:14 +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 |
|
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
|
d031d46fd9
|
feat: 添加serial console,支持non-graphic启动 (#947)
Signed-off-by: longjin <longjin@dragonos.org>
|
2024-10-01 11:35:48 +08:00 |
|
LoGin
|
920bda5958
|
doc: 添加在github上编辑的按钮,以及扩展footer (#940)
Signed-off-by: longjin <longjin@DragonOS.org>
|
2024-09-25 23:53:23 +08:00 |
|
LoGin
|
09dacded09
|
doc: add commit revision to footer while build with sphinx-multiversion (#939)
Signed-off-by: longjin <longjin@DragonOS.org>
|
2024-09-25 22:53:31 +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
|
c635d8a9cf
|
ci(docs): Build docs when push/PR to master and release version. (#935)
Signed-off-by: longjin <longjin@DragonOS.org>
|
2024-09-25 01:36:57 +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 |
|
LoGin
|
ef2a79be60
|
chore: 更新sphinx相关配置,适应read the docs的更新 (#850)
根据read the docs在7月15日blog,进行此修改
https://about.readthedocs.com/blog/2024/07/addons-by-default/
|
2024-07-17 13:54:28 +08:00 |
|
曾俊
|
2eab6dd743
|
feat(log): 将内核日志统一为新的logger (#814)
|
2024-05-16 17:25:23 +08:00 |
|
LoGin
|
ce48b93437
|
doc: add v0.1.10 changelog (#813)
* 完成v0.1.10 changelog
|
2024-05-13 16:56:26 +08:00 |
|
donjuanplatinum
|
9a0802fd2d
|
doc: Add Gentoo Linux In build_system.md (#810)
* 增加安装文档中的Gentoo Linux提示
|
2024-05-13 15:36:23 +08:00 |
|
GnoCiYeH
|
b941261d94
|
docs(sched):调度子系统文档即cfs文档 (#807)
* 调度子系统文档以及cfs文档
|
2024-05-07 22:01:01 +08:00 |
|
LoGin
|
182b778a3c
|
chore: 适配dadk 0.1.11 (#777)
* chore: 适配dadk 0.1.11
|
2024-04-28 13:39:51 +08:00 |
|
Chiichen
|
0c1ef30087
|
docs(community): add description of conventional commit standard (#754)
* docs(community): add description of conventional commit standard
* docs: add index
|
2024-04-23 00:27:05 +08:00 |
|
LoGin
|
7162a8358d
|
doc: Update build instructions for riscv64 architecture (#725)
|
2024-04-15 13:20:46 +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 |
|
LoGin
|
9fab312ea9
|
Update DragonOS description and introduction (#717)
|
2024-04-12 15:27:44 +08:00 |
|
Jomo
|
15b94df01a
|
add xuzihao (#712)
|
2024-04-10 10:58:07 +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
|
e3b898316b
|
增加ChangeLog V0.1.9,更改about.c版本 (#600)
|
2024-03-13 22:36:31 +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 |
|
LoGin
|
e28411791f
|
完成中断管理模块重构 (#554)
- 支持中断共享
- 把现有驱动程序移植到新的irq模块
- 使用`ProcessorId`标识处理器id
- 尚未实现threaded_irq
性能上,edge irq flow handler里面,对于锁的使用,可能有点问题。为了获取/修改common data还有其他几个结构体的状态,进行了多次加锁和放锁,导致性能降低。这是接下来需要优化的点。
|
2024-03-03 16:31:08 +08:00 |
|
LoGin
|
701589559f
|
删除无用的C版本bitree和ida/idr. (#526)
这些数据结构不再使用,将其删除.
|
2024-02-19 11:17:23 +08:00 |
|
LoGin
|
fccbe87dca
|
删除关于zulip的表述,替换为社区论坛 (#508)
|
2024-02-05 14:50:15 +08:00 |
|
LoGin
|
91e9d4ab55
|
实现unified-init库,支持收集初始化函数到一个数组,并统一初始化 (#474)
* 添加“统一初始化”的过程宏,并把SystemError独立成crate
* 使用unified-init来初始化fbmem
* 更新workflow,增加内核自动化静态测试
|
2023-12-25 23:12:27 +08:00 |
|
LoGin
|
24ff1faffb
|
doc: 修改Rust代码注释风格文档 (#471)
|
2023-12-18 17:44:53 +08:00 |
|
LoGin
|
af35431005
|
使用submodule引入DragonStub (#462)
* 修正构建系统文档: 使用repo工具克隆代码
* 使用submodule管理
|
2023-12-03 17:16:03 +08:00 |
|
LoGin
|
83ed0ebc29
|
修正构建系统文档: 使用repo工具克隆代码 (#461)
|
2023-12-03 14:51:21 +08:00 |
|
LoGin
|
4fda81ce81
|
使得DragonOS kernel 能为riscv64编译通过(尚未能启动) (#457)
* 使得DragonOS kernel 能为riscv64编译通过(尚未能启动)
* 修正了系统调用号声明不正确的问题,同时添加了编译配置文档
|
2023-11-25 12:07:39 +08:00 |
|
Jomo
|
e4600f7f7d
|
Kconfig (#432)
* 内核编译配置
* 将kernel.config的解析代码搬入crate
* 将设置feature函数放入CargoHandler中
|
2023-11-17 21:23:01 +08:00 |
|
LoGin
|
e4fb6c9754
|
美化readme (#446)
* 美化readme
|
2023-11-17 12:26:10 +08:00 |
|
LoGin
|
5eaf536d5b
|
添加初始化DragonOS的Rust-Musl工具链的脚本. (#426)
|
2023-11-08 19:41:08 +08:00 |
|
yuyi2439
|
34e6d6c80f
|
实现free指令+修复 mountfs的内存泄露问题(#394)
* 实现meminfo文件
* 成功实现free指令,添加了一些string有关函数,并进行一些无影响的小改动
* 解决内存泄露的问题:mountfs inode的wrap方法使用了Arc::into_raw而没有from_raw,导致inode始终无法释放
---------
Co-authored-by: LoGin <longjin@DragonOS.org>
Co-authored-by: longjin <longjin@RinGoTek.cn>
|
2023-10-08 14:26:17 +08:00 |
|
LoGin
|
6b4e7a2972
|
增加kernfs (#386)
* 增加kernfs
* kernfs文档
|
2023-09-19 19:46:59 +08:00 |
|
LoGin
|
1496ba7b24
|
进程管理模块重构完成 (#380)
* 添加新版pcb的数据结构 (#273)
* 将pcb中的内容分类,分别加锁 (#305)
* 进程管理重构:完成fork的主体逻辑 (#309)
1.完成fork的主体逻辑
2.将文件系统接到新的pcb上
3.经过思考,暂时弃用signal机制,待进程管理重构完成后,重写signal机制.原因是原本的signal机制太烂了
* chdir getcwd pid pgid ppid (#310)
---------
Co-authored-by: longjin <longjin@RinGoTek.cn>
* 删除旧的fork以及signal的代码,并调整fork/vfork/execve系统调用 (#325)
1.删除旧的fork
2.删除signal相关代码,等进程管理重构结束之后,再重新写.
3.调整了fork/vfork/execve系统调用
* 实现切换进程的代码 (#331)
* 实现切换进程的代码
* Patch modify preempt (#332)
* 修改设置preempt的代码
* 删除rust的list和refcount
* 为每个核心初始化idle进程 (#333)
* 为每个核心初始化idle进程
* 完成了新的内核线程机制 (#335)
* 调度器的pcb替换为新的Arc<ProcessControlBlock>,把调度器队列锁从 RwSpinLock 替换为了 SpinLock (#336)
* 把调度器的pcb替换为新的Arc<ProcessControlBlock>
* 把调度器队列锁从 RwSpinLock 替换为了 SpinLock ,修改了签名以通过编译
* 修正一些双重加锁、细节问题
---------
Co-authored-by: longjin <longjin@RinGoTek.cn>
* github workflow自动检查代码是否格式化
* cache toolchain yml
* 调整rust版本的waitqueue中的pcb为新版的pcb (#343)
* 解决设置rust workspace带来的“工具链不一致”的问题 (#344)
* 解决设置rust workspace带来的“工具链不一致”的问题
更改workflow
* 调整pcb的sched_info和rwlock,以避免调度器死锁问题 (#341)
* 调整pcb的sched_info和rwlock,以避免调度器死锁问题
* 修改为在 WriterGuard 中维护 Irq_guard
* 修正了 write_irqsave方法
* 优化了代码
* 把 set state 操作从 wakup 移动到 sched_enqueue 中
* 修正为在 wakeup 中设置 running ,以保留 set_state 的私有性
* 移除了 process_wakeup
* 实现进程退出的逻辑 (#340)
实现进程退出的逻辑
* 标志进程sleep
* 修复wakeup的问题
---------
Co-authored-by: longjin <longjin@RinGoTek.cn>
* rust 重构 completion (#350)
* 完成了completion的基本结构,待完善上级调用
* 用SpinLock保护结构体并发安全
* 修改原子变量为u32,修复符号错误
* irq guard
* 修改为具有内部可变性的结构体
* temp fix
* 修复了由于进程持有自旋锁导致的不被调度的问题
* 对 complete 系列方法上锁,保护 done 数据并发安全
* 移除了未使用的依赖
* 重写显示刷新驱动 (#363)
* 重构显示刷新驱动
* Patch refactor process management (#366)
* 维护进程树
* 维护进程树
* 更改代码结构
* 新建进程时,设置cwd
* 调整adopt childern函数,降低开销
---------
Co-authored-by: longjin <longjin@RinGoTek.cn>
* waitqueue兼容C部分 (#351)
* PATH
* safe init
* waitqueue兼容C部分
* waitqueue兼容C部分
* 删除semaphore.c,在ps2_keyboard中使用waitqueue
* 删除semaphore.c,在ps2_keyboard中使用waitqueue
* current_pcb的C兼容
* current_pcb的C兼容
* current_pcb的C兼容
* fmt
* current_pcb的兼容
* 针对修改
* 调整代码
* fmt
* 删除pcb的set flags
* 更改函数名
---------
Co-authored-by: longjin <longjin@RinGoTek.cn>
* merge master
* Patch debug process management refactor (#372)
* 能够调通,执行完textui_init
* 能跑到initial kernel thread
* fmt
* 能够正常初始化所有服务(尚未能切换到用户程序)
* 删除部分无用的extern
* 存在问题:ap处理器启动后,bsp的smp_init函数return之后就出错了,怀疑是栈损坏
* 解决smp启动由于未换栈导致的内存访问错误
* debug
* 1
* 1
* lock no preempt
* 调通
* 优化代码,删除一些调试日志
* fix
* 使用rust重写wait4 (#377)
* 维护进程树
* 维护进程树
* 更改代码结构
* 新建进程时,设置cwd
* 调整adopt childern函数,降低开销
* wait4
* 删除c_sys_wait4
* 使用userbuffer保护裸指针
---------
Co-authored-by: longjin <longjin@RinGoTek.cn>
* 消除warning
* 1. 修正未设置cpu executing的问题
* 修正kthread机制可能存在的内存泄露问题
* 删除pcb文档
* 删除C的tss struct
---------
Co-authored-by: Bullet <93781792+GP-Bullet@users.noreply.github.com>
Co-authored-by: Chiichen <39649411+Chiichen@users.noreply.github.com>
Co-authored-by: hanjiezhou <zhouhanjie@dragonos.org>
Co-authored-by: GnoCiYeH <118462160+GnoCiYeH@users.noreply.github.com>
Co-authored-by: houmkh <1119644616@qq.com>
|
2023-09-15 14:58:19 +08:00 |
|
yuyi2439
|
4895ff6968
|
fix: DragonOS-Community/DragonOS#358 (#361)
|
2023-09-02 00:27:41 +08:00 |
|
GnoCiYeH
|
8479f19979
|
添加rust-gdb调试内核文档 (#357)
* 编写使用GDB调试内核文档
|
2023-09-01 21:46:36 +08:00 |
|