- 博客(31)
- 收藏
- 关注
原创 Git系统篇,Git远程仓库(四):多人协作开发的完整流程
本文系统讲解了Git多人协作开发的全流程:从同分支协作的推送与冲突处理,到不同分支(如feature分支)的并行开发;介绍了合并至master的最佳实践,以及如何协助他人继续开发;最后说明了清理失效远程分支的方法。通过掌握这些技巧,开发者可实现高效、有序的团队协作,真正发挥Git在项目管理中的核心价值。
2026-10-14 23:09:18
40
原创 Git系统篇,Git远程仓库(三):本地仓库与远程仓库的交互
本文系统讲解Git远程协作核心流程:基于分布式版本控制,通过克隆远程仓库(如Gitee)实现代码共享。重点介绍SSH与HTTPS协议差异,配置SSH Key提升推送效率,并掌握git clone、git push、git pull等关键命令。结合.gitignore忽略文件与别名设置,构建高效协同开发环境,实现多成员无缝协作。
2026-10-13 21:59:06
274
原创 Git系统篇,Git本地使用(二):版本回退、分支管理与标签
本文系统讲解Git核心操作:通过git reset实现版本回退(三种模式),利用git reflog找回误删提交;掌握撤销工作区与暂存区修改的方法;深入理解分支机制,实现创建、切换、合并与删除分支,并处理合并冲突;最后介绍git stash临时储藏及标签管理。内容实用,助你高效掌控代码版本控制。
2026-10-12 23:22:48
77
原创 Git系统篇,Git本地使用(一):从“究极进化版“到三个区域的底层原理
本文系统讲解Git本地版本管理的核心概念与操作。从版本控制器的必要性出发,介绍Git安装与基础配置,重点剖析工作区、暂存区、版本库三者协作机制,并通过add、commit、status、diff、log等核心命令,演示文件版本控制全流程。结合.git目录结构深入理解Git底层原理,帮助开发者掌握高效、安全的代码管理方法。
2026-10-12 00:12:41
126
原创 Linux系统篇,进程概念(五):进程切换的研究、O(1)调度算法的数据结构和细节体现
本文深入解析进程调度的核心机制,从进程间的竞争、并发与并行关系出发,详解进程切换的原理。重点阐述了时间片轮转、寄存器上下文保存与恢复、进程上下文组成(硬件、用户级、系统级)及切换过程,并通过“张嘎当兵”类比生动展示上下文切换逻辑。最后介绍Linux O(1)调度器如何通过活跃与过期队列实现高效优先级调度,揭示操作系统在多任务环境下实现公平、高效运行的底层奥秘。
2026-09-21 20:52:52
244
原创 Linux系统篇,进程概念(四):内核链表的深度理解、进程优先级的底层理解
本文系统讲解了进程优先级与内核链表机制。通过分析传统链表的局限性,引出Linux采用“连接器结构”的高效设计,实现PCB的灵活管理与数据流动。在此基础上,深入解析进程优先级的本质——决定CPU资源分配顺序,并区分其与权限的区别。结合分时系统与时间片轮转机制,阐明“宏观并行、微观串行”的运行特性。最后介绍优先级的查看(ps -al)与修改方法(nice、renice),揭示PRI = 80 + NI的计算逻辑,强调普通用户仅可增大NI值,体现系统安全策略。
2026-09-19 00:00:46
197
原创 Linux系统篇,进程概念(三):进程状态详解、僵尸进程与孤儿进程的深度解析、Slab机制的了解
本文围绕 Linux 进程状态展开系统讲解,从课本三态模型出发,对比 Linux 内核实际定义的七种状态:R(运行/就绪)、S(可中断睡眠)、D(不可中断睡眠)、T(停止)、t(追踪停止)、X(死亡)、Z(僵尸)。深入分析了进程在运行、阻塞、挂起之间的转换机制,阐明调度队列与等待队列的作用,以及交换分区在内存不足时的挂起流程。同时重点剖析了两种特殊进程——僵尸进程(子进程先退出但父进程未回收,导致 PCB 残留内核引发内存泄漏)和孤儿进程(父进程先退出,子进程被 1 号进程 systemd 领养并负责回收)
2026-09-14 22:40:08
158
原创 Linux系统篇,进程概念(二):进程本质的研究、进程PCB是什么、进程的查看、如何创建父子进程并清楚fork函数调用逻辑
本文系统阐述了进程的基本概念,指出进程是程序在内存中动态执行的实例,区别于静态的程序。通过“先描述,再组织”的管理思想,引出进程控制块(PCB)的核心作用,详细解析其结构与组织方式。结合fork函数、ps/top命令及/proc文件系统,展示了进程的创建、查看与运行机制,揭示了操作系统如何通过PCB实现对进程的高效管理。
2026-09-13 00:20:12
369
原创 Linux系统篇,进程概念(一):计算机体系、操作系统的认识、程序的加载过程
我们学习完如何使用应用软件后,让我们来了解一下应用使用的底层,本节我们将开始接触进程,将注意到更加深刻的变化,理解计算机的运行原理。本节我们初步了解了计算机的体系和在计算机中的重要操作者——操作系统,并大体地了解了它们的原理和操作,下一节我们将学习操作系统是通过操作什么进行管理软硬件的。
2026-05-30 15:40:09
247
3
原创 Linux系统篇,开发工具(六):文件的编译配置、调试的理解、cgdb和gdb的操作使用
本文介绍了Linux环境下使用gdb和cgdb进行代码调试的方法。首先讲解了debug和release两种编译模式的区别,重点说明了debug模式的特点及其调试优势。然后详细介绍了gdb调试器的基本使用,包括断点设置、单步执行、变量查看等核心功能。文章还推荐使用增强版cgdb工具,并提供了安装方法。最后分享了几种实用的调试技巧,如监视变量变化、修改运行时变量、条件断点设置等。这些工具和技巧能帮助开发者更高效地定位和解决代码中的问题。
2026-05-24 15:02:00
369
1
原创 Linux系统篇,开发工具(五):git的基本使用和浅层认识
本节我们来学习git的使用,git作为一款我们在学习C过程中常常使用的工具我们以及再熟悉不过,今天我们就学习在Linux中的git的使用吧。
2026-05-22 00:01:00
496
2
原创 Linux系统篇,开发工具(四):make及makefile的使用、makefile的使用细节
本文介绍了make和makefile的基本概念与使用方法。make是一个自动化构建工具,makefile则是包含构建规则的文本文件,两者配合可实现项目自动化编译。文章详细讲解了makefile的核心语法,包括依赖关系与依赖方法的定义与联系,以及项目清理、执行顺序等关键知识点。同时介绍了.PHONY伪目标的作用、文件时间属性判断机制以及推导规则等进阶内容。最后提供了makefile的完善操作技巧,如变量定义、禁止回显、自动变量、多文件处理等实用功能,帮助开发者高效管理项目编译流程。
2026-05-19 23:59:54
618
11
原创 Linux系统篇,开发工具(三):文件翻译的思路重构、库的深入理解、文件链接时区别与细节
本文详细介绍了程序的编译过程与相关工具的使用。主要内容包括: 程序翻译的四个阶段:预处理(宏替换、头文件展开)、编译(转为汇编语言)、汇编(生成二进制文件)、链接(合并库文件) 各阶段对应的gcc命令选项(-E、-S、-c)及生成文件类型(.i、.s、.o) 条件编译的作用与实现方式 编程语言发展历程及C语言与汇编的关系 静态库与动态库的区别及命名规则 查看库依赖的ldd命令 文章通过具体命令示例和图示,帮助读者理解从源代码到可执行文件的完整编译流程,并解释了各阶段的技术原理与实际应用价值。
2026-05-17 17:38:25
470
15
原创 Linux系统篇,开发工具(二):vim的使用与配置
本文介绍了Vim文本编辑器的基本使用与配置方法。主要内容包括:Vim的多模式特性(命令模式、插入模式、底行模式)及其切换方式;各模式下的常用操作命令,如光标移动、文本编辑、查找替换等;Vim的分屏操作和批量化处理技巧;以及个人配置(.vimrc)和全局配置(/etc/vimrc)的设置方法。文章通过具体示例演示了Vim的高效编辑功能,帮助读者快速掌握这款强大的终端文本编辑器。
2026-05-16 15:30:51
882
16
原创 Linux系统篇,开发工具(一):从入门到精通的软件安装yum使用
本文介绍了Linux系统中开发工具的安装与使用策略,重点讲解了三种软件安装方式:源码安装、软件包安装和包管理器安装。源码安装自由度最高但门槛较高;软件包安装简化了编译过程但存在依赖问题;包管理器(如yum)能自动处理依赖关系,是最推荐的安装方式。文章还分析了软件的来源与生态维护机制,以及镜像网站的作用。最后详细讲解了yum命令的使用方法,包括查看、安装和卸载软件包的操作示例,并介绍了yum源的配置位置。通过本文可以全面了解Linux开发工具的安装与管理方法。
2026-05-14 21:42:54
1067
17
原创 C++ STL容器string(二):删除与插入、数据查找、自定义输入
本文摘要: 本文深入讲解了C++中string容器的常用操作接口,主要包括三部分内容:1.字符串的插入与删除,介绍了push_back、append、operator+=和insert等插入方法,以及erase和pop_back删除方法;2.字符串的修改替换,详细说明了replace、swap和assign接口的使用场景和语法;3.字符串数据查找,重点讲解了find接口的多种用法。文章通过表格形式清晰展示了各接口的参数和功能,并强调了时间复杂度问题,为开发者高效使用string容器提供了实用指导。
2026-05-13 16:17:35
367
1
原创 Linux系统篇,权限(二):缺省权限、最终权限的计算、文件隔离的两种方式
本文摘要: 本文介绍了Linux系统中的权限管理机制,重点讲解了缺省权限和文件隔离两大核心概念。缺省权限由系统默认权限与umask掩码共同决定,通过公式"最终权限=起始权限&(~umask)"计算得出。在文件隔离方面,系统通过用户家目录实现基础隔离,而共享目录/tmp配合粘滞位(t权限)实现了"仅创建者可删除"的安全共享机制。文章还详细演示了umask命令的使用、权限计算方法以及t权限的实际应用场景,为Linux系统权限管理提供了实用指导。
2026-05-11 22:32:10
478
13
原创 Linux系统篇,权限(一):用户创建与切换、权限及角色定义与修改、文件权限二进制表示
本文为Linux权限管理入门教程,先介绍root超级管理员与普通用户区别,讲解su切换用户、sudo临时提权及/etc/sudoers白名单机制。阐述Linux权限本质是角色加读写执行属性,划分文件拥有者、所属组、其他用户三类访问角色。详解r、w、x权限分别对文件和目录的不同管控作用。讲解chmod修改权限、chown修改所有者与所属组命令,说明普通用户修改受限需sudo提权,介绍权限按拥有者、所属组、其他用户的先后匹配规则,同时讲解权限二进制数字表示方式,文末预告后续讲解权限隔离与默认权限原理。
2026-05-09 23:23:33
953
20
原创 Linux系统篇,指令(四):shell命令及运行原理
本文介绍了Linux系统中Shell外壳程序的基本概念和作用。主要内容包括:1) 命令行由提示符、用户输入等四部分组成,Shell负责将用户输入的字符串转换为可执行指令;2) Shell作为用户与内核之间的桥梁,既方便用户操作又保护内核安全;3) 通过媒婆说媒的类比故事,形象说明了Shell在命令传递、错误拦截和多线程处理方面的功能;4) 不同Linux发行版使用不同的Shell解释器(如bash),其作用类似于Windows的图形界面,将用户操作转化为内核指令。文章为后续学习Linux权限管理奠定了基础。
2026-05-07 22:46:43
383
原创 Linux系统篇,指令(三):压缩过滤器的使用、打包与压缩、文件互传的实现及快捷与辅助指令的使用
本文介绍了Linux系统中的常用指令操作,主要包括三部分内容:1) grep过滤筛选器的使用方法和选项参数;2) 文件打包压缩的两种主要方案(zip/unzip和tar)及其应用场景;3) 其他实用指令如bc计算器、uname系统信息查询、shutdown关机命令等。文章还讲解了Linux与Windows系统间的文件传输方法(sz/rz/scp)以及常用的命令行热键操作。这些基础指令为后续学习Linux系统管理和权限控制打下坚实基础,适合Linux初学者系统学习命令行操作。
2026-04-29 22:33:40
440
11
原创 C++ STL容器string(一):string的变量细节、默认函数的认识以及常用接口的使用
本文介绍了C++ STL库中的string类,它是标准库提供的字符串处理工具,定义在<string>头文件中。文章首先解释了string的核心组成(数据成员、成员函数和运算符重载)和特性(自动内存管理),然后详细介绍了9种构造函数和5种赋值运算符重载的用法。重点讲解了三种常用遍历方式:operator[]、迭代器(包括8种迭代器类型)和C++11的auto范围for循环。最后介绍了容量查询相关接口,帮助开发者高效处理字符串操作。
2026-04-28 22:08:32
514
20
原创 Linux系统篇,指令(二):输入与输出的隐含操作、重定向理解、管道及多个基础指令用法
本文介绍了Linux常用基础指令的使用方法,主要包括: 打印指令(printf/echo)及重定向操作(>追加、>>追加重定向) 文件查看指令(cat/tac)及其选项 日志查询指令(more/less/head/tail)和管道操作 时间相关指令(date/cal)和时间戳概念 查找指令which的使用 文章通过示例详细说明了各指令的语法、功能及常用选项,帮助读者掌握Linux基础操作,为后续学习打下基础。
2026-04-27 20:41:36
429
10
原创 认识Linux:基础指令的应用(一)
Linux基础入门指南 本文介绍了Linux操作系统的基础知识、环境搭建方法和常用指令。Linux作为一个开源、免费、稳定、安全且高度可定制的操作系统,广泛应用于服务器、云平台和嵌入式设备等领域。文章详细讲解了如何通过云服务器搭建Linux环境,并介绍了ls、pwd、cd、touch等基础指令的使用方法。这些指令能够帮助用户查看文件信息、显示当前目录、切换目录以及创建新文件,是初学者掌握Linux操作的基础。通过本文的学习,读者可以快速上手Linux系统的基本操作。
2026-04-23 21:18:28
468
14
原创 C++模板:带你脱离代码复写的烦恼
C++模板编程摘要:模板是C++实现泛型编程的核心技术,分为函数模板和类模板。函数模板通过编译器根据实参类型自动生成特定版本函数,支持隐式和显式实例化。类模板实例化需在类名后加<类型>。模板参数包含类型形参和非类型形参(如常量)。针对特殊类型需进行模板特化处理,包括函数模板特化和类模板特化(全特化和偏特化)。模板提高了代码复用性,使程序更简洁高效,是C++区别于C语言的重要特性之一。
2026-02-14 15:06:00
806
原创 闯入效率大门:速成C++内存管理大师
本文介绍了C++内存管理的基础知识,重点分析了内存分布区域(栈、堆、数据段、代码段等)及其管理特点。对比了C语言(malloc/free)和C++(new/delete)的内存管理方式,指出new/delete对自定义类型会自动调用构造/析构函数的优势。文章还讲解了operator new/delete的底层实现原理,以及内存分配失败时的异常处理机制。通过代码示例详细演示了各种内存操作的正确使用方法,包括内置类型和自定义类型的处理方式,为C++程序员提供了实用的内存管理指导。
2026-01-25 16:39:10
1278
原创 打开效率的大门—C++类和对象(下):
本文介绍了C++中类和对象的高级特性,包括类型转换、static成员和友元机制。在类型转换部分,讲解了对象与内置类型的隐式转换规则及explicit关键字的作用;static成员部分详细说明了静态成员变量和函数的特性及使用方法;友元部分阐述了友元函数和友元类的定义、特点及注意事项。这些特性虽然增强了灵活性,但可能破坏封装性,应谨慎使用。文章通过代码示例直观展示了各特性的实际应用,帮助读者深入理解C++面向对象编程的高级概念。
2026-01-18 19:49:09
618
1
原创 打开效率的大门—C++类和对象(中):运算符重载、赋值构造函数与拷贝构造函数区别
本文介绍了C++运算符重载的原理与应用。运算符重载本质是函数重载,通过operator关键字定义特殊函数,使自定义类型支持运算符操作,简化代码逻辑。文章详细分析了运算符重载的格式要求、成员/非成员函数差异、特殊运算符(如++、<<)的处理技巧,并重点探讨了赋值运算符重载的特点,包括参数类型、返回值、深浅拷贝问题及其与拷贝构造函数的区别。通过实例代码展示了如何正确实现各类运算符重载,特别是处理资源管理的深拷贝问题,为开发者提供了运算符重载的实践指导。
2025-12-23 22:41:45
1563
3
原创 打开效率的大门—C++类和对象(中):构造函数、析构函数、拷贝构造函数
本文探讨了C++类中默认成员函数的特性与实现方式。重点分析了构造函数的定义、作用及特点,包括函数名与类名相同、无返回值、自动调用、可重载等特性。文章详细讲解了构造函数的三种实现方式(无参、有参、全缺省),并指出默认构造函数不仅指编译器生成的,还包括无参和全缺省构造函数。特别强调了初始化列表的重要性,说明其在引用成员变量、const成员变量和无默认构造类类型变量初始化中的必要性。最后介绍了C++11中成员变量声明位置赋缺省值的新特性。通过代码示例,帮助读者理解类对象初始化过程中的关键机制。
2025-12-22 19:32:24
1416
3
原创 打开效率的大门—C++类和对象(上)
本文介绍了C++中类的基础知识,包括类的定义格式、访问限定符、类域、实例化概念以及this指针。重点讲解了类如何通过封装实现数据保护,成员变量与成员函数的存储方式,对象内存分配规则,以及this指针在成员函数中的隐式作用。通过对比C++与C语言的实现方式,展示了面向对象编程在数据安全性和代码组织上的优势。文章还通过示例代码和练习题帮助理解类的基本特性和内存管理机制,为后续深入学习面向对象编程奠定基础。
2025-12-17 22:43:51
930
1
原创 打开效率的大门—C++的基础知识
本文介绍了C++的基础知识,包括命名空间、IO流、缺省函数、重载函数和引用。命名空间通过划分作用域解决命名冲突问题;IO流提供了高效输入输出机制;缺省函数允许为参数设置默认值;重载函数支持同名函数不同参数列表;引用作为变量别名,支持高效传参和返回值操作。文章通过代码示例详细说明了各特性的使用方法和注意事项,为C++初学者提供了清晰的入门指导。
2025-12-13 13:12:52
1142
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅