系统编程

lcreek3 小时前
linux·操作系统·系统编程
Linux信号机制详解:阻塞信号集与未决信号集在 Linux 系统中,信号(signal)是进程间通信(IPC)的一种机制,用于通知进程发生了某种事件。为了更精细地控制信号的处理行为,内核为每个进程维护了两个关键的信号集合:
lcreek3 天前
linux·系统编程
Linux 信号机制详解:从硬件异常到安全编程实践在深入理解 Unix/Linux 操作系统内核机制时,信号(Signal)、中断(Interrupt) 和 异常(Exception) 是三个核心但常被混淆的概念。它们共同构成了系统对异步事件和同步错误的响应框架,分别作用于用户空间、内核空间和硬件层面。本文将系统梳理这些机制的本质、关系与区别,并澄清常见误解,同时结合现代信号编程的安全实践,帮助开发者构建可靠、可移植的系统级程序。
燃于AC之乐3 天前
linux·操作系统·硬件架构·进程管理·系统编程·冯诺依曼架构·僵尸、孤儿进程
【Linux系统编程】进程管理探秘:从硬件架构到僵尸/孤儿进程💗博主介绍:计算机专业的一枚大学生 来自重庆 @燃于AC之乐✌专注于C++技术栈,算法,竞赛领域,技术学习和项目实战✌💗 💗根据博主的学习进度更新(可能不及时) 💗后续更新主要内容:C语言,数据结构,C++、linux(系统编程和网络编程)、MySQL、Redis、QT、Python、Git、爬虫、数据可视化、小程序、AI大模型接入,C++实战项目与学习分享。 👇🏻 精彩专栏 推荐订阅👇🏻 点击进入🌌作者专栏🌌: Linux系统编程✅ 算法画解 ✅ C++ ✅ 🌟算法相关题目点击即可
柏木乃一6 天前
linux·服务器·c++·io·进程·系统编程·缓冲区
基础IO(中)1.重定向的原理 2.更新自主shell,支持重定向 3.理解一切皆文件,缓冲区 4.缓冲类型,验证FILE包含文件描述符
序属秋秋秋22 天前
linux·c语言·c++·操作系统·进程·系统编程·进程替换
《Linux系统编程之进程控制》【进程替换】往期《Linux系统编程》回顾: /------------ 入门基础 ------------/ 【Linux的前世今生】 【Linux的环境搭建】 【Linux基础 理论+命令】(上) 【Linux基础 理论+命令】(下) 【权限管理】 /------------ 开发工具 ------------/ 【软件包管理器 + 代码编辑器】 【编译器 + 自动化构建器】 【版本控制器 + 调试器】 【实战:倒计时 + 进度条】 /------------ 系统导论 ------------/ 【冯诺依曼体系
序属秋秋秋22 天前
linux·c语言·c++·进程·系统编程·进程控制·进程等待
《Linux系统编程之进程控制》【进程等待】往期《Linux系统编程》回顾: /------------ 入门基础 ------------/ 【Linux的前世今生】 【Linux的环境搭建】 【Linux基础 理论+命令】(上) 【Linux基础 理论+命令】(下) 【权限管理】 /------------ 开发工具 ------------/ 【软件包管理器 + 代码编辑器】 【编译器 + 自动化构建器】 【版本控制器 + 调试器】 【实战:倒计时 + 进度条】 /------------ 系统导论 ------------/ 【冯诺依曼体系
_OP_CHEN1 个月前
linux·操作系统·虚拟地址空间·系统编程·进程地址空间·虚拟内存管理·程序地址空间
【Linux系统编程】(十六)揭秘 Linux 程序地址空间:从虚拟地址到内存管理的底层逻辑实战编辑前言一、研究平台说明:为什么选择 32 位 Linux 2.6.32?二、程序地址空间回顾:C 语言程序员的 “刻板印象”
秋深枫叶红1 个月前
linux·学习·线程·系统编程
嵌入式第三十七篇——linux系统编程——线程控制在多线程编程中,临界资源(全局变量、文件、设备等会被多线程读写的资源)的访问控制是核心问题,主要通过互斥和同步机制解决,同时需规避死锁风险。
CQ_YM1 个月前
linux·系统编程·标准io
Linux标准IO在进行文件操作前,我们需要先了解 Linux 系统中的文件分类,以及如何通过命令行参数灵活传递文件路径等信息。
序属秋秋秋2 个月前
linux·运维·服务器·c语言·c++·系统编程·进程地址空间
《Linux系统编程之进程环境》【地址空间】往期《Linux系统编程》回顾: /------------ 入门基础 ------------/ 【Linux的前世今生】 【Linux的环境搭建】 【Linux基础 理论+命令】(上) 【Linux基础 理论+命令】(下) 【权限管理】 /------------ 开发工具 ------------/ 【软件包管理器 + 代码编辑器】 【编译器 + 自动化构建器】 【版本控制器 + 调试器】 【实战:倒计时 + 进度条】 /------------ 系统导论 ------------/ 【冯诺依曼体系
序属秋秋秋2 个月前
linux·运维·服务器·c语言·c++·操作系统·系统编程
《Linux系统编程之进程环境》【环境变量】往期《Linux系统编程》回顾: /------------ 入门基础 ------------/ 【Linux的前世今生】 【Linux的环境搭建】 【Linux基础 理论+命令】(上) 【Linux基础 理论+命令】(下) 【权限管理】 /------------ 开发工具 ------------/ 【软件包管理器 + 代码编辑器】 【编译器 + 自动化构建器】 【版本控制器 + 调试器】 【实战:倒计时 + 进度条】 /------------ 系统导论 ------------/ 【冯诺依曼体系
序属秋秋秋2 个月前
linux·运维·服务器·c语言·c++·ubuntu·系统编程
《Linux系统编程之进程基础》【进程切换 + 进程调度】往期《Linux系统编程》回顾: /------------ 入门基础 ------------/ 【Linux的前世今生】 【Linux的环境搭建】 【Linux基础 理论+命令】(上) 【Linux基础 理论+命令】(下) 【权限管理】 /------------ 开发工具 ------------/ 【软件包管理器 + 代码编辑器】 【编译器 + 自动化构建器】 【版本控制器 + 调试器】 【实战:倒计时 + 进度条】 /------------ 系统导论 ------------/ 【冯诺依曼体系
序属秋秋秋2 个月前
linux·运维·c语言·c++·进程·系统编程·fork
《Linux系统编程之进程基础》【进程入门】往期《Linux系统编程》回顾: /------------ 入门基础 ------------/ 【Linux的前世今生】 【Linux的环境搭建】 【Linux基础 理论+命令】(上) 【Linux基础 理论+命令】(下) 【权限管理】 /------------ 开发工具 ------------/ 【软件包管理器 + 代码编辑器】 【编译器 + 自动化构建器】 【版本控制器 + 调试器】 【实战:倒计时 + 进度条】 /------------ 系统导论 ------------/ 【冯诺依曼体系
序属秋秋秋2 个月前
linux·运维·服务器·c语言·c++·ubuntu·系统编程
《Linux系统编程之开发工具》【实战:倒计时 + 进度条】往期《Linux系统编程》回顾: /------------ 入门基础 ------------/ 【Linux的前世今生】 【Linux的环境搭建】 【Linux基础 理论+命令】(上) 【Linux基础 理论+命令】(下) 【权限管理】 /------------ 开发工具 ------------/ 【软件包管理器 + 代码编辑器】 【编译器 + 自动化构建器】 【版本控制器 + 调试器】
摘星编程3 个月前
网络·算法·rust·系统编程·tokio
深入浅出 Tokio 源码:掌握 Rust 异步编程的底层逻辑目录深入浅出 Tokio 源码:掌握 Rust 异步编程的底层逻辑摘要一、Rust 异步基石:Future 与 Waker 机制
≮傷£≯√5 个月前
c语言·线程·系统编程
C语言线程之死锁死锁(Deadlock)由于某种逻辑问题,导致等待一个永远无法获得的资源的困境压栈pthread_cleanup_push(void fun(void * arg), 参数);
佟晖9 个月前
linux·系统编程
KGDB调试Linux内核与模块内核 5.10 版本使用两台虚拟机:测试:在调试机执行 cat /dev/ttyS0阻塞,在开发机执行 echo "hello" > /dev/ttyS0,可以看到调试机测输出 hello,表示串口连通。
小镇青年达师傅10 个月前
linux·嵌入式·多线程·互斥锁·系统编程·条件锁
条件锁存在的意义:用生活中的例子秒懂线程间的"暗号系统"引子:在学习linux下c语言中的互斥锁和条件锁的时候,我的大脑哦逻辑进入了“条件锁到底锁了什么”的死循环,所以让deepseek给我举了三个生动的例子,感觉非常有帮助,记录在这里,这段回答仅用于理解条件锁的含义,代码准确性有待验证:
小镇青年达师傅10 个月前
linux·嵌入式·多线程·系统编程
System V信号量 vs. POSIX信号量:核心区别与选型指南最近在学习linux系统编程的章节,接触到了两种信号量,所以专门研究了二者的区别,将二者的对比记录于此。 在Linux多线程/进程开发中,信号量是解决同步问题的核心工具之一。System V和POSIX是两种主流的实现方式,它们的区别直接影响开发效率和性能。以下是两者的关键差异总结:
hope_wisdom1 年前
linux·信号处理·系统编程·信号·signal·sigaction
Linux系统编程之基本信号处理在前一篇文章中我们已经提到过,信号本质上是一个整数编号,每个编号对应一种特定类型的事件。当某个条件满足时,操作系统会生成相应的信号,并将其传递给目标进程。接收到信号后,进程可以选择忽略它、执行默认动作、或调用自定义的处理函数来响应。