Samuel Dai
|
6f371967c3
|
refactor(net): the big network rebuild (#977)
* 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
* updates uevent and make fmt
* 新增CommonAttrGroup,基本支持sysfs下各种类型设备的uevent属性文件的读测试
* 修改net设备的uevent内容,使之与Linux语义一致
* 删除无用注释
* feat: 支持 sysfs下 block, char, Net, rtc, tty 等类型设备的 uevent 文件读操作 (#973)
* 新增CommonAttrGroup,基本支持sysfs下各种类型设备的uevent属性文件的读测试
* 修改net设备的uevent内容,使之与Linux语义一致
* 删除无用注释
* can ctrl-c interupt from blocking accept
* make fmt
* clean debug messages
* 清理积弊,不必要的动态分发和智能指针
* remove uevent and netlink
* fmt
* remove uevent test
* 重新组织代码分布
* remove unused imports
* fix it back to old syscall printing style
* regulate naming to posix
* todo: socket close 及 port 接触占用
* fix: format check
* feat: remove syscall prettier printing (#988)
* 重新组织代码分布
* remove unused imports
* fix it back to old syscall printing style
* regulate naming to posix
* todo: socket close 及 port 接触占用
* fix: format check
* remove unnecessary warnings and impls
* loopback assign single ip, remove unnecessary comments
* fmt
* 去除virtio_blk, virtio_net expect错误处理,直接返回错误
* fix: 修复网卡顺序的bug (#996)
* fix: 修复网卡顺序的bug
* make fmt
* feat: 添加默认网卡字段
* make fmt
* 删掉奇怪加入的文件
* fix: ipv6, AddressFamily有转换问题。
* make fmt
* feat(net): 实现unix抽象地址空间 (#1017)
* feat(doc):添加网络子系统模块 (#1020)
* feat(doc): 添加网络子系统文档
* make fmt
* fix(net): TCP Resources and add syscall print, change to use latest smoltcp (#1032)
* change to smoltcp
* add syscall, fix wront accept-listen logic
* add version and resource close
* debug and add socket option level print
* fix: fix udp and run dog in udp
* turn off syscall printing, remove unused imports and make fmt
* turn off syscall printings
* 纸糊忙等tcp connecting,尚不明确连接可用的机制。
* turn off syscall
* fix: 修正IfaceCommon的bounds字段的锁使用问题&调度问题
- 中断上下文内用到的锁,在外面要irqsave.
- 把主线调度的pr应用到当前分支: https://github.com/DragonOS-Community/DragonOS/pull/1063
Signed-off-by: longjin <longjin@DragonOS.org>
* feat(socket): 实现shutdown系统调用的基础结构并启用相关方法
* feat(socket): 添加shutdown方法并实现ShutdownTemp的TryFrom转换
* fmt
* fix(net): misc of resources release (#1096)
* fix: TCP socket miss activation after close
* fix: TCP socket miss activation after close (#1085)
* fix: loopback, udp resource aquire
- remove tcp useless status update
- enable smoltcp medium-ip feature
- change loopback device use ip for addressing, avoid arp procedure
- fix udp couldn't close bug
- fix udp resource aquire didn't lock port
- remove useless Timer in network initialization
* fmt: format
* fix: loopback and udp resource problem (#1086)
* fix: loopback, udp resource aquire
- remove tcp useless status update
- enable smoltcp medium-ip feature
- change loopback device use ip for addressing, avoid arp procedure
- fix udp couldn't close bug
- fix udp resource aquire didn't lock port
- remove useless Timer in network initialization
* fix(net): Unix 资源释放 (#1087)
* unix socket 相关资源释放 #991
* 完善streamsocket资源释放
* 解决inode和id不匹配
* fix TCP socketset release (#1095)
* fix: TCP socket miss activation after close
* fix: loopback, udp resource aquire
- remove tcp useless status update
- enable smoltcp medium-ip feature
- change loopback device use ip for addressing, avoid arp procedure
- fix udp couldn't close bug
- fix udp resource aquire didn't lock port
- remove useless Timer in network initialization
---------
Co-authored-by: YuLong Huang <139891737+LINGLUO00@users.noreply.github.com>
* 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>
* 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>
* fix: 在插入新的timer时,边界条件判断不正确的问题 (#1091)
修复split_pos 初始值错误导致原本应该被插入到链表末尾的定时器,插入到了链表头
Signed-off-by: longjin <longjin@DragonOS.org>
* fmt
* feat(net): Add Inet documenation
* Revert "Merge Master"
* cleanup codes
* refactor: 将设备名称 "lo" 提取为常量 DEVICE_NAME
Signed-off-by: longjin <longjin@DragonOS.org>
* make fmt (#1109)
* fmt (#1110)
* refactor: 删除多余的代码
Signed-off-by: longjin <longjin@DragonOS.org>
* refactor: 移除网络重构分支中,use xxx::*的内容 (#1117)
Signed-off-by: longjin <longjin@DragonOS.org>
* feat(net): 引入kthread,将Inet-网卡处理流程移入内核线程中
* change socket interface
* add check target vscode settings
* fix(net,unix): fix miss create of file
* fix(net): format codes
* fix: 修复缺失的glibc和busybox的toml文件
Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
* fmt
Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
* refactor: 统一接口到 Socket trait 一层
* fix(user): http_server 错误判断创建socket的返回值
* feat(net): add epoll logical support for inet sockets
* fix(net): can write file, have problem in notification
* refactor: 消除warning,优化代码结构
Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
* fix(epoll): 修复connect的忙等待逻辑,以及支持socket加入epoll
Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
* fmt
Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
* feat: 简单实现unix stream & seqpacket
Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
* fix(unix):让 unix socket 的close方法返回Ok
Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
* chore: 更新依赖镜像并调整调试输出
- 将inherit-methods-macro依赖从GitHub迁移至DragonOS镜像源
- 移除rust-analyzer的allTargets检查配置
- 简化LoopbackInterface和IfaceCommon的Debug实现
- 移除socket resize方法中的冗余警告日志
Signed-off-by: longjin <longjin@DragonOS.org>
---------
Signed-off-by: longjin <longjin@DragonOS.org>
Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
Co-authored-by: val213 <1042594899@qq.com>
Co-authored-by: Val213 <112376067+val213@users.noreply.github.com>
Co-authored-by: 黄铭涛 <1037827920@qq.com>
Co-authored-by: Cai Junyuan <121806694+smallcjy@users.noreply.github.com>
Co-authored-by: smallcjy <2628035541@qq.com>
Co-authored-by: longjin <longjin@DragonOS.org>
Co-authored-by: xiaolin2004 <1553367438@qq.com>
Co-authored-by: YuLong Huang <139891737+LINGLUO00@users.noreply.github.com>
Co-authored-by: Z Fan <140599389+BrahmaMantra@users.noreply.github.com>
Co-authored-by: GnoCiYeH <heyicong@dragonos.org>
Co-authored-by: LIU Yuwei <22045841+Marsman1996@users.noreply.github.com>
Co-authored-by: MemoryShore <1353318529@qq.com>
Co-authored-by: 火花 <sparkhhhhhhhhhh@outlook.com>
|
2025-09-12 00:35:13 +08:00 |
LoGin
|
7ea0781b79
|
Fix mountable fs doc (#1224)
* docs: 更新可挂载文件系统文档格式和内容
- 调整markdown格式和排版
Signed-off-by: longjin <longjin@DragonOS.org>
* fix(doc_translator): 修正代码块正则表达式匹配逻辑
优化多行代码块和内联代码块的正则表达式匹配,确保正确处理代码块格式
Signed-off-by: longjin <longjin@DragonOS.org>
---------
Signed-off-by: longjin <longjin@DragonOS.org>
|
2025-06-29 17:57:32 +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 |
LoGin
|
f8f7bcf2a3
|
refactor: Remove namespace related code (#1218)
* 删除mnt namespace
* 移除Namespace代码
Signed-off-by: longjin <longjin@DragonOS.org>
* 删除Namespace相关文档
Signed-off-by: longjin <longjin@DragonOS.org>
---------
Signed-off-by: longjin <longjin@DragonOS.org>
|
2025-06-28 21:20:21 +08:00 |
linfeng
|
6b581d4dd8
|
feat: support tracepoint-based ebpf programs (#1190)
* feat: support tracepoint-based ebpf programs
Signed-off-by: Godones <chenlinfeng25@outlook.com>
* remove licenses
Signed-off-by: Godones <chenlinfeng25@outlook.com>
* feat: Supplement tracepoint related files
fix some warnings
add docs for tracepoint
Signed-off-by: Godones <chenlinfeng25@outlook.com>
---------
Signed-off-by: Godones <chenlinfeng25@outlook.com>
Co-authored-by: longjin <longjin@DragonOS.org>
|
2025-06-14 17:34:45 +08:00 |
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 |
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 |
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
|
013ffb708f
|
feat(ida): IDA内部改为使用XArray实现 (#934)
目前可以记录哪些ID已经分配,支持了ID释放的功能.
Signed-off-by: longjin <longjin@DragonOS.org>
|
2024-09-25 11:20:52 +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 |
曾俊
|
2eab6dd743
|
feat(log): 将内核日志统一为新的logger (#814)
|
2024-05-16 17:25:23 +08:00 |
GnoCiYeH
|
b941261d94
|
docs(sched):调度子系统文档即cfs文档 (#807)
* 调度子系统文档以及cfs文档
|
2024-05-07 22:01:01 +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
|
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
|
91e9d4ab55
|
实现unified-init库,支持收集初始化函数到一个数组,并统一初始化 (#474)
* 添加“统一初始化”的过程宏,并把SystemError独立成crate
* 使用unified-init来初始化fbmem
* 更新workflow,增加内核自动化静态测试
|
2023-12-25 23:12:27 +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
|
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 |
GnoCiYeH
|
8479f19979
|
添加rust-gdb调试内核文档 (#357)
* 编写使用GDB调试内核文档
|
2023-09-01 21:46:36 +08:00 |
hanjiezhou
|
abe3a6ea3c
|
Patch refactor scm and textui (#289)
* 重构屏幕管理器和textui框架
* 切换字体为spleen,并增加对字体的抽象
* 修正文档
---------
Co-authored-by: longjin <longjin@RinGoTek.cn>
|
2023-08-20 00:19:36 +08:00 |
Xshine
|
729a96ef47
|
实现内核通知链 notifier chain (#316)
* 实现通知链块结构
* 实现通知链的基本功能
* 实现 atomic notifier chain
* 实现 blocking notifier chain
* 使用 rust 范式完成功能
* 支持回调次数 nr_to_call
* 移动至 libs 目录
* 完善通知链相关方法
* 修正相关格式
* 文档编写
* 更改文档路径
|
2023-08-06 12:53:47 +08:00 |
LoGin
|
40fe15e095
|
新的内存管理模块 (#303)
  实现了具有优秀架构设计的新的内存管理模块,对内核空间和用户空间的内存映射、分配、释放、管理等操作进行了封装,使得内核开发者可以更加方便地进行内存管理。
  内存管理模块主要由以下类型的组件组成:
- **硬件抽象层(MemoryManagementArch)** - 提供对具体处理器架构的抽象,使得内存管理模块可以在不同的处理器架构上运行
- **页面映射器(PageMapper)**- 提供对虚拟地址和物理地址的映射,以及页表的创建、填写、销毁、权限管理等操作。分为两种类型:内核页表映射器(KernelMapper)和用户页表映射器(位于具体的用户地址空间结构中)
- **页面刷新器(PageFlusher)** - 提供对页表的刷新操作(整表刷新、单页刷新、跨核心刷新)
- **页帧分配器(FrameAllocator)** - 提供对页帧的分配、释放、管理等操作。具体来说,包括BumpAllocator、BuddyAllocator
- **小对象分配器** - 提供对小内存对象的分配、释放、管理等操作。指的是内核里面的SlabAllocator (SlabAllocator的实现目前还没有完成)
- **MMIO空间管理器** - 提供对MMIO地址空间的分配、管理操作。(目前这个模块待进一步重构)
- **用户地址空间管理机制** - 提供对用户地址空间的管理。
- VMA机制 - 提供对用户地址空间的管理,包括VMA的创建、销毁、权限管理等操作
- 用户映射管理 - 与VMA机制共同作用,管理用户地址空间的映射
- **系统调用层** - 提供对用户空间的内存管理系统调用,包括mmap、munmap、mprotect、mremap等
- **C接口兼容层** - 提供对原有的C代码的接口,是的C代码能够正常运行。
除上面的新增内容以外,其它的更改内容:
- 新增二进制加载器,以及elf的解析器
- 解决由于local_irq_save、local_irq_restore函数的汇编不规范导致影响栈行为的bug。
- 解决local_irq_save未关中断的错误。
- 修复sys_gettimeofday对timezone参数的处理的bug
---------
Co-authored-by: kong <kongweichao@dragonos.org>
|
2023-07-22 16:27:02 +08:00 |
LoGin
|
bb5f098a86
|
Revert "新的内存管理模块 (#301)" (#302)
This reverts commit d8ad0a5e77 .
|
2023-07-22 16:24:55 +08:00 |
LoGin
|
d8ad0a5e77
|
新的内存管理模块 (#301)
  实现了具有优秀架构设计的新的内存管理模块,对内核空间和用户空间的内存映射、分配、释放、管理等操作进行了封装,使得内核开发者可以更加方便地进行内存管理。
  内存管理模块主要由以下类型的组件组成:
- **硬件抽象层(MemoryManagementArch)** - 提供对具体处理器架构的抽象,使得内存管理模块可以在不同的处理器架构上运行
- **页面映射器(PageMapper)**- 提供对虚拟地址和物理地址的映射,以及页表的创建、填写、销毁、权限管理等操作。分为两种类型:内核页表映射器(KernelMapper)和用户页表映射器(位于具体的用户地址空间结构中)
- **页面刷新器(PageFlusher)** - 提供对页表的刷新操作(整表刷新、单页刷新、跨核心刷新)
- **页帧分配器(FrameAllocator)** - 提供对页帧的分配、释放、管理等操作。具体来说,包括BumpAllocator、BuddyAllocator
- **小对象分配器** - 提供对小内存对象的分配、释放、管理等操作。指的是内核里面的SlabAllocator (SlabAllocator的实现目前还没有完成)
- **MMIO空间管理器** - 提供对MMIO地址空间的分配、管理操作。(目前这个模块待进一步重构)
- **用户地址空间管理机制** - 提供对用户地址空间的管理。
- VMA机制 - 提供对用户地址空间的管理,包括VMA的创建、销毁、权限管理等操作
- 用户映射管理 - 与VMA机制共同作用,管理用户地址空间的映射
- **系统调用层** - 提供对用户空间的内存管理系统调用,包括mmap、munmap、mprotect、mremap等
- **C接口兼容层** - 提供对原有的C代码的接口,是的C代码能够正常运行。
除上面的新增内容以外,其它的更改内容:
- 新增二进制加载器,以及elf的解析器
- 解决由于local_irq_save、local_irq_restore函数的汇编不规范导致影响栈行为的bug。
- 解决local_irq_save未关中断的错误。
- 修复sys_gettimeofday对timezone参数的处理的bug
|
2023-07-22 16:22:17 +08:00 |
Bullet
|
49249f4ec9
|
把调度器实例的裸指针改为Option (#262)
|
2023-05-13 09:55:24 +08:00 |
TingHuang
|
e0de0fd6a5
|
根据sysfs完善设备驱动模型 & 添加sysfs官方文档 (#254)
* 根据sysfs完善设备驱动模型
* 添加sysfs官方文档
|
2023-04-23 22:55:57 +08:00 |
houmkh
|
8fd71f2772
|
增加定时器和软中断文档,修改了softirq面向c的接口 (#245)
* 增加定时器和软中断文档
* 修改softirq对c的接口和文档
* 修改文档格式
|
2023-04-17 17:17:06 +08:00 |
login
|
77c928f6ce
|
new: DowncastArc and its docs (#244)
|
2023-04-16 20:29:04 +08:00 |
Mork
|
676b8ef62e
|
部分函数从返回值为Result<<>,i32>修改为Result<<>,SystemError> (#210)
* 将Result<<>,i32>替换为Result<<>,SystemError>
* bugfix: 显示双缓冲区初始化的时候,连续注册了两次Video Softirq的问题。
Co-authored-by: longjin <longjin@RinGoTek.cn>
|
2023-03-29 21:24:11 +08:00 |
login
|
45b8371173
|
新增VFS文档,以及修改文档配置 (#209)
* 1.新增vfs设计文档
2.修改文档版权标志为"2022-2023, DragonOS Community"
3.修改电脑版文档页面的宽度为90%
* layout.html末尾加空行
|
2023-03-25 14:51:16 +08:00 |
login
|
004e86ff19
|
新版文件系统重构完成 (#198)
1.重构:VFS
2. 重构:ProcFS
3. 重构:DevFS
4. 重构:FAT32
5. 重构:AHCI驱动
6. 新增:RamFS
7. 新增:MountFS
8. 新增:FAT12
9. 新增:FAT16
10. 重构:设备抽象
Co-authored-by: guanjinquan <1666320330@qq.com>
Co-authored-by: DaJiYuQia <88259094+DaJiYuQia@users.noreply.github.com>
|
2023-03-12 22:36:11 +08:00 |
Gou Ngai
|
c1396d2771
|
Rwlock文档 (#186)
* Rwlock文档
|
2023-03-06 11:28:32 +08:00 |
houmkh
|
c2481452f8
|
rust重构mmio_buddy和mmio (#178)
* rust重构mmio_buddy和mmio
* mmio-buddy文档
---------
Co-authored-by: longjin <longjin@RinGoTek.cn>
|
2023-03-04 18:36:55 +08:00 |
kong
|
90b077f9d3
|
Sched rt doc (#163)
* update
* 完善调度器文档
* 更新RT调度器文档
* 更新实时调度文档
|
2023-02-09 15:24:37 +08:00 |
login
|
151251b50b
|
Patch add rust waitqueue (#162)
* new: rust版本的waitqueue
* new:等待队列的文档
|
2023-01-31 19:27:02 +08:00 |
login
|
935f40ec17
|
new: Rust版本的Mutex (#157)
|
2023-01-17 21:30:16 +08:00 |
kong
|
06b09f34ed
|
Patch sched rust (#139)
* update
* 添加rt调度器的rust初步实现
* 完善rt调度逻辑
* 调试rt调度器
* 修改sched的返回值
* cargo fmt 格式化
* 删除无用代码,修补rt bug
* 删除无用的代码,和重复的逻辑
* 软中断bugfix
* 删除一些代码
* 添加kthread_run_rt文档
* 解决sphinix警告_static目录不存在的问题
Co-authored-by: longjin <longjin@RinGoTek.cn>
|
2023-01-14 22:38:05 +08:00 |
login
|
ec53d23ed0
|
new: 新增具有守卫的自旋锁SpinLock,支持编译期对锁的使用进行检查。 (#148)
|
2023-01-14 10:35:49 +08:00 |