LoGin
8b8f2f7981
chore: 将cargo.lock恢复提交到git ( #1114 )
...
Signed-off-by: longjin <longjin@DragonOS.org>
2025-03-25 11:27:50 +08:00
LoGin
65f6119c9f
chore: 删除package-lock.json并恢复.gdbinit配置文件 ( #1100 )
...
撤销 [#1073 ](https://github.com/DragonOS-Community/DragonOS/pull/1073 ) 错误操作的两个文件
Signed-off-by: longjin <longjin@DragonOS.org>
2025-03-12 00:23:08 +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
a05738e7cc
fix: 修正nographic启动时,控制台日志未能输出到文件的问题 ( #1082 )
...
Signed-off-by: longjin <longjin@DragonOS.org>
2025-01-01 23:38:43 +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
c09af909c5
chore: 修复编译镜像未能正确安装工具链的问题 ( #1071 )
...
Signed-off-by: longjin <longjin@DragonOS.org>
2024-12-07 16:37:15 +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
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
LoGin
7b0ef10895
ci: change rust src to crates-io-index while using GitHub workflow ( #1023 )
...
Signed-off-by: longjin <longjin@DragonOS.org>
2024-10-31 01:05:34 +08:00
黄铭涛
80c9e8f8f0
fix(tools):支持在无kvm支持下运行DragonOS ( #1010 )
...
* fix(tools):支持在无kvm支持下运行DragonOS
* fix: 修正问题:在非Linux上面加速选项选择的不正确
---------
Co-authored-by: jinlong <jinlong@tencent.com>
2024-10-25 14:26:37 +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
40db1e61da
ci: add-bpf-linker-to-ci-image ( #972 )
...
Signed-off-by: longjin <longjin@DragonOS.org>
2024-10-12 01:20:43 +08:00
LoGin
79eda4bcf9
ci: fix docker run failed ( #961 )
...
Signed-off-by: longjin <longjin@DragonOS.org>
2024-10-10 03:06:48 +08:00
LoGin
056c4aad81
ci: auto build docker images ( #960 )
2024-10-10 01:31:59 +08:00
LoGin
415e46ea47
build: Remove DragonOS_GCC And make CI use docker image ( #954 )
...
* build: 不再需要x86_64-elf-gcc的支持
* ci: 添加ci用的docker镜像
* 切换workflow到构建用的容器上
---------
Signed-off-by: longjin <longjin@DragonOS.org>
2024-10-10 00:59:50 +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
Jomo
3c0a1c8fa2
默认nightly-2024-07-23 & config改为config.toml ( #872 )
2024-07-27 01:33:38 +08:00
LoGin
816ee5ae54
refactor: 删除过时的va-pa转换函数,改为统一使用MMArch ( #862 )
2024-07-26 00:27:35 +08:00
LoGin
bd70d2d1f4
chore: 将工具链更新到2024-07-23 ( #864 )
...
* chore: 将工具链更新到2024-07-23
2024-07-25 00:55:02 +08:00
LoGin
79ad6e5ba4
fix: build-scripts和tools目录下的make check指定工具链版本 ( #861 )
2024-07-22 23:00:37 +08:00
donjuanplatinum
6cf1947dcf
chore(tools): add the gentoo grub_auto_install support ( #827 )
2024-05-23 02:15:44 +08:00
donjuanplatinum
f79998f626
增加rust sparse稀疏索引选项 ( #826 )
2024-05-18 00:22:38 +08:00
donjuanplatinum
1df85daf8f
添加支持gentoo系统的一键安装脚本 ( #809 )
2024-05-12 22:58:59 +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
Chiichen
4b0170bd6b
chore(tools): add bootstrap support for Centos/RHEL8/fedora ( #713 )
...
Co-authored-by: kejianchi <kejianchi@tencent.com>
2024-04-10 18:58:54 +08:00
栗子
4f8f484930
修复Archlinux下的bootstrap脚本问题, ( #552 )
...
* 修复Archlinux下的bootstrap脚本问题,
由于archlinux 的 texinfo版本太新导致的gcc docs构建失败
使用 MAKEINFO=true 的make环境变量跳过gcc docs构建,绕过问题
---------
Co-authored-by: longjin <longjin@dragonos.org>
2024-03-09 21:20:12 +08:00
裕依
bc6f0a967c
移除relibc和old libc以及旧的shell ( #529 )
...
移除relibc和old libc以及旧的shell
2024-03-04 14:20:01 +08:00
栗子
d2b28acb4d
tools/bootstrap.sh: fix archlinux and zsh issue ( #535 )
...
1. archlinux上没有libssl-dev包,相对应的包名是openssl
2. zsh用户使用bootstrap.sh 会因为 source ~/.zshrc
导致bash执行很多zsh built-in 指令出现非常多错误
3. mkdir命令加-p选项避免对象目录存在时(反复执行脚本)报错
4. 修复简单错误(typo gcc 为 binutils)
5. 修复bootstrap.sh等脚本无法在非tools/目录执行的错误
2024-02-25 19:57:30 +08:00
LoGin
ca318c376b
update dragonreach to 3d99c3a9d9 ( #519 )
2024-02-17 01:51:10 +08:00
裕依2439
4ad52e57e6
添加socketpair ( #505 )
...
* 添加对socketpair系统调用的处理
---------
Co-authored-by: LoGin <longjin@DragonOS.org>
2024-02-07 18:06:15 +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
Jomo
8d72b68da9
实现内核日志系统 ( #489 )
...
* 实现写日志和读取日志,并且能够在用户态下执行dmesg命令查看日志
* 通过klogctl实现dmesg
* 改用ConstGenericRingBuffer作内核缓冲区
* 更改缓冲区容量
* 将能够输出到控制台的日志级别改为日志级别枚举类,使用SpinLock控制KMSG,使用枚举类定义SYSLOG_ACTION,将do_syslog系统调用接口放在syscall.rs
* fix warning
* 完善do_syslog注释
* 将KMSG接入kinfo、kdebug等
* fix warning
* 修复显示的秒数不正确,·以及无法通过CI的问题
2024-01-24 16:13:15 +08:00
裕依2439
d46c6d2794
修复tty的buf满时始终阻塞的问题 ( #493 )
...
* 修复tty的buf满时始终阻塞的问题
2024-01-23 23:36:52 +08:00
LoGin
7a29d4fcbc
riscv64: 映射uefi systemtable,并完善了riscv64页表填写的部分内容 ( #498 )
...
* 从fdt的chosen段获取几个需要的字段
* merge patch-early-ioremap
* feature: 增加early io remap的fixmap功能
允许在内存管理初始化之前,使用fixmap功能,映射一些物理内存,并记录.
* riscv64: 映射uefi systemtable,并完善了riscv64页表填写的部分内容
* 更新仓库网址
2024-01-21 15:38:12 +08:00
LoGin
dcf232f378
当找不到内核日志缓冲区的时候,重试 ( #491 )
2024-01-14 17:00:42 +08:00
LoGin
e3eb08d4d7
fix: 修复安装musl-gcc的脚本没能正确设置x86_64下的环境变量的问题 ( #482 )
2023-12-30 16:23:26 +08:00
LoGin
81294aa2e6
fix: 修正bootstrap脚本安装docker后会使得当前终端进入root的问题 ( #481 )
2023-12-27 20:32:25 +08:00
LoGin
f110d330d5
修复bootstrap在安装riscv gcc依赖时出现冲突的问题 ( #476 )
2023-12-25 21:54:00 +08:00
LoGin
cf44232423
修复x86下第二次编译的时候内核没有拷贝到磁盘的问题 ( #467 )
2023-12-13 14:44:57 +08:00
LoGin
1a72a751b1
在riscv输出hello world ( #466 )
...
增加了以下内容:
- SBI驱动
- 把内核的rust工具链升级到2023-08-15版本
- 输出riscv的helloworld
- 设置内核是PIC的
2023-12-07 02:13:22 +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
c89d0c1237
修复bootstrap的一系列脚本忘了source最新的shell rc的问题 ( #453 )
2023-11-21 20:24:43 +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
48a3baa9b1
安装musl toolchain以及riscv相关的工具链 ( #449 )
2023-11-21 13:42:06 +08:00
LoGin
99dbf38d2e
bugfix: 当物理机具有多个memory area的时候,无法正确使用这些区域的问题.以及在内核代码处出现内存空洞而导致无法正常运行的问题. ( #448 )
...
* bugfix: 当物理机具有多个memory area的时候,无法正确使用这些区域的问题.以及在内核代码处出现内存空洞而导致无法正常运行的问题.
解决方案:
1. 分区域把空闲页添加到buddy
2. 将内核链接到16M的位置,以避免uefi带来的内存空洞.
这个值是因为我看到linux的救援内核也是在16M的地址,因此猜测厂商不会使用这块内存.
尽管uefi规范讲的是固件可以采用任何地址,内核需要使用内核重定位技术去避免遇到内存空洞,但我没有这么做.
2023-11-19 11:42:53 +08:00