<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[lingran__的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/lingran__</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lingran__]]></copyright><item><title><![CDATA[Linux进程万字详解（六）｜手写Shell命令解释器：从进程控制到用户交互的完整实现]]></title><link>https://blog.youkuaiyun.com/lingran__/article/details/170200021</link><guid>https://blog.youkuaiyun.com/lingran__/article/details/170200021</guid><author>lingran__</author><pubDate>Fri, 06 Nov 2026 21:02:22 +0800</pubDate><description><![CDATA[本文基于前五篇Linux进程管理知识，手把手实现一个简易Shell命令解释器。深入讲解Shell的REPL架构、内建命令与外部命令的本质区别，详解fork创建子进程、execvp程序替换、waitpid进程等待的协作流程。通过cd、echo等内建命令的实现，揭示为什么某些命令必须在当前进程执行；通过环境变量的独立管理，展示进程地址空间与页表映射的实际应用。文章将进程创建、终止、等待、替换、虚拟地址空间等理论知识融会贯通，形成完整的进程控制认知闭环，并给出重定向、管道、后台执行等扩展方向。]]></description><category></category></item><item><title><![CDATA[Linux进程万字详解（五） | 进程控制全解析：创建、终止、等待与程序替换]]></title><link>https://blog.youkuaiyun.com/lingran__/article/details/169069670</link><guid>https://blog.youkuaiyun.com/lingran__/article/details/169069670</guid><author>lingran__</author><pubDate>Tue, 03 Nov 2026 22:24:13 +0800</pubDate><description><![CDATA[本文系统讲解 Linux 进程控制的四大核心机制：进程创建、进程终止、进程等待与进程程序替换。深入剖析 fork 的写时拷贝原理，揭示内核通过页表权限陷阱实现延迟拷贝的精妙设计；解读进程退出码的位图结构与 errno 错误码体系，区分 exit 与 _exit 的缓冲区差异；详解 wait/waitpid 的状态位图解析与 WIFEXITED/WEXITSTATUS 宏封装，对比阻塞等待与非阻塞轮询的实现模式；完整梳理 execl/execv/execvp/execve 等六种 exec 系列函数的参数风格]]></description><category></category></item><item><title><![CDATA[Linux进程万字详解（四） | 进程地址空间深度剖析：虚拟内存、页表映射与缺页中断]]></title><link>https://blog.youkuaiyun.com/lingran__/article/details/168772231</link><guid>https://blog.youkuaiyun.com/lingran__/article/details/168772231</guid><author>lingran__</author><pubDate>Sun, 25 Oct 2026 21:50:54 +0800</pubDate><description><![CDATA[本文深入剖析 Linux 进程地址空间的核心机制，从一段 C 程序打印内存地址的实验出发，直观展示代码段、数据段、堆栈区的布局规律；通过父子进程共享同一虚拟地址却存储不同数据的奇妙现象，证明虚拟地址与物理地址的分离本质；深入内核源码解读 mm_struct 与 vm_area_struct 的数据结构设计，详解页表映射、写时拷贝、缺页中断的实现原理；揭示虚拟地址空间将物理内存无序变为有序、保护内存安全、解耦进程管理与内存管理三大核心意义；最后探讨延迟分配、进程挂起、vm_area_struct 链表与红黑树]]></description><category></category></item><item><title><![CDATA[Linux环境变量万字详解 | 从命令行参数到进程继承，PATH、environ与内建命令的底层原理]]></title><link>https://blog.youkuaiyun.com/lingran__/article/details/168240295</link><guid>https://blog.youkuaiyun.com/lingran__/article/details/168240295</guid><author>lingran__</author><pubDate>Thu, 22 Oct 2026 14:46:00 +0800</pubDate><description><![CDATA[本文系统讲解Linux环境变量的核心机制，从命令行参数的切分原理切入，深入剖析Bash内部三张表（命令行参数表、环境变量表、本地变量表）的存储结构。通过PATH环境变量揭示系统命令查找的底层逻辑，详解env/export/unset等操作的实现原理。重点讲解三种代码获取环境变量的方法：main函数第三个参数、getenv系统调用与environ全局变量，并基于USER环境变量实现访问控制的实战案例。最后探讨环境变量的全局继承性、写时拷贝机制，以及export作为内建命令的特殊性，帮助读者建立完整的Linux]]></description><category></category></item><item><title><![CDATA[Linux进程万字详解（三）｜ 进程优先级、上下文切换与大O(1)调度算法深度剖析]]></title><link>https://blog.youkuaiyun.com/lingran__/article/details/167805481</link><guid>https://blog.youkuaiyun.com/lingran__/article/details/167805481</guid><author>lingran__</author><pubDate>Thu, 15 Oct 2026 16:48:02 +0800</pubDate><description><![CDATA[本文深入剖析 Linux 进程管理的三大核心机制：优先级、切换与调度。从食堂排队的现实类比出发，揭示 PRI/NI 双变量设计的底层考量；通过"大学生保留学籍"的生动故事，图解 CPU 寄存器上下文保存与恢复的全过程；最终深入 Linux 内核 runqueue 结构体，拆解 bitmap 位图、双队列轮转与大 O(1) 调度算法的工程实现。文章涵盖 ps/top/nice/renice 实战操作、TSS 任务状态段、current 全局指针、多 CPU 负载均衡等关键技术点，从硬件原理到内核源码，建立完整]]></description><category></category></item><item><title><![CDATA[Linux进程万字详解（二）｜进程状态深度剖析：调度队列、内核链表、D状态设计哲学、僵尸孤儿进程与Slab机制]]></title><link>https://blog.youkuaiyun.com/lingran__/article/details/167585852</link><guid>https://blog.youkuaiyun.com/lingran__/article/details/167585852</guid><author>lingran__</author><pubDate>Tue, 13 Oct 2026 14:06:26 +0800</pubDate><description><![CDATA[本文深入剖析 Linux 六大进程状态（R/S/D/T/t/X/Z）的底层实现与极端场景。从调度队列、设备等待队列到 swap 交换分区的换入换出，揭示 PCB 流动的数据结构本质；解读内核 list_head 链表设计，理解 task_struct 如何同时隶属多个数据结构；深度讲解 D 状态（磁盘休眠）的设计背景——为何操作系统无权杀掉深度睡眠进程，以及高 IO 场景下的数据保护机制；通过父子进程实验验证僵尸进程的内存泄漏危害、孤儿进程的 1 号进程领养机制；最后拓展 Slab 分配器优化 PCB 复用]]></description><category></category></item><item><title><![CDATA[Linux进程万字详解（一）｜冯诺依曼体系结构、OS底层原理、进程控制块、进程基本概念与基本操作]]></title><link>https://blog.youkuaiyun.com/lingran__/article/details/167172778</link><guid>https://blog.youkuaiyun.com/lingran__/article/details/167172778</guid><author>lingran__</author><pubDate>Sun, 11 Oct 2026 14:47:11 +0800</pubDate><description><![CDATA[本文系统讲解 Linux 进程管理的核心基础，从计算机底层体系结构出发，深入剖析冯·诺依曼体系结构的数据流动本质，揭示操作系统"先描述再组织"的管理哲学。文章涵盖进程控制块（PCB/task_struct）的完整属性解析、进程查看的多种方式（ps/proc）、父子进程关系溯源，以及通过 fork 系统调用创建子进程的底层原理与写时拷贝机制。配合大量终端实操示例与 C/C++ 代码演示，帮助读者建立从硬件到软件、从理论到实践的完整认知框架，为后续进程状态、进程调度、进程间通信等进阶内容打下坚实基础。]]></description><category></category></item><item><title><![CDATA[Linux 基础开发工具万字详解 | vim/gcc/make/gdb工具链搭建，附底层原理与实战案例]]></title><link>https://blog.youkuaiyun.com/lingran__/article/details/164453919</link><guid>https://blog.youkuaiyun.com/lingran__/article/details/164453919</guid><author>lingran__</author><pubDate>Sat, 03 Oct 2026 23:21:05 +0800</pubDate><description><![CDATA[本文系统讲解Linux下C/C++开发的核心工具链，涵盖软件包管理（yum/apt）、编辑器Vim、编译器gcc/g++、自动化构建工具make/Makefile、进度条程序实现、版本控制Git以及调试器gdb/cgdb的使用。从基础概念到实战操作，配合大量代码示例和命令输出，帮助读者快速搭建完整的Linux开发环境，掌握从编码到调试的全流程开发技能。]]></description><category></category></item><item><title><![CDATA[Linux权限管理万字详解｜用户体系、角色属性与多用户协作，结合底层原理剖析]]></title><link>https://blog.youkuaiyun.com/lingran__/article/details/164395167</link><guid>https://blog.youkuaiyun.com/lingran__/article/details/164395167</guid><author>lingran__</author><pubDate>Sun, 06 Sep 2026 23:32:04 +0800</pubDate><description><![CDATA[本文系统讲解 Linux 权限体系的完整知识链。从超级用户与普通用户的区别出发，深入剖析 su、sudo 等提权机制；建立"权限 = 角色 + 目标属性"的核心理论框架，详解拥有者、所属组、Other 三种角色与读、写、执行三种属性的结合方式；通过 chmod、chown、chgrp 等命令实现权限与归属的实战修改；深入目录权限、umask 默认权限、粘滞位等进阶机制；最终落实到多用户文件级协作的最佳实践，帮助读者构建完整的 Linux 权限管理知识体系。]]></description><category></category></item><item><title><![CDATA[Git 完全指南（五）：企业级开发模型]]></title><link>https://blog.youkuaiyun.com/lingran__/article/details/164370384</link><guid>https://blog.youkuaiyun.com/lingran__/article/details/164370384</guid><author>lingran__</author><pubDate>Fri, 04 Sep 2026 17:44:57 +0800</pubDate><description><![CDATA[本文是《Git 完全指南》系列第五篇，系统讲解企业级 Git 开发模型。从软件工程演进出发，介绍 DevOps 文化与多环境部署体系，深入剖析 Git Flow 分支设计模型（master、develop、feature、release、hotfix）的职责与规范。通过 Gitee 企业版实操演示，展示新需求开发、测试环境 Bug 修复、预发布环境验证、正式环境紧急修复等完整工作流。帮助读者理解企业级代码管理的标准化流程，为团队协作和项目管理提供专业指导。]]></description><category></category></item><item><title><![CDATA[Git 完全指南（四）：多人协作与冲突解决]]></title><link>https://blog.youkuaiyun.com/lingran__/article/details/164336148</link><guid>https://blog.youkuaiyun.com/lingran__/article/details/164336148</guid><author>lingran__</author><pubDate>Fri, 04 Sep 2026 15:39:05 +0800</pubDate><description><![CDATA[本文是《Git 完全指南》系列第四篇，深入讲解多人协作的两种核心模式：同一分支协作与不同分支协作。通过 Linux + Windows 双环境模拟真实开发场景，涵盖远程分支创建、本地分支与远程分支关联、推送冲突处理、合并冲突解决、功能分支开发流程等实战技巧。进一步介绍远程分支清理、Pull Request 工作流等企业级协作规范，帮助读者掌握团队开发的核心技能。]]></description><category></category></item><item><title><![CDATA[Git 完全指南（三）：远程仓库与标签管理]]></title><link>https://blog.youkuaiyun.com/lingran__/article/details/164298768</link><guid>https://blog.youkuaiyun.com/lingran__/article/details/164298768</guid><author>lingran__</author><pubDate>Thu, 03 Sep 2026 11:05:02 +0800</pubDate><description><![CDATA[本文是《Git 完全指南》系列第三篇，系统讲解 Git 远程操作与标签管理。从分布式版本控制的核心思想出发，涵盖 Gitee 远程仓库创建、HTTPS/SSH 克隆、推送与拉取操作、.gitignore 文件配置、命令别名设置等完整流程。进一步深入标签（Tag）管理机制，包括创建、查看、推送、删除标签的实战技巧，帮助读者建立从本地到远程的完整 Git 工作流。]]></description><category></category></item><item><title><![CDATA[Git 完全指南（二）：分支管理]]></title><link>https://blog.youkuaiyun.com/lingran__/article/details/164287677</link><guid>https://blog.youkuaiyun.com/lingran__/article/details/164287677</guid><author>lingran__</author><pubDate>Wed, 02 Sep 2026 15:28:41 +0800</pubDate><description><![CDATA[本文是《Git 完全指南》系列第二篇，深入讲解 Git 分支管理的核心机制与实战技巧。从分支的底层原理出发，涵盖创建、切换、合并、删除等基础操作，详解 Fast-forward 与非 Fast-forward 合并模式的差异，以及合并冲突的解决方法。进一步探讨企业级分支策略、Bug 分支的 git stash 工作流、强制删除等高级场景，帮助读者建立规范的分支管理思维，为团队协作打下坚实基础。]]></description><category></category></item><item><title><![CDATA[每日算法精讲 Day 5 | leetcode 209. 长度最小的子数组、leetcode 3. 无重复字符的最长子串、leetcode 1004. 最大连续1的个数 III]]></title><link>https://blog.youkuaiyun.com/lingran__/article/details/164186129</link><guid>https://blog.youkuaiyun.com/lingran__/article/details/164186129</guid><author>lingran__</author><pubDate>Tue, 01 Sep 2026 21:11:21 +0800</pubDate><description><![CDATA[本文以三道 LeetCode 经典题目（209. 长度最小的子数组、3. 无重复字符的最长子串、1004. 最大连续1的个数 III）为载体，系统讲解了滑动窗口（双指针）算法的核心思想与应用技巧。文章从"正数数组的单调性"切入，逐步过渡到"哈希判重"与"状态标记转化约束"，由浅入深地展示了滑动窗口在子数组/子串最值问题中的通用解题框架。每道题均包含完整的题目分析、逻辑推导、代码实现及复杂度分析，最终总结出滑动窗口的关键要点：识别单调性、定义合法性条件、保证指针单向移动。]]></description><category></category></item><item><title><![CDATA[Git 完全指南（一）：本地仓库基础操作]]></title><link>https://blog.youkuaiyun.com/lingran__/article/details/164151446</link><guid>https://blog.youkuaiyun.com/lingran__/article/details/164151446</guid><author>lingran__</author><pubDate>Tue, 01 Sep 2026 19:32:09 +0800</pubDate><description><![CDATA[本文从零开始系统讲解 Git 版本控制工具，涵盖安装配置、本地仓库创建、工作区/暂存区/版本库核心概念、文件添加与修改、版本回退、撤销修改、删除文件等完整操作流。通过大量命令行实例和原理剖析，帮助读者建立对 Git 工作机制的深入理解，为团队协作和项目管理打下坚实基础。]]></description><category></category></item><item><title><![CDATA[每日算法精讲 Day 4 | Leetcode LCR 179. 查找总价格为目标值的两个商品 和 Leetcode 15. 三数之和 和 Leetcode 18.四数之和]]></title><link>https://blog.youkuaiyun.com/lingran__/article/details/164172235</link><guid>https://blog.youkuaiyun.com/lingran__/article/details/164172235</guid><author>lingran__</author><pubDate>Sat, 29 Aug 2026 23:15:39 +0800</pubDate><description><![CDATA[本文讲解"排序+双指针"解决"和为目标值"类问题：两数之和（LCR 179）直接左右指针夹逼，O(N)/O(1)；三数之和（15）固定一个数后双指针找两数，用 set 或指针去重；四数之和（18）固定两个数再双指针，纯指针去重，O(N³)/O(1)。核心是"降维+去重"，由浅入深层层嵌套，写码注意边界与去重细节。]]></description><category></category></item><item><title><![CDATA[每日算法精讲 Day 3(双指针基础) | 移动零 复写零 与 LeetCode 202. 快乐数 与 LeetCode 11.盛最多水的容器 与 LeetCode 611 有效三角形的个数]]></title><link>https://blog.youkuaiyun.com/lingran__/article/details/164095238</link><guid>https://blog.youkuaiyun.com/lingran__/article/details/164095238</guid><author>lingran__</author><pubDate>Fri, 28 Aug 2026 15:35:32 +0800</pubDate><description><![CDATA[双指针算法是面试中的高频考点，本文精选 LeetCode 5 道经典题目，从入门到进阶带你彻底掌握：
283. 移动零 — 同向双指针，快排分区思想原地交换
1089. 复写零 — 逆向双指针，避免覆盖先找边界
202. 快乐数 — 快慢指针判环，Floyd 循环检测
11. 盛最多水的容器 — 对向双指针，贪心移动短板
611. 有效三角形的个数 — 排序+双向指针，O(N²) 优雅降维
每道题均包含思路图解 + AC 代码 + 复杂度分析，全文 O(1) 空间复杂度解法，助你面试秒杀双指针题型！]]></description><category></category></item><item><title><![CDATA[Linux 基础常用指令万字详解（下）｜一切皆文件：重定向、管道、日志 与 Shell 原理]]></title><link>https://blog.youkuaiyun.com/lingran__/article/details/164075283</link><guid>https://blog.youkuaiyun.com/lingran__/article/details/164075283</guid><author>lingran__</author><pubDate>Fri, 28 Aug 2026 12:03:47 +0800</pubDate><description><![CDATA[本文系统梳理 Linux 常用指令，涵盖 Shell 原理、文件操作（mv、cat、head/tail）、重定向与管道、文本过滤（grep、find）、打包压缩（zip、tar）、系统信息查询（uname、date）等核心内容。从"一切皆文件"的底层理念切入，深入讲解重定向、管道的实现机制，并结合大量终端实操示例，帮助读者建立完整的 Linux 命令行知识体系。]]></description><category></category></item><item><title><![CDATA[每日算法精讲 Day 2 | BITKY120 单词识别 与 LeetCode 53. 最大子数组和 与 LeetCode 152. 乘积最大子数组 与 LeetCode 918. 环形子数组的最大和]]></title><link>https://blog.youkuaiyun.com/lingran__/article/details/164049031</link><guid>https://blog.youkuaiyun.com/lingran__/article/details/164049031</guid><author>lingran__</author><pubDate>Tue, 25 Aug 2026 19:01:34 +0800</pubDate><description><![CDATA[本文解析了四道子数组相关题目：1. 牛客「单词识别」：字符串处理题，通过map统计词频后自定义排序输出；2. LeetCode53.最大子数组和：Kadane算法模板题，用动态规划或滚动变量求连续子数组最大和；3. LeetCode152.乘积最大子数组：需同时维护最大/最小乘积状态，处理负数相乘变正的特殊情况；4. LeetCode918.环形子数组最大和：拆解为不跨环（直接Kadane）和跨环（总和减最小子数组）两种情况。四题均实现O(n)时间优化，其中53、152、918题可优化至O(1)空间。子数组]]></description><category></category></item><item><title><![CDATA[每日算法精讲 Day 1 | 双指针、摩尔投票、滚动数组：三道题搞懂数组原地操作]]></title><link>https://blog.youkuaiyun.com/lingran__/article/details/164026979</link><guid>https://blog.youkuaiyun.com/lingran__/article/details/164026979</guid><author>lingran__</author><pubDate>Mon, 24 Aug 2026 21:13:04 +0800</pubDate><description><![CDATA[LeetCode 26.删除有序数组中的重复项、LeetCode 17.电话号码的字母组合及牛客「数组中出现次数超过一半的数字」精讲。本文详解双指针、摩尔投票与滚动数组三大核心算法，提供完整 C++ AC 代码及时间复杂度、空间复杂度分析。从基础思路到最优解法，帮你建立数组原地操作的解题框架。适合算法面试与秋招春招复习，代码模板可直接复用。关注我，每日更新高频算法题精讲，陪你系统提升编程能力。]]></description><category></category></item></channel></rss>