
Linux学习
文章平均质量分 94
北海有初拥
向更好的编程技能出发!
展开
-
【Linux】Linux进程状态与进程优先级(新)
在操作系统中,⼀般会存在⼀个进程状态转换图,例如下图:整个过程中涉及到五个基本进程状态:1.创建(new):表示进程创建2. 运⾏(running):表示进程正在被执⾏3. 等待(waiting):表示进程正在等待具体事件发⽣,也被称为阻塞状态4. 就绪(ready):等待被调度器调度执⾏5. 终⽌(terminated):进程完成执⾏。原创 2025-03-19 20:25:16 · 654 阅读 · 0 评论 -
IPC 进程间通信(一):管道(匿名管道&进程池)
进程可以通过 读/写 的方式打开同一个文件,操作系统会创建两个不同的文件对象 file,但是文件对象 file 中的内核级缓冲区、操作方法集合等并不会额外创建,而是一个文件的文件对象的内核级缓冲区、操作方法集合等通过指针直接指向另一个文件的内核级缓冲区、操作方法集合等。这样以读方式打开的文件和以写方式打开的文件共用一个内核级缓冲区进程通信的前提是不同进程看到同一份共享资源所以根据上述原理,父子进程可以看到同一份共享资源:被打开文件的内核级缓冲区。原创 2025-03-18 20:49:52 · 861 阅读 · 0 评论 -
Linux中输入和输出基本过程
前面在如何理解Linux一切皆文件的特点中提到为了保证在Linux中所有进程访问文件时的方式趋近相 同,在f ile 结构体中存在一个 files_operations 结构体指针,对应的结构体保存所有文件操作的函 数指针(这个结构体也被称为操作表)每一个f ile 结构体中除了有自己的操作表以外还有一个文件的内核级缓冲区,这个缓冲区不同于语言层 面的缓冲区,在调用底层系统接口的读或者写时,会有一方先将内容保存到该缓冲区,再将内容移动到 指定设备。原创 2024-12-16 20:58:04 · 1235 阅读 · 0 评论 -
Linux文件操作基础
在Linux第一章提到过, 在Linux中,一切皆文件,而文件由文件内容和文件属性组成,在C语言中可以 使用相应的接口打开文件,例如 fopen 函数。原创 2024-12-13 15:30:18 · 1421 阅读 · 0 评论 -
【Linux】Linux进程地址空间
RWX 属性:代表虚拟地址对应的物理地址是否具有读(R)、写(W)和执⾏权限 (X)。前⾯提到,每⼀个进程地址空间区域都由指定的起始值和终⽌值进⾏划分,⽽这些区 域有的是可以写,有的不可以写只能读,但是对于物理内存来说,绝⼤部分的空间都 是可以写的,所以对于限制指定的物理地址是否可以写⼊就是通过 RWX 属性进⾏控制例如,前⾯学习到的栈区和堆区,在程序代码运⾏时,可以在栈区和堆区申请空间并 进⾏写⼊,但是对于字符串常量等具有常性的值就不可以进⾏随意修改和写⼊。原创 2024-10-19 22:26:23 · 1475 阅读 · 0 评论 -
【Linux】Linux命令行与环境变量
在Linux下输⼊的命令⾸先会被Shell拿到。前⾯提到⽗进程和⼦进程的代码是共有的,但是⼆者数据是各⾃独⽴的,但是数据独 ⽴实际上只会建⽴在其中⼀个进程修改了数据,如果⼆者都是对变量进⾏只读不写, 那么也没有必要单独为两个进程开辟两个数据空间对于上⾯的情况亦是如此,直接在终端上执⾏的进程,其⽗进程都是Shell,并且⽗ 进程和⼦进程都只是以只读的⽅式访问 main 函数的参数,所以就不会出现两个数据 空间。从上⾯的过程中也可以看出,在设计操作系统、编程语⾔等时,相互都是存在依赖关系的。原创 2024-10-17 17:18:06 · 1002 阅读 · 0 评论 -
【Linux】Linux进程状态与进程优先级
在操作系统中,⼀般会存在⼀个进程状态转换图,例如下图:整个过程中涉及到五个基本进程状态:1.创建(new):表示进程创建2. 运⾏(running):表示进程正在被执⾏3. 等待(waiting):表示进程正在等待具体事件发⽣,也被称为阻塞状态4. 就绪(ready):等待被调度器调度执⾏5. 终⽌(terminated):进程完成执⾏。原创 2024-10-15 17:49:51 · 1064 阅读 · 0 评论 -
【Linux】Linux进程基础
进程的本质是在计算机内存中运⾏的程序,但是这⼀个概念太过于⼴泛每个应用程序运行于现代操作系统之上时,操作系统会提供一种抽象,好像系统上只有这个程序在运行,所有的硬件资源都被这个程序在使用。这种假象是通过抽象了一个进程的概念来完成的,进程可以说是计算机科学中最重要和最成功的概念之一。原创 2024-10-13 14:25:50 · 1173 阅读 · 0 评论 -
【Linux】操作系统基础
冯诺依曼体系结构如下:在上图中「输⼊设备」和「输出设备」⼀般被称为计算机的外设,⽽「存储器」在冯 诺依曼体系结构中表示「内存」输⼊设备⼀般包括:⽹卡、磁盘、键盘、触摸屏等输出设备⼀般包括:⽹卡、磁盘、⿏标、触摸屏、显示器(⾮触摸屏)等。原创 2024-10-12 19:58:51 · 630 阅读 · 0 评论 -
【Linux】Linux下的Makefile基本操作
clean:第⼀⾏中的代表依赖关系,code表示⽬标⽂件, 赖⽂件列表中的⽂件,第⼆⾏的 code.c 表示依 gcc -o code code.c代表依赖⽅法(指令)第三⾏中的.PHONY表示⽣成⼀个伪⽬标,clean表示伪⽬标的名字(可以类⽐ 变量名)第四⾏及第五⾏与第⼀⾏及第⼆⾏含义⼀致,表示依赖关系和依赖⽅法,⽽因为clean没有需要依赖的⽂件,所以clean:后没有任何依赖⽂件列表⽂件依赖关系:表示两个⽂件之间构成的⼀定关系,⽐如⽗⼦关系。原创 2024-10-11 19:12:12 · 2319 阅读 · 0 评论