自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(69)
  • 收藏
  • 关注

原创 【MySQL 慢查询排查实战】列表接口逐渐变慢时,怎样从请求链路定位原因

本文以可复现的订单列表查询为例,从请求分段计时、实际 SQL、EXPLAIN、联合索引、查询字段和深分页逐步定位性能问题,并严格区分 MVCC 一致性读、锁定读与元数据锁等待。

2026-08-21 21:46:37 1270 31

原创 【Flask SSE 实时大屏】从数据库新增记录到 ECharts 更新的完整演示链路

本文用 Flask、SQLite、SSE 与 ECharts 搭建一条可复现的实时数据演示链路,覆盖数据写入、历史加载、事件流格式、心跳、Last-Event-ID 续传、Nginx 缓冲以及鉴权和租户隔离注意事项。

2026-08-21 21:38:23 1446 16

原创 【Linux】信号到底什么时候被处理?sigaction、中断、用户态内核态与 SIGCHLD

本文从“信号到底什么时候被处理”出发,继续深入 sigaction、信号捕捉流程、用户态与内核态切换、中断和系统调用,并进一步介绍可重入函数、volatile 与 SIGCHLD,串起 Linux 信号从内核检查到用户 handler 执行的完整过程。

2026-08-17 18:09:09 2201 27

原创 【Linux】信号产生后去了哪里?从 Pending、Block 到 Core Dump,讲清信号的保存

本文继续讲 Linux 信号产生之后如何保存,重点梳理 Pending、Block、Delivery 三个概念,以及 pending、block、handler 三张表之间的关系,并结合 sigset_t、sigprocmask、sigpending 实验,最后介绍 Term、Core Dump 与 gdb 事后调试。

2026-08-17 18:08:07 1801 36

原创 【Linux】Ctrl+C 到底做了什么?从键盘、kill 到 alarm,一次讲清信号的产生

本文从 Ctrl+C 入手,围绕 Linux 信号的产生展开,介绍 signal、kill、raise、abort、前后台进程、SIGKILL、SIGPIPE、alarm 等内容,并结合除 0、野指针、定时任务等实验,理解信号从产生到被进程记录的完整过程。

2026-08-16 12:41:01 1204 28

原创 【RAG 分层排查】资料在知识库里却答不对:从切片、召回到提示词逐层定位

资料明明已经写进知识库,模型为什么仍然答不对?本文从原始文档、切片规则、Embedding 模型、向量入库、Top K 召回、元数据过滤、重排和提示词等环节逐层排查,并结合 Ollama 与 ChromaDB 给出可观察的检索示例,帮助定位答案缺失、旧数据干扰和模型不一致等常见问题。

2026-08-16 00:25:57 230 12

原创 【Linux】共享内存为什么快?System V 的 key、shmget、shmat 与进程通信实战

共享内存为什么被称为高效的 IPC 方式?本文从共享内存映射原理出发,结合 ftok、shmget、shmat、shmdt 和 shmctl,讲清 key 与 shmid、资源生命周期、进程间数据共享以及同步问题,并通过 Server/Client 实验串起完整通信流程。

2026-08-09 17:52:33 1563 38

原创 【Linux】两个毫无关系的进程怎么通信?命名管道 FIFO 从原理到 Server/Client 实战

匿名管道通常依赖父子进程继承文件描述符,那么两个毫无关系的进程怎么通信?本文从 FIFO 的 pathname 入手,结合 mkfifo、open 阻塞规则和 Server/Client 实验,讲清命名管道的通信原理、EOF 行为,以及它和匿名管道之间真正的区别。

2026-08-09 17:48:34 2400 22

原创 【CMake】换台机器就编译失败?用 Presets + vcpkg 固定依赖、工具链与 CI

![封面](https://i-blog.csdnimg.cn/direct/a1482d08e2004b53a847c242587c3566.png#pic_center)>🔥个人主页:<font color="whiblue"><strong>**[爱和冰阔乐](https://blog.csdn.net/2402_87731470?spm=1011.2415.3001.5343)**</strong></font>>📚专栏传送门:[《数据结构与算法》](https://blog.

2026-08-06 09:38:55 1768 34

原创 【Linux】从匿名管道到进程池:任务派发、fd 继承 Bug 与完整实现

本文基于匿名管道实现一个简单的 C++ 进程池,完整拆解任务码、Channel 管理、子进程创建、轮询派发与进程回收流程,并重点分析后创建的子进程继承历史写端后,为什么会导致 EOF 无法到达、子进程无法退出以及父进程卡在 waitpid()。

2026-08-05 15:11:45 1036 32

原创 【Linux】进程为什么不能直接通信?匿名管道原理、fd 继承与读写规则

进程拥有独立的虚拟地址空间,彼此无法直接交换数据。本文从 IPC 的本质出发,结合 pipe()、fork() 与文件描述符继承,讲清匿名管道的底层关系,并通过代码分析字节流、阻塞读写、EOF、SIGPIPE、管道容量与 PIPE_BUF 原子写规则。

2026-08-04 15:08:40 959 31

原创 【Linux】没有公网 IP 也能 SSH 回内网:反向 SSH、ProxyJump 与 systemd 保活实战

没有公网 IP,人在外面怎么 SSH 回家里的 NAS、实验室电脑或树莓派?本文从反向 SSH 的工作原理讲起,结合 ssh -R、ProxyJump、systemd、SSH 心跳与权限限制,完整演示隧道建立、远程访问、自动重连和逐层排障过程,并分析“进程在线但隧道失效”等常见问题。

2026-07-30 00:13:54 2209 46

原创 【Linux】系统彻底进不去怎么办?initramfs、recovery 与 chroot 救援指南

当旧内核也无法正常进入系统时,可以继续通过 initramfs shell、recovery mode 或 Live USB 救援。本文讲解根设备与 UUID 排查、文件系统检查、分区挂载、运行目录绑定、chroot 修复、GRUB 重建及内核包重装,并整理恢复后的验收和升级前预防方法。

2026-07-26 08:43:36 1375 49

原创 【Linux】内核升级后启动失败?旧内核回退、initramfs 重建与 DKMS 修复

Ubuntu 更新内核后无法启动,先别急着删内核或重装系统。本文从 GRUB 进入旧内核开始,讲清启动阶段判断、失败日志查看、/boot 空间检查、initramfs 重建、UUID 与 GRUB 参数核对,以及 DKMS、headers 和 Secure Boot 相关故障的处理方法。

2026-07-26 08:42:52 648 25

原创 【Linux库制作与原理进阶】从 ELF 装载到延迟绑定:搞懂动态库、GOT 与 PLT

本文围绕 ELF 装载与动态链接展开,讲清 Program Header Table 如何指导 Segment 映射,动态库如何进入进程地址空间,以及 PIC、GOT、PLT 分别解决什么问题。通过首次调用与后续调用的对比,进一步理解符号解析、地址重定位和延迟绑定的完整过程。

2026-07-21 19:18:04 4029 37

原创 【Linux】库制作与原理进阶:从 ELF 双视图到静态链接,搞懂符号表与重定位

本文从多个 .o 如何形成可执行文件讲起,结合 readelf、objdump 和符号表实验,分析 Section 与 Segment、UND 符号、重定位表及 call 地址修正过程,理清静态链接如何完成符号解析与地址重定位,并说明静态库参与链接的本质。

2026-07-21 19:16:48 804 20

原创 【Linux】库制作与原理:从源码到静态库,搞懂 ar、-I/-L/-l 与打包交付

本文从一套可直接编译的源码出发,讲清头文件、源文件和目标文件之间的关系,并使用 gcc 与 ar 完成静态库制作。通过实际报错分析 -I、-L、-l 的作用,进一步介绍静态库的目录整理、Makefile 自动构建、打包交付、系统安装及 ldd 查看依赖等内容。

2026-07-19 09:48:42 1131 40

原创 【Linux】库制作与原理:从动态库 not found 到 ELF 加载,彻底搞懂运行时查找

本文承接上篇,介绍动态库的制作与使用,讲清 -fPIC、-shared 以及“编译成功但运行时找不到 .so”的原因,并整理动态库的四种查找方法。同时补充 Visual Studio 中 .lib、.dll 的制作与调用,最后串联目标文件、ELF、Section、Segment 和程序加载的基本流程。

2026-07-19 09:47:57 450 16

原创 【Linux】Ext 文件系统篇:从 inode 到路径解析,搞懂挂载与软硬链接

本文继续讲解 Ext 系列文件系统的管理方式,重点介绍 Data Blocks、inode Table、Block Bitmap、inode Bitmap、GDT 和 Super Block 的作用,并串联文件创建、删除、路径解析、格式化与挂载过程。最后结合实验说明目录、inode、文件名以及软硬链接之间的底层关系。

2026-07-16 20:36:36 1101 47

原创 【Linux】Ext 文件系统:从机械磁盘到 CHS/LBA,搞懂扇区、块与分区

本文从机械磁盘的物理结构讲起,介绍盘片、磁头、磁道、柱面和扇区之间的关系,并结合 CHS 与 LBA 说明磁盘如何完成寻址。随后引出扇区、文件系统块、分区与块组等概念,帮助读者理解操作系统为什么要把磁盘抽象成线性空间,以及 Ext 文件系统出现前需要解决的存储管理问题。

2026-07-13 08:45:17 1136 40

原创 【Linux】文件描述符背后的底层逻辑:重定向、VFS 与用户态缓冲区

本文围绕 Linux 文件 I/O 的进阶内容展开,从 stdout/stderr 重定向分离、2>&1 的底层含义讲起,再结合 files_struct、struct file、file_operations 理解 fd 表、VFS 和“一切皆文件”。同时分析 printf/write 的缓冲差异、fork 后重复输出原因,以及 glibc 中 FILE* 与 _IO_FILE 的关系

2026-07-10 18:29:32 3471 48

原创 【Linux基础IO】printf 为什么会写进文件?一文搞懂重定向和 dup2 底层原理

本文继续深入 Linux 文件 I/O 中的重定向原理,从 fd 的分配规则入手,解释 close(1) 后 printf 为什么会写入文件,并通过 dup2 理解 >、>>、< 的底层实现。文章还补充了 2>&1 的执行顺序、MiniShell 中重定向的实现流程,以及多进程下 close(fd) 与引用计数的关系,帮助读者真正理解重定向到底改了什么。

2026-07-07 18:37:15 459 26

原创 【Linux】基础 I/O 详解:从 fopen 到 open,终于搞懂 fd 为什么从 3 开始

本文从 Linux 文件 I/O 的基础概念讲起,先说明文件不仅包含内容,也包含权限、inode 等属性信息,再回顾 fopen、fread、fwrite 等 C 文件接口,并引出 open、read、write、close 等系统调用。最后通过实验解释 stdin/stdout/stderr 与 0、1、2 的关系,以及 fd 为什么通常从 3 开始,帮助读者理解 FILE* 与文件描述符的联系。

2026-07-07 18:33:17 1080 25

原创 【Linux进程控制】从exec程序替换到手写简易Shell:fork、execvp、环境变量与内建命令

本文针对 Linux 进程程序替换与自定义 Shell 设计的深度硬核技术长文 。 文章首先从内核层深度解密了进程程序替换的底层物理覆盖机制与彻底分离父子进程的写时拷贝(COW)核心技术 ,全面拆解了 exec 系统调用函数簇的命名艺术、特性与环境传参机制 。接着,文章以工业级规范手把手演进、闭环构建了一个支持 cd、export、echo 等内建命令拦截拦截 、动态刷新工作路径并完美维护全局环境变量表的常驻交互式微型 Shell 命令行解释器

2026-07-04 20:27:52 1346 15

原创 【Linux系统篇】从 fork 到 WNOHANG:进程创建与等待机制详解

本文深入拆解 Linux 进程控制的核心机制,围绕进程“创建、退出、回收”三大生命周期展开。文章首先解析了 fork 背后写时拷贝(COW)的延迟复制艺术与分流用途;随后对比了 return、exit 与 _exit 在刷新 C 库缓冲区上的底层差异;并重点剖析了父进程如何通过 wait / waitpid 攻克僵尸进程。通过对原始 status 源码级位布局的分析,强调了使用 WIFEXITED 等系统宏的规范姿势,最后给出了基于 WNOHANG 的非阻塞轮询实战设计。

2026-07-02 19:15:43 1076 46

原创 【Linux进程】程序地址空间详解:虚拟地址、页表、写时拷贝与mm_struct

本文深入讲解 Linux 进程地址空间 的技术博客。文章从“父子进程为何能打印相同地址却拥有不同数据”的实验现象切入,层层剖析了虚拟地址与物理地址的核心区别。详细阐述了 mm_struct 和 vm_area_struct(VMA)在内核中“先描述、再组织”的管理本质,并深入探讨了页表权限检查、写时拷贝(COW)及缺页中断等底层机制,帮助读者全面打通从用户态指针到内核态内存管理的认知闭环

2026-06-30 23:13:20 1479 38

原创 【AI Agent工程化】工具会调用不等于能上线:参数契约、权限边界、幂等与回放测试

本文针对 Agent 在实际落地中面临的参数漂移、路径越界、重复调用及审计缺失等工程痛点,提出了构建一层独立、安全且可追踪的工具执行边界的解决方案。文章基于 Python 逐步搭建起一个小型执行器,详细阐述了工具注册表设计、JSON Schema 参数校验、工作区路径防越界、基于会话的能力清单权限控制、业务幂等键设计以及 SQLite 审计日志落库等核心工程实践,并包含离线录制回放测试与故障注入方案。旨在帮助开发者把不稳定的模型输出,转化为可判断、可拒绝、可追踪的确定性系统行为。

2026-06-27 00:14:13 1194 45

原创 【Linux排障实战】Docker容器启动失败怎么查:端口、日志、权限与网络

本文针对 Docker 容器启动失败等常见故障,总结了一套由浅入深的排障方法论。文章摒弃了“盲目重启”的误区,梳理了容器四种核心状态的底层逻辑,并围绕退出码诊断、日志捕获、端口映射与容器内监听的区别、挂载目录 UID/GID 权限冲突、Compose 变量解析、容器间网络通信、以及健康检查失效等八大高频痛点,结合 Linux 和 Windows 场景给出了具体的验证命令与最小化复现方案。旨在帮助开发者打破“猜想式”排障,建立起可复现、可验证的闭环证据链,精准定位故障根因。

2026-06-22 22:18:11 2400 55

原创 【OpenCV OCR实战】拍照文档识别总是错:透视矫正、二值化、版面分割与Tesseract调参

OCR输出乱码、丢行、识别准度低?别盲目调参数了!文档识别是一条严密的图像流水线。本文用 OpenCV + Tesseract 搭建起一条“可视化”的拍照文档 OCR 流水线,通过保存并对比每一步的中间图像,带你直观排查三大痛点:图像是否处理坏、版面是否切错、OCR 引擎到底看到了什么。文章涵盖文档四角检测、透视矫正、自适应光照补偿、二值化对比、Tesseract PSM 模式选型及低置信度词框导出等核心实战。配合完整代码与工程验收清单,帮你告别玄学调参,快速建立起科学的图像预处理与 OCR 调优思维!

2026-06-18 15:23:12 2095 50

原创 【MCP实战】从0写一个本地工具服务器:文件搜索、SQLite查询与安全边界

本文针对 AI 接入 MCP 本地工具时常见的安全与边界漏洞,拒绝浅显演示,深入探讨了构建生产级本地工具服务器的实用技巧。文章基于 Node.js 24 和 TypeScript(SDK v2),从零实现了两个核心工具:一是通过真实路径校验、限制大小与扩展名的安全文件搜索工具;二是基于只读模式和参数化查询的 SQLite 任务查询工具。文章重点阐述了 Schema 校验、业务防御、stdio 日志通道隔离(必须写进 stderr)以及防信息泄露的错误处理机制,为开发者提供了一套扎实的本地工具安全防御指南。

2026-06-14 22:36:51 3239 52

原创 【Codex项目实战】从模糊需求到可验证交付:Plan、测试、Review与Worktree完整流程

本文分享了将 Codex 从“代码生成器”升级为“工程搭档”的实战指南。文章以修复商城登录 Bug 为例,演示了如何通过结构化提示词(目标、上下文、约束、完成条件)将模糊需求转化为可验证的任务。详述了 Codex 调查调用链、精确定位根因、编写表驱动测试及回归验证的全流程。同时,介绍了利用 Git Worktree 隔离并行开发、借助子代理(Subagents)深度调查的高级工作流,并结合 Git diff 与严格 Review 确保交付质量,助力开发者构建规范的 AI 协同开发思维。

2026-06-10 15:25:40 3197 61

原创 Ollama 本地大模型部署实战:从安装到 RAG 知识库完整指南

本文是一篇面向 C/C++ 读者的 Ollama 本地大模型部署与 RAG 知识库构建实战指南。文章结合实验室离线内网的实际项目复盘,系统讲解了 Ollama 的核心概念与优势,并给出了基于硬件配置的模型选型与 q4_K_M 量化版本推荐。针对 Windows 环境,详细介绍了通过环境变量迁移模型存储路径防止 C 盘爆满的技巧。此外,文章涵盖了常用管理命令、通过 Modelfile 定制专属 C++ 编程助手的方案、多语言 API 与流式调用代码,并附带了一段约 70 行、基于 ChromaDB 的最小 R

2026-06-08 23:46:47 2962 38

原创 【Python基础】从变量到面向对象:打通 Python 入门核心语法

本文是为 C/C++ 读者量身打造的 Python 入门指南。文章通过直观对比,系统梳理了缩进规则、动态变量、字符串格式化等核心语法,重点拆解了列表、字典等五大数据容器及高效的列表推导式。同时,深入讲解了函数复用、模块包管理与面向对象思想(含鸭子类型),并附带一个完整的“学生成绩统计”实战案例。最后,针对初学者总结了 input 类型、可变默认参数、循环中删除元素等四大核心巨坑,助力读者快速转换思维,掌握高效组织代码的技巧。

2026-06-08 22:56:08 3434 30

原创 Linux/Windows 双平台通关:YOLOv8 目标检测从模型选型到跨平台部署实战

本文系统剖析了基于 YOLOv8 框架的目标检测全流程实战指南。文章首先介绍了 YOLOv8 在骨干网络、解耦头、正样本分配及损失函数上的核心改进,并给出了五个版本的选型策略;随后详解了 CUDA 与 PyTorch 环境的精确搭建步骤、YOLO 格式数据集的目录结构与归一化标签要求;接着重点梳理了核心训练与数据增强参数的调参策略,提供了多 GPU、断点续训等实用脚本;最后阐述了 mAP 等评估指标的监控方法,并给出了 ONNX 和 TensorRT 模型导出部署的注意事项。全篇兼顾原理与实战,直击 OOM

2026-06-04 15:34:27 3750 67

原创 【Linux系统编程】环境变量深度解析——从 fork 继承到 export 内建命令,两张表打通进程上下文

本文深度剖析 Linux 进程上下文中 argv 参数表与 environ 环境表的内核机制。命令行参数由 Shell 按空格切分,经 _start→main 调用链传递,是命令实现多选项控制的基石;环境变量具全局特性,由 bash 登录时从配置文件加载,通过 fork 机制被子进程写时拷贝继承,常用于环境配置与身份识别。文章还解密了本地变量与环境变量的差异,并重点剖析 export、cd 等内内建命令的本质——它们不创建子进程,而是由 bash 亲自执行的内置函数,因此在 PATH 损坏时仍能运行。

2026-05-31 22:47:29 2806 59

原创 【Codex配置实战】从 config.toml 到 AGENTS.md:把 AI 编程助手调成顺手的开发环境

本文深入剖析了 AI 编程工具 OpenAI Codex 的高级配置体系,指出其不仅是聊天补全工具,更是不折不扣的“本地开发代理”。文章详细阐述了核心配置文件 config.toml(决定工具能做什么,包含模型、审批策略、沙箱权限及 MCP 外部工具扩展)与 AGENTS.md(决定工具该怎么做,涵盖多层级项目规范与代码风格约束)的协同分工。通过建立合理的权限边界与细化的项目规则,不仅能有效规避 AI 自动化开发中的翻车误操作,还能真正将通用模型转化为契合团队工程流的稳定高生产力工具。

2026-05-28 18:27:51 4161 30

原创 Linux 性能优化基石:全景拆解 PRI/NI 优先级算力争夺与 O(1) 调度算法精髓

本文深入剖析了 Linux 进程的动态运行机制与调度核心。首先,文章详解了进程优先级(PRI)与 Nice 值(NI)的计算公式、动态调整的“无记忆性”重置特性,并厘清了并发与并行的本质区别。随后,全面还原了时钟中断触发下,CPU 寄存器硬件上下文保存与恢复的完整切换步骤。最后,重点拆解了 Linux 2.6 内核经典的 O(1) 调度算法,深入分析了如何利用 140 个优先级队列、位图(bitmap)加速器实现常数级查找,以及如何通过 Active/Expired 双阵列滚动切换机制彻底根除进程饥饿问题

2026-05-25 13:04:37 1202 18

原创 《 从OS通用理论到Linux内核源码:全景拆解 task_struct 状态流转与内核双链表设计精髓 》

本文深入剖析操作系统进程管理的核心逻辑与 Linux 内核实现。首先从通用 OS 理论出发,全景拆解运行、阻塞、挂起等状态的宏观流转模型与底层队列管理机制,并深度起底 Linux 独特的“侵入式双链表”设计及 container_of 宏数学偏置原理。随后结合内核源码,详解 Linux 下 R、S、D、T、t、X、Z 等进程状态的静态定义与动态行为特征,通过实战代码复现并解释了“死循环代码却在休眠”的现象,并深入探讨了僵尸进程、孤儿进程的产生本质、内存泄漏风险以及内核 SLAB 缓存机制。

2026-05-25 09:45:00 810 37

原创 【硬核Linux】打通OS任督二脉:从冯诺依曼到进程Fork,看完直呼过瘾!

本文为你硬核拆解Linux底层逻辑!从冯·诺依曼体系的数据流动出发,带你透彻理解操作系统“先描述,再组织”的管理哲学与系统调用机制。接着深入剖析核心概念“进程”,揭秘PCB结构与cwd路径,最后通过实战代码调用fork()创建子进程,带你亲眼见证“写时拷贝”的奇妙过程。一文帮你彻底夯实系统编程基石!

2026-05-20 09:20:46 1390 31

原创 【Linux工具链】从代码托管到精准追踪Bug:Git常用指令+GDB临时变量与调用栈剖析

本文系统介绍了 Linux 开发中必备的工具链,包括 Git 版本控制和 GDB/CGDB 调试。通过 Git,开发者可以高效管理代码版本,实现多人协作、版本回溯和冲突解决;通过 GDB/CGDB,可以对程序进行调试,设置断点、条件断点、监视变量和追踪函数执行,实现精准问题定位。同时,文章还讲解了调试模式选择、调试流程及常用技巧,帮助开发者快速排查代码问题,提高开发效率和代码质量,是 Linux 开发学习与实战的全流

2026-05-16 19:20:51 1590 32

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除