<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[深度Linux]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/ShuShengTuM</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; ShuShengTuM]]></copyright><item><title><![CDATA[搞定 Linux内存难题，Kasan 工具这样用]]></title><link>https://blog.csdn.net/ShuShengTuM/article/details/154443007</link><guid>https://blog.csdn.net/ShuShengTuM/article/details/154443007</guid><author>ShuShengTuM</author><pubDate>Wed, 05 Nov 2025 14:47:09 +0800</pubDate><description><![CDATA[你或许试过用 GDB 断点调试，却卡在复杂调用栈里绕不出来；也可能用 Valgrind 检测，却受限于性能无法在生产环境使用。其实 Linux 内核早就自带一款 “内存侦探”——Kasan，能精准揪出越界访问、使用已释放内存、内存泄漏等常见问题，甚至能定位到具体代码行。]]></description><category></category></item><item><title><![CDATA[从0到1，带你吃透TCP/IP协议]]></title><link>https://blog.csdn.net/ShuShengTuM/article/details/154442903</link><guid>https://blog.csdn.net/ShuShengTuM/article/details/154442903</guid><author>ShuShengTuM</author><pubDate>Wed, 05 Nov 2025 14:44:50 +0800</pubDate><description><![CDATA[网络世界同样如此，各种设备要实现通信和数据传输，也得遵循特定规则，这就是网络协议。而 TCP/IP 协议，堪称网络世界的 “交通规则” 和 “点餐流程”，是互联网得以正常运转的核心所在。 接下来，让我们深入探寻 TCP/IP 协议的奥秘，看看它究竟如何支撑起庞大复杂的网络世界。]]></description><category></category></item><item><title><![CDATA[拆解Linux内核架构：从原理到核心模块]]></title><link>https://blog.csdn.net/ShuShengTuM/article/details/154441050</link><guid>https://blog.csdn.net/ShuShengTuM/article/details/154441050</guid><author>ShuShengTuM</author><pubDate>Wed, 05 Nov 2025 13:59:48 +0800</pubDate><description><![CDATA[Linux内核作为操作系统的核心，扮演着硬件与软件间的关键桥梁角色。本文深入解析Linux内核的核心架构与实现原理，涵盖进程管理、内存管理、文件系统、网络协议栈等核心模块的交互机制。文章首先介绍内核的基本概念与源码目录结构，随后详细拆解各子系统的功能实现，包括进程调度算法、内存分页机制、VFS抽象层等关键技术。此外，还阐述了内核模块的动态管理方法，并提供了系统性的学习路径建议，从入门到实践的工具选择及经典书籍推荐，帮助开发者构建完整的内核知识体系，更好地理解Linux系统的底层运作机制。]]></description><category></category></item><item><title><![CDATA[彻底搞懂零拷贝：提升系统性能的关键技术]]></title><link>https://blog.csdn.net/ShuShengTuM/article/details/149469558</link><guid>https://blog.csdn.net/ShuShengTuM/article/details/149469558</guid><author>ShuShengTuM</author><pubDate>Sat, 19 Jul 2025 20:09:14 +0800</pubDate><description><![CDATA[零拷贝技术：提升系统性能的关键 零拷贝（Zero-Copy）技术通过减少数据在用户空间与内核空间之间的冗余拷贝，显著提升系统性能。传统数据传输需多次CPU拷贝和上下文切换，而零拷贝借助DMA（直接内存访问）和PageCache（页缓存）等机制，实现数据在内核空间的直接传输，避免不必要的CPU干预。 核心实现方式： mmap+write：将文件映射到内存，减少一次CPU拷贝。 sendfile：数据直接从磁盘到网络缓冲区，支持SG-DMA实现零CPU拷贝。 splice/tee：在内核空间管道间高效传输数据。]]></description><category></category></item><item><title><![CDATA[从丢包到恢复：TCP重传机制的底层逻辑全解]]></title><link>https://blog.csdn.net/ShuShengTuM/article/details/149469497</link><guid>https://blog.csdn.net/ShuShengTuM/article/details/149469497</guid><author>ShuShengTuM</author><pubDate>Sat, 19 Jul 2025 20:03:58 +0800</pubDate><description><![CDATA[本文深入解析了TCP协议中的重传机制及其在网络通信中的关键作用。文章首先分析了网络丢包现象的多种成因及其负面影响，随后详细介绍了TCP重传机制的核心组件：基于时间驱动的超时重传、基于数据驱动的快速重传，以及更精准的选择性确认（SACK）和重复选择性确认（D-SACK）。文章进一步探讨了TCP保障可靠性的底层逻辑，包括确认应答、序列号和校验和等机制，并阐述了Karn算法等优化策略。最后，文章分析了重传机制在不同网络环境下的表现差异，并提出了参数调整、算法改进和网络配置优化等提升性能的策略。TCP重传机制通过精]]></description><category></category></item><item><title><![CDATA[解锁C++性能密码：TCMalloc深度剖析]]></title><link>https://blog.csdn.net/ShuShengTuM/article/details/149469459</link><guid>https://blog.csdn.net/ShuShengTuM/article/details/149469459</guid><author>ShuShengTuM</author><pubDate>Sat, 19 Jul 2025 20:01:16 +0800</pubDate><description><![CDATA[摘要：TCMalloc是Google开发的高性能内存分配器，专为优化C++程序性能而设计。它采用三级缓存架构（ThreadCache、CentralCache和PageHeap），通过线程本地缓存减少锁竞争，显著提升多线程环境下的内存分配效率。与传统内存管理相比，TCMalloc能减少内存碎片，提高内存利用率，在测试中速度提升可达3倍。其核心创新包括按对象大小分类处理、基于Page和Span的内存管理机制，以及灵活的配置选项。安装方式支持源码编译和包管理器安装，通过简单链接即可替换标准内存管理函数。TCMa]]></description><category></category></item><item><title><![CDATA[Linux惊群效应解析，让性能不再 “浪费”]]></title><link>https://blog.csdn.net/ShuShengTuM/article/details/149359874</link><guid>https://blog.csdn.net/ShuShengTuM/article/details/149359874</guid><author>ShuShengTuM</author><pubDate>Tue, 15 Jul 2025 16:57:59 +0800</pubDate><description><![CDATA[Linux惊群效应是指多个进程/线程同时阻塞等待同一事件时，内核会唤醒所有等待者，但最终只有一个能成功处理事件，其余被迫重新阻塞。这种现象会导致无效的上下文切换和锁竞争，严重损耗系统性能。常见场景包括accept、epoll和poll/select等系统调用。解决方案包括：1)使用EPOLLEXCLUSIVE标志；2)SO_REUSEPORT负载均衡；3)线程池模型；4)优化唤醒机制。研究表明，Linux内核版本演进中已逐步解决部分惊群问题，如accept在2.6版本后优化，但epoll在LT模式下仍存在该]]></description><category></category></item><item><title><![CDATA[内核视角看Epoll LT/ET：数据结构与回调机制全解]]></title><link>https://blog.csdn.net/ShuShengTuM/article/details/149359771</link><guid>https://blog.csdn.net/ShuShengTuM/article/details/149359771</guid><author>ShuShengTuM</author><pubDate>Tue, 15 Jul 2025 16:55:22 +0800</pubDate><description><![CDATA[作为高性能I/O多路复用技术，Epoll通过红黑树管理文件描述符，使用双向链表存储就绪事件，其核心优势在于高效的事件通知机制。文章详细对比了水平触发(LT)和边缘触发(ET)两种模式：LT模式会持续通知未处理事件，编程简单但效率较低；ET模式仅在状态变化时触发一次，性能更高但需配合非阻塞I/O确保数据完整读取。此外，文中剖析了Epoll的回调机制如何将就绪事件加入链表，并给出应用场景选择建议：LT适合简单服务，ET适用于高并发系统。]]></description><category></category></item><item><title><![CDATA[深度解读virtio：Linux IO虚拟化核心机制]]></title><link>https://blog.csdn.net/ShuShengTuM/article/details/149340769</link><guid>https://blog.csdn.net/ShuShengTuM/article/details/149340769</guid><author>ShuShengTuM</author><pubDate>Mon, 14 Jul 2025 22:28:30 +0800</pubDate><description><![CDATA[Virtio是Linux I/O虚拟化的核心技术，通过半虚拟化架构在虚拟机与物理设备间建立高效通路。其核心设计采用环形缓冲区和虚拟队列机制，前端驱动与后端处理程序通过共享内存实现零拷贝数据传输，避免了传统虚拟化的性能瓶颈。Virtio包含四层架构：前端驱动负责请求封装，virtio层定义通用接口，virtio-ring实现环形缓冲区，后端程序完成硬件操作。关键优化包括批量处理、中断合并和DMA技术，使I/O性能接近原生系统。作为KVM/QEMU的默认方案，V]]></description><category></category></item><item><title><![CDATA[Linux连接跟踪Conntrack：原理、应用与内核实现]]></title><link>https://blog.csdn.net/ShuShengTuM/article/details/149340696</link><guid>https://blog.csdn.net/ShuShengTuM/article/details/149340696</guid><author>ShuShengTuM</author><pubDate>Mon, 14 Jul 2025 22:22:56 +0800</pubDate><description><![CDATA[连接跟踪（Conntrack）是网络通信的核心机制，通过记录连接状态确保网络应用高效稳定运行。其工作原理包括：1. 在数据包入口处提取五元组信息建立跟踪记录，出口处确认状态；2. 与Netfilter框架深度集成，在Linux内核中实现连接状态管理。典型应用场景包括：1. NAT地址转换时提供连接映射支持；2. 状态防火墙进行智能流量过滤；3. 特殊协议（如FTP）的应用层网关处理。内核实现采用哈希表存储nf_conn结构，通过精细的生命周期管理（创建-确认-更新-删除）维护连接状态。现代方案如Cilium]]></description><category></category></item><item><title><![CDATA[从LRUCache到C++：解锁缓存世界的神秘代码]]></title><link>https://blog.csdn.net/ShuShengTuM/article/details/149277042</link><guid>https://blog.csdn.net/ShuShengTuM/article/details/149277042</guid><author>ShuShengTuM</author><pubDate>Fri, 11 Jul 2025 16:18:11 +0800</pubDate><description><![CDATA[摘要：LRUCache（最近最少使用缓存）是一种高效的缓存替换策略，通过优先淘汰长时间未访问的数据来提升缓存命中率。本文详细解析了LRUCache的实现原理，包括其核心数据结构哈希表（快速查找）和双向链表（维护访问顺序），并展示了用C++实现的完整代码方案。文章还提供了测试用例验证功能正确性，分析了O(1)时间复杂度特性，并探讨了内存池优化等性能提升方法。该技术广泛应用于操作系统、数据库和浏览器等领域，显著提升系统响应速度。]]></description><category></category></item><item><title><![CDATA[深入C++完美转发：解锁高效编程的密码]]></title><link>https://blog.csdn.net/ShuShengTuM/article/details/149276974</link><guid>https://blog.csdn.net/ShuShengTuM/article/details/149276974</guid><author>ShuShengTuM</author><pubDate>Fri, 11 Jul 2025 16:15:14 +0800</pubDate><description><![CDATA[本文深入探讨了C++11引入的完美转发技术，这一特性能够完整保留参数的左值/右值属性及const/volatile修饰符。文章首先通过对比普通转发存在的问题，揭示了完美转发的必要性；随后详细解析其实现原理，包括右值引用、std::forward工具和引用折叠规则；接着展示了完美转发在通用工厂函数、包装函数和延迟构造等场景的应用；最后总结了注意事项和实际案例。完美转发解决了模板编程中参数传递的类型信息丢失问题，为编写高效通用代码提供了关键技术支撑。]]></description><category></category></item><item><title><![CDATA[Linux NUMA调优实战：多线程程序加速方法]]></title><link>https://blog.csdn.net/ShuShengTuM/article/details/149207043</link><guid>https://blog.csdn.net/ShuShengTuM/article/details/149207043</guid><author>ShuShengTuM</author><pubDate>Tue, 08 Jul 2025 21:29:50 +0800</pubDate><description><![CDATA[NUMA架构优化实战指南 摘要：本文深入探讨了NUMA架构下多线程程序的性能优化方法。首先解析了NUMA与UMA架构的本质区别，指出NUMA通过节点化设计解决传统SMP架构的内存总线瓶颈问题。文章详细介绍了Linux内核中的NUMA实现机制，包括节点组织结构与内存分配策略，并提供了numactl、numastat等实用工具的配置方法。通过进程绑定、内存分配策略调整、大页使用等具体优化手段，有效减少跨节点内存访问带来的性能损耗。最后强调性能监控的重要性，建议使用top、perf等工具验证优化效果。本文为开发高]]></description><category></category></item><item><title><![CDATA[当DMA想“越狱”：IOMMU怎么硬核拦截？]]></title><link>https://blog.csdn.net/ShuShengTuM/article/details/149206987</link><guid>https://blog.csdn.net/ShuShengTuM/article/details/149206987</guid><author>ShuShengTuM</author><pubDate>Tue, 08 Jul 2025 21:27:42 +0800</pubDate><description><![CDATA[IOMMU（输入输出内存管理单元）是计算机系统中抵御DMA安全威胁的关键防线。它通过地址重映射和访问控制两大核心技术，有效拦截恶意设备的越权访问。在虚拟化环境中，IOMMU为设备直通提供安全隔离，确保虚拟机间的内存访问界限。其工作原理包含多级页表翻译、权限校验及IOTLB缓存加速，既保障安全性又维持高性能。当前主流架构（Intel VT-d/AMD-Vi/ARM SMMU）均实现IOMMU支持，通过内核API和VFIO框架为系统提供编程接口。随着云计算发展，I]]></description><category></category></item><item><title><![CDATA[C++多线程网络编程：助力高并发服务器性能提升]]></title><link>https://blog.csdn.net/ShuShengTuM/article/details/149183168</link><guid>https://blog.csdn.net/ShuShengTuM/article/details/149183168</guid><author>ShuShengTuM</author><pubDate>Mon, 07 Jul 2025 22:21:07 +0800</pubDate><description><![CDATA[本文深入探讨了C++多线程网络编程在高并发服务器开发中的关键应用。首先介绍了线程与进程概念，以及C++11线程库的使用方法；接着详细讲解了套接字编程和网络协议原理，包括TCP/IP协议的三次握手过程。在实践部分，重点阐述了多线程服务器架构设计、线程同步机制（互斥锁、条件变量）、并发控制策略（无锁数据结构、读写锁）和I/O多路复用技术（select/poll/epoll）。最后通过实现一个高并发聊天服务器案例，展示了线程池、用户管理和消息路由等功能的代码实现，并分析了性能优化方法。全文系统性地呈现了C++多线]]></description><category></category></item><item><title><![CDATA[Linux内核ext4 extent：解决大文件存储难题的关键]]></title><link>https://blog.csdn.net/ShuShengTuM/article/details/149183122</link><guid>https://blog.csdn.net/ShuShengTuM/article/details/149183122</guid><author>ShuShengTuM</author><pubDate>Mon, 07 Jul 2025 22:18:25 +0800</pubDate><description><![CDATA[本文深入解析了ext4文件系统的核心机制——extent。与传统ext2/ext3的直接+间接寻址相比，extent通过连续块组存储数据，显著提升了文件系统的性能。文章从历史演进角度，对比了ext2、ext3的寻址缺陷与ext4的改进，详细剖析了extent的核心数据结构（inode、extent结构体、extent_tree）及其运行机制（文件创建、读写、删除）。通过内核源码分析，揭示了extent如何优化磁盘空间利用率、减少碎片化、提高I/O效率，特别在处理大文件时表现出显著优势。extent机制体现了]]></description><category></category></item><item><title><![CDATA[从源码到实践：彻底剖析Linux进程负载均衡机制]]></title><link>https://blog.csdn.net/ShuShengTuM/article/details/149097058</link><guid>https://blog.csdn.net/ShuShengTuM/article/details/149097058</guid><author>ShuShengTuM</author><pubDate>Sat, 05 Jul 2025 17:15:00 +0800</pubDate><description><![CDATA[Linux内核CPU负载均衡机制在多核系统中发挥着关键作用，主要通过调度域和调度组层级结构实现不同CPU间的任务迁移。本文系统性地介绍了负载均衡的核心概念（包括CPU负载定义、算力评估和均衡原则）、触发机制（周期性检查和新任务创建等）以及实现方式（针对CFS和RT任务的不同策略）。文章还深入分析了中断负载均衡的实现，并探讨了异构计算系统中misfit任务处理等特殊场景。该机制通过智能调度避免了单核过载，显著提升了多核系统的资源利用率和整体性能。]]></description><category></category></item><item><title><![CDATA[深入理解Linux内核进程的创建、调度和终止]]></title><link>https://blog.csdn.net/ShuShengTuM/article/details/149096964</link><guid>https://blog.csdn.net/ShuShengTuM/article/details/149096964</guid><author>ShuShengTuM</author><pubDate>Sat, 05 Jul 2025 09:15:00 +0800</pubDate><description><![CDATA[Linux进程管理探秘：创建、调度与终止 摘要：本文深入剖析Linux内核中的进程生命周期管理机制。进程作为系统资源分配的基本单位，其管理涉及task_struct结构体、进程状态转换等核心概念。文章详细解析了三种进程创建方式（fork、vfork、clone）的实现原理，重点阐述了写时拷贝技术如何优化fork性能。在调度机制方面，介绍了CFS完全公平调度算法通过vruntime虚拟时间实现公平性，以及实时调度策略的区别。最后探讨了进程终止的流程，包括僵尸进程的产生与避免策略。通过案例分析展示了CFS如何利]]></description><category></category></item><item><title><![CDATA[一文吃透Linux同步管理，让你的系统稳如泰山]]></title><link>https://blog.csdn.net/ShuShengTuM/article/details/149096811</link><guid>https://blog.csdn.net/ShuShengTuM/article/details/149096811</guid><author>ShuShengTuM</author><pubDate>Fri, 04 Jul 2025 15:15:00 +0800</pubDate><description><![CDATA[中断是指计算机在执行程序的过程中，当出现某些紧急事件时，暂时停止当前程序的执行，转去处理这些事件，处理完毕后再返回原来的程序继续执行。比如，当有新的数据到达网络接口卡时，会产生一个中断信号，通知 CPU 进行处理。抢占则属于进程调度的概念，Linux 内核从 2.6 版本开始支持抢占调度。通俗地讲，抢占就是一个正在 CPU 上愉快运行的任务（可以是用户态进程，也可以是内核线程）被另一个通常是更高优先级的任务夺去 CPU 执行权。中断和抢占之间有着密切的关系，抢占依赖中断。]]></description><category></category></item><item><title><![CDATA[实战演练：设备树（DTS）语法详解 + LED控制实战]]></title><link>https://blog.csdn.net/ShuShengTuM/article/details/149094880</link><guid>https://blog.csdn.net/ShuShengTuM/article/details/149094880</guid><author>ShuShengTuM</author><pubDate>Fri, 04 Jul 2025 10:30:00 +0800</pubDate><description><![CDATA[本文深入解析了嵌入式开发中的设备树（DeviceTree）技术，从基础概念到实战应用全面覆盖。首先介绍了设备树诞生的背景及其在ARM架构中的引入过程，解释了DTS、DTB、DTC等关键术语。然后详细剖析了设备树语法结构，包括节点定义、属性类型、包含文件机制等核心技术要点。通过GPIO、LED等具体实例，展示了设备树节点与驱动程序的匹配机制，并提供了自定义设备树节点与驱动开发的完整示例。文章还深入讲解了节点路径、别名、复合节点等高级特性，帮助开发者理解复杂硬件关系的描述方法。全文贯穿实践导向，为嵌入式开发者提]]></description><category></category></item></channel></rss>