kernel_debug linux内核调试方法我的机器配置如下:所以就是在linux环境下用vscode + gdb + qemu (+busybox) 来调一下内核。 1.下载软件哪里缺了下哪里,需要安装的有各种依赖,gdb,qemu,vscode等等。 2.下载内核源码并编译在github上拉取linux内核源代码,然后对内核编译选项进行一些配置,至少要开启的有: 123456CONFIG_DEBUG_KERNEL= 2026-09-06 linux #kernel debug
xv6 xv6(6.828 2021)lab1:util1.sleep在user目录下新创建一个sleep.c文件。 12345678910111213141516#include "kernel/types.h"#include "user/user.h"int main(int argc, char *argv[]){ if (argc < 2026-06-11 linux
内核启动流程 内核启动流程点一下开机键,为什么电脑就开机了?本篇文章的目标是从开机键开始,分析整个内核启动的过程。 UEFIUEFI全名为Unified Extensible Firmware Interface,即统一可扩展固件接口,UEFI是现代的BIOS的替代品。现代计算机中,UEFI大体有如下几个作用。 1.硬件初始化。UEFI会初始化CPU、内存、设备等硬件使其进入可用状态。 2.上电自检。 3.提供 2026-06-10 linux
ELF ELF文件全名为Executable and Linking Format files,即可执行与可链接格式文件,用于可执行文件、目标代码、共享库、可重定位文件、核心转储等类型的文件。 下面以64位ELF文件为例。 ELF文件结构ELF文件由ELF头部、程序头部表或节头部表(或两者)组成。ELF 头部位于文件的零偏移处,程序头部表和节头部表在文件中的偏移量在 ELF 头部中定义。这两个表格描述了文 2026-05-20 linux #elf
linux module Linux内核模块内核模块的一些基本概念内核模块是实现某一个功能的一段内核代码,这段代码可以在内核的运行过程中动态加载到内核,从而增加内核功能。这段代码可以单独编译,不用对整个内核重新进行编译。内核模块不能独立运行, 在运行时它被链接到内核作为内核的一部分在内核空间运行。编译好的模块在本质上是一个elf可重定位文件,后缀名为.ko。 12345678910111213141516171819202 2026-05-13 linux #linux module
lfs 0x01: Linux From Scratch本篇blog是基于Linux From Scratch - Version 13.0-systemd的学习过程。 每次重新启动后要检查的事情: disk是否挂载到/mnt/lfs(LFS)运行 1findmnt $LFS 要有相应的输出。 每次关机前要做的事情: 1234567exitmountpoint -q $LFS/dev/ 2026-05-01 linux #lfs