2024 年总结:星光不负赶路人

今年我与开源世界的联系更多了,重新拾起 B 站 up 主的身份( 绝对是泽文啦,即将 4000 粉丝),格维开源社区的活跃度再创新高,继续在基础软件领域深耕。 QEMU PATCH v2 0/2 riscv: Enhanced VSTART and VL checks for vector instructions (https://lore.kernel.

2024-12-30 · 2 min · zevorn

Rust In Qemu 的发展与现状

发展背景 在 2021 年 KVM 的论坛会议,进行了一场以 “QEMU+Rust BoF” 为主题的讨论,会议摘要可以通过 QEMU blog 2022 Rust 板块找到: QEMU+Rust BoF, KVM Forum 2021 1 。 在这个会议上,对 QEMU 引入 Rust 的相关话题,进行了充分讨论,可以总结为以下几个方面: 1. 混合使用

2024-11-28 · 4 min · zevorn

GDB 调试进程手动加载动态库的方法

如果进程通过 dlopen() 手动加载动态库,某些情况下不能被 GDB 识别调试符号,这个时候可以通过 GDB 的 add symbol file file address 命令来手动添加调试符号,address 是动态库在进程中的 text 段 entry 地址,考虑动态库只有加载到进程中,才能得知真正的内存地址,因此我们可以通过 GDB 的 info

2024-11-28 · 1 min · zevorn

使用 tmux 进行远程开发

简单教程 本文记录一个极简的 tmux 配置教程,来满足基本的开发需求。 首先打开 tmux 配置文件: 然后键入一下内容: 成品 tmux 配置 这里使用 https://github.com/gpakosz/.tmux 的配置,命令如下: 编辑 /.tmux.conf.local ,将 tmux conf copy to os clipboard 的值改

2024-11-27 · 2 min · zevorn

如何使用 git send-email 参与开源社区

本篇文章首发于 Nano Code 维基百科 1 可以选择使用 git send email 发送邮件补丁到社区,下面给出具体步骤。 安装 Git Email 1. ubuntu 默认不会安装完全版的 git ,因此需要我们在安装 git 以后( ulan 默认安装了 git ),再安装 git email : 如果安装失败,比如遇到下面的问题: 可以手动添

2024-11-25 · 2 min · zevorn

基于 Rust 编写最小 JIT

即时编译(Just In Time Compilation,简称 JIT 编译)是一种动态编译技术,在程序运行期间将高级语言的源代码或者中间表示形式(如字节码)转换为机器代码。与传统的静态编译不同,JIT 编译器在程序运行时选择性地编译代码片段,并且可以根据运行时的具体情况优化这些代码。 下面使用 Rust 构建一个最小 JIT 案例,参考 rustyjit

2024-10-08 · 3 min · zevorn

在幽兰本上构建最小 KVM 虚拟机

构建最小虚拟机 前言 ARM 架构上的 KVM(Kernel based Virtual Machine)是一种基于 Linux 内核的虚拟化技术,它允许用户空间程序通过系统调用来直接控制硬件,从而实现对虚拟机的管理。KVM 在 x86 平台上已经非常成熟,而在 ARM 架构上,KVM 也得到了广泛的支持和发展。 PS: 本文首发在幽兰 Wiki 构建最小虚

2024-10-06 · 6 min · zevorn

Rust 基本知识

什么是所有权 所有权(ownership)是 Rust 用于管理内存的一组规则,通过在编译阶段检查程序内存使用的合法性,来避免运行时的内存安全问题。 所有权的优势: 1. 运行时零开销,不会影响性能; 个人认为的缺点: 1. 开发者的学习成本稍高,并随着程序的复杂度上升,需要付出更多的心智成本。 所有权原则 所有权的基本规则: 1. Rust 中每一个值都被

2024-09-30 · 4 min · zevorn

QEMU 开源社区贡献记录

前言 这篇 blog 记录我的 QEMU 贡献情况,你可以通过这里 查询所有邮件 10 。 下面按照日期倒序排版。 讨论如何更方便的打印调试 IR 变量 RFC PATCH v1 0/1 Add helper print functions for printing intermediate results of complex instructions i

2024-09-29 · 4 min · zevorn

记录参加清华大学开源操作系统训练营的体验

前言 从 2021 年开始,我一直从事体系架构模拟和动态二进制翻译工作,由于工作需要,我经常要调试各种操作系统,比如 Linux、VxWork、FreeRTOS 、RT Thread、SylixOS、AcoreOS、ReWorks 等等,这让我对操作系统的原理和业务应用场景有了一个宏观的认识。随着嵌入式系统的复杂化和规模化(多系统的同步与交互),对于数字嵌入

2024-09-29 · 7 min · zevorn

Intel VMX 硬件虚拟化研究实录

前言 本篇文章,主要记录对 Intel x86 架构 CPU 的 VMX 硬件虚拟化技术的学习和研究情况。 参考资料清单如下: 深度探索 Linux 系统虚拟化 1 QEMU/KVM源码解析与应用 2 1 : https://read.douban.com/ebook/162815582/ 2 : https://book.douban.com/subjec

2024-09-28 · 3 min · zevorn

LLVM后端优化Pass:别名分析

AliasAnalysis.html 中对别名分析进行了基本的介绍: Alias Analysis (又名 Pointer Analysis),用于确定两个指针是否指向内存中的同一对象,这里有很多不同的别名分析算法,可分为:流敏感 vs 流非敏感、上下文敏感 vs 上下文非敏感、域敏感 vs 域非敏感、基于一致性的 vs 基于子集的。 传统的别名分析用于给出

2024-09-02 · 4 min · zevorn