曾俊
2eab6dd743
feat(log): 将内核日志统一为新的logger ( #814 )
2024-05-16 17:25:23 +08:00
LoGin
471d65cf15
feat(riscv): riscv下能够运行hello world用户程序 ( #770 )
...
* feat(riscv): riscv下能够运行hello world用户程序
2024-04-26 11:59:47 +08:00
曾俊
2755467c79
支持绘制24位深和16位深显示缓冲区 ( #640 )
...
* 修复了初始化时显示,边界条件的一个bug
* 解决了内存未初始前字体显示的兼容性问题
* 支持绘制24位深和16位深显示缓冲区
2024-03-25 16:39:36 +08:00
LoGin
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
LoGin
840045af94
引入clippy,并根据clippy的提示,修改部分代码 ( #575 )
2024-03-10 21:45:34 +08:00
LoGin
5c4224e5a8
在riscv上实现异常处理,能够进入异常处理程序 ( #564 )
2024-03-08 23:23:06 +08:00
LoGin
196b75dc17
把irqdesc添加到sysfs ( #525 )
...
* 把irqdesc添加到sysfs
2024-02-19 00:56:58 +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
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
c566df451c
添加帧缓冲区抽象并实现vesafb的驱动 ( #483 )
...
- 添加bootparams对象
- 修正由于bus的driver、device强弱引用关系 不正确从而导致对象被释放的bug
- 添加vesafb的驱动
- 实现framebuffer抽象层
- 为通用帧缓冲区抽象实现sysfs的属性
- 修改设备号DeviceNumber的定义
- 仿照linux,添加initcall,并在第一个内核线程中,调用他们。
2024-01-01 11:46:51 +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
4fda81ce81
使得DragonOS kernel 能为riscv64编译通过(尚未能启动) ( #457 )
...
* 使得DragonOS kernel 能为riscv64编译通过(尚未能启动)
* 修正了系统调用号声明不正确的问题,同时添加了编译配置文档
2023-11-25 12:07:39 +08:00
LoGin
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
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
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
LoGin
d470019b1e
patch add mini backtrace ( #416 )
...
* support rust panic backtrace
mini-backtrace has llvm's unwind cpp source to support backtrace/unwind.
as unwind/backtrace needs dynamically allocates memory, mini-backtrace
uses stack memory to capture fixed number of backtrace to avoid heap
allocation.
as unwind library needed, it needs to turn on eh_frame_hdr
* 修改忘了生成kernel.elf的问题
* 设置backtrace是默认的feature
---------
Co-authored-by: Yao Zhao <dragonlinux@gmail.com>
2023-11-01 22:12:19 +08:00
GnoCiYeH
971462be94
添加thread和futex机制 ( #411 )
...
* 初步实现clone系统调用
* 实现了线程,初步实现futex机制,添加了几个小的系统调用
* 更改pcb引用计数问题
* 解决死锁bug
---------
Co-authored-by: LoGin <longjin@DragonOS.org>
2023-11-01 20:55:57 +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
LoGin
a03c4f9dee
设备驱动模型:完善platform bus相关内容。并注册串口到sysfs ( #403 )
...
* 完成初始化platform bus
* 删除旧的sysfs
* 把uart驱动移动到tty/serial文件夹下
* 完成将串口挂载到sysfs
* 修复vfs系统调用未能follow symlink的问题
* 修复shell未能正确获取pwd的问题
2023-10-20 22:11:33 +08:00
LoGin
06d5e24726
完善设备驱动模型,基于kset、kobj来维护对象之间的关系 ( #401 )
...
* 使用kobj和kset管理/sys文件夹下的对象
* 修改notifier,把action从u64换为泛型。
* 完善设备驱动模型,基于kset、kobj来维护对象之间的关系
2023-10-11 00:53:15 +08:00
LoGin
fba5623183
引入intertrait库,支持trait之间的互相转换 ( #395 )
...
* 能过编译(test还没法跑)
* 初始化intertrait转换库
* update license of intertrait
2023-10-02 20:46:19 +08:00
LoGin
1496ba7b24
进程管理模块重构完成 ( #380 )
...
* 添加新版pcb的数据结构 (#273 )
* 将pcb中的内容分类,分别加锁 (#305 )
* 进程管理重构:完成fork的主体逻辑 (#309 )
1.完成fork的主体逻辑
2.将文件系统接到新的pcb上
3.经过思考,暂时弃用signal机制,待进程管理重构完成后,重写signal机制.原因是原本的signal机制太烂了
* chdir getcwd pid pgid ppid (#310 )
---------
Co-authored-by: longjin <longjin@RinGoTek.cn>
* 删除旧的fork以及signal的代码,并调整fork/vfork/execve系统调用 (#325 )
1.删除旧的fork
2.删除signal相关代码,等进程管理重构结束之后,再重新写.
3.调整了fork/vfork/execve系统调用
* 实现切换进程的代码 (#331 )
* 实现切换进程的代码
* Patch modify preempt (#332 )
* 修改设置preempt的代码
* 删除rust的list和refcount
* 为每个核心初始化idle进程 (#333 )
* 为每个核心初始化idle进程
* 完成了新的内核线程机制 (#335 )
* 调度器的pcb替换为新的Arc<ProcessControlBlock>,把调度器队列锁从 RwSpinLock 替换为了 SpinLock (#336 )
* 把调度器的pcb替换为新的Arc<ProcessControlBlock>
* 把调度器队列锁从 RwSpinLock 替换为了 SpinLock ,修改了签名以通过编译
* 修正一些双重加锁、细节问题
---------
Co-authored-by: longjin <longjin@RinGoTek.cn>
* github workflow自动检查代码是否格式化
* cache toolchain yml
* 调整rust版本的waitqueue中的pcb为新版的pcb (#343 )
* 解决设置rust workspace带来的“工具链不一致”的问题 (#344 )
* 解决设置rust workspace带来的“工具链不一致”的问题
更改workflow
* 调整pcb的sched_info和rwlock,以避免调度器死锁问题 (#341 )
* 调整pcb的sched_info和rwlock,以避免调度器死锁问题
* 修改为在 WriterGuard 中维护 Irq_guard
* 修正了 write_irqsave方法
* 优化了代码
* 把 set state 操作从 wakup 移动到 sched_enqueue 中
* 修正为在 wakeup 中设置 running ,以保留 set_state 的私有性
* 移除了 process_wakeup
* 实现进程退出的逻辑 (#340 )
实现进程退出的逻辑
* 标志进程sleep
* 修复wakeup的问题
---------
Co-authored-by: longjin <longjin@RinGoTek.cn>
* rust 重构 completion (#350 )
* 完成了completion的基本结构,待完善上级调用
* 用SpinLock保护结构体并发安全
* 修改原子变量为u32,修复符号错误
* irq guard
* 修改为具有内部可变性的结构体
* temp fix
* 修复了由于进程持有自旋锁导致的不被调度的问题
* 对 complete 系列方法上锁,保护 done 数据并发安全
* 移除了未使用的依赖
* 重写显示刷新驱动 (#363 )
* 重构显示刷新驱动
* Patch refactor process management (#366 )
* 维护进程树
* 维护进程树
* 更改代码结构
* 新建进程时,设置cwd
* 调整adopt childern函数,降低开销
---------
Co-authored-by: longjin <longjin@RinGoTek.cn>
* waitqueue兼容C部分 (#351 )
* PATH
* safe init
* waitqueue兼容C部分
* waitqueue兼容C部分
* 删除semaphore.c,在ps2_keyboard中使用waitqueue
* 删除semaphore.c,在ps2_keyboard中使用waitqueue
* current_pcb的C兼容
* current_pcb的C兼容
* current_pcb的C兼容
* fmt
* current_pcb的兼容
* 针对修改
* 调整代码
* fmt
* 删除pcb的set flags
* 更改函数名
---------
Co-authored-by: longjin <longjin@RinGoTek.cn>
* merge master
* Patch debug process management refactor (#372 )
* 能够调通,执行完textui_init
* 能跑到initial kernel thread
* fmt
* 能够正常初始化所有服务(尚未能切换到用户程序)
* 删除部分无用的extern
* 存在问题:ap处理器启动后,bsp的smp_init函数return之后就出错了,怀疑是栈损坏
* 解决smp启动由于未换栈导致的内存访问错误
* debug
* 1
* 1
* lock no preempt
* 调通
* 优化代码,删除一些调试日志
* fix
* 使用rust重写wait4 (#377 )
* 维护进程树
* 维护进程树
* 更改代码结构
* 新建进程时,设置cwd
* 调整adopt childern函数,降低开销
* wait4
* 删除c_sys_wait4
* 使用userbuffer保护裸指针
---------
Co-authored-by: longjin <longjin@RinGoTek.cn>
* 消除warning
* 1. 修正未设置cpu executing的问题
* 修正kthread机制可能存在的内存泄露问题
* 删除pcb文档
* 删除C的tss struct
---------
Co-authored-by: Bullet <93781792+GP-Bullet@users.noreply.github.com>
Co-authored-by: Chiichen <39649411+Chiichen@users.noreply.github.com>
Co-authored-by: hanjiezhou <zhouhanjie@dragonos.org>
Co-authored-by: GnoCiYeH <118462160+GnoCiYeH@users.noreply.github.com>
Co-authored-by: houmkh <1119644616@qq.com>
2023-09-15 14:58:19 +08:00
Xshine
ddb9d91712
将 io 移动至 vfs 目录,并修正引用路径 ( #339 )
...
* 将 io 移动至 vfs 目录,并修正引用路径
* fix bug in makefile
2023-08-27 15:54:19 +08:00
hanjiezhou
abe3a6ea3c
Patch refactor scm and textui ( #289 )
...
* 重构屏幕管理器和textui框架
* 切换字体为spleen,并增加对字体的抽象
* 修正文档
---------
Co-authored-by: longjin <longjin@RinGoTek.cn>
2023-08-20 00:19:36 +08:00
Xshine
729a96ef47
实现内核通知链 notifier chain ( #316 )
...
* 实现通知链块结构
* 实现通知链的基本功能
* 实现 atomic notifier chain
* 实现 blocking notifier chain
* 使用 rust 范式完成功能
* 支持回调次数 nr_to_call
* 移动至 libs 目录
* 完善通知链相关方法
* 修正相关格式
* 文档编写
* 更改文档路径
2023-08-06 12:53:47 +08:00
LoGin
40fe15e095
新的内存管理模块 ( #303 )
...
  实现了具有优秀架构设计的新的内存管理模块,对内核空间和用户空间的内存映射、分配、释放、管理等操作进行了封装,使得内核开发者可以更加方便地进行内存管理。
  内存管理模块主要由以下类型的组件组成:
- **硬件抽象层(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>
2023-07-22 16:27:02 +08:00
LoGin
bb5f098a86
Revert "新的内存管理模块 ( #301 )" ( #302 )
...
This reverts commit d8ad0a5e7724469abd5cc3cf271993538878033e.
2023-07-22 16:24:55 +08:00
LoGin
d8ad0a5e77
新的内存管理模块 ( #301 )
...
  实现了具有优秀架构设计的新的内存管理模块,对内核空间和用户空间的内存映射、分配、释放、管理等操作进行了封装,使得内核开发者可以更加方便地进行内存管理。
  内存管理模块主要由以下类型的组件组成:
- **硬件抽象层(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
2023-07-22 16:22:17 +08:00
LoGin
bb24249faa
添加AlignBox和int_like宏 ( #272 )
2023-05-28 23:00:37 +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
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
YJwu2023
78bf93f02f
pci重构+pcie支持 ( #235 )
...
* pci重构+pcie支持
* pci重构测试完成
* 修正makefile的问题
* 小修改
* 修改函数名字
2023-04-09 12:30:02 +08:00
login
bacd691c9e
软中断&定时器重构 ( #223 )
...
* 软中断&定时器重构
Co-authored-by: houmkh<houjiaying@DragonOS.org>
* 修改timer的clock()
* 删除debug信息
---------
Co-authored-by: houmkh <1119644616@qq.com>
2023-04-02 17:09:33 +08:00
Gou Ngai
2b771e32f5
Add dup,dup2 ( #224 )
...
* dup,dup2
* fix: sys_dup2语义与posix不一致的问题
---------
Co-authored-by: longjin <longjin@RinGoTek.cn>
2023-04-02 15:43:53 +08:00
login
20e3152e1e
将TTY与stdio进行连接,实现基本的stdio功能 ( #217 )
...
* 将stdio与tty接上
2023-03-31 12:54:37 +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
login
4454d1a2dd
新增SystemError枚举类型,使得错误处理更清晰 ( #205 )
2023-03-18 20:26:05 +08:00
login
0d48c3c9c2
new: tty设备(尚未与stdio接上) ( #202 )
2023-03-16 19:48:59 +08:00
login
84407d3605
bugfix:解决touch命令失败的问题 ( #199 )
...
* bug fix : 解决touch命令失败的问题
2023-03-13 00:26:04 +08:00
login
004e86ff19
新版文件系统重构完成 ( #198 )
...
1.重构:VFS
2. 重构:ProcFS
3. 重构:DevFS
4. 重构:FAT32
5. 重构:AHCI驱动
6. 新增:RamFS
7. 新增:MountFS
8. 新增:FAT12
9. 新增:FAT16
10. 重构:设备抽象
Co-authored-by: guanjinquan <1666320330@qq.com>
Co-authored-by: DaJiYuQia <88259094+DaJiYuQia@users.noreply.github.com>
2023-03-12 22:36:11 +08:00
houmkh
c2481452f8
rust重构mmio_buddy和mmio ( #178 )
...
* rust重构mmio_buddy和mmio
* mmio-buddy文档
---------
Co-authored-by: longjin <longjin@RinGoTek.cn>
2023-03-04 18:36:55 +08:00
houmkh
f6ba114bb0
Block IO Scheduler ( #158 )
...
* Block io调度器
* process_wakeup时,对cfs的进程,重设虚拟运行时间。解决由于休眠的进程,其虚拟运行时间过小,导致其他进程饥饿的问题
* 1、为AP核启动apic_timer,使其能够运行调度
2、增加kick_cpu功能,支持让某个特定核心立即运行调度器
3、wait_queue的唤醒,改为立即唤醒。
4、增加进程在核心间迁移的功能
5、CFS调度器为每个核心设置单独的IDLE进程pcb(pid均为0)
6、pcb中增加migrate_to字段
7、当具有多核时,io调度器在核心1上运行。
* io调度器文件位置修改
* 修改io的makefile
* 更新makefile中的变量名
* 修改io调度器函数名
---------
Co-authored-by: login <longjin@ringotek.cn>
2023-02-04 12:31:15 +08:00
login
151251b50b
Patch add rust waitqueue ( #162 )
...
* new: rust版本的waitqueue
* new:等待队列的文档
2023-01-31 19:27:02 +08:00
login
935f40ec17
new: Rust版本的Mutex ( #157 )
2023-01-17 21:30:16 +08:00
login
ec53d23ed0
new: 新增具有守卫的自旋锁SpinLock,支持编译期对锁的使用进行检查。 ( #148 )
2023-01-14 10:35:49 +08:00
login
fd91905f02
解决编译gcc、binutils的脚本中,变量名称错误的问题 ( #142 )
2023-01-08 11:38:59 +08:00
Gou Ngai
62e4613978
使用rust重构softirq机制;解决Rtc驱动的编译警告问题 ( #138 )
...
* 使用rust重构softirq机制
* 解决Rtc驱动的编译警告问题
Co-authored-by: longjin <longjin@RinGoTek.cn>
2023-01-07 23:15:37 +08:00
login
61de2cdc3f
新增rust版本的lockref ( #135 )
...
* new:Rust封装cpu_relax(),通过pause指令,让cpu休息一会儿。降低空转功耗
* new: Rust版本的lockref
* Rust的RawSpinlock新增is_locked()和set_value()方法。
* lockref文档
2023-01-03 23:09:25 +08:00