logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

《从零入门Linux系统篇(四十四):信号篇·二——信号产生详解:从硬件异常到软件条件》

本文继续深入Linux信号机制,从硬件异常和软件条件两个方向分析信号的产生过程。首先以浮点运算错误、段错误为例,介绍CPU如何发现异常,以及MMU如何通过地址映射、权限和状态完成检查,并进一步分析异常发生后操作系统如何接管进程、读取上下文并产生对应信号。随后转向软件条件产生信号,结合管道异常和闹钟机制,理解信号如何由操作系统中的软件事件触发,并通过时间戳、时间片以及“先描述,再组织”的方式,进一步

文章图片
#linux#运维#c++ +3
《从零入门Linux系统篇(二十八):文件篇·一——Linux为什么“万物皆文件”:从C语言文件流到系统调用》

本文作为Linux系统篇中文件操作相关内容的重要组成部分,将从“Linux中一切皆文件”的视角重新认识文件。文章首先回顾C语言文件操作,深入分析文件流、标准输入输出以及文件位置指针,并介绍fseek、ftell、rewind等常用接口。随后从操作系统角度理解标准库与系统调用之间的层级关系,进一步分析进程如何管理已经打开的文件。最后以open为核心,学习文件打开标志与权限设置,并通过系统调用模拟清空

文章图片
#linux#运维#服务器 +2
《从零入门Linux系统篇(二十一):进程篇·五——CPU到底是怎么“切换进程”的?从上下文切换到O(1)调度器》

本文将进一步深入CPU调度与进程上下文切换机制。文章首先从死循环进程为何不会独占CPU入手,理解时间片与公平调度,并介绍CPU寄存器及其保存的运行状态。随后深入分析进程上下文的组成、上下文切换过程,以及内核如何保存和恢复进程现场。最后进一步探索Linux经典O(1)调度机制,从优先级数组、位图查找到活跃队列与过期队列,理解操作系统如何高效选择下一个运行进程。通过本文学习,读者能够把进程状态、CPU

文章图片
#linux#运维#服务器 +2
《从零入门Linux系统篇(十七):进程篇·一——Linux进程本质:从PCB到fork创建机制》

进程是操作系统中最核心的概念之一,也是理解 Linux 内核运行机制的起点。本文将从进程的本质出发,逐步揭开程序如何成为真正运行实体的过程。文章首先介绍进程与程序的区别,深入理解 PCB(task_struct)在进程管理中的作用,以及操作系统如何通过“先描述,再组织”的方式管理海量进程。随后结合系统调用,探索 Linux 中进程信息的获取方式,并进一步分析父子进程模型,重点讲解 fork() 创

文章图片
#linux#运维#服务器 +1
《从零入门Linux系统篇(十六):操作系统篇——从体系结构到Linux管理哲学》

操作系统是计算机世界中连接软件与硬件的核心桥梁,但它并不是简单地“运行程序”,本文从冯诺依曼体系结构出发,逐步认识操作系统的基本概念,解析Linux内核、Android与手机系统之间的关系,并深入拆解软件访问硬件的完整链路。从系统调用到驱动程序,再到操作系统经典的“先描述,再组织”管理思想,通过结构体、链表等数据结构案例,理解操作系统如何将复杂资源抽象化、组织化,最终实现高效管理。本文帮助读者建立

文章图片
#linux#运维#驱动开发 +1
从零入门Linux系统篇(五)Shell篇——彻底理解User、Shell与Kernel的工作机制

文章首先介绍Shell与Linux内核的关系,帮助读者理解为什么用户无法直接操作内核,以及Shell在整个系统中的作用。随后通过生活化的类比和故事,形象展示用户、Shell与内核之间的交互过程,并引出命令解析、权限控制、退出状态码、进程创建与进程隔离等核心概念。最后,结合User、Shell、Kernel三者之间的架构关系,对Linux命令执行流程进行系统梳理,帮助读者建立完整的底层认知。掌握这些

文章图片
#linux#运维#服务器
从零入门 Linux:从发展史到用户权限,一篇搭好完整认知框架

本文从计算机发展史切入,梳理从埃尼阿克诞生到PC互联网时代的技术演进脉络,讲解操作系统诞生的底层逻辑,以及Unix、Linux的起源与发展历程。接着对比开源与闭源两种软件模式,从安全性、可控性、定制化等维度剖析企业普遍选择Linux的核心原因。随后厘清Linux内核与发行版的概念差异,介绍Red Hat、Debian两大主流发行阵营与版本号规则。最后讲解Linux用户权限体系,涵盖普通用户与超级用

文章图片
#linux#ubuntu#centos
彻底搞懂 C++ STL map:从核心接口到底层原理,一篇搞定所有坑

本文系统讲解C++STL中map与multimap容器的核心原理与实战用法。文章以pair类的基础用法为前置知识,全面覆盖map的构造函数、迭代器使用规则及增删查改全量核心接口。重点剖析了insert返回值的深层含义、operator[]增查改三位一体的底层实现逻辑与常见陷阱,详细讲解了lower_bound/upper_bound边界查找接口的应用场景。最后对比了multimap与map的核心差

文章图片
#开发语言#c++
C语言内存函数介绍和模拟实现

本文将深入探讨四个核心函数:高效拷贝的memcpy、可处理重叠区域的memmove、快速初始化的memset以及逐字节比较的memcmp。我们不仅详解其标准用法与关键注意事项,更将通过动手模拟实现每个函数,揭示其底层内存操作逻辑,从而帮助开发者从根本上理解数据在内存中的布局与流动,写出更高效、可靠的系统级代码。

文章图片
#c语言
C语言程序编译和链接(详解)

C语言程序从源代码到可执行文件的转换过程分为翻译环境和运行环境两个阶段。翻译环境包括预处理(处理宏定义、头文件等)、编译(词法分析、语法分析等)、汇编(生成机器指令)和链接(合并目标文件、解析符号)四个步骤。运行环境则负责程序加载、内存分配、执行main函数以及程序终止等操作。整个过程实现了从高级语言到机器可执行指令的完整转换流程。

文章图片
#c语言
到底了