
Linux
文章平均质量分 81
Linux
不会写算法的小沈
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
IO复用-epoll基础
当某个文件描述符已经准备好了,调用recv读取数据的时候,发现这个文件描述符内的内容并不完全,此时如果再去调用别的文件描述符,那么原先缓冲区的内容就会被覆盖,原先读到的内容也没了。LT:当文件描述符准备好后,只要该文件描述符没有进行处理,那么epoll_wait()就会一直响应该文件描述符,告诉用户你要进行处理了,直到你读取了文件描述符内的数据。其原理是通过同时管理多个IO接口(文件描述符),将等待的时间重叠,这样使得在相等的时间内,出现满足条件的文件描述符的概率增大。原创 2024-09-11 20:54:10 · 1093 阅读 · 0 评论 -
复制会话与复制SSH渠道的区别
复制会话的本质:通过将当前用户登录信息传递给SSH服务端验证来再创建用户(所以在复制的时候,会感觉到明显的延迟),然后为这个新用户创建终端文件+bash进程。在同一个以建立的用户下(PID=185000),创建了多个终端文件+多个bash进程(守护进程),每个终端文件对应一个bash进程。守护进程的作用是当终端退出时,处于当前终端的进程不会被杀掉。这个文件是终端文件,所有的输入输出均与他有关,向这个文件输入,就是向对应终端输入。复制SSH渠道的本质:在本地已建立的用户下,新建终端文件+bash进程。原创 2024-08-27 15:23:56 · 750 阅读 · 0 评论 -
[Linux]一篇文章带你全面理解信号
在操作系统(OS)中,信号(signal)是一种进程间通信(IPC)的机制,特别是在Unix、类Unix以及其他POSIX兼容的操作系统中。信号是一种异步的通知机制,用来提醒进程一个事件已经发生。信号是系统提供的一种让用户(进程)能够给其他进程发送异步信息(可以理解任意时间都可以发送,接受信号的进程无法预料到信号到来的时间)的方式信号的发送,是为了让接受信号的进程做一些自己执行流之外的操作(如:你正在打游戏,家里人喊你吃饭,这就是给你的一个信号)原创 2024-05-15 12:22:22 · 944 阅读 · 0 评论 -
[Linux]一篇文章带你搞定软硬连接
它的应用场景非常广泛,比如当需要在不同的目录中使用相同的文件时,只需要在某个固定目录放上该文件,然后在其他目录下使用软链接链接该文件,这样既节省了磁盘空间,又方便了文件的访问。如果你这个时候去删掉他们之间的任意一个后,再去打开另外一个,发现内容还是没有变(就好像删除的操作白做了一样),这是由于硬链接的特性,会在后面进行叙述(不同的是,如果你删除了被软链接链接文件,则你会发现软链接就没有用了,打不开对应的源文件)硬链接并不会拷贝文件,因为开销太大,相反它利用了引用计数的思想,来实现链接,听我娓娓道来。原创 2024-04-14 15:26:26 · 748 阅读 · 1 评论 -
[Linux]如何理解kernel、shell、bash
kernel是指操作系统中的核心部分,用户一般是不能直接使用kernel的。从上图中的grep指令(最后一行)中可以看出,每一次进行查找指令时,都会创建一个进程来执行查找操作,而这个进程的父进程就是bash。是为了预防用户的一些风险操作。其作用是将用户的指令翻译给kernel进行处理,以及将kernel的处理结果翻译返还给用户。每当启动一个命令行时(复制了会话窗口),都会创建一个bash进程(下图可以看出,对于每一个bash进程,他们的父进程的pid相等,说明bash是同一个进程创建的子进程)原创 2024-03-02 20:34:19 · 992 阅读 · 0 评论 -
[Linux]文件基础-如何管理文件
fopenfwritefreadfclosefseek那么深入到操作系统层面,看看OS是如何接收C语言的指令并完成这一些列函数操作的!原创 2024-02-24 18:31:30 · 942 阅读 · 0 评论 -
僵尸与孤儿(Linux下各进程状态的查看)
僵尸与孤儿(Linux进程的状态)原创 2023-12-10 11:01:25 · 1335 阅读 · 0 评论 -
Linux文件属性
后文围绕着上图解释Linux中的文件属性: 在我们常见的windows下面,我们区分文件是通过他的后缀 而在Linux里面,文件类型的区分不通过后缀,而是通过“前缀” Linux中把访问者分为3类:拥有者,所属组,other 文件权限主要分为3类:r(可读),w(可写),x(可执行)原创 2023-10-28 11:35:40 · 81 阅读 · 1 评论 -
make/Makefile
平时在Linux下写C/C++代码代码是,是否总会遇到一个问题:对于我们写好的一个code.ccode.cpp文件,我们想要运行的时候,必须要通过、**g++**来编译这就导致每次都需要输入以下代码,才能生成对应的可执行文件:对于小工程这样写自然没有问题,但是如果这个工程的文件有呢?那岂不是每次修改了任意一个文件的内容都要重新写一遍从而对于以上的代码:只需要一个make指令就可以完成编译,又只需要一个make clean指令就可以完成清理。原创 2023-11-27 21:56:15 · 1079 阅读 · 0 评论