主要内容主要用来记载Pwn、IoT、Car和Linux&&Win内核等相关内容。
说明1. 侧边栏没有超链接的直接在博客搜名字即可。
2. 侧边栏我添加的内容并不及时。
其他的记录一些琐碎。
不要急功近利,心急浮躁,潜下心来默默钻研,学习,记录,每天进步一点。
看懂了,不等于你会了。
Linux 7.0 内核详解目录第一部分:基础知识
第1章:x86_64 体系结构概览
1.1 寄存器与数据类型
1.2 实模式、保护模式与长模式
1.3 分段与分页机制
1.4 中断与异常
1.5 特权级与保护机制
1.6 Linux 内核安全加固机制全景
第2章:从加电到内核启动 —— 完整引导流程
2.1 引导流程总览
2.2 BIOS/UEFI 固件阶段
2.3 B...
8.1 task_struct 核心字段详解task_struct 是 Linux 内核中最核心的数据结构,定义在 include/linux/sched.h 的第 820 至 1654 行。本节将逐组深入分析其全部关键字段,涵盖从线程信息到架构相关状态的全部内容。理解 task_struct 是阅读 Linux 内核源码的基石——几乎所有内核子系统都通过 current 宏获取当前 tas...
7.1 系统调用原理与分类7.1.1 什么是系统调用系统调用是操作系统内核向用户态程序暴露的一组受控入口点(controlled entry points),是用户程序请求内核服务的标准接口。每一个系统调用都对应着内核中一个明确的功能函数,用户程序通过预定的调用约定触发这些函数,从而在内核特权级别下执行那些需要更高权限的操作。
从应用程序的视角来看,系统调用就像是一组特殊的”函数调用”——只...
6.1 RISC-V 架构概述:寄存器、特权级与 CSR本节全面介绍 RISC-V 64 位架构的编程模型,包括寄存器组织、特权级别、控制状态寄存器、调用约定以及关键 ISA 扩展。这些知识是理解后续内核启动和运行机制的基石。
6.1.1 寄存器组织通用寄存器(GPR)RISC-V 定义了 32 个 64 位通用寄存器 x0-x31,其中 x0 始终为零:
寄存器
ABI 名称
用途
...
5.1 ARM64 架构概述 —— 寄存器、异常级别与系统寄存器本节全面介绍 ARM64(AArch64)执行状态的核心编程模型,这是理解 Linux ARM64 内核代码的基础。我们将依次讨论寄存器文件、异常级别模型、关键系统寄存器、过程调用约定,以及与 x86_64 的本质差异。
1. ARM64 寄存器文件ARM64 的寄存器文件设计体现了”简洁即力量”的哲学。与 x86_64 继承自...
4.1 Kbuild 系统概述什么是 KbuildKbuild 是 Linux 内核专用的构建系统,它构建在 GNU Make 之上,但绝非简单的 Makefile 集合。面对数万个源文件、数百个目录、数千个配置选项的复杂性,Kbuild 通过一套精心设计的递归构建机制,实现了高效、灵活、可扩展的编译流程。
Kbuild 的核心设计理念是:每个目录自治管理自己的编译规则,顶层 Makefil...
3.1 start_kernel() 总览函数定位start_kernel() 定义在 init/main.c 的第 1006 行至第 1218 行,是内核通用初始化的总入口。当 x86_64 的体系结构引导代码在 head64.c 中完成长模式切换、早期页表建立、内核解压等工作后,x86_64_start_reservations() 将控制权转交给 start_kernel()。从此刻起...
2.1 启动流程概览当用户按下计算机电源键的那一刻,一场从硬件固件到操作系统内核的接力赛便悄然拉开序幕。在 x86_64 平台上,Linux 7.0 内核的启动过程涉及多个执行阶段,跨越 16 位实模式、32 位保护模式与 64 位长模式,最终将控制权交由架构无关的通用初始化代码。本节将对这一完整链路进行全景式梳理。
2.1.1 完整启动序列以下是 x86_64 平台从加电到内核运行的完整流...
1.1 寄存器与数据类型x86_64 架构在传统 x86 的基础上将通用寄存器从 32 位扩展到 64 位,并新增了八个通用寄存器(R8–R15)。本节系统性地介绍 Linux 7.0 内核在 x86_64 模式下所使用的各类寄存器,包括通用寄存器、指令指针、标志寄存器、段寄存器、控制寄存器、模型专用寄存器(MSR)、调试寄存器以及 SIMD 扩展寄存器,最后给出内核中常用的数据类型定义。
...