linux笔记
文章平均质量分 92
晚风相伴
这个作者很懒,什么都没留下…
展开
-
Linux下线程的互斥与同步详解
临界资源:多线程执行流共享的资源就叫做临界资源临界区:每个线程内部,访问临界资源的代码,就叫做临界区互斥:任何时刻,互斥保证有且只有一个执行流进入临界区,访问临界资源,通常对临界资源其保护作用原子性:不会被任何调度机制打断的操作,该操作只有两种状态,要么完成,要么未完成。原创 2024-06-08 18:23:09 · 1610 阅读 · 13 评论 -
Linux下多线程的相关概念
线程是进程中的一条执行流,它是被系统独立调度和分配的基本单位。在一个进程内的多个线程可以共享该进程所拥有的全部资源,并且这些线程可以并发执行。简而言之,线程是程序中一个单一的顺序执行流,允许在单个程序中同时运行多个线程以完成不同的工作,这种技术被称为多线程。举个例子,在一个工厂里面有很多的车间,每个车间里都有许多的工人,每个工人所做的工作也可能各不相同。因此这里的工人就可以想象成是线程,每个车间想象成是一个进程,而工厂想象成是一台计算机。原创 2024-05-29 15:51:49 · 1318 阅读 · 9 评论 -
【Linux】信号之信号的保存和处理详解
信号的时间线在上一篇《信号之信号的产生》中已将信号产生讲明白了,本篇就来讲讲信号的保存和处理吧。原创 2024-05-19 14:23:26 · 809 阅读 · 15 评论 -
【Linux】信号之信号的产生详解
所有信号的产生,最终都要有操作系统来进行执行,因为操作系统是进程的管理者信号不是立即被处理的,是在合适的时机,进程会执行处理信号不是被立即处理的,那么就需要被保存起来,信号会被保存在进程PCB中的信号位图上。原创 2024-05-16 20:39:35 · 979 阅读 · 7 评论 -
【Linux】进程间通信之共享内存
一个进程在物理内存中申请一块空间,并且通过页表映射到自己的地址空间中的共享区不同的进程也将这块空间通过页表映射到各自的地址空间中的共享区,这就实现了不同的进程看到了同一块资源那么进程就可以找到自己的地址空间中的共享区访问共享内存,当一个进程往当一个进程往这块共享内存写入数据时,其它进程访问这块共享内存就可以读取到数据,从而实现了进程间的通信。原创 2024-05-10 18:05:30 · 1220 阅读 · 6 评论 -
【Linux】进程间通信方式之管道
要实现进程间通信本质是要让不同的进程看到同一块资源。命名管道其实是在磁盘上创建了一个管道文件,这个管道文件可以随意被命名,并且有对应的属性但是没有内容,当我们在一个进程中打开这个管道文件并且将数据写入这个文件中,另一个进程也就可以打开这个管道文件并且从这个文件中读取数据,不同的进程都能打开并使用这个管道文件,所以也就让不同的进程看到了同一块资源。并且在这读写过程中管道文件中的数据不会加载到磁盘中,所以管道文件的大小始终为0保持不变。原创 2024-05-09 21:12:58 · 1097 阅读 · 6 评论 -
Linux下软硬链接和动静态库制作详解
软硬链接有什么本质区别:有没有独立的inode软链接有独立的inode,所以软链接是一个独立的文件硬链接没有独立的inode,所以硬链接不是一个独立的文件软链接就相当于你在windows下给一个应用创建了一个快捷方式。原创 2024-04-27 12:46:14 · 1684 阅读 · 7 评论 -
井字棋源码(网络线程池版)
井字棋网络线程池版——我不允许还有人没玩过原创 2024-04-24 17:16:41 · 236 阅读 · 3 评论 -
揭秘Linux文件系统
在上一篇中谈论的都是打开的文件,但是在我们的系统中不仅有打开的文件还有许多未打开的文件,那么这些未打开的文件又该如何呢。原创 2024-04-23 17:08:51 · 711 阅读 · 1 评论 -
读者必看!Linux文件描述符深度解析
知识点1当我们创建了一个空文件时,这个空文件是否会占空间呢?答案是:当然啦,因为文件 = 内容 + 属性,文件的属性也是数据当然会占空间啦因此我们对文件的操作无外乎是对文件的内容或者文件的属性做操作。知识点2文件在磁盘上存着,我们在C语言或者其它语言中通过编写代码并运行来访问文件,那么这本质是谁在访问文件呢?答:是进程通过C语言或者其它语言给我们提供的文件接口来访问的。知识点3。原创 2024-04-19 23:04:05 · 778 阅读 · 4 评论 -
【TCP】socket套接字——快速上手
TCP的主要特点:面向连接、可靠、全双工通信、字节流原创 2024-04-15 19:52:44 · 1151 阅读 · 0 评论 -
【Linux】进程控制之进程程序替换
关于本文可以先去看看上一篇可以更好的理解这里的内容学完本片文章,你就可以自己设计一个mini版的shell解释器,还可以用你写自己的代码区执行其它语言的程序。原创 2024-04-05 20:46:05 · 766 阅读 · 4 评论 -
【Linux】进程控制详解
你想了解的都在这里,确定不来看看吗原创 2024-04-03 22:52:28 · 948 阅读 · 2 评论 -
【UDP】socket套接字带你快速上手
UDP协议是一个面向数据报、无连接、不可靠的传输层协议。原创 2024-03-23 22:19:36 · 1065 阅读 · 2 评论 -
【Linux】进程地址空间详解
地址空间是一个进程可用于寻址内存的一套地址集合。每个进程都有一个自己的地址空间,并且这个地址空间是独立于其他进程的地址空间(除了在一些特殊情况下进程需要共享它们的地址空间外)。原创 2024-03-22 21:29:41 · 940 阅读 · 0 评论 -
Linux下的环境变量
环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数,例如:我们在编写C/C++代码时,在链接的时候,从来不知道我们要链接的动静态库在哪里,但是照样可以链接成功,生成可执行程序,原因就是有相关环境变量帮助编译器进行查找。原创 2024-03-06 20:34:26 · 1164 阅读 · 0 评论 -
Linux下进程相关概念详解
任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。原创 2024-03-02 18:17:54 · 967 阅读 · 1 评论 -
gdb调试工具详解
1、程序的发布方式有两种,debug模式和release模式2、gcc/g++形成的可执行程序默认是release模式3、要使用gdb调试,必须在源代码生成可执行程序的时候, 加上 -g 选项很明显可以看出debug模式下的文件比release模式下的文件要大对比release模式,很明显debug模式下多出来了许多调试信息。原创 2024-01-21 23:14:36 · 684 阅读 · 2 评论 -
vim工具的使用
vi和vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。大家打开的vim会发现你的vim和我的不一样,是因为我的vim做了相关的配置,你也可以去搜一下相关的配置教程,对你的vim进行配置。控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入插入模式,或者到底行模式。当你进入vim之后,此时是处于命令模式,你要切换到插入模式才能够进行输入。该模式是我们以后用的最频繁的编辑模式。命令模式->插入模式。原创 2023-10-14 11:24:49 · 824 阅读 · 3 评论 -
linux基础指令(下)
其实我们所用的指令本质上是可执行程序,和我们Windows桌面上的APP图标一样。我们也可以将管道和输出重定向与grep结合使用,将你想搜索的内容写入新的文件中。-f :使用档名,请留意,在 f 之后要立即接档名喔!上面演示的是解压到当前路径,要解压到指定路径还要加-d和路径名。-1 : 显示当前月(不加也行,直接cal是同样的效果)-3 : 显示系统前一个月,当前月,下一个月的日历。grep -i : 忽略大小写的不同,视为一样的。-v : 反向选择,显示出与你想搜索的相反的内容。......原创 2022-08-17 20:45:03 · 505 阅读 · 6 评论 -
linux基础指令(上)
cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息。那么它的文件种类无非就两种:目录和文件或者空目录,其中目录中可以有其它目录或者文件,而文件下不能有目录或者其它文件。cp -f : 强行复制文件或目录, 不论目的文件或目录是否已经存在。ls -a :列出目录下的所有文件,包括以.开头的隐含文件。...原创 2022-08-08 20:48:54 · 513 阅读 · 6 评论