logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

信号捕捉,中断,内核态和用户态,可重入函数,volatile,SIGCHLD

文章摘要:本文详细解析了信号捕捉流程,以Ctrl+C触发SIGINT为例,展示从用户态到内核态的完整信号处理过程(包括pending信号集检查、handler执行及sigreturn恢复现场)。深入探讨了硬件中断(时钟/外设)、CPU异常(Fault/Abort/Trap)与信号的异同,揭示了操作系统通过中断实现多任务调度的机制。重点分析了系统调用实现原理、用户/内核态切换保护机制,以及sigac

#linux#运维#服务器
信号机制解密-产生和保存

摘要: 本文深入探讨了Linux信号机制,包括信号的概念、产生方式、处理逻辑以及内核实现。信号是操作系统异步通知进程事件发生的机制,类比于日常生活中的闹钟或敲门声。信号处理方式包括默认行为、忽略或自定义捕获函数。信号产生方式多样,如键盘组合键(Ctrl+C发送SIGINT)、系统调用(kill/raise)、硬件异常(如段错误触发SIGSEGV)和软件条件(如alarm定时器)。内核通过位图(bl

#服务器#运维#linux
18.Linux进程退出和进程等待机制详解

本文摘要:文章主要介绍了Linux系统中的写时拷贝(COW)机制和进程管理相关内容。写时拷贝通过共享只读页表、缺页异常触发和物理页复制实现高效内存管理。在进程控制方面,详细讲解了进程终止场景、退出码获取方法(echo $?)、exit与_exit的区别(缓冲区处理),以及进程等待的必要性和方法(wait/waitpid)。重点阐述了如何通过status参数解析子进程退出状态,包括正常退出和异常终止

#linux#运维#服务器
16.揭秘环境变量:程序运行的幕后推手

本文摘要: 环境变量是操作系统中用于指定运行环境参数的全局变量,如PATH帮助系统查找可执行文件。命令行参数通过main函数的argc和argv传递,实现程序功能切换。环境变量存储在bash进程的环境变量表中,通过配置文件加载,具有全局性和继承性,子进程可获取父进程的环境变量。本地变量仅限当前Shell,而环境变量可被子进程继承。程序地址空间(虚拟地址空间)包含代码段、数据段、堆栈等,不同于物理内

#linux#运维#服务器
16.揭秘环境变量:程序运行的幕后推手

本文摘要: 环境变量是操作系统中用于指定运行环境参数的全局变量,如PATH帮助系统查找可执行文件。命令行参数通过main函数的argc和argv传递,实现程序功能切换。环境变量存储在bash进程的环境变量表中,通过配置文件加载,具有全局性和继承性,子进程可获取父进程的环境变量。本地变量仅限当前Shell,而环境变量可被子进程继承。程序地址空间(虚拟地址空间)包含代码段、数据段、堆栈等,不同于物理内

#linux#运维#服务器
14.Linux进程状态:从运行到僵尸的奥秘

本文摘要:文章系统阐述了操作系统中的进程状态管理机制。首先介绍了进程状态的表示方式(整型/枚举)及Linux中的实现(task_struct结构体)。重点分析了运行、阻塞、挂起三种核心状态及其转换机制,包括调度队列管理、设备等待队列、内存不足时的swap操作等。随后深入解析了Linux特有的进程状态:R(运行)、S(可中断休眠)、D(不可中断休眠)、T/t(暂停)、Z(僵尸)、X(死亡)等状态的区

#linux
13.系统调用与进程管理全解析

本文摘要: 系统调用是操作系统提供的底层接口,开发者可封装为库函数方便二次开发,类似银行窗口服务。进程是程序执行的实例,由PCB(进程控制块)管理,包含标识符、状态、优先级等属性。Linux中进程=PCB+代码数据,OS通过管理PCB链表实现进程控制。通过getpid获取进程ID,/proc目录查看进程信息。fork创建子进程时,父子进程共享代码但数据独立(写时拷贝),通过不同返回值区分执行流。进

#linux
9.揭秘编译器的秘密:从预处理到链接全解析和 动静态库

可以额外在外面添加宏定义1.在产品中启用或禁用特定功能,无需修改源代码即可配置不同功能组合。2.针对不同处理器架构或编译器特性进行优化,提升运行效率。3.不同操作系统或硬件平台可能需要不同的代码实现。通过条件编译,可以确保代码在多种环境下正确编译运行使用目标语言的编译器来编译自身的过程自举的基本原理使用其他语言(如C或汇编)编写一个简单的编译器,支持目标语言的核心功能。利用初始编译器编译目标语言的

#linux
3.Linux基本指令2

用于输出文本或变量内容到标准输出的命令。显示文件的开头部分内容,默认显示前 10 行。tail查看当前日期和时间,生成时间戳。

#html#前端
C++智能指针和内存泄漏

本文系统介绍了C++智能指针的核心概念与应用。首先分析了传统指针在异常处理时容易导致内存泄漏的问题,阐述了RAII(资源获取即初始化)设计思想,指出智能指针通过对象生命周期管理资源。详细讲解了标准库提供的auto_ptr(已废弃)、unique_ptr(独占所有权)、shared_ptr(共享所有权)和weak_ptr(解决循环引用)四种智能指针的特性与适用场景。通过代码示例展示了智能指针的实现原

#开发语言#c++
到底了