背景 由于RiscV和Rust都是比较新的两个东西,因此两个新的东西结合在一起就会发生很逆天的事情:Rust在 …
为riscv64编译uboot和grub
安装工具链 首先需要安装交叉编译工具链,可以用apt安装riscv64的gcc编译工具链。我是自己编译了一个m …
为DragonOS编译GNU tar程序
前置条件 首先我们需要安装静态链接版本的musl-gcc: 下载地址:https://github.com/D …
混合背包问题解法&示例(洛谷p1833)
混合背包问题是把01背包、完全背包、多重背包混在一起的问题,看着比较复杂,其实就是分而治之,转换为前面这三种背 …
使用Rust构建一个kvm用户空间实例
最近在学习虚拟化相关的内容,想着使用Rust构建一个最小的kvm用户空间实例。也就是直接调用kvm的api,然 …
【故障分析+解决】解决链接程序时,由于链接crt*.o的顺序问题导致的bug
现象 今天在为DragonOS编译http服务器程序时,遇到了一个神奇的bug: 程序在一台机器A上能够正常编 …
DragonOS网络子系统介绍
本文将对DragonOS网络子系统进行简要介绍。出于“快速实现功能”的考虑,DragonOS目前网络子系统基于 …
Rust Arc指针类型转换:dyn转换为具体类型
前言 在写代码的时候,经常通过dyn关键字+Arc指针来实现多态。但是,有时候会遇到这样一个需求:我们想获取具 …
DragonOS新版地址映射管理及VMA机制设计
DragonOS官网:https://dragonos.org 1. 地址映射管理 1.1. 映射机制设计 对 …
Fork进程后,是否与父进程共享stdio?
今天想到一个问题:如果我在代码里面,fork当前进程,然后两个进程都执行scanf(),那会发生什么?键盘输入 …