Linux(系统)
文章平均质量分 96
该专栏介绍了Linux系统部分的知识点,包括基础指令、基础开发工具、文件操作等内容
天赐学c语言
尝试着写一份简历,当你发现没什么东西可写时,这些就是你努力的方向!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
读写锁与自旋锁
摘要:本文系统介绍了多线程编程中的三种同步机制:读者写者模型、读写锁和自旋锁。读者写者模型通过"321"原则实现读写并发控制,其中读者可并发访问而写者需互斥。读写锁针对多读少写场景设计,提供读者优先和写者优先两种策略,分别可能导致写者或读者饥饿。自旋锁采用忙等待机制,适用于短时锁竞争,虽降低线程切换开销但可能浪费CPU资源。文章通过伪代码和示例程序详细说明了三种机制的实现原理、接口使用及适用场景,为多线程编程提供了实用的同步解决方案。希望这些内容对大家有所帮助!原创 2025-12-05 15:00:00 · 725 阅读 · 0 评论 -
线程同步与互斥(下)
本文介绍了线程池设计与实现的关键技术。主要内容包括:1)基于策略模式的日志系统设计,支持控制台和文件两种输出方式;2)线程池实现方案,包括固定线程数线程池的工作原理和应用场景;3)线程安全的单例模式实现,重点讲解了饿汉式和懒汉式两种方式;4)线程安全与可重入问题的分析;5)常见锁概念,包括死锁的产生条件和避免方法;6)STL容器和智能指针的线程安全性讨论。文章通过代码示例详细展示了线程池的核心实现逻辑,包括任务队列管理、线程调度等关键环节,为构建高性能并发系统提供了实用参考。希望这些内容对大家有所帮助!原创 2025-12-04 09:00:00 · 1004 阅读 · 0 评论 -
线程同步与互斥(上)
本文系统介绍了线程同步与互斥的核心机制。主要内容包括:1)线程互斥方面,详细讲解了互斥量mutex的实现原理、接口封装和使用方法,通过售票系统案例展示了如何避免竞态条件;2)线程同步方面,重点阐述了条件变量的工作原理和使用规范,并实现了基于阻塞队列的生产者消费者模型;3)介绍了POSIX信号量的基本概念和接口封装,构建了基于环形队列的生产者消费者模型。文章通过大量代码示例,深入分析了互斥锁、条件变量和信号量在多线程编程中的应用场景和注意事项。希望这些内容对大家有所帮助,感谢大家支持!原创 2025-12-03 09:00:00 · 784 阅读 · 0 评论 -
线程概念与控制(下)
本文详细介绍了Linux系统中的线程控制与管理。主要内容包括:1) POSIX线程库的使用方法及线程创建;2) 线程终止的三种方式和线程等待;3) 线程分离的概念与实现;4) 线程ID的本质及进程地址空间布局;5) 线程封装实现(Thread类);6) 补充内容包括线程栈特性、clone系统调用和线程局部存储(__thread)。文章通过代码示例详细演示了线程创建、控制和管理的关键技术,并分析了Linux线程实现的底层机制。希望这些内容对大家有所帮助,感谢支持!原创 2025-12-02 14:00:00 · 1522 阅读 · 0 评论 -
线程概念与控制(上)
本文系统阐述了Linux系统中线程的概念及其实现机制。首先介绍了线程的基本定义,指出线程是进程内部的执行分支,在Linux中采用轻量级进程模拟实现。重点分析了分页式存储管理机制,包括虚拟地址与页表转换、两级页表结构、缺页异常处理等核心原理。通过对比进程与线程的区别,阐明线程共享进程资源的特点及其优缺点:线程创建和切换开销小,但缺乏访问控制和保护机制。全文深入剖析了Linux线程的资源划分本质是对虚拟地址空间的划分,为理解多线程编程提供了理论基础。希望这些内容对大家有所帮助!原创 2025-12-02 09:00:00 · 987 阅读 · 0 评论 -
Linux进程信号(下)
本文主要介绍了Linux系统中的信号处理机制,包括信号的基本概念(递达、未决、阻塞)、内核中的表示方式(block位图、pending位图、handle函数指针数组),以及信号集操作函数(sigemptyset、sigaddset等)。文章还详细讲解了信号捕捉流程、内核态与用户态的切换原理,以及SIGCHLD信号处理僵尸进程的方法。通过分析CPU指令集权限和内存空间划分,阐述了用户态和内核态的区别及切换过程,帮助读者深入理解操作系统信号处理的核心机制。希望这些内容对大家有所帮助!原创 2025-10-21 08:00:00 · 1378 阅读 · 0 评论 -
Linux进程信号(上)
本文从生活和技术角度系统介绍了Linux信号机制。信号是进程间异步事件通知的软中断方式,其处理包括忽略、默认动作和自定义捕捉三种。信号产生来源多样:终端按键(如Ctrl+C)、系统命令(kill)、函数调用(kill/raise/abort)、软件条件(alarm/SIGALRM)和硬件异常(除零/SIGFPE)。重点解析了信号处理流程、前台/后台进程区别、core dump原理及可重入函数概念,并通过代码示例演示了信号注册、捕获和处理的完整过程。希望这些内容对大家有所帮助!原创 2025-10-19 15:00:00 · 1387 阅读 · 0 评论 -
进程间通信(下)
System V共享内存是进程间通信最快的方式,通过内核数据结构管理。主要函数包括:shmget创建共享内存,shmat连接共享内存到进程空间,shmdt分离共享内存,shmctl控制共享内存。数据结构shmid_ds和ipc_perm用于管理共享内存属性和权限。借助管道可实现访问控制版的共享内存,确保数据完整性。示例代码展示如何使用共享内存和命名管道实现client每写两个字母,server读取一次的功能。还提及了System V的消息队列、信号量及内核对IPC资源的组织管理。希望这些内容对大家有所帮助!原创 2025-10-19 09:35:29 · 944 阅读 · 0 评论 -
进程间通信(上)
本文系统介绍了进程间通信(IPC)的核心概念与实现方式。首先阐述了IPC的本质是让不同进程访问同一份内存资源,主要通过管道、SystemV IPC和POSIX IPC三类机制实现。重点讲解了匿名管道和命名管道的原理与使用:匿名管道通过pipe()创建,适用于父子进程通信;命名管道通过mkfifo()创建,支持无亲缘关系进程通信。文章通过多个代码示例详细展示了管道的读写规则、五种特性和四种常见场景,并实现了一个完整的进程池任务处理系统和命名管道通信案例。希望这些内容对大家有所帮助!原创 2025-10-18 16:06:55 · 1165 阅读 · 0 评论 -
Linux库制作与原理
本文深入探讨了Linux系统中的库机制、ELF文件格式及链接加载原理。主要内容包括:1)静态库和动态库的生成与使用方式;2)目标文件和ELF文件的结构解析,包括程序头表和节头表的作用;3)静态链接和动态链接的实现原理,重点分析了动态链接中的GOT/PLT机制;4)ELF文件从编译到加载的完整过程,以及进程地址空间的映射关系。文章通过具体示例和命令演示,揭示了程序运行背后的底层机制,包括重定位、地址空间分配等关键技术细节,帮助读者深入理解Linux程序的编译、链接和加载过程。希望这些内容对大家有所帮助!原创 2025-10-15 09:00:00 · 762 阅读 · 0 评论 -
Ext系列文件系统知识点
本文摘要: 本文系统介绍了Linux文件系统的核心概念和工作原理。首先从磁盘物理结构入手,讲解CHS/LBA地址转换、扇区与块的关系;然后深入分析ext2文件系统架构,包括Block Group组织、超级块、GDT等元数据结构;重点剖析inode机制,阐述其如何通过15个指针实现文件内容映射;接着探讨目录文件的本质与路径解析过程,解释dentry缓存优化原理;最后对比软硬链接的实现差异与应用场景。全文通过代码片段和示意图,完整呈现了从底层存储到上层访问的文件系统运作全貌。希望这篇文章对大家有所帮助!原创 2025-07-15 15:00:00 · 659 阅读 · 0 评论 -
Linux基础IO知识点
本文系统性地介绍了Linux文件系统的核心概念与操作机制。首先从狭义和广义角度阐释文件的定义,指出Linux将一切设备抽象为文件("一切皆文件"理念)。然后详细解析文件操作的本质是进程通过系统调用对文件属性和内容的操作,并对比了C语言文件接口与系统级I/O的差异。重点剖析了文件描述符(fd)的工作原理、分配规则及重定向机制,通过struct file结构体揭示操作系统管理文件的底层逻辑。希望本篇文章对大家有所帮助!原创 2025-07-15 08:00:00 · 1501 阅读 · 0 评论 -
进程控制 && 自主Shell命令行解释器
本文介绍了Linux进程管理的核心概念和操作,主要包括:1)进程创建(fork函数及写时拷贝技术);2)进程终止(退出场景、退出方法及退出码);3)进程等待(必要性、wait/waitpid方法及阻塞/非阻塞模式);4)进程程序替换(exec函数族原理及使用);5)自主Shell实现(获取命令行、解析命令、创建子进程、程序替换和等待机制)。文章通过代码示例详细讲解了进程管理的各项技术,包括进程间通信、资源回收和命令行解释器的工作原理。希望这些内容对大家有所帮助!原创 2025-07-14 08:00:00 · 996 阅读 · 0 评论 -
环境变量及程序地址空间的知识点
本文主要介绍了环境变量和程序地址空间两个核心概念。环境变量是操作系统中用于指定运行环境的一些参数,具有全局特性,可以通过命令行参数和相关命令进行管理和获取。程序地址空间则涉及虚拟地址、进程地址空间和虚拟内存管理等内容,通过虚拟地址和物理地址的映射,实现了内存的安全管理和高效利用。文章还详细解释了环境变量的组织方式、获取方法以及程序地址空间的结构和好处,帮助读者深入理解操作系统中的这些关键机制。原创 2025-05-19 08:00:00 · 1126 阅读 · 0 评论 -
进程概念及操作系统的知识点
本文介绍了冯诺依曼体系结构,强调软件运行需加载到内存及存储器作为桥梁提高效率。接着阐述操作系统概念,包括内核和其他程序,设计目的是管理软硬件资源并为应用程序提供良好执行环境。然后讲解进程概念,包括进程控制块task_struct、进程状态(运行、睡眠等)、僵尸进程和孤儿进程,以及进程优先级和进程切换。进程优先级通过PRI和NI值调整,进程切换涉及CPU上下文切换和时间片轮转。最后提到Linux 2.6内核的O(1)调度算法,确保查找合适进程的时间复杂度为常数。希望这些内容对大家有所帮助!原创 2025-05-18 09:30:32 · 1269 阅读 · 0 评论 -
Linux基础开发工具大全
本文主要介绍了Linux系统中的软件包管理器、软件生态、yum操作、vim编辑器、gcc/g++编译器、动静态库、make/Makefile、进度条编程、版本控制器git以及gdb调试器等内容。这些工具和概念对于Linux系统下的软件开发和维护至关重要。希望这些内容对大家有所帮助!原创 2025-05-16 20:36:32 · 1189 阅读 · 0 评论 -
Linux基础指令与权限
本文介绍了在XShell8和腾讯云服务器上使用root账号进行基础Linux指令操作的方法。主要内容包括:pwd、ls、cd、 touch、mkdir、tree等基础指令,以及目录权限和粘滞位的设置,并且文章还提到了一些XShell操作技巧,如命令补全、历史命令搜索等。希望这些内容对大家有所帮助!原创 2025-05-13 14:00:25 · 1202 阅读 · 0 评论
分享