
【Linux】
文章平均质量分 84
学习Linux
残念ing
坚持把偶尔一天,变成每一天
展开
-
Linux 进程信号(超详细的都在这里了,从多个方面【信号的产生(系统闹钟)-信号的保存(sigset_t)-信号的捕捉-基于信号操作系统的运行-可重入函数-Volatile-SIGCHLD信号】讲解
在操作系统中,信号的软件条件指的是由软件内部状态或特定软件操作触发的信号产⽣机制。这些条件包括但不限于定时器超时(如alarm函数设定的时间到达)、软件异常(如向已关闭的管道写数据产⽣的SIGPIPE信号)等。当这些软件条件满⾜时,操作系统会向相关进程发送相应的信号,以通知进程进⾏相应的处理。简⽽⾔之,软件条件是因操作系统内部或外部软件操作⽽触发的信号产⽣。系统闹钟,其实本质是OS必须⾃⾝具有定时功能,并能让⽤⼾设置这种定时功能,才可能实现闹钟这样的技术。定时闹钟也要被管理的:先描述,再组织。原创 2024-12-25 12:24:20 · 3484 阅读 · 62 评论 -
【Linux 进程间的通信】-命名管道(要知道什么是命名管道,已经为你全部整理到这里了)
命名管道(Named Pipe),也叫做FIFOs(First In First Out),是一种在进程间进行通信(IPC, Inter-Process Communication)的方法。与匿名管道相比,命名管道具有一个持久化的名字,可以在不同的进程之间进行数据传输,甚至跨越不同的应用程序。在操作系统中,管道(Pipe)是一种单向通信方式,允许数据从一个进程流向另一个进程。命名管道的特点是,它通过一个在文件系统中存在的名字来标识,进程可以通过这个名字来访问和通信。命名管道常用于跨进程通信,并且允许数据原创 2024-12-18 09:00:00 · 452 阅读 · 12 评论 -
【Linux 进程间的通信】—进程池(何为进程池,看了就懂)
进程池的核心思想是预先创建一定数量的进程,并将这些进程放入一个池中。当有新的任务到来时,进程池会分配一个空闲的进程来处理这个任务。任务完成后,进程不会关闭,而是返回池中等待下一个任务。这种方式避免了频繁创建和销毁进程的开销,同时也限制了同时运行的进程数量,防止操作系统过载。原创 2024-12-17 09:00:00 · 787 阅读 · 8 评论 -
【Linux 进程间的通信】匿名管道
匿名管道是UNIX系统进程间通信(IPC)的一种基本形式,它允许具有血缘关系的进程之间进行数据传输。在Linux环境下,匿名管道是通过内核中的缓冲区实现的,这个缓冲区的大小是有限的,通常由操作系统决定。匿名管道是半双工的通信方式,即数据只能单向流动,要么是父进程向子进程发送数据,要么是子进程向父进程发送数据。在Linux中,可以通过pipe()系统调用来创建匿名管道。这个函数会返回两个文件描述符,pipefd[0]用于读取,而pipefd[1]用于写入。创建管道后,通常会通过fork()创建子进程,子进原创 2024-12-16 09:00:00 · 499 阅读 · 11 评论 -
Linux 进程间的通信(超详细的从多方面【管道-匿名管道(进程池)-命名管道-system V】讲解)
管道是Unix中最古老的进程间通信的形式,我们把从一个进程连接到另一个进程的一个数据流称为一个“管道”补充who //看当前有几个用户登录who | wc -l //统计当前的登录用户。原创 2024-12-15 12:00:00 · 3707 阅读 · 51 评论 -
Linux 详细了解动静态库创建以及内部详细,全方位讲述,要想知道什么是动静态库,看这一篇就够了
在编译可执行文件时,要注意,之前的编译方法对于我们自己弄的第三方库,要 `gcc main.c -lmystdio` 这样进行编译,mystdio是libmystdio.a去了头去了尾的在编译可执行文件时,**如果库和源文件在一起**,gcc在查找静态库的时候,不会在当前目录查找,那就要用 `gcc main.c -o main -L. -lmystdio` 告诉编译器,编译的时候,查找库,除了系统路径,也要在我指明的路径下找 在编译可执行文件时,**如果使用的是带路径的库**,编译时就要用 `gcc m原创 2024-12-03 17:38:21 · 887 阅读 · 43 评论 -
Linux文件系统 超详细的都为你整理到这里了,要想知道文件系统是什么,以及文件系统的内部是怎么样的,看这一篇就够了
磁铁数:每个盘片都有上下两面,分别对应1个磁铁,共两个磁头磁道数:磁盘是从盘片外面往内圆编号0磁道、1磁道…靠近主轴的同心圆用于停靠磁头,不存储数据。柱面数:磁道构成柱面,数量上等同于磁道个数扇区数:每个磁道都被分成很多扇形区域,梅道的扇区数量相同圆盘数:就是盘片的数量磁盘容量=磁头数×磁道(柱面数)× 每道扇区数×每扇区字行数传动臂上的磁头是共进退的。原创 2024-12-01 16:36:56 · 1502 阅读 · 46 评论 -
【Linux】—文件(这里有你想知道的文件的一切)
1 文件=内容+属性2 访问文件之前,都必须先打开它(fopen)!因为文件没有被打开时是在磁盘上的,(当文件执行到fopen后文件才会被打开,访问文件的时候其实是进程在访问的,而进程是在内存上的,通过cpu来执行的,因为cpu可以直接读写内存)根据冯诺依曼体系,cpu不能直接访问磁盘。打开的本质就是将文件(内容或者属性)加载到内存中!文本写入和二进制写入是没有区别的,在系统层面上只有二进制写入,因为read 在系统调用的参数是(void*)所谓的格式是用户层自己维护的。所以文本写入和二进制写入由用户决原创 2024-11-30 17:08:33 · 1077 阅读 · 35 评论 -
【Linux】—简单实现一个shell(myshell)
shell本质上就是一个进程,所谓的命令行参数,环境变量,就是shell内部的表(指针数据组),如果是表的话可以通过(env、expect…)这些命令会围绕着这张表来让shell来自主定义与维护这张表。原创 2024-11-23 12:54:14 · 3257 阅读 · 70 评论 -
【Linux】—进程创建详解(新手小白通俗易懂版)
进程调用fork,当控制转移到内核中的fork代码后,内核做:1 分配新的内存块和内核数据结构给子进程2 将父进程部分数据结构内容拷贝至子进程3 添加子进程到系统进程列表当中4 fork返回,开始调度器调度execlp等这些都是通过C标准库封装了execve这个系统接口来实现的。原创 2024-11-20 13:34:23 · 1062 阅读 · 37 评论 -
【Linux】—进程地址空间
地址空间的本质就是一个struct mm_struct ,里面所有的内容,都是OS系统自动完成的。我们只要把进程管理好了,地址空间就管理好了。比如:全局变量,字符串常量具有全局性,在程序运行期间都会有效,其实实际上是在地址空间中随着进程,一直存在,全局变量的虚拟地址也会一直被用户看到。原创 2024-11-17 11:34:53 · 705 阅读 · 11 评论 -
【Linux】--环境变量
环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数如:我们在编写C/C++代码的时候,在链接的时候,从来不知道我们的所链接的动态静态库在哪里,但是照样可以链接成功,生成可执行程序,原因就是有相关环境变量帮助编译器进行查找。环境变量通常具有某些特殊用途,还有在系统当中通常具有全局特性原创 2024-11-16 13:42:27 · 1164 阅读 · 13 评论 -
【Linux】--进程(优先级)
进程切换的核心就是进程上下文数据的保存和恢复。保护就是单时间片或者其他进程进入之前,先将相关寄存器的内容保存起来(这个保存的地方是不在CPU中的)。恢复就是当要继续这个进程时,将历史保存的寄存器的数据,恢复到寄存器中每次的切换都保证了CUP在运行下一个进程时都是全新的。进程在CUP中的切换过程1. 根据pc取指令2. 更新pc3. 分析执行指令pc=当前地址+读进来的指令的长度进程的优先级是:获得CPU资源的先后顺序,比如:排队的本质就是在确认优先级。优先权高的进程有优先执行权利。配置原创 2024-11-15 18:28:03 · 1038 阅读 · 0 评论 -
【Linux】进程(状态)
并发:cpu执行进程代码,不是把进程代码执行完毕,才开始执行下一个,而是给每一个进程预分配应该时间片,基于时间片,进行调度轮转(单CUP下),让多个进程都得以推进并行:多个进程在多个CPU下分别,同时进行运行在内存资源严重不足时,操作系统会通过挂起进程的方式,将代码和数据换出到磁盘的所有分区,从而有效的去缓解内存资源不足的问题,如果实在缓解不了,操作系统就会干掉系统上进程原创 2024-11-12 13:29:48 · 582 阅读 · 0 评论 -
【Linux指令】---查看进程
【代码】【Linux指令】---查看进程。原创 2024-11-02 14:38:24 · 111 阅读 · 0 评论 -
【Linux】——操作系统-进程详解
父:子=1:nfork()->两进程->父子关系->一般而言,代码是会共享的,但是数据是各自私有一份的那问题来了,为什么数据是各自私有一份的呢???因为进程具有很强的独立性!多个进程之间,运行时。互不影响,即便是父子。原创 2024-11-02 14:33:20 · 1666 阅读 · 0 评论 -
【Linux】--操作系统(Operator System)(1)
1. 冯诺依曼体系的复习2. 管理3. 了解进程任何程序,运行的时候,都必须先被(从键盘)加载到内存当数据在计算机内部流传的时候,本质是在不同的设备间进行拷贝——设备的拷贝效率本质就是计算机的效率任原创 2024-10-31 19:38:08 · 323 阅读 · 0 评论 -
冯诺依曼体系结构(简单易懂版)
系统—冯诺依曼体系结构:任何程序,运行的时候,都必须先被(从键盘)加载到内存原创 2024-10-30 09:38:46 · 500 阅读 · 0 评论