|
401699735b
|
riscv: 进程管理初始化 (#654)
|
2024-03-23 16:25:56 +08:00 |
|
|
b5b571e026
|
修复内核的clippy检查报错 (#637)
修复内核的clippy检查报错
---------
Co-authored-by: Samuel Dai <947309196@qq.com>
Co-authored-by: Donkey Kane <109840258+xiaolin2004@users.noreply.github.com>
Co-authored-by: themildwind <107623059+themildwind@users.noreply.github.com>
Co-authored-by: GnoCiYeH <heyicong@dragonos.org>
Co-authored-by: MemoryShore <105195940+MemoryShore@users.noreply.github.com>
Co-authored-by: 曾俊 <110876916+ZZJJWarth@users.noreply.github.com>
Co-authored-by: sun5etop <146408999+sun5etop@users.noreply.github.com>
Co-authored-by: hmt <114841534+1037827920@users.noreply.github.com>
Co-authored-by: laokengwt <143977175+laokengwt@users.noreply.github.com>
Co-authored-by: TTaq <103996388+TTaq@users.noreply.github.com>
Co-authored-by: Jomo <2512364506@qq.com>
Co-authored-by: Samuel Dai <samuka007@qq.com>
Co-authored-by: sspphh <112558065+sspphh@users.noreply.github.com>
|
2024-03-22 23:26:39 +08:00 |
|
|
70f159a398
|
riscv64: 添加flush tlb的ipi (#636)
* riscv64: 添加flush tlb的ipi
* update triagebot
|
2024-03-21 21:35:39 +08:00 |
|
|
8cb2e9b344
|
重写SMP模块 (#633)
* 修复cpumask的迭代器的错误。
* 能进系统(AP核心还没有初始化自身)
* 初始化ap core
* 修改percpu
* 删除无用的cpu.c
* riscv64编译通过
|
2024-03-21 19:19:32 +08:00 |
|
|
52bcb59e92
|
完善Tty的RawMode (#577)
* 完善rowmode,改掉一部分bug
* 增加两个ansi拓展功能功能,以及标记部分函数nerve inline
* 修改do_signal和其他中断上下文锁未关中断,以及拓展tty功能,修改tty几个算法bug
* 修改两个锁
* 修改syscall_64
* update
|
2024-03-11 15:13:37 +08:00 |
|
|
5c4224e5a8
|
在riscv上实现异常处理,能够进入异常处理程序 (#564)
|
2024-03-08 23:23:06 +08:00 |
|
|
338f690326
|
riscv : 初始化irq (#560)
完成riscv的irqchip初始化的代码。
这是该功能的第一个PR。由于还需要实现timer驱动才能测试,因此该功能将会通过2~3个PR来完成。
|
2024-03-05 17:22:04 +08:00 |
|
|
bc6f0a967c
|
移除relibc和old libc以及旧的shell (#529)
移除relibc和old libc以及旧的shell
|
2024-03-04 14:20:01 +08:00 |
|
|
e28411791f
|
完成中断管理模块重构 (#554)
- 支持中断共享
- 把现有驱动程序移植到新的irq模块
- 使用`ProcessorId`标识处理器id
- 尚未实现threaded_irq
性能上,edge irq flow handler里面,对于锁的使用,可能有点问题。为了获取/修改common data还有其他几个结构体的状态,进行了多次加锁和放锁,导致性能降低。这是接下来需要优化的点。
|
2024-03-03 16:31:08 +08:00 |
|
|
52da9a5937
|
完成与Linux兼容的Ntty (#517)
* 已经完成的功能:
- 写:printf能够正常在tty输出
- 读:与键盘驱动接上
- 信号: 能够正常通过ctrl向前台进程发送信号
* 支持目前的shell,改动printk使其与新版tty兼容。
* 删除原有tty文件夹,并更改新tty文件名
* 添加clear清屏程序
* 实现tty部分ioctl,更改部分问题
|
2024-02-26 15:27:19 +08:00 |
|
|
3bc96fa4a9
|
添加irqdesc的抽象,并在系统初始化时创建irqdesc (#522)
* 添加irqdesc的抽象,并在系统初始化时创建irqdesc
|
2024-02-19 00:36:36 +08:00 |
|
|
cb23beb255
|
riscv: probe sbi extensions (#511)
|
2024-02-07 17:15:17 +08:00 |
|
|
f2022a8a1c
|
使用rust编写中断/异常的入口 (#509)
* 使用rust编写中断/异常的入口
|
2024-02-07 13:29:47 +08:00 |
|
|
d14e28a8a9
|
riscv: 使用sbi-rt库完成SBI操作 (#510)
未来的其它SBI操作也将使用sbi-rt
Signed-off-by: Zhouqi Jiang <luojia@hust.edu.cn>
|
2024-02-07 11:38:15 +08:00 |
|
|
5b59005f93
|
x86_64: 使用Rust重写内核初始化代码 (#507)
* x86_64: 使用Rust重写内核初始化代码
|
2024-02-04 15:46:24 +08:00 |
|
|
453452cc02
|
初始化riscv的内存管理模块,并且设置保留内存 (#506)
|
2024-02-04 14:35:18 +08:00 |
|
|
a02ce654cf
|
支持对动态链接文件的加载,支持通过musl工具链编写用户空间程序 (#504)
支持对动态链接文件的加载,支持通过musl工具链编写用户空间程序
|
2024-01-28 20:29:01 +08:00 |
|
|
5d549a76ab
|
修改一处常量定义 (#503)
* 修改一处常量定义
* 修复ELF加载程序对用户程序加载地址判断不正确的地方
---------
Co-authored-by: longjin <longjin@DragonOS.org>
|
2024-01-26 20:45:08 +08:00 |
|
|
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 |
|
|
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 |
|
|
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 |
|
|
3e3c6316aa
|
fix: 修复了ps2和tty初始化顺序的错误 (#497)
* 修复了ps2和tty初始化顺序的错误
|
2024-01-21 01:38:45 +08:00 |
|
|
74ffde667e
|
feature: 增加early io remap的fixmap功能 (#495)
允许在内存管理初始化之前,使用fixmap功能,映射一些物理内存,并记录.
|
2024-01-21 01:21:55 +08:00 |
|
|
45626c859f
|
riscv: 解析dtb,获取可用内存空间并添加到memblock (#486)
|
2024-01-03 18:00:47 +08:00 |
|
|
e7071df6a4
|
把opengrok.ringotek.cn替换为code.dragonos.org.cn (#484)
|
2024-01-01 11:53:49 +08:00 |
|
|
c566df451c
|
添加帧缓冲区抽象并实现vesafb的驱动 (#483)
- 添加bootparams对象
- 修正由于bus的driver、device强弱引用关系 不正确从而导致对象被释放的bug
- 添加vesafb的驱动
- 实现framebuffer抽象层
- 为通用帧缓冲区抽象实现sysfs的属性
- 修改设备号DeviceNumber的定义
- 仿照linux,添加initcall,并在第一个内核线程中,调用他们。
|
2024-01-01 11:46:51 +08:00 |
|
|
0d6cf65aa1
|
Patch fix sched and net lockdep error (#479)
- fix: 修复调度器,软中断,定时器,网络子系统的部分锁的使用不符合锁依赖安全规范的问题
- fix: 修复创建pcb时内核栈爆栈的问题
- 把异常的trap gate改成intr gate
---------
Co-authored-by: GnoCiYeH <heyicong@dragonos.org>
|
2023-12-27 14:27:12 +08:00 |
|
|
91e9d4ab55
|
实现unified-init库,支持收集初始化函数到一个数组,并统一初始化 (#474)
* 添加“统一初始化”的过程宏,并把SystemError独立成crate
* 使用unified-init来初始化fbmem
* 更新workflow,增加内核自动化静态测试
|
2023-12-25 23:12:27 +08:00 |
|
|
8612b6ce7a
|
bugfix: 修复无法sleep的问题以及进程处于block(true)状态时无法被信号唤醒&唤醒后不处理信号的问题 (#470)
|
2023-12-19 11:56:14 +08:00 |
|
|
666cffedab
|
riscv: 映射内核到指定的虚拟地址,使得kinfo能正常工作 (#468)
* riscv: 映射内核到指定的虚拟地址,使得kinfo能正常工作
|
2023-12-16 22:26:26 +08:00 |
|
|
1a72a751b1
|
在riscv输出hello world (#466)
增加了以下内容:
- SBI驱动
- 把内核的rust工具链升级到2023-08-15版本
- 输出riscv的helloworld
- 设置内核是PIC的
|
2023-12-07 02:13:22 +08:00 |
|
|
01090de77e
|
使用DragonStub引导riscv下的DragonOS内核 (#460)
|
2023-12-03 14:40:13 +08:00 |
|
|
4fda81ce81
|
使得DragonOS kernel 能为riscv64编译通过(尚未能启动) (#457)
* 使得DragonOS kernel 能为riscv64编译通过(尚未能启动)
* 修正了系统调用号声明不正确的问题,同时添加了编译配置文档
|
2023-11-25 12:07:39 +08:00 |
|
|
cc5feaf67b
|
bugfix: 修复因rsdp v1 v2版本问题,导致ACPI无法正常初始化的bug (#454)
bugfix: 修复因rsdp v1 v2版本问题,导致ACPI无法正常初始化的bug
|
2023-11-23 21:04:32 +08:00 |
|
|
99dbf38d2e
|
bugfix: 当物理机具有多个memory area的时候,无法正确使用这些区域的问题.以及在内核代码处出现内存空洞而导致无法正常运行的问题. (#448)
* bugfix: 当物理机具有多个memory area的时候,无法正确使用这些区域的问题.以及在内核代码处出现内存空洞而导致无法正常运行的问题.
解决方案:
1. 分区域把空闲页添加到buddy
2. 将内核链接到16M的位置,以避免uefi带来的内存空洞.
这个值是因为我看到linux的救援内核也是在16M的地址,因此猜测厂商不会使用这块内存.
尽管uefi规范讲的是固件可以采用任何地址,内核需要使用内核重定位技术去避免遇到内存空洞,但我没有这么做.
|
2023-11-19 11:42:53 +08:00 |
|
|
46e234aef6
|
使用cargo管理一些C文件的编译,并且移动部分汇编到arch目录 (#447)
* 使用cargo管理main.c的编译
* 使用build-scripts编译架构相关的c代码
* 删除elf.h
|
2023-11-17 21:25:15 +08:00 |
|
|
11f78b73e7
|
使用kernel-build脚本来编译所有的asm文件 (#445)
|
2023-11-17 20:05:57 +08:00 |
|
|
0fb515b011
|
完善pipe系统调用以及openat系统调用 (#441)
|
2023-11-15 15:39:35 +08:00 |
|
|
bf4a48994a
|
新增系统调用,并对照linux-6.1.9改写sys_wait4 (#440)
* 1. 新增以下系统调用
- SYS_LSTAT
- SYS_READV
- SYS_ACCESS
- SYS_UNLINK
- SYS_CHMOD
- SYS_FCHMOD
- SYS_UMASK
- SYS_SYSINFO
- SYS_CLOCK_GETTIME
- SYS_FCHMODAT
- SYS_FACCESSAT
2. 修改sys_wait4,使得其部分符合Linux的行为(还是有些地方不符合的,详情请对比linux-6.1.9的sys_wait4接口)
|
2023-11-13 23:02:21 +08:00 |
|
|
9b0abe6da7
|
添加access、faccessat、faccessat2 (#439)
|
2023-11-12 21:23:48 +08:00 |
|
|
0d9b7d9240
|
添加prlimit64系统调用 (#438)
注意: 目前仅支持读取默认的rlimit值,尚不支持设置rlimit值.
|
2023-11-12 18:44:15 +08:00 |
|
|
be8cdf4b8e
|
增加getrusage,并把apic timer的频率调整为系统HZ (#435)
|
2023-11-12 16:36:17 +08:00 |
|
|
393f691574
|
增加gettid以及线程组group leader相关的逻辑 (#430)
* 增加gettid以及线程组group leader相关的逻辑
|
2023-11-09 16:48:45 +08:00 |
|
|
7b32f5080f
|
增加内存分配日志监视器 (#424)
* 完成内存日志监视,并输出日志到文件
* 修复进程退出后,procfs查看进程status文件会崩溃的问题
* 修复signal唤醒进程的判断条件问题
|
2023-11-07 21:39:27 +08:00 |
|
|
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 |
|
|
1603395155
|
支持syscall快速系统调用指令 (#417)
* 支持syscall快速系统调用指令
---------
Co-authored-by: LoGin <longjin@DragonOS.org>
|
2023-11-04 21:39:44 +08:00 |
|
|
8b3d1688da
|
把pci驱动的读取acpi mcfg的代码,调整为从新的acpi驱动来读取 (#413)
* 把pci驱动的读取acpi mcfg的代码,调整为从新的acpi驱动来读取
|
2023-11-01 21:11:55 +08:00 |
|
|
971462be94
|
添加thread和futex机制 (#411)
* 初步实现clone系统调用
* 实现了线程,初步实现futex机制,添加了几个小的系统调用
* 更改pcb引用计数问题
* 解决死锁bug
---------
Co-authored-by: LoGin <longjin@DragonOS.org>
|
2023-11-01 20:55:57 +08:00 |
|
|
fbe6becd6d
|
添加rust重构版本的HPET驱动和tsc驱动,并使用HPET校准tsc频率和cpu总线频率 (#412)
* 添加rust重构版本的HPET驱动和tsc驱动,并使用HPET校准tsc频率和cpu总线频率
* 把hpet.c移动到arch文件夹下
|
2023-10-26 23:08:39 +08:00 |
|
|
f4082b86b1
|
更改系统调用的寄存器传参顺序 (#409)
|
2023-10-24 16:40:49 +08:00 |
|