History log of /DragonOS/Makefile (Results 1 – 25 of 51)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 43ef2a0d 21-Jan-2024 LoGin <longjin@DragonOS.org>

添加riscv64的github workflow (#499)

* 添加riscv64的github workflow


# 070e9910 22-Dec-2023 R0ronoa <84278015+2447742618@users.noreply.github.com>

解决由于Makefile问题导致make run-uefi无法正常启动的问题 (#473)


# 1a72a751 06-Dec-2023 LoGin <longjin@DragonOS.org>

在riscv输出hello world (#466)

增加了以下内容:
- SBI驱动
- 把内核的rust工具链升级到2023-08-15版本
- 输出riscv的helloworld
- 设置内核是PIC的


# 09d2bf52 03-Dec-2023 LoGin <longjin@DragonOS.org>

update-dragon-stub-bf2617 (#463)


# af354310 03-Dec-2023 LoGin <longjin@DragonOS.org>

使用submodule引入DragonStub (#462)

* 修正构建系统文档: 使用repo工具克隆代码

* 使用submodule管理


# 4fda81ce 25-Nov-2023 LoGin <longjin@DragonOS.org>

使得DragonOS kernel 能为riscv64编译通过(尚未能启动) (#457)

* 使得DragonOS kernel 能为riscv64编译通过(尚未能启动)

* 修正了系统调用号声明不正确的问题,同时添加了编译配置文档


# c7508928 21-Nov-2023 LoGin <longjin@DragonOS.org>

调整脚本,使得能够创建riscv的磁盘镜像,并引导进入riscv下的grub (#450)

* 安装musl toolchain以及riscv相关的工具链

* 调整脚本,使得能够创建riscv的磁盘镜像,并引导进入riscv下的grub

```shell
export ARCH=riscv64
make write_diskimage
make qemu
```

即可

调整脚本,使得能够创建riscv的磁盘镜像,并引导进入riscv下的grub (#450)

* 安装musl toolchain以及riscv相关的工具链

* 调整脚本,使得能够创建riscv的磁盘镜像,并引导进入riscv下的grub

```shell
export ARCH=riscv64
make write_diskimage
make qemu
```

即可在serial_opt.txt看到进入grub的提示信息

show more ...


# e26ca418 17-Nov-2023 LoGin <longjin@DragonOS.org>

把内核构建脚本单独独立成一个crate (#444)


# 7b32f508 07-Nov-2023 LoGin <longjin@DragonOS.org>

增加内存分配日志监视器 (#424)

* 完成内存日志监视,并输出日志到文件
* 修复进程退出后,procfs查看进程status文件会崩溃的问题
* 修复signal唤醒进程的判断条件问题


# e92d0228 26-Aug-2023 LoGin <longjin@DragonOS.org>

解决设置rust workspace带来的“工具链不一致”的问题 (#345)

更改workflow


Revision tags: V0.1.8
# 40fe15e0 22-Jul-2023 LoGin <longjin@DragonOS.org>

新的内存管理模块 (#303)

&emsp;&emsp;实现了具有优秀架构设计的新的内存管理模块,对内核空间和用户空间的内存映射、分配、释放、管理等操作进行了封装,使得内核开发者可以更加方便地进行内存管理。

&emsp;&emsp;内存管理模块主要由以下类型的组件组成:

- **硬件抽象层(MemoryManagementArch)** - 提供对具体处理器架构的抽象,使得内存管理

新的内存管理模块 (#303)

&emsp;&emsp;实现了具有优秀架构设计的新的内存管理模块,对内核空间和用户空间的内存映射、分配、释放、管理等操作进行了封装,使得内核开发者可以更加方便地进行内存管理。

&emsp;&emsp;内存管理模块主要由以下类型的组件组成:

- **硬件抽象层(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>

show more ...


# bb5f098a 22-Jul-2023 LoGin <longjin@DragonOS.org>

Revert "新的内存管理模块 (#301)" (#302)

This reverts commit d8ad0a5e7724469abd5cc3cf271993538878033e.


# d8ad0a5e 22-Jul-2023 LoGin <longjin@DragonOS.org>

新的内存管理模块 (#301)

&emsp;&emsp;实现了具有优秀架构设计的新的内存管理模块,对内核空间和用户空间的内存映射、分配、释放、管理等操作进行了封装,使得内核开发者可以更加方便地进行内存管理。

&emsp;&emsp;内存管理模块主要由以下类型的组件组成:

- **硬件抽象层(MemoryManagementArch)** - 提供对具体处理器架构的抽象,使得内存管理

新的内存管理模块 (#301)

&emsp;&emsp;实现了具有优秀架构设计的新的内存管理模块,对内核空间和用户空间的内存映射、分配、释放、管理等操作进行了封装,使得内核开发者可以更加方便地进行内存管理。

&emsp;&emsp;内存管理模块主要由以下类型的组件组成:

- **硬件抽象层(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

show more ...


# 5f578343 06-Jun-2023 Tptogiar <2528891112@qq.com>

Makefile: 根目录下添加make help命令 (#271)

* Makefile: 根目录下添加make help命令

* Makefile: 补充根目录Makefile的help命令


Revision tags: V0.1.7, V0.1.6
# 6d345b77 02-Apr-2023 HoshuChiu <129569557+HoshuChiu@users.noreply.github.com>

添加了qemu使用VNC作为图像输出的选项 (#222)

* 添加了qemu使用VNC作为图像输出的选项

* 设置vnc端口为5900

---------

Co-authored-by: longjin <longjin@RinGoTek.cn>


Revision tags: V0.1.5, V0.1.4, V0.1.3
# 2224c93e 06-Jan-2023 guanjinquan <1666320330@qq.com>

完善libc,构建了OS-specific工具链,编译了基于gcc-11.3.0的DragonOS userland compiler,移植了mpfr,gmp,mpc库 (#134)

* 修改include路径

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

* 修补.gitignore

* 删除多余项

* 优化

完善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>

show more ...


# 74bde36e 31-Dec-2022 guanjinquan <1666320330@qq.com>

Patch porting gcc v2 (#124)

* 更改编译器的Include路径,使得include时不需要加`<libc/src/include/>`前缀

* 修改include路径

Co-authored-by: longjin <longjin@RinGoTek.cn>


# d4f3de93 31-Dec-2022 login <longjin@ringotek.cn>

使用Rust重构CFS调度器 (#131)

* 新建调度器的文件

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

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

* new:使用rust重构CFS

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

* 代码格式化

* 删除多余的dunce依赖


# 5ed4cd46 22-Dec-2022 guanjinquan <75822481+guanjinquan@users.noreply.github.com>

Patch gcc toolchain (#111)

* 添加了GCC_cross_compile——tool_chain

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

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

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

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

* 更新makefile

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>

show more ...


Revision tags: V0.1.2
# 83a7aaa4 17-Dec-2022 login <longjin@ringotek.cn>

删除rust_helloworld文件 (#113)


# 38b341b8 14-Dec-2022 YJwu2023 <119829947+YJwu2023@users.noreply.github.com>

新增32位uefi启动 (#105)

* 新增32位uefi启动

* 修复小bug

* 增加grub本地编译安装

* 增加本地grub编译安装脚本

* 修正小错误

* 修复空文件夹不上传的bug


# 7f439c5d 09-Dec-2022 YJwu2023 <119829947+YJwu2023@users.noreply.github.com>

增加uefi启动 (#101)

* 增加uefi启动

* 修改脚本

* uefi修改

* 删除错误的注释

* 修正写入磁盘镜像的脚本

* 修改X86_64为x86_64

Co-authored-by: longjin <longjin@RinGoTek.cn>


Revision tags: V0.1.1
# 2813126e 11-Nov-2022 login <longjin@ringotek.cn>

新增rust ffi (#77)

* 引入cargo

* 取消对Cargo.lock的跟踪

* 解决vscode报错问题

* new: rust的代码能够调用c语言的printk_color

* 1、将原本run.sh的工作拆解,变为几个不同的make命令
2、在docker镜像中编译rust

* 更改workflow

* update workflow

新增rust ffi (#77)

* 引入cargo

* 取消对Cargo.lock的跟踪

* 解决vscode报错问题

* new: rust的代码能够调用c语言的printk_color

* 1、将原本run.sh的工作拆解,变为几个不同的make命令
2、在docker镜像中编译rust

* 更改workflow

* update workflow

* new: 解决workflow无法通过编译的问题

show more ...


Revision tags: V0.1.0
# e0021523 24-Oct-2022 login <longjin@ringotek.cn>

new: 在lib下引入一个rust的helloworld! (#68)


# d328bfce 22-Oct-2022 login <longjin@ringotek.cn>

bugfix: 修正潜在的错误路径 (#64)

* bugfix: 修正潜在的错误路径

* 修正格式


123