<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[2501_93971468的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/2501_93971468</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; 2501_93971468]]></copyright><item><title><![CDATA[【知识讲解】 Linux文件系统底层认识]]></title><link>https://blog.csdn.net/2501_93971468/article/details/166736111</link><guid>https://blog.csdn.net/2501_93971468/article/details/166736111</guid><author>2501_93971468</author><pubDate>Sun, 27 Sep 2026 15:15:03 +0800</pubDate><description><![CDATA[Linux下一切皆文件，对于文件底层的认识是非常重要的，接下来来跟随小编的视角来看看吧。let's go!!!!!!!!]]></description><category></category></item><item><title><![CDATA[【知识讲解】 Linux文件系统相关接口认识]]></title><link>https://blog.csdn.net/2501_93971468/article/details/166735706</link><guid>https://blog.csdn.net/2501_93971468/article/details/166735706</guid><author>2501_93971468</author><pubDate>Sun, 27 Sep 2026 14:09:04 +0800</pubDate><description><![CDATA[Linux下一切皆文件，认识文件系统无疑是非常重要的，接下来来跟随小编的视角来看看吧。let's go!!!!!!!!]]></description><category></category></item><item><title><![CDATA[【项目实现】 C++ vector实现（空间配置器+异常处理）]]></title><link>https://blog.csdn.net/2501_93971468/article/details/166141182</link><guid>https://blog.csdn.net/2501_93971468/article/details/166141182</guid><author>2501_93971468</author><pubDate>Sun, 20 Sep 2026 22:23:34 +0800</pubDate><description><![CDATA[最近在复习C++，复习的方式就是实现STL，结合后面异常的知识，接下来来跟随小编的视角来看看吧。let's go!!!!!!!!Part1. 整体架构概述Part1.1 核心成员变量手写Vector完全对标STL原生实现，核心依靠三个指针管控内存：_start：指向容器内存起始位置_end：指向有效元素末尾的下一位，用于记录当前元素个数_end_of_storage：指向总内存容量末尾的下一位，用于记录内存总大小三者的关系直接决定了Vector的两大核心属性：除此之外，保留。]]></description><category></category></item><item><title><![CDATA[【项目实现】 Linux自定义shell实现]]></title><link>https://blog.csdn.net/2501_93971468/article/details/166016819</link><guid>https://blog.csdn.net/2501_93971468/article/details/166016819</guid><author>2501_93971468</author><pubDate>Sun, 20 Sep 2026 21:24:07 +0800</pubDate><description><![CDATA[前面学了这么多知识，我们可以写一个简易的自定义myshell来复习一波，接下来来跟随小编的视角来看看吧。let's go!!!!!!!!Part1. Shell 核心原理前置知识Shell 本质就是运行在用户态的命令行解释程序，它的核心工作流程固定：打印提示符，读取用户输入一行命令；解析命令字符串，切割成 argv 参数数组；识别特殊语法：重定向> >> <；识别别名 alias，替换原始命令；]]></description><category></category></item><item><title><![CDATA[【知识讲解】 Linux程序替换相关接口讲解]]></title><link>https://blog.csdn.net/2501_93971468/article/details/165236492</link><guid>https://blog.csdn.net/2501_93971468/article/details/165236492</guid><author>2501_93971468</author><pubDate>Sun, 13 Sep 2026 16:19:52 +0800</pubDate><description><![CDATA[Linux系统中，我们可以进行程序的替换，对于他的理解是非常重要的，接下来来跟随小编的视角来看看吧。let's go!!!!!!!!在 Linux 中，fork() 只能创建一个和父进程代码相同的子进程。如果想让子进程去运行另一个全新的程序，就需要使用 exec 系列函数。exec 的作用不是创建新进程，而是：把当前进程的代码段、数据段、堆、栈替换成新程序，让这个进程转而运行另一个程序。]]></description><category></category></item><item><title><![CDATA[【知识讲解】 Linux进程的回收相关接口了解]]></title><link>https://blog.csdn.net/2501_93971468/article/details/165232785</link><guid>https://blog.csdn.net/2501_93971468/article/details/165232785</guid><author>2501_93971468</author><pubDate>Sun, 13 Sep 2026 15:46:17 +0800</pubDate><description><![CDATA[Linux系统中，进程的回收就相当于C语言的free，为了避免资源的浪费，对于他的理解是非常重要的，接下来来跟随小编的视角来看看吧。let's go!!!!!!!!]]></description><category></category></item><item><title><![CDATA[【知识讲解】 Linux进程认识及深度理解]]></title><link>https://blog.csdn.net/2501_93971468/article/details/164432025</link><guid>https://blog.csdn.net/2501_93971468/article/details/164432025</guid><author>2501_93971468</author><pubDate>Sun, 06 Sep 2026 23:59:04 +0800</pubDate><description><![CDATA[Linux系统中，执行任务的基本是进程，对于他的理解是非常重要的，接下来来跟随小编的视角来看看吧。let's go!!!!!!!!1. fork失败两大原因：系统进程数上限、内存不足。shell内置命令不创建子进程。2. 进程退出分正常退出（return/exit）、信号异常崩溃。退出码保存在内核task_struct。3. 僵尸进程：子进程退出，父进程没有wait回收，残留task_struct。4. wait：阻塞等待任意子进程；waitpid可以指定子进程，支持WNOHANG非阻塞轮询。]]></description><category></category></item><item><title><![CDATA[【知识讲解】 Linux虚拟地址空间认识]]></title><link>https://blog.csdn.net/2501_93971468/article/details/164430475</link><guid>https://blog.csdn.net/2501_93971468/article/details/164430475</guid><author>2501_93971468</author><pubDate>Sun, 06 Sep 2026 21:23:38 +0800</pubDate><description><![CDATA[在Linux操作系统中，认识虚拟地址空间是认识Linux内存管理非常重要的一部分，接下来来跟随小编的视角来看看吧。let's go!!!!!!!!Part1. 虚拟地址空间基础一个进程对应一份虚拟地址空间。• 32位机器：虚拟地址总空间 2^{32}，大小4GB。0~3G；3G~4G。◦ 注意：内核空间，本质也是拿用户空间的虚拟地址去访问。• 64位机器：拥有巨大的虚拟地址范围。对于一个变量：1. 变量拥有物理地址；同时，在所属进程的虚拟地址空间内，拥有虚拟地址。2. 每个进程。]]></description><category></category></item><item><title><![CDATA[【知识讲解】 Linux环境变量的认识与使用]]></title><link>https://blog.csdn.net/2501_93971468/article/details/164428781</link><guid>https://blog.csdn.net/2501_93971468/article/details/164428781</guid><author>2501_93971468</author><pubDate>Sun, 06 Sep 2026 17:53:51 +0800</pubDate><description><![CDATA[在Linux中环境变量是非常重要的存在，接下来来跟随小编的视角来理解一下吧。let's go!!!!!!!!Part1. main函数命令行参数i < argc;//argc：argument count，命令行参数个数。//argv：argument vector，字符串数组，存放每一个命令参数。示例：./exe a b• argc = 3• argv[0] = "./exe"，永远是程序本身名字• argv[3] = NULL，数组末尾以NULL结尾。]]></description><category></category></item><item><title><![CDATA[【知识讲解】 Linux孤儿进程与进程优先级切换调度]]></title><link>https://blog.csdn.net/2501_93971468/article/details/164187820</link><guid>https://blog.csdn.net/2501_93971468/article/details/164187820</guid><author>2501_93971468</author><pubDate>Sun, 30 Aug 2026 13:07:46 +0800</pubDate><description><![CDATA[这篇文章我们来认识一下孤儿进程与进程优先级切换调度，接下来来跟随小编的视角来学习一下吧let's go!!!!!!!!Part1. 孤儿进程父进程先于子进程死亡子进程就变成孤儿进程。1.孤儿进程会被pid=1的init/systemd进程领养，成为init的子进程。2. 为什么需要领养？如果不领养，当子进程退出之后，没有父进程回收，孤儿进程就会变成僵尸进程，持续占用PCB资源。3. 领养之后，init进程作为父进程，会自动回收孤儿进程退出后的资源。4. 孤儿进程会自动变为后台进程。]]></description><category></category></item><item><title><![CDATA[【知识讲解】 Linux进程的状态及其之间的转化]]></title><link>https://blog.csdn.net/2501_93971468/article/details/164174634</link><guid>https://blog.csdn.net/2501_93971468/article/details/164174634</guid><author>2501_93971468</author><pubDate>Sun, 30 Aug 2026 01:23:56 +0800</pubDate><description><![CDATA[这篇文章我们来进一步认识进程的状态以及之间的转化，接下来来跟随小编的视角来认识一下进程的概念吧。let's go!!!!!!!!Part1. 进程状态进程状态是PCB中的属性，用来表征进程当前的情况，状态之间可以相互转化。Part1.1.运行状态只要进程在调度队列中，就属于运行状态。不一定正在CPU上跑，只要被放进CPU调度队列，就标记为R运行态。Part1.2. 阻塞状态进程等待某种外部条件/硬件资源就绪，例如键盘输入、磁盘IO、网卡数据。scanf / cin等待用户输入。]]></description><category></category></item><item><title><![CDATA[【知识讲解】 Linux进程的认识与创建]]></title><link>https://blog.csdn.net/2501_93971468/article/details/164174268</link><guid>https://blog.csdn.net/2501_93971468/article/details/164174268</guid><author>2501_93971468</author><pubDate>Sun, 30 Aug 2026 00:00:27 +0800</pubDate><description><![CDATA[在Linux的学习中认识进程是至关重要的一环，所以接下来来跟随小编的视角来认识一下进程的概念吧。let's go!!!!!!!!Part1. 进程概念正在运行的程序磁盘上存放的是可执行程序，当程序被加载到内存之后，就变成进程。操作系统中会同时运行大量进程操作系统维护一个结构体，存放进程全部信息：代码地址、数据地址、pid等。：Linux下的进程控制块。PCB + 代码和数据= 进程PCB（task_struct）是内核用来管理进程的结构体，PCB是对进程的描述，进程真正的代码、数据在内存当中。]]></description><category></category></item><item><title><![CDATA[【项目分享-知识讲解】 Linux第一个项目--进度条的实现与解析]]></title><link>https://blog.csdn.net/2501_93971468/article/details/163983004</link><guid>https://blog.csdn.net/2501_93971468/article/details/163983004</guid><author>2501_93971468</author><pubDate>Sun, 23 Aug 2026 17:56:09 +0800</pubDate><description><![CDATA[进度条相信大家都不陌生，在下载资源的时候经常会见到，所以我们也来模拟实现一下进度条的表现吧。let's go!!!!!!!!Part1. 效果展示Part2. 效果分析<1>:模拟实现下载完后的流程，也就是显示下载完毕和下载了多少资源，也可以显示速度。<2>:随着下载的进行，显示符号，表示下载进度。<3>:显示下载了多少资源，以百分比的形式呈现。<4>: 用一根斜杠不断旋转表示下载的不断进行。也就是我们要用代码来实现各个模块。Part3. 代码解析。]]></description><category></category></item><item><title><![CDATA[【Linux】 开发工具（Makefile、git、cgdb）解析与对于操作系统的基础认识]]></title><link>https://blog.csdn.net/2501_93971468/article/details/163958752</link><guid>https://blog.csdn.net/2501_93971468/article/details/163958752</guid><author>2501_93971468</author><pubDate>Sat, 22 Aug 2026 01:53:00 +0800</pubDate><description><![CDATA[对于开发工具的熟练使用和Linux操作系统的理解是非常重要的，来跟随小编的视角来看看吧。let's go!!!!!!!!Part1.1. 基础语法目标: 依赖命令示例：逻辑：如果code.c修改过，则执行gcc编译，生成可执行文件code。clean:rm -f code<1>.PHONY声明这是伪目标直接执行命令。<2> 执行清理：make cleanPart1.3. Make增量编译原理make依靠文件修改时间戳判断要不要执行规则：<1>]]></description><category></category></item><item><title><![CDATA[【Linux】 编译与动静态库相关]]></title><link>https://blog.csdn.net/2501_93971468/article/details/163958127</link><guid>https://blog.csdn.net/2501_93971468/article/details/163958127</guid><author>2501_93971468</author><pubDate>Sat, 22 Aug 2026 00:45:45 +0800</pubDate><description><![CDATA[在Linux中对于编译以及动静态库的理解是非常重要的，因此来跟随小编的视角来看看吧。let's go!!!!!!!!Part1. GCC四个编译阶段Part1.1. 预处理对x.c执行预处理，输出预处理结果保存到y.i。头文件展开宏替换条件编译处理删除注释。Part1.2. 编译将C代码翻译成汇编代码，汇编结果保存到y.s。Part1.3. 汇编汇编完成，生成.o目标文件，内容为二进制机器指令，但还不能直接运行，缺少链接步骤。先生成.o目标文件，再通过链接生成可执行程序exe。。]]></description><category></category></item><item><title><![CDATA[【知识讲解】 Linux中vim编辑器的学习与使用]]></title><link>https://blog.csdn.net/2501_93971468/article/details/163783161</link><guid>https://blog.csdn.net/2501_93971468/article/details/163783161</guid><author>2501_93971468</author><pubDate>Sun, 16 Aug 2026 01:42:57 +0800</pubDate><description><![CDATA[vim编辑器的使用是非常重要的，来跟随小编的视角来看看吧。let's go!!!!!!!!Part1. Linux软件安装方式Linux软件主要三类安装方式<1>源码安装：下载源代码本地编译<2>软件包安装：deb/rpm包，手动安装<3>包管理器（apt）：自动处理依赖，从软件源服务器批量下载安装，把文件部署到系统各个目录。系统目录分工：有的存放可执行程序，有的存放库文件，各自有默认权限。•系统级安装：放到系统公共目录，所有用户都可以使用。•用户级安装。]]></description><category></category></item><item><title><![CDATA[【知识讲解】 Linux权限相关知识讲解]]></title><link>https://blog.csdn.net/2501_93971468/article/details/163762875</link><guid>https://blog.csdn.net/2501_93971468/article/details/163762875</guid><author>2501_93971468</author><pubDate>Sat, 15 Aug 2026 00:06:14 +0800</pubDate><description><![CDATA[在Linux中对于权限的理解是非常重要的，因此来跟随小编的视角来看看吧。let's go!!!!!!!!Part1. Shell、用户与内核交互Part1.1. Shell介绍用户 → shell → 操作系统内核>>Shell接收用户输入指令，把请求交给内核；内核完成处理，再将结果返回Shell，展示给用户。Shell的两个核心作用：<1>给人类提供便捷的操作交互接口；<2>隔离保护内核，用户不能直接操作内核，全部请求经过Shell转发。Shell只是外层交互程序。]]></description><category></category></item><item><title><![CDATA[【知识讲解】 Linux文件、命令与系统]]></title><link>https://blog.csdn.net/2501_93971468/article/details/163734804</link><guid>https://blog.csdn.net/2501_93971468/article/details/163734804</guid><author>2501_93971468</author><pubDate>Thu, 13 Aug 2026 23:27:53 +0800</pubDate><description><![CDATA[Linux相关知识非常的繁杂，想要系统的了解它们还是比较吃力的，接下来跟队小编的视角来理解一下吧。let's go!!!!!!!!Part1. 文件操作命令<1> mv 移动/重命名mv x y1.如果y是已存在目录：把x移动进y目录内2.如果y不存在：将x重命名为y<2> cat 输出文件全部内容cat -n x# 显示并且打印行号tac x# 反向打印文件，倒序输出<3> history 查看历史命令history系统会记录你执行过的全部终端命令。]]></description><category></category></item><item><title><![CDATA[【知识讲解】 Linux基础指令的了解]]></title><link>https://blog.csdn.net/2501_93971468/article/details/163611613</link><guid>https://blog.csdn.net/2501_93971468/article/details/163611613</guid><author>2501_93971468</author><pubDate>Sun, 09 Aug 2026 14:14:28 +0800</pubDate><description><![CDATA[Linux相关知识非常庞大，要想掌握他们，我们可以先从基础的指令开始了解，我们来看看吧。let's go!!!!!!!!Part1. cp 拷贝命令<1>cp x y：把文件 x 拷贝到 y，如果 y 不存在则自动创建；支持绝对路径、相对路径。<2>cp -r x y：拷贝目录必须加 -r（递归拷贝），因为目录是树形递归结构。<3>cp -f：强制覆盖已存在的目标文件，不弹出询问确认。Part2. 编辑器nano、vim。]]></description><category></category></item><item><title><![CDATA[【知识讲解】 Linux漫漫长路的起始--基础命令的了解]]></title><link>https://blog.csdn.net/2501_93971468/article/details/163596920</link><guid>https://blog.csdn.net/2501_93971468/article/details/163596920</guid><author>2501_93971468</author><pubDate>Sun, 09 Aug 2026 02:11:57 +0800</pubDate><description><![CDATA[cp mycmd /usr/bin/，把自制程序放到系统命令目录，全局任意目录都能直接输入名字运行（相当于自制系统命令）这篇文章我们认识到了Linux命令相关知识，接下来，小编还会带来更多有关的知识，敬请期待~从根目录 / 开始写完整路径，配置文件、脚本里优先使用，保证路径永远不会出错。临时生效，系统重启/重新登录后别名会消失，想要永久生效需要写入配置文件。Linux 路径分隔符是 /，Windows 是 \，不要混用。]]></description><category></category></item></channel></rss>