OS

Rust

"Rust与操作系统"

Posted by HZY on March 10, 2026

操作系统一些知识

no_std开发

一个简单的hello程序,就有47个系统调用

1
2
strace ./main.exe

1
2
3
#![no_std]
#![no_main]

20260310-125323.png

pwndbg 调试器

syscall

迷你堆分配器


handler table

调试内核开发

为什么要调试内核
  • 内核bug = 整个系统崩溃 (Kernel Panic / Oops)
  • 没有printf 和 gdb
  • 驱动开发
  • 单步跟踪
内核调试方法
方法 优势 局限
printk 简单直接 需要重新编译,信息有限
ftrace 动态跟踪 学习曲线陡峭
GDB + QEMU 源码级调试,断点+单步 需要虚拟环境
crash / kdump 事后分析coredump 仅限崩溃场景
/proc /sys 运行时观察 只读,粒度粗
QEMU + GDB

20260322-105607.png

  • srcipt选项甚至可以让你执行gdb的py脚本

20260322-105944.png