一种基于 riscv64 内核的 qemu-tcg 速度测试方法RISC-V64 指令权重微基准:方法、数据与结论论证 本报告记录 MyGO OS 在 QEMU TCG 环境下构建 RISC-V64 指令成本模型的完整实验方法、质量门禁、可视化数据和结论边界。报告中的“权重”表示固定宿主、固定 QEMU、固定执...2026-08-09
CPU From Scratch前言 在日常的软件开发中,我们很少需要真正关心计算机的底层是如何工作的。编译器、操作系统以及各种高级抽象层为我们开发者提供了一个相对稳定而统一的接口,使得人们能够专注于算法与应用逻辑。然而,在这些抽象层之下,计算机本质上只是由大量简单电子元件构成的系...2026-03-13
龙芯嵌入式:菜鸡大学生折腾Loongarch32嵌入式记龙芯嵌入式:菜鸡大学生折腾Loongarch32嵌入式记 工欲善其事,必先利其器。这篇Blog将着重介绍如何从零开始构建一个loongarch32-unknown-elfsf目标的工具链,并利用其构建一个龙芯1C102单片机的点灯程序。 💡 下文...2026-01-02
使用 Rust 语言编写基于 STM32 的智能车程序这篇 Blog 将着重介绍如何使用 Rust 语言工具链配置 STM32 嵌入式开发环境,并将指导您使用 Rust 编写一个简易的、基于电磁传感器循迹的智能车程序。 💡 这里所使用的单片机芯片为 STM32F103RCT6。不同的芯片可能产生细微...2025-11-16
sys_brksys_brk(即调用号为12的brk系统调用)是Linux中一个用于动态内存管理的核心系统调用。它直接操作进程的程序中断点(program break),即堆(heap)的结束地址。通过改变这个中断点的位置,程序可以动态地增加或减少其数据段的大小。...2025-11-12
sys_mprotectsys_mprotect(即调用号为10的mprotect系统调用)是Linux内核提供的一个核心功能,它允许程序动态地修改其虚拟地址空间中某个内存区域的访问权限。这在很多场景中都至关重要,如实现JIT编译器、沙箱机制,或者防止某些类型的缓冲区溢出攻...2025-11-12
sys_mmap 与 sys_munmapsys_mmap(调用号为9)和sys_munmap (调用号为11)是 Linux 中功能最强大的内存管理接口之一。二者分别可用于将文件或匿名内存映射到进程的虚拟地址空间以及取消前者所建立的映射,从而实现文件 I/O 的内存语义、堆外大块内存分配、...2025-11-12
sys_lseeksys_lseek (调用号为8)是 Linux 中一个用于操作文件描述符读写位置的系统调用。它的核心功能是重新定位(移动)一个已打开文件的读写偏移量(offset)。这个偏移量决定了下一次读或写操作将从文件的什么位置开始。通过它,我们可以实现文件的...2025-11-12