34 Commits

Author SHA1 Message Date
HoshuChiu
6d345b7742
添加了qemu使用VNC作为图像输出的选项 (#222)
* 添加了qemu使用VNC作为图像输出的选项

* 设置vnc端口为5900

---------

Co-authored-by: longjin <longjin@RinGoTek.cn>
2023-04-02 15:55:24 +08:00
guanjinquan
2224c93ea9
完善libc,构建了OS-specific工具链,编译了基于gcc-11.3.0的DragonOS userland compiler,移植了mpfr,gmp,mpc库 (#134)
* 修改include路径

* 添加了创建libsysapi.a和/bin/sysroot/usr/include/+lib/的代码

* 修补.gitignore

* 删除多余项

* 优化脚本可读性

* 新增crt0 crti crtn

* 编译binutils所需的东西

* fflush()和fprintf()的简单实现

* 应用程序启动前,调用初始化libc的函数

* 自动创建sysroot

* 添加了stderr的初始化

* 修改了stderr的初始化

* 内核添加对stdio的简略处理

* 格式化代码

* 修正打开stdio文件描述符的问题

* bugfix: 修复fprintf忘记释放buf的问题

* 修复shell错误地把入口设置为main而不是_start的问题

* 新增__cxa_atexit  (gcc要求libc提供这个)

* 增加putchar puts

* 更新写入磁盘镜像的脚本,默认无参数时,使用legacy方式安装

* 更新编译脚本

* stdio增加eof的定义

* 新增extern cplusplus

* mpfr gmp mpc 构建脚本

* 更新libsysapi.a为libc.a

* 加上ferror fopen fclose

* 更新移植的软件的构建脚本

* 更改build_gcc_toolchain.sh中的-save参数名为-save-cache

Co-authored-by: longjin <longjin@RinGoTek.cn>
2023-01-06 21:29:23 +08:00
guanjinquan
74bde36e01
Patch porting gcc v2 (#124)
* 更改编译器的Include路径,使得include时不需要加`<libc/src/include/>`前缀

* 修改include路径

Co-authored-by: longjin <longjin@RinGoTek.cn>
2022-12-31 17:35:39 +08:00
login
d4f3de93a2
使用Rust重构CFS调度器 (#131)
* 新建调度器的文件

* 把softirq vector移动到c文件中(原来在.h)

* 将进程切换方式改为“中断返回时切换”

* new:使用rust重构CFS

* 删除已经在smp中废弃的HPET中断转发函数

* 代码格式化

* 删除多余的dunce依赖
2022-12-31 17:26:12 +08:00
guanjinquan
5ed4cd4602
Patch gcc toolchain (#111)
* 添加了GCC_cross_compile——tool_chain

* - 解决环境变量路径拼接时,多了`/`的问题
- apt安装时增加-y,不需用户确认

* 解决添加环境变量的命令有误的问题

* 修正编译错误时,还会执行下一步的问题

* new: 编译完成后清理临时文件

* 更新makefile

* 调整:把grub安装在 $HOME/opt/dragonos-grub下

* new: 新增dockerfile

* 将镜像源换成中科大的(原因是清华的总是ban掉用于构建镜像的服务器的ip)

* 修改为基于debian bullseye构建

* 取消指定版本

* 修复MBR磁盘镜像未设置启动标志的bug

* 取消在docker中安装grub

* 安装grub的过程改到客户机上进行

* bootstrap.sh 添加--no-docker

* 使用新版的docker编译镜像

* 修补, 添加了一些关于gcc的check

Co-authored-by: longjin <longjin@RinGoTek.cn>
2022-12-22 21:09:12 +08:00
login
83a7aaa46b
删除rust_helloworld文件 (#113) 2022-12-17 16:31:50 +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
login
e002152383
new: 在lib下引入一个rust的helloworld! (#68) 2022-10-24 21:29:58 +08:00
login
d328bfce6b
bugfix: 修正潜在的错误路径 (#64)
* bugfix: 修正潜在的错误路径

* 修正格式
2022-10-22 20:17:40 +08:00
longjin
fbe1e23e97 将makefile中的gcc字样用$(CC)环境变量代替 2022-10-16 11:08:32 +08:00
fslongjin
d60f1a8f80 bugfix: 用户态程序编译失败的问题 2022-09-12 14:55:45 +08:00
fslongjin
5652878249 bugfix: 用户态程序编译错误的问题 2022-09-11 21:28:19 +08:00
fslongjin
08df258142 bugfix: 编译错误时仍可启动虚拟机的问题 2022-09-01 15:44:30 +08:00
fslongjin
416a802b9c new: xhci get descriptor 2022-08-30 20:34:52 +08:00
fslongjin
06af77bd79 fix: 解决了page的锁未被初始化的bug 2022-08-15 12:09:04 +08:00
fslongjin
1dd9195d69 new: vma反向映射 2022-08-15 01:42:34 +08:00
fslongjin
36d55511ba 更正优化级别 2022-08-03 17:23:30 +08:00
fslongjin
de3324ed7d 实现屏幕管理器大致的框架 2022-08-03 14:11:14 +08:00
fslongjin
aa7dc4daa5 解决O3下,printk在ap处理器中打印的信息会出现滚动的bug 2022-08-01 23:45:21 +08:00
fslongjin
23fa428274 fix: init_mm中未加mfence导致O3出错的问题 2022-08-01 23:27:41 +08:00
fslongjin
f06ed2d886 使process模块能以O3优化下运行 2022-08-01 21:42:23 +08:00
fslongjin
e806bbc0c8 o3能运行 2022-08-01 20:55:47 +08:00
fslongjin
58681fd34a O1能跑的代码 2022-08-01 19:43:21 +08:00
fslongjin
1ab51cb334 🆕 内核栈反向追踪 2022-06-22 23:31:47 +08:00
fslongjin
e2a59dbd43 🆕 exec (存在bug 2022-05-31 21:55:06 +08:00
fslongjin
afeca18206 🎨 将shell独立成单独的app 2022-05-24 14:36:24 +08:00
fslongjin
edb21695ae minilibc 2022-05-11 20:42:30 +08:00
fslongjin
0aec6827ee 🆕 运行文件系统中的二进制程序 2022-05-06 00:25:32 +08:00
fslongjin
05dc7ac73b 将内核层空间移动到0xffff800000000000 2022-04-09 21:11:07 +08:00
fslongjin
e667fff256 🆕 gdb源代码级别调试 2022-04-04 17:46:57 +08:00
fslongjin
0b0cce9326 🆕 切换为grub2引导,能进入Start_Kernel函数(未能完成初始化) 2022-02-21 14:39:48 +08:00
fslongjin
f479f32102 🔧 修改为makefile的构建方式,程序能正常运行 2022-01-21 13:49:09 +08:00