git仓库:https://github.com/NJU-ProjectN/nvboard
DragonStub是依托于uboot提供的efi环境来运行的,它基于linux efi stub,负责把dragonos内核加载到对应的位置。并把FDT传递给...
今天在写DragonOS的进程切换代码的时候,对于ra寄存器的设置与保存有点疑惑,于是写这篇文章来分析一下。
在未进行任何优化的情况下,Baby LLaMA 2 在运行15M参数的模型时,仅占用了部分CPU和内存资源(资源占用率均低于30%),但生成 token 的速度...
运行打包命令,找到打包使用发分区表。例如这里使用的是 sys_partition_xip.fex
近日,联邦众议院两名共和党籍委员会主席盖拉格(Mike Gallagher)和 麦考尔(Michael McCaul)、共和党联邦参议员卢比欧(Marco Ru...
xv6根据执行的是用户代码还是内核代码,对CPU陷阱寄存器的配置有所不同。当在CPU上执行内核时,内核将stvec指向kernelvec(kernel/kern...
上一篇文章中,我们通过源码跟踪了整个Trap的执行流程,本文追踪我们通过Debug的方式,来验证上一篇文章的说法。
有三种事件会导致CPU搁置普通指令的执行,并强制将控制权转移到处理该事件的特殊代码上:
每个进程都有一个单独的页表,当xv6在进程之间切换时,也会更改页表。如图2.3所示,一个进程的用户内存从虚拟地址零开始,可以增长到MAXVA (kernel/r...
本章概述了如何组织操作系统来实现这三个要求。事实证明,有很多方法可以做到这一点,但是本文侧重于以宏内核为中心的主流设计,许多Unix操作系统都使用这种内核。本章...
操作系统的任务是在多个程序之间共享一台计算机,并提供比硬件本身支持的更有用的服务。操作系统管理和抽象底层硬件,例如:
运气不错,前几天在电子发烧友社区参加每日打卡活动搞到了第一块 RISC-V 的板子。虽然我不是特别熟悉 RISC-V 的相关知识,但既然板子到手了,总不能放着吃...
这个系列的目的还是以讲解xv6-riscv的代码以及记录我在做的事情为主,也会掺杂许多mini-riscv-os的代码介绍(关于xv6-riscv和mini-r...
在《把riscv core代码变成网表最少需要几步》里,写过synopsys dc版本的脚本例子。今天我们再来写个cadence genus版本的综合脚本。为了...