Linux系统编程
文章平均质量分 96
有关Linux系统编程的博客
Tanecious.
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Linux系统编程--线程概念与控制
本文从操作系统角度重新定义了进程和线程的概念:进程是系统资源分配的基本实体,而线程是CPU调度的基本单位。Linux通过独特的轻量级进程(LWP)模型实现线程,多个task_struct共享同一地址空间来模拟多线程。与传统操作系统不同,Linux内核不区分进程和线程,统一使用task_struct进行管理调度。文章还通过"家庭模型"类比,形象说明进程如同资源分配的家庭单位,线程则是共享资源的家庭成员。这种设计使Linux线程实现更高效,完全复用进程管理机制,无需额外线程调度逻辑。原创 2025-09-25 00:24:41 · 854 阅读 · 0 评论 -
Linux系统编程--进程信号
本文介绍了Linux进程信号的概念与应用。首先通过生活实例类比信号机制,如闹钟、交通灯等,解释信号的核心特性是中断当前任务处理紧急事件。然后通过代码示例展示如何捕捉和处理信号(如Ctrl+C对应的2号信号),并详细阐述了前台与后台进程的区别及管理方法。重点讲解了进程的同步与异步处理机制,说明信号是一种异步通知方式,能够在不阻塞主进程的情况下处理外部事件。文章还介绍了任务控制命令(jobs、fg、bg)和终止后台进程的方法,帮助读者深入理解信号在系统进程管理中的作用。原创 2025-09-21 11:23:09 · 914 阅读 · 0 评论 -
Linux系统编程--进程间通信
本文介绍了进程间通信(IPC)的概念和实现原理。首先阐述了进程独立性与协作需求之间的矛盾:进程需要独立性保证稳定性,但实际应用中又需要协作完成复杂任务。然后说明了IPC的三个主要目的:数据传输、资源共享和通知控制。文章重点分析了管道这一经典IPC机制,包括其基于文件系统的设计思想,以及匿名管道通过fork()继承文件描述符表和pipe()系统调用实现进程间通信的具体原理。最后强调了标准规范对跨平台IPC实现的重要性,如System V IPC、POSIX标准等。全文围绕"让不同进程看到同一份资源&原创 2025-09-09 21:38:05 · 548 阅读 · 0 评论 -
Linux系统编程--库的制作与原理
本文介绍了库的概念、分类及制作原理。库是预先编写好的可复用代码,分为静态库(.a/.lib)和动态库(.so/.dll)。重点讲解了静态库的制作流程:首先将源文件编译为目标文件(.o),然后使用ar命令打包成静态库(.a)。使用时通过gcc的-I、-L、-l选项指定头文件路径、库文件路径和库名。最后说明了如何将自定义库安装到系统标准路径,以及用Makefile实现自动化构建。静态库通过直接链接到可执行文件中实现代码复用。原创 2025-09-05 19:54:47 · 796 阅读 · 0 评论 -
Linux系统编程--Ext系列文件系统
摘要:本文介绍了Ext系列文件系统的概念及其与磁盘结构的关系。首先阐述了文件系统的基本功能——管理未打开文件,随后详细解析了磁盘的物理结构(盘片、磁头、传动臂等)和存储结构(磁道、扇区、柱面)。重点描述了CHS寻址方式和磁盘逻辑结构,将磁盘抽象为三维数组,进而转换为LBA地址。通过对比磁带结构,说明了磁盘数据的线性读取逻辑,并举例说明了LBA地址与CHS定位的转换过程。文章从硬件层到操作系统层,系统性地讲解了磁盘管理的基础原理。原创 2025-09-04 09:00:00 · 1105 阅读 · 0 评论 -
Linux系统编程--基础IO
文章摘要:本文系统介绍了基础IO操作,重点围绕文件概念展开。首先从狭义和广义层面定义了文件,指出文件本质是内容加属性,并强调所有文件操作都需通过操作系统进行。文章回顾了C语言文件操作接口,如fopen、fwrite等,并通过示例代码演示了读写操作。特别说明程序启动时默认打开stdin、stdout、stderr三个标准流的原因及作用。最后详细解析了C语言中不同文件打开方式的区别,包括r、r+、w、w+、a等模式的功能特点,为理解文件IO操作提供了全面基础。原创 2025-09-03 10:36:30 · 623 阅读 · 0 评论 -
Linux系统编程--进程控制
本文主要介绍了Linux进程控制的关键技术,包括进程创建、终止和写时拷贝机制。文章首先详细解析了fork函数的工作原理,阐述了内核如何通过复制父进程数据结构并采用写时拷贝技术来高效创建子进程。接着分析了进程退出的三种场景及其意义,并解释了进程终止的本质是释放系统资源。重点剖析了写时拷贝的实现机制及其两大优势:降低进程创建成本、节省物理内存。最后简要提及了fork的常规用法和调用失败的常见原因。这些内容为理解Linux进程管理机制提供了重要基础。原创 2025-08-30 10:33:13 · 918 阅读 · 0 评论 -
Linux系统编程--进程概念(全文六万五千字精讲!!)
本文介绍了进程的基本概念和基本操作。进程是程序的一个执行实例,从内核角度看是分配系统资源的实体。Linux系统中使用task_struct结构体描述进程信息,并通过双向链表组织管理。操作方面,介绍了查看进程的多种方法(ps命令、/proc目录查看),以及结束进程的两种方式(Ctrl+C、kill命令)。最后说明了通过系统调用getpid()和getppid()获取进程标识符的方法,并附有示例代码演示如何获取并打印进程ID和父进程ID。进程管理本质上是操作系统通过先描述后组织的方式对进程信息进行管理。原创 2025-08-23 21:11:13 · 1241 阅读 · 0 评论 -
Linux系统编程--计算机的体系结构
本文主要介绍了计算机体系结构中的冯诺依曼体系和操作系统的基本概念。冯诺依曼体系由输入设备、输出设备、运算器、存储器和控制器五部分组成,CPU通过内存间接访问外设,所有程序必须加载到内存才能运行。操作系统作为管理软硬件资源的软件,通过系统调用接口为用户提供服务,其管理方法是对被管理对象先描述再组织,本质是对数据的管理。文章还通过层状结构展示了软硬件之间的访问关系,解释了操作系统设计的核心目的和功能,包括进程管理、文件系统、内存管理和驱动管理等模块。原创 2025-08-09 22:51:43 · 893 阅读 · 0 评论 -
Linux系统编程--基础开发工具
本文介绍了Linux基础开发工具中的软件包管理器及其生态。主要内容包括:1)Linux下三种软件安装方式(源码编译、rpm安装、yum安装),重点说明yum作为常用包管理器的优势;2)Linux软件生态的构成要素(社区、文档、软件体系等)及其良性循环机制;3)国内外软件源镜像站的介绍,包括阿里云、清华等国内镜像源;4)软件包依赖问题的解决方案。文章还详细讲解了yum的具体操作命令,如查看软件包列表等。通过类比手机应用商店,帮助理解Linux软件包管理机制。原创 2025-08-07 22:32:31 · 460 阅读 · 0 评论 -
Linux系统编程--权限管理
本文介绍了Linux系统的权限管理机制,主要内容包括: Shell命令运行原理:Shell作为命令行解释器,负责将用户指令传递给内核执行,并返回结果。它通过创建子进程执行命令,避免自身崩溃。 Linux用户分类与切换:系统分为超级用户(root)和普通用户,可通过su命令切换,支持sudo临时提权机制。 文件权限管理: 文件访问者分为所有者(u)、所属组(g)和其他用户(o) 文件属性包含类型标识(d目录、-普通文件等)和权限(rwx) 权限由三组rwx组成,分别对应所有者、组和其他用户的读写执行权限 特殊原创 2025-08-07 22:05:02 · 1218 阅读 · 0 评论 -
Linux系统编程--基础指令(!!详细讲解+知识拓展)
使用特定的算法,将文件进行合并或者压缩,减少体积。实际上打包压缩是两个动作,但是可以看做是一个整体。原创 2025-05-05 21:48:04 · 1164 阅读 · 0 评论
分享