40d9375b6b
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
2024-10-10 17:53:39 +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
40d05bcc99
修复vnc启动失败的问题 ( #951 )
2024-10-01 19:44:17 +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
曾俊
886ce28516
fix(virtio):修复了特定virtio设备环境下中断号重复错误,以及开机内核panic的bug ( #881 )
2024-09-06 19:56:49 +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
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
LoGin
01090de77e
使用DragonStub引导riscv下的DragonOS内核 ( #460 )
2023-12-03 14:40:13 +08:00
LoGin
4fda81ce81
使得DragonOS kernel 能为riscv64编译通过(尚未能启动) ( #457 )
...
* 使得DragonOS kernel 能为riscv64编译通过(尚未能启动)
* 修正了系统调用号声明不正确的问题,同时添加了编译配置文档
2023-11-25 12:07:39 +08:00
LoGin
c75089286e
调整脚本,使得能够创建riscv的磁盘镜像,并引导进入riscv下的grub ( #450 )
...
* 安装musl toolchain以及riscv相关的工具链
* 调整脚本,使得能够创建riscv的磁盘镜像,并引导进入riscv下的grub
```shell
export ARCH=riscv64
make write_diskimage
make qemu
```
即可在serial_opt.txt看到进入grub的提示信息
2023-11-21 13:42:18 +08:00
LoGin
393f691574
增加gettid以及线程组group leader相关的逻辑 ( #430 )
...
* 增加gettid以及线程组group leader相关的逻辑
2023-11-09 16:48:45 +08:00
LoGin
7b32f5080f
增加内存分配日志监视器 ( #424 )
...
* 完成内存日志监视,并输出日志到文件
* 修复进程退出后,procfs查看进程status文件会崩溃的问题
* 修复signal唤醒进程的判断条件问题
2023-11-07 21:39:27 +08:00
LoGin
70a4e5550a
使用rust重写了apic的驱动 ( #425 )
...
* 使用rust重写了apic的驱动。
* 修正signal和调度器的部分加锁逻辑,增加回退策略。
* 把pcb的flags字段替换为无锁的
* 使用cargo管理apic的编译
* 删除makefile中指定PIC的变量
---------
Co-authored-by: Gou Ngai <ymd7823@outlook.com>
Co-authored-by: 櫻井桃華 <89176634+TihayaKousaka@users.noreply.github.com>
2023-11-07 20:32:06 +08:00
GnoCiYeH
1603395155
支持syscall快速系统调用指令 ( #417 )
...
* 支持syscall快速系统调用指令
---------
Co-authored-by: LoGin <longjin@DragonOS.org>
2023-11-04 21:39:44 +08:00
GnoCiYeH
2f6f547ae0
Patch fix sched ( #419 )
...
1.解决waitqueue sleep的时候,由于preempt count不为0,导致sched失败,从而导致该waitqueue下一次wakeup时,会把pcb多次加入调度队列的bug
2.修复socket inode 的read和write方法里面没有使用no_preempt的问题
3. 修复cpu0的内核栈由于脏数据导致new_idle的时候set pcb报错的问题
---------
Co-authored-by: longjin <longjin@DragonOS.org>
2023-11-04 21:35:25 +08:00
Wu Mianzhi
77799ccaac
完成e1000e驱动 ( #393 )
...
* 测试RESET
* 测试RESET
* 基于轮询的实现
* 规范化部分unsafe的使用
* 完成中断处理函数,同时去除了不必要的内存拷贝行为,准备编写napi机制
* 实现现有协议栈下的部分napi机制;修复了内存泄漏的问题;添加了一部分代码注释
* 去除部分无用代码
* 去除一些无用代码
* 适配新的驱动模型
* 完成msi中断测试
* 去除一些无用代码
* 格式化代码
* 增加了一些注释,提高代码可读性
* 去除无关文件
* 优化了读取mac地址的方式,提高可读性
2023-10-30 00:08:52 +08:00
Xiaoye Zheng
40314b30ab
DragonOS虚拟化 ( #389 )
...
* try some ioctl flow & kvm device
* add sys ioctl
* 删掉一些debug信息
* 修改run-qemu.sh脚本,在QEMU中enable vmx
* 修改cr0,cr4,msr寄存器enable VMX operations
* enable vmx operation
* allocate memory for vmcs with bug
* allocate memory for vmcs
* cpu virt-50%
* single vcpu virt
* add vmcs fields
* CPU virt overall flow with bug
* run vmlaunch success
* run CPU virt with bug
* 成功运行non-root模式的guest
* 成功运行vmexit,进入vmx_return函数
* 成功运行vmlaunch, vmexit, vmresume
* vmexit handler with bug
* 完成vmexit cpuid handler
* fix vmresume guest状态恢复的bug
* 增加vm ioctl
* refactor kvm 50%
* refactor kvm 80%
* FIXME: kvm vmlaunch failed
* vmlaunch success
* FIXME: output error
* update guest_rsp
* cpu virt refactor
* add mmu related struct
* add usermemory region workflow
* add mem-virt workflow
* add mem-virt
* refactor code
* add vcpu ioctl set_regs
* rename hypervisor to vm & solve some deadlock bugs
* workout mem pipeline
* fix vmcs control setting bugs
* refactor segment regs initialization
* resovle conficts
* resovle conficts
* format code
2023-10-24 14:31:56 +08:00
YJwu2023
0dd8ff4332
添加中断 ( #370 )
...
* 添加中断
* dhcp更改为全局socketset
* 解决异常中断的问题,使得能够使用中断来处理网卡数据
---------
Co-authored-by: longjin <longjin@RinGoTek.cn>
2023-09-21 23:23:57 +08:00
login
cde5492f72
新增网络socket的系统调用接口 ( #247 )
...
1.修复spinlock忘记恢复rflags的问题
2.WaitQueue增加wakeup_all的功能
3.完善tcp,udp,raw socket
4.把PollStatus结构体改为使用bitflags
5.新增iovec结构体
6.完成网络的系统调用
7.在bootstrap里面添加dnsmasq bridge-utils iptables
---------
Co-authored-by: guanjinquan <1666320330@qq.com>
2023-04-19 18:05:02 +08:00
HoshuChiu
7149abaa49
修复Issue#220;vnc的端口号恢复5900 ( #243 )
...
* 修复Issue#220
* qemu-vnc端口号恢复为5900
2023-04-16 14:47:51 +08:00
YJwu2023
5c1e552cc7
修复ecam无法获取MCFG table的问题 ( #241 )
2023-04-14 12:21:08 +08:00
login
13776c114b
增加对dhcpv4的支持(tcp、udp socket已写好,但由于缺少epoll机制,尚未完整测试) ( #237 )
...
* 为virtio网卡完成smoltcp的phy层配置
* raw socket
* 初步写完udp和tcp socket
* 能够正常通过dhcp获取ipv4地址(具有全局iface btree)
---------
Co-authored-by: guanjinquan <1666320330@qq.com>
2023-04-10 20:22:39 +08:00
HoshuChiu
6d345b7742
添加了qemu使用VNC作为图像输出的选项 ( #222 )
...
* 添加了qemu使用VNC作为图像输出的选项
* 设置vnc端口为5900
---------
Co-authored-by: longjin <longjin@RinGoTek.cn>
2023-04-02 15:55:24 +08:00
Gou Ngai
5fb12ce447
第一套键盘扫描码的状态机 ( #216 )
...
第一套键盘扫描码的状态机
---------
Co-authored-by: guanjinquan <1666320330@qq.com>
Co-authored-by: longjin <longjin@RinGoTek.cn>
2023-03-30 18:19:02 +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
Gou Ngai
64aea4b349
增加x87FPU支持 ( #212 )
...
* remove `ret_from_syscall`
*修复ps2键盘驱动程序inode在进程fork的时候导致死锁的问题.
*更新: VFS每次拷贝文件描述符的时候,都会去调用inode的open函数
---------
Co-authored-by: longjin <longjin@RinGoTek.cn>
2023-03-28 20:44:26 +08:00
YJwu2023
73c607aadd
VirtIO网卡能够正常发送、接收数据 ( #204 )
...
* virtio-net小修改
* 移动volatile.rs到libs文件夹
* 使用virtio-drivers 0.3.0
* bugfix: 初始化BAR之后,未正确设置command register的问题
---------
Co-authored-by: longjin <longjin@dragonos.org>
2023-03-18 20:43:37 +08:00
YJwu2023
38b341b8aa
新增32位uefi启动 ( #105 )
...
* 新增32位uefi启动
* 修复小bug
* 增加grub本地编译安装
* 增加本地grub编译安装脚本
* 修正小错误
* 修复空文件夹不上传的bug
2022-12-14 16:58:49 +08:00
YJwu2023
7f439c5ddb
增加uefi启动 ( #101 )
...
* 增加uefi启动
* 修改脚本
* uefi修改
* 删除错误的注释
* 修正写入磁盘镜像的脚本
* 修改X86_64为x86_64
Co-authored-by: longjin <longjin@RinGoTek.cn>
2022-12-09 16:08:54 +08:00
login
2813126e31
新增rust ffi ( #77 )
...
* 引入cargo
* 取消对Cargo.lock的跟踪
* 解决vscode报错问题
* new: rust的代码能够调用c语言的printk_color
* 1、将原本run.sh的工作拆解,变为几个不同的make命令
2、在docker镜像中编译rust
* 更改workflow
* update workflow
* new: 解决workflow无法通过编译的问题
2022-11-11 15:35:37 +08:00