logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

进程间通信:面试必问Linux管道底层原理与进程池设计(含踩坑记录)

即进程间通信,是指在不同进程之间传递数据、同步协作的一套机制。由于每个进程都拥有独立的地址空间,无法直接访问彼此的内存,因此通信必须通过内核中转来实现。让不同的进程看到同一份资源(内存),从而具备通信的条件。这份共享资源由操作系统提供,并需要配套创建、使用、销毁等管理能力。为此,操作系统必须提供一系列系统调用(System Call)来实现进程级的通信能力,这就要求设计出一套统一的通信接口。有了接

文章图片
#服务器#linux#运维
深入理解 ELF:从目标文件到程序加载的全过程

本文深入解析了ELF文件格式与程序加载机制。首先介绍了目标文件(.o)作为ELF格式的基本单元,其通过静态链接合并为可执行程序的过程。重点剖析了ELF文件结构,包括Section合并为Segment的优化策略,以及操作系统如何根据Program Header Table将程序加载到内存。 文章详细阐述了静态链接的工作原理:编译器生成未确定地址的目标文件,链接器通过符号表解析外部引用,修正call指

文章图片
#服务器#运维#linux +1
Linux 文件 IO:从概念到系统调用

本文系统介绍了Linux文件系统的核心概念与操作机制。首先阐述了Linux文件模型"文件=inode+数据块"的基本原理,指出目录通过文件名到inode号的映射实现文件关联。从物理层面分析,文件操作本质是对磁盘设备的I/O操作,操作系统通过封装硬件复杂性提供统一接口。重点讲解了"一切皆文件"的设计理念,将硬件、进程等资源抽象为文件,通过虚拟文件系统(VFS)

文章图片
#linux#运维#服务器
Linux 文件 IO:从概念到系统调用

本文系统介绍了Linux文件系统的核心概念与操作机制。首先阐述了Linux文件模型"文件=inode+数据块"的基本原理,指出目录通过文件名到inode号的映射实现文件关联。从物理层面分析,文件操作本质是对磁盘设备的I/O操作,操作系统通过封装硬件复杂性提供统一接口。重点讲解了"一切皆文件"的设计理念,将硬件、进程等资源抽象为文件,通过虚拟文件系统(VFS)

文章图片
#linux#运维#服务器
进程控制:从创建到替换的完整指南

本文摘要: 本文详细介绍了Linux进程管理的核心概念和操作,包括进程创建、终止、等待和程序替换。主要内容包括: 进程创建:通过fork()系统调用创建子进程,利用写时拷贝技术优化内存使用,父子进程执行顺序由调度器决定。 进程终止:三种终止方式(return、exit()、_exit())及其区别,退出码的含义和查看方法,异常终止的处理机制。 进程等待:使用wait()和waitpid()回收子进

文章图片
#linux#服务器#运维
C++ 智能指针:面试必考的底层原理与实现

本文系统介绍了C++智能指针的原理与应用。首先分析了手动内存管理在异常场景下的困境,指出智能指针通过RAII机制自动释放资源,解决了内存泄漏问题。然后详细讲解了标准库中的四种智能指针:auto_ptr(已废弃)、unique_ptr(独占所有权)、shared_ptr(共享引用计数)和weak_ptr(解决循环引用)。重点阐述了智能指针的删除器机制,使其能够管理各类资源。最后通过模拟实现展示了智能

文章图片
#c++#算法#开发语言
从环境变量到进程虚拟地址空间——Linux 内存管理的底层脉络

本文系统讲解了Linux环境变量与进程地址空间的核心概念。环境变量部分详细介绍了其定义、PATH变量工作原理、获取方式(命令行/env/getenv等)及继承特性;进程地址空间部分深入剖析了虚拟地址与物理地址的区别、fork写时拷贝机制、缺页中断处理流程,以及操作系统如何通过mm_struct和页表管理内存。文章通过代码实验验证了父子进程共享相同虚拟地址但独立物理内存的现象,并形象比喻了进程地址空

文章图片
#linux#服务器#c++
深度剖析 Linux 进程状态与调度队列:从 R 到 Z,一个进程的生死流转

本文深入解析了Linux操作系统中的进程状态及其管理机制。主要内容包括:1. 进程状态的核心概念:详细解释了运行(R)、睡眠(S)、磁盘睡眠(D)、停止(T)、僵尸(Z)和死亡(X)等状态在内核中的实现方式,以及状态转换的条件和原理。2. 阻塞状态的细分:分析了可中断睡眠(S)和不可中断睡眠(D)的区别,重点说明了D状态对关键I/O操作的保护作用。3. 特殊状态解析:探讨了停止状态(T)、僵尸状态

文章图片
#linux#运维#服务器
从硬件到软件:一文搞懂冯·诺依曼体系、操作系统与进程管理

冯·诺伊曼体系结构是现代计算机的基石,其核心思想是将计算机系统分为输入设备、输出设备、存储器、运算器和控制器五大部件。该体系结构通过内存作为数据中转枢纽,CPU作为处理中心,外设作为输入输出通道,形成了高效的数据流动机制。操作系统在此基础上通过进程管理(PCB控制块)、系统调用和库函数实现对硬件资源的安全访问。进程创建采用fork()函数实现写时复制,父子进程共享代码但拥有独立数据空间。这种分层管

文章图片
#linux#服务器#运维
深入C++异常:栈展开、异常安全与工程规范

异常规范noexcept是 C++11 引入的更简洁、更实用的异常规格说明它告诉编译器“这个函数不会抛异常”,如果违反了承诺,程序会直接终止移动语义和性能优化中应优先使用noexcept// C++98// 这⾥表⽰这个函数只会抛出bad_alloc的异常// 这⾥表⽰这个函数不会抛出异常// C++11// 当b == 0时抛出异常int main()tryint i = 0;return 0;

文章图片
#开发语言#c++
    共 12 条
  • 1
  • 2
  • 请选择