
linux
文章平均质量分 78
CodeWithMe
拒绝低质量努力 //一直在学习的软件菜鸟~
Target: 栈溢出工程师
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【Linux】GDB/CGDB 调试器学习笔记
CGDB 是基于 curses 的终端调试界面,提供源代码与 GDB 窗口的分屏显示,键盘操作类似 vi ([cgdb.github.io][5])。使用 GDB Python API,编写自定义命令和输出美化功能 ([Reddit][12])。示例:定义函数自动打印$arg0,能在断点时执行一系列操作 ([Medium][13])。原创 2025-07-11 22:57:21 · 747 阅读 · 0 评论 -
【读书笔记】「等到 Linux 6.17 就分手」:Bcachefs 背后的技术与流程之争
Bcachefs 是 Kent Overstreet 一手打造的文件系统项目,目标是整合 Btrfs 的灵活性与 ext4 的稳定性。它支持现代文件系统的关键特性:写时复制(COW)、快照、压缩、校验等,并于 2024 年正式并入 Linux 6.7 主线内核。Linus 坚持流程有其合理性,在外界有些群体看来方式略显强硬;Kent 推送补丁的行为本意为善,但操作方式欠缺沟通与透明;Linux 内核开发机制或许需要引入“紧急改动审查流程”,作为常规机制之外的特例绿色通道。原创 2025-07-11 00:18:29 · 752 阅读 · 0 评论 -
【Note】Linux Kernel 实时技术深入:详解 PREEMPT_RT 与 Xenomai
特性内核结构单一内核、全路径可抢占双核模式,有专用实时内核中断处理IRQ 作为线程处理,延迟可控I‑pipe 由 Cobalt 直接接管中断,延迟极低API 支持POSIX / SCHED_* 实时接口支持 RTOS Skin(Alchemy、VxWorks 模拟)维护与稳定性已合入主线,自带长期支持需要特定打补丁,维护稍复杂适用场景低中实时延迟需求,如工业自动化、视频处理严格硬实时,如电机控制、精密系统实现PREEMPT_RT 和 Xenomai 是 Linux 实时扩展的两条成熟路径;原创 2025-07-10 23:30:13 · 1288 阅读 · 0 评论 -
【Note】Linux Kernel 之 内核架构、源码文件、API/ABI 、FHS
项目内容说明架构单体 + 模块化可抢占内核代码结构以子系统为单元目录组织API / ABI用户空间接口兼容,内核空间接口可变FHS按照标准结构挂载虚拟与持久文件系统。原创 2025-07-10 23:13:49 · 769 阅读 · 0 评论 -
【Note】Linux Kernel 主题学习之“完整的嵌入式 Linux 环境、构建工具、编译工具链、CPU 架构”
使用如Buildroot和的构建系统,可以自动管理工具链、依赖、生成镜像;交叉工具链包括编译器、链接器、C 库、调试器等,用于生成与 host 架构不同的目标二进制;常见架构如 ARM(AArch32/AArch64)、RISC-V 等,通过三元组配置匹配;构建流程标准化,可重复构建从工具链到根文件系统完整镜像。原创 2025-07-10 08:05:57 · 876 阅读 · 0 评论 -
【Note】《Linux 内核深度解析:基于 ARM64 架构的 Linux 4.x 内核》第六章:文件系统
Linux 的文件系统架构围绕 VFS 构建,实现了用户空间、内核空间和硬件之间的统一抽象接口,支持挂载、权限、缓存与 IO 等完整的文件语义。模块作用VFS虚拟接口层,屏蔽文件系统差异文件元数据及路径缓存page cache文件数据缓存,支持延迟写回文件系统类型ext4、xfs、procfs 等DAX面向持久内存的高性能路径。原创 2025-07-10 08:00:22 · 439 阅读 · 0 评论 -
【Note】《Linux 内核深度解析:基于 ARM64 架构的 Linux 4.x 内核》 第五章:内核互斥技术
Linux 内核互斥机制种类繁多,从基础的信号量、自旋锁,到复杂的 RCU、顺序锁,再到每处理器变量与内存屏障,构建起了内核安全运行的完整“并发保障体系”。分类示例机制特性说明可睡眠锁用于线程上下文,可阻塞忙等锁不可睡眠,适用于中断、原子操作无锁机制高性能,适用于简化数据共享高级同步读高并发、写复杂工具支持lockdep自动死锁检测。原创 2025-07-10 07:57:29 · 949 阅读 · 0 评论 -
【Note】《Linux 内核深度解析:基于 ARM64 架构的 Linux 4.x 内核》第四章:中断、异常与系统调用
模块关键点异常级别(EL)用户 EL0,内核 EL1,支持从 EL0 向上触发异常异常向量表VBAR_EL1 指向的向量,入口在entry.S中中断控制器GICv3 架构,支持 IRQ 分发,支持 CPU 热插拔中断处理流程汇编入口 → IRQ 分发器 → 驱动注册的回调系统调用路径EL0 发起SVC,EL1 解析 syscall number 调用 syscall 表pt_regs 上下文结构用于保存/恢复寄存器、状态寄存器、异常返回。原创 2025-07-10 00:37:58 · 911 阅读 · 0 评论 -
【Note】《Linux 内核深度解析:基于 ARM64 架构的 Linux 4.x 内核》 第三章:内存管理(Memory Management)
ARM64 使用64 位虚拟地址空间配置虚拟地址空间页表级别每页大小4KB 页48-bit VA4 级页表4KB16KB 页48-bit VA3 级页表16KB64KB 页42-bit VA2 级页表64KBLinux 采用基于页(Page)的虚拟内存管理方式,每个页的大小通常为 4KB,通过页表完成虚拟地址到物理地址的映射。页表结构,每一级页表映射更多地址。用户空间地址段内核空间地址段ARM64 的内核地址空间以开始,一般为。原创 2025-07-09 08:14:01 · 908 阅读 · 0 评论 -
【Note】《Linux 内核深度解析:基于 ARM64 架构的 Linux 4.x 内核》第二章:进程管理(Process Management)
本章深入 Linux 内核的进程管理子系统,涵盖进程(Task)数据结构、创建与销毁、调度机制、上下文切换,以及与进程管理密切相关的信号、倒计时器与 CPU 热插拔等内容。Linux 默认调度器为 CFS(Completely Fair Scheduler),其目标是在可运行进程间分配“公平”的 CPU 时间。在 Linux 内核中,每个执行单元(包括用户态进程与内核线程)都由一个。在调度与信号处理过程中,定时器触发会产生软中断(softirq),最终由。在上下文切换时,内核通过。描述,位于内核头文件。原创 2025-07-09 00:38:42 · 947 阅读 · 0 评论 -
【Note】《Linux 内核深度解析:基于 ARM64 架构的 Linux 4.x 内核》 第一章:内核引导与初始化
异常向量vectors.S定义了 EL1/EL2 下的同步、IRQ、FIQ、SError 等处理入口中断控制器:GICv3 驱动在 initcalls 中注册中断域,调用调度器:CFS(完全公平调度)在中注册时钟、调度钩子,完成基本就绪队列初始化。本章从硬件上电、BootROM、ATF、U‑Boot 一直到内核_start,全流程拆解 ARM64 Linux 4.x 内核的引导与初始化。下一章将深入探讨内存管理子系统。原创 2025-07-09 00:36:43 · 821 阅读 · 0 评论 -
【Note】《深入理解Linux内核》 第二十章:深入理解 Linux 程序执行机制
Linux 中,“程序执行”是指某个已存在的进程调用exec()系列系统调用后,由内核将该进程的上下文替换为另一个程序的上下文,从而在相同 PID 下运行新的程序。与fork()创建新进程不同,exec()并不创建新进程,而是替换现有进程的地址空间。在 execve 完成所有加载后,调用设置 PC/SP;切换到用户态入口点开始执行;若失败,则返回错误码。原创 2025-07-06 01:11:06 · 756 阅读 · 0 评论 -
【Note】《深入理解Linux内核》 第十九章:深入理解 Linux 进程通信机制
在 Linux 系统中,进程是资源隔离的基本单位,彼此间通常无法直接访问彼此的地址空间。交换数据;同步行为;发送通知;共享资源。这些功能由 Linux IPC(Inter-Process Communication)子系统实现。信号是进程间最早被引入的通信机制,本质上是一个异步事件通知。示例信号描述SIGINT中断(Ctrl+C)SIGTERM终止进程请求SIGKILL无条件终止进程(不可捕获)SIGCHLD子进程结束通知父进程。原创 2025-07-06 00:45:35 · 1091 阅读 · 0 评论 -
【Note】《深入理解Linux内核》 第十八章:深入理解 ext2 与 ext3 文件系统
简单高效的设计;灵活的元数据结构;良好的性能。ext2 由于不支持日志机制,在非正常断电情况下存在一致性问题。增加日志(journaling)功能;提高文件系统一致性;保持与 ext2 完全兼容(可以直接挂载为 ext2);三种日志模式:journal、ordered(默认)、writeback。原创 2025-07-05 23:48:44 · 913 阅读 · 0 评论 -
【Note】《深入理解Linux内核》第十七章:深入理解 Linux 页框回收机制
Linux 将物理内存划分为固定大小的页(通常为4KB),称为页框(page frame)。页框用于存储用户进程数据、页缓存、内核数据结构等。high:达到此值,系统认为内存充足;low:低于此值,触发 kswapd;min:极限警戒线,触发 direct reclaim。原创 2025-07-05 07:55:33 · 987 阅读 · 0 评论 -
【Note】《深入理解Linux内核》Chapter 16 :深入理解 Linux 文件访问机制
VFS、文件描述符、struct file、struct inode、open、read、write、close、dentry、权限校验、file_operations、O_NOATIME、权限继承。原创 2025-07-05 00:14:35 · 1112 阅读 · 0 评论 -
【Note】《深入理解Linux内核》 Chapter 15 :深入理解 Linux 页缓存
页缓存(page cache)是 Linux 内核用于缓存文件内容的内存区域,避免每次文件读写都访问磁盘。修改后的页被标记为 dirty(PG_dirty),需要回写到磁盘以保证数据一致性。某些场景(数据库、日志)不希望缓存数据,直接对磁盘读写,称为 Direct I/O。原创 2025-07-05 00:13:25 · 784 阅读 · 0 评论 -
【Note】《深入理解Linux内核》Chapter 14 :深入理解 Linux 块设备驱动程序
块设备是可以被分成固定大小块(通常为512字节或4KB)进行读写的设备。与字符设备不同,块设备支持随机访问和缓存,是构建文件系统的基础。原创 2025-07-04 07:52:05 · 1107 阅读 · 0 评论 -
【Note】《深入理解Linux内核》Chapter 13 :深入理解 Linux 内核中的 I/O 架构与设备驱动
I/O 子系统、字符设备、块设备、VFS、设备驱动、file_operations、设备号、cdev、gendisk、驱动模型、模块加载、udev。原创 2025-07-04 07:48:50 · 987 阅读 · 0 评论 -
【Linux】宏内核与微内核:操作系统内核设计的两大派系
简单来说,内核是操作系统中与硬件最直接交互的那部分软件。它像“中枢神经”,协调CPU、内存、存储设备、网络等硬件资源,为应用程序提供统一、抽象的接口。内核设计需要兼顾性能、安全、可维护性和灵活性,因此诞生了不同的设计思路。宏内核是一种将操作系统内核的大部分功能(包括进程管理、内存管理、文件系统、设备驱动、网络协议栈等)全部集成在一个单一的内核空间(Kernel Space)中的架构。微内核架构试图将内核尽可能精简,只保留最基本的功能,如进程间通信(IPC)、基本的调度和内存管理。原创 2025-07-04 00:32:56 · 533 阅读 · 0 评论 -
【Note】《深入理解Linux内核》 Chapter 12 :深入理解 Linux 虚拟文件系统(VFS)
优点说明文件系统无关接口屏蔽底层实现差异,统一访问方式多态性使用函数指针支持多种实现统一缓存、权限、安全机制全部由 VFS 统一管理高性能dentry + inode cache 实现快速访问支持嵌套挂载、联合挂载等特性mount namespace、overlayfs 提供容器支持。原创 2025-07-04 00:20:58 · 318 阅读 · 0 评论 -
【Note】《深入理解Linux内核》 Chapter 11 :深入理解 Linux 内核中的信号机制
机制用途与信号关系中断CPU 响应外部硬件请求类似“硬件信号”,但在内核态信号用户/内核异步通知类似“软中断”,发生在用户空间异常程序错误触发陷阱多数异常最终生成信号系统调用显式切入内核请求服务信号是系统调用的中断来源之一。原创 2025-07-04 00:13:56 · 879 阅读 · 0 评论 -
【Note】《深入理解Linux内核》Chapter 10 :Linux 内核中的系统调用机制全解析
系统调用(System Call)是操作系统为用户程序提供的受控访问内核资源的接口。用户态程序不能直接访问内核内存、I/O、文件、进程管理等,必须通过系统调用请求服务。文件操作:open(), read(), write(), close()进程控制:fork(), execve(), exit(), wait()内存管理:mmap(), brk()网络通信:socket(), bind(), recv(), send()// 实现细节宏自动生成封装函数,处理参数验证与展开;原创 2025-07-04 00:08:53 · 991 阅读 · 0 评论 -
【Note】《深入理解Linux内核》Chapter 9 :深入理解 Linux 内核中的进程地址空间管理机制
区域分配方式分配函数成长方向描述text段ELF 映射固定可执行指令,只读可执行data段ELF 映射固定已初始化全局变量bss段brk/mmapbrk固定未初始化全局变量heapbrk/mmapmalloc/brk向上动态分配内存区stack线程创建时设定向下每线程独立栈mmap区域映射文件/匿名内存mmap动态灵活共享/文件映射。原创 2025-07-03 23:57:14 · 621 阅读 · 0 评论 -
【Note】《深入理解Linux内核》Chapter 8 :Linux 内核的内存管理机制
机制/结构作用层级或依赖管理单个物理页框所有物理内存核心结构Buddy 系统管理连续页分配支撑高效页框回收SLAB/SLUB小对象缓存内核对象高效分配用户进程虚拟内存管理支撑 mmap/anony 区域页表虚拟地址到物理地址映射实现进程地址隔离高端内存临时映射32 位平台NUMA非一致内存访问支持多 socket 多节点平台。原创 2025-07-03 08:01:43 · 940 阅读 · 0 评论 -
【Note】《深入理解Linux内核》Chapter 7 :Linux 内核的进程调度机制
调度是操作系统选择哪个进程(或线程)在何时运行的决策过程。Linux 是一个**支持抢占式、多任务、支持对称多处理器(SMP)**的内核,调度器是整个内核性能的关键组成部分。调度类策略优点缺点CFS完全公平调度精准共享 CPU、灵活可调实时性弱RTFIFO/RR实时保证、优先级严格易饿死普通任务idle空闲核使用防止空转仅供备用Linux 调度器实现兼顾了公平性、响应性、实时性和可扩展性,并提供统一抽象接口,允许调度策略灵活替换,是现代操作系统调度体系中的典范。原创 2025-07-03 08:00:00 · 946 阅读 · 0 评论 -
【Note】《深入理解Linux内核》 Chapter 6:Linux 内核中的时间管理机制
Linux 如何高效分配和回收内存,包含页级分配器(Buddy 内存管理)、Slab/SLUB 页面缓存机制、缓存层次结构、NUMA 支持、调试与调优技术等。原创 2025-07-03 07:30:00 · 809 阅读 · 0 评论 -
【Note】《深入理解Linux内核》 Chapter 5 :Linux内核同步机制
顺序锁通过版本号实现“读无锁,写加锁”,读者在读前后对比写者计数是否一致。写入较少,读取极高的场景;如xtimejiffies_64时间戳。do {/* 读取数据 */同步方式是否阻塞适用上下文特点atomic否任何上下文简洁高效,用于计数器spinlock否中断、软中断等忙等,不可睡眠mutex是进程上下文可睡眠,推荐方式semaphore是进程上下文多资源管理(已被 mutex 替代)rwlock否中断上下文读共享,写独占seqlock。原创 2025-07-02 23:13:28 · 985 阅读 · 0 评论 -
【Note】《深入理解Linux内核》 Chapter 4 :Linux中断与异常机制
中断与异常的基本概念、架构支持、硬中断处理流程、软中断(SoftIRQ)、底半部(Bottom Half)、Tasklet、工作队列(Workqueue)、中断上下文与进程上下文区别。原创 2025-07-02 07:48:33 · 1100 阅读 · 0 评论 -
【Note】《深入理解Linux内核》Chapter 3 : Linux 内核中的进程管理机制
在 Linux 内核中,进程就是以任务(Task)的形式存在于内核空间的一项实体。每个任务都由一个描述,包含了其运行状态、资源信息、调度参数等。:由内核分配的唯一标识。虚拟地址空间:每个进程拥有独立的mm_struct,对应其页表。系统资源:打开的文件描述符、信号处理函数、CPU 时间片等。在 Linux 中,线程是“轻量级进程(LWP)”,与进程共享同一个虚拟地址空间和大部分资源,只是在调度器层面被视作独立的任务。它们也由表示,但其mm_struct、文件表等可选地与其他线程共享。原创 2025-07-02 07:46:10 · 846 阅读 · 0 评论 -
【Note】《深入理解Linux内核》Chapter 2 :内核架构概述
Linux 是一个模块化、可移植、功能强大的内核系统,它并不像应用程序那样被编译为一个可执行文件后运行,而是提供了一个“操作系统的核心”运行时环境,管理资源、提供服务。内核架构定义了这个核心“如何运转”的骨架。理解进程切换、内存分配、中断调度背后的机制为内核模块开发打下坚实基础掌握系统调优、性能分析、异常处理的依据阅读和修改 Linux 源码不再像在看“黑魔法”Linux 内核是一个宏内核系统,将大部分服务集中于内核态以提升效率内核以模块化+架构适配的方式实现可裁剪与可移植性。原创 2025-07-01 22:55:56 · 787 阅读 · 0 评论 -
【Note】《深入理解Linux内核》 Chapter 1 :深入操作系统核心的起点
Linux 内核起源于 1991 年,由芬兰大学生 Linus Torvalds 编写。起初它只是一个小型的、模仿 Unix 的实验项目,仅支持 80386 CPU 和软盘设备。通过与 GNU 项目结合,Linux 很快发展成为完整的操作系统。开源许可(GPL):保证了源代码的自由访问与共享社区驱动:成千上万的开发者为其贡献代码模块化架构:使其能快速适配不同硬件平台和用途截至当前,Linux 支持从微型嵌入式设备到大型服务器乃至超级计算机的广泛平台。开发者可自行配置.config。原创 2025-07-01 22:42:18 · 1005 阅读 · 0 评论 -
【Linux】开发者必备:高效命令与实战技巧
linux 软件开发常用命令原创 2025-06-24 22:42:23 · 387 阅读 · 0 评论 -
【Linux】设备模拟器概念
设备模拟器原创 2025-06-15 21:00:14 · 499 阅读 · 0 评论 -
【Linux】KVM简单介绍
KVM概念介绍原创 2025-06-15 20:55:59 · 1363 阅读 · 0 评论 -
【C/C++】用户态与内核态内存访问_初步了解
方面用户态内核态权限级别低权限(环3)高权限(环0)访问地址范围仅用户空间地址用户空间 + 内核空间地址访问权限控制受页表和硬件保护可绕过用户权限限制访问非法地址触发异常,进程崩溃内核需捕获异常,防止内核崩溃内存访问接口直接访问用户内存需使用特定接口访问用户内存运行环境应用程序操作系统内核。原创 2025-05-31 11:37:44 · 575 阅读 · 0 评论 -
【Linux】FreeRTOS与Linux:实时与通用的终极对比
FreeRTOS和Linux是独立的操作系统,无隶属关系原创 2025-05-08 23:48:43 · 826 阅读 · 0 评论 -
[docker] 简单操作场景
暂时没空写~原创 2025-04-08 11:04:55 · 256 阅读 · 0 评论 -
【计算机】同步/异步
在计算机科学和编程中,“同步”(Synchronization)是一种机制,用于协调不同进程或线程之间的操作,以避免竞态条件(race conditions)、死锁(deadlocks)和其他并发问题。同步确保了在多线程或多进程环境中,对共享资源的访问是有序的、互斥的,从而保证了数据的一致性和完整性。然而,过度使用同步机制也可能导致性能问题,如增加线程间的等待时间和降低系统的吞吐量。:互斥锁是最基本的同步机制之一,用于保护共享资源,防止多个线程同时访问。:屏障是一种同步机制,用于在多个线程之间设置同步点。原创 2024-07-07 15:56:10 · 501 阅读 · 1 评论 -
Ubuntu系统 常用工具
参考:原创 2024-06-24 21:44:17 · 255 阅读 · 0 评论