由于开发的需要,要调试DragonOS的网卡驱动,在此写个博客记录一下。 qemu参数设置 设置qemu的启动 …
教程:为Linux系统导出内核头文件
最近由于项目需要,要编译mlibc,其中需要linux kernel headers,而使用apt安装的头文件 …
Rust数组默认初始化:初始化未实现Copy trait的类型
在安全的Rust中,编译器要求数组一旦被声明,它所占用的内存应当被完全初始化。但是,在一些情况下,这样会导致没 …
编译原理:DFA的最小化
书本上关于DFA最小化的方法的文字说明比较晦涩,因此在这里举个实例来说明. 题目:最小化下图所示的DFA 1. …
Ubuntu22 Server: 配置网桥,让虚拟机从路由器获取IP
最近在实验室新配置了一台用于开发的服务器,一台服务器上建立出多个虚拟机,然后多人连接到这台服务器上的虚拟机来进 …
编译原理:文法的分类
在编译原理课程中,我们知道有4种文法:0型、1型、2型、3型。本文将对他们的区别进行描述。 0型文法 0型文法 …
RAII技术:在Rust中实现带有守卫的自旋锁,支持一定程度上的编译期并发安全检查
本文介绍了一种使用了RAII技术的自旋锁,配合Rust的生命周期及所有权机制,能够在减少代码量的同时,很好的解决自旋锁的“忘记放锁”、“双重释放”、“未加锁就访问”的并发安全问题。并且这种自旋锁能够支持编译期的检查,任何不符合以上安全要求的代码,将无法通过编译。
在Rust中优雅地向上级传递Result<>中的错误信息
在Rust中,我们会经常使用Result<xxxx,xxxx>来返回正确结果和错误信息。但是,在这样的需 …
Rust Trait的dyn关键字
本文转自: dyn关键字是Rust的Trait(特征)的一个前缀。Rust 编译器需要知道每个函数的返回类型需 …
一个在关键路径上面隐藏了11个月的BUG:DragonOS进程切换查错
前言的前面 DragonOS是一个从0开始研发内核及用户态环境的,独立自主的,面向服务器领域的开源操作系统,提 …