LINUX
文章平均质量分 89
玛丽亚后
大三老登,记录平时的所学所感
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
秒懂Linux之线程(下)
秒懂Linux之线程(中)-CSDN博客秒懂Linux之线程-CSDN博客基于环形队列的生产消费模型原理我们继续延用生产消费模型搭配环形队列来说明信号量原理~之前我们把队列当作整体资源用锁来保护,现在我们把整体资源拆分成多个小份放在环形队列中,用信号量进行保护~单生产单消费演示机制:当然可以,在该条件下生产不用顾虑队列已满,消费也不用担心队列已空。是可以做到生产与消费的并发的~是不同于阻塞队列的,看似并发,实际上仍是依靠提醒(signal)机制。原创 2024-10-16 21:21:52 · 866 阅读 · 0 评论 -
秒懂Linux之线程(中)
在前面的文章中我们主要接触单线程下的场景,那么现在我们来尝试一下多线程等等更多的新知识点~秒懂Linux之线程-CSDN博客。原创 2024-10-15 00:06:54 · 926 阅读 · 0 评论 -
秒懂Linux之线程
给不同线程分配不同的区域,本质上就是让不同的线程各自看到全部页表的子集~原创 2024-10-03 02:43:44 · 1033 阅读 · 1 评论 -
秒懂Linux之信号
我们也可以去修改进程接收到信号的默认动作~signal函数本质是根据修改的信号让其进入handler回调函数来实现信号的自定义处理~//不终止进程,而是让该信号打印一句话int main()while(1)sleep(1);return 0;需要注意的是调用signal后回调函数handler并不会立刻执行,而是等接收到对应的信号才执行~原创 2024-09-27 00:33:45 · 1043 阅读 · 0 评论 -
秒懂Linux之消息队列与信号量(了解)
消息队列与信息量目前已经不常用了,大家也可以参考共享内存去了解基本原理即可。原创 2024-09-21 01:09:18 · 941 阅读 · 0 评论 -
秒懂Linux之共享内存
一旦这样的内存映射到共享它的进程的地址空间,这些进程间数据传递不再涉及到内核,前的管道通信是通过创建管道这种特殊文件让不同进程在内核中通过打开同一个文件来建立通信。返回值:成功返回一个非负整数,即该共享内存段的标识码;换句话说是进程不再通过执行进入内核的系统调用来传递彼此的数据。返回值:成功返回一个指针,指向共享内存第一个节;指向一个保存着共享内存的模式状态和访问权限的数据结构。注意:将共享内存段与当前进程脱离不等于删除共享内存段。由九个权限标志构成,它们的用法和创建文件时使用的。返回的共享内存标识码。原创 2024-09-21 01:04:51 · 1076 阅读 · 0 评论 -
秒懂Linux之管道通信
两个进程之间可以进行数据的直接传递吗?——不可以,进程必须得具备独立性。进程间通信目的数据传输:一个进程需要将它的数据发送给另一个进程资源共享:多个进程之间共享同样的资源。通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)。进程控制:有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程希望能够拦截另一个进程的所有陷入和异常,并能够及时知道它的状态改变。原创 2024-09-12 23:44:50 · 1152 阅读 · 1 评论 -
秒懂Linux之动静态库
所以小明就只把汇编后的.o文件发给小强,让他自己去和main函数进行链接~原创 2024-09-07 00:02:53 · 663 阅读 · 0 评论 -
秒懂Linux之文件系统
进程打开文件时,是否意味着系统内的所有文件都被打开了呢?不是的,大部分文件不会被打开,那么没打开的文件又会被保存在哪里呢?存储在磁盘,SSD中~按理来说OS是不会涉及磁盘内容的~但为了让用户更快更方便找到文件,OS里的一个管理模块(文件系统)会专门来管理这些未打开的文件。以类比进行举例:我们平时存快递的菜鸟驿站就相当于磁盘,而菜鸟驿站的老板就是OS所属的管理模块之一(文件系统),通过有效的管理帮助用户快速查找未打开的文件~原创 2024-09-03 23:34:52 · 1015 阅读 · 1 评论 -
秒懂Linux之文件
在我们学习文件之前得先明白文件是什么?——文件 = 内容 + 属性——文件是谁打开的呢?——文件由进程调度打开,当然前提是文件必须先加载入内存中~我们在访问文件之前必须得先打开,修改文件就是通过执行代码的方式进行修改——文件都是呈现被进程打开的状态吗?——虽然一个进程可以打开很多个文件,但并不是会全部打开,不去访问的文件会存储在磁盘中等待——原创 2024-08-20 23:03:39 · 1061 阅读 · 0 评论 -
秒懂Linux之制作简易shell
int main()// 输出提示符并获取用户输入的命令字符串"ls -a -l"return 0;首先我们先来模拟一下最开始的命令行及其输入~已经有点味道了~ 就是功能有点单一,只能输入输出~我们再执行一次模拟写入指令后发现当前缓冲区只能获取ls,后面遇到空格就刷新出来了。那要如何获取完整的指令呢?(不获取到完整的指令又怎么知道用户具体要干啥呢?int main()原创 2024-08-17 00:18:45 · 867 阅读 · 2 评论 -
秒懂Linux之进程控制
秒懂Linux之进程-CSDN博客如果友友们对fork还不熟悉可以先看这篇文章提前了解一下~原创 2024-08-17 00:17:58 · 1264 阅读 · 0 评论 -
秒懂Linux之进程地址空间
接下来我们会通过类比来描述出地址空间~一个身怀10亿的大富翁给四个孩子画饼,承诺只有他们四个好好干好自己的事业那么总有一天就能继承10个亿的家产~而这个过程只是大富豪给他们画的大饼,实际上什么都不会给他们~这些大饼里面有0-10亿可以被他们在将来调度~在我们生活中画大饼也是处处都有,那么问题来了~这些大饼需要管理吗?——当然需要,这样才能有各种各样的大饼~在操作系统中是需要管理大饼的,那么怎么管理呢?——先描述,再组织~所以本质是进程空间就是数据结构~那么进程地址空间里面有什么属性呢?原创 2024-08-13 20:51:01 · 1043 阅读 · 0 评论 -
秒懂Linux之环境变量
最终是我们可以通过不同的选项让我们的同一个程序去执行其内部不同的功能~还是拿不到说明子进程确实无法继承本地变量,只能继承环境变量~环境变量通常具有全局属性,可以被子进程继承下去。getenv获取环境变量~(常用)命令行第三个参数获取环境变量。set: 显示本地定义的。设置一个新的环境变量。指定用户的主工作目录。原创 2024-08-11 23:45:25 · 842 阅读 · 0 评论 -
秒懂Linux之进程调度与切换
首先先来讲述活跃队列,活跃队列就是当前处于运行队列中的进程~然后它们被安排在指针数组queue中,而在queue【140】里0-99的空间我们是不用的,因为通常那是代表实时操作(一直运行进程直到结束,没有时间片),所以我们取的是后面40个空间来划分出40个优先级(因为linux的优先级一共有40个等级,从低到高依次往上排)。当有进程被cpu调度时在运行的时候会产生大量的临时数据~放在寄存器中!而处于cup内的临时数据外面称为进程的硬件上下文。内核中进程队列的数据结构来为大家讲述。原创 2024-08-10 02:30:03 · 870 阅读 · 0 评论 -
秒懂C++之进程状态及优先级
在这个过程中PCB是还在内存中的,它要保证呈现该进程的状态~而且创建进程的时候也是先生成PCB,相当于学生档案和学生,学校会在学生入学前通过学生档案获取信息提前管理~借助排队我们来重新认识PCB,在之前的学习中为了让多个进程组织在一起,我们是直接在结构体内定义一个指向下一位结构体的指针Next~然后父进程一直循环下去但不去获取子进程的退出数据~ 那么这时候的子进程就会变成僵尸进程状态~进程排队,那一定是进程的PCB(task_struct)在排队,因为是操作系统在管理排队~还可以把进程运行到指定的。原创 2024-08-08 22:28:45 · 829 阅读 · 1 评论 -
秒懂Linux之进程
在Linux中描述进程的结构体叫做task_struct是Linux内核的一种数据结构,它会被装载到RAM(内存)里并且包含着进程的信息内容分类标示符描述本进程的唯一标示符,用来区别其他进程。状态任务状态,退出代码,退出信号等。优先级相对于其他进程的优先级。程序计数器程序中即将被执行的下一条指令的地址。内存指针包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针上下文数据进程执行时处理器的寄存器中的数据休学例子,要加图CPU,寄存器。IO。原创 2024-08-08 10:19:15 · 883 阅读 · 1 评论 -
浅谈操作系统
我们前面谈到了一个可执行程序首先会到内存进行预先加载~而在我们的计算机中第一个被加载的软件就是操作系统~操作系统的主要工作就是对软硬件资源进行管理~这里我们先从操作系统下层开始讲起~我们把操作系统类比为校长,驱动程序类比为辅导员,底层硬件类比为学生~试问如果校长想要管理学生,需要和学生进行直接接触吗?——不需要,校长只需要得到学生的相关数据就行了~校长做出决策需要整理学生数据~辅导员落实决策,去收集学生的数据最后交给校长~管理的本质从来都不是谁与谁去见面,而是获取到它的数据原创 2024-08-07 09:11:00 · 610 阅读 · 2 评论 -
浅谈冯诺依曼体系
所以就有了内存的诞生,它的效率很接近cpu可以很好衔接~它的存在就好比公司里老板的秘书,员工效率太慢挡不住老板频繁追问时,它可以让员工慢慢在内存里面先准备好,然后再一次性向老板传达内容,老板看完马上发表意见给它,内存这时候又充当缓存的作用,等积累一定量再一次性刷新到输出设备中。就比如我们在网络上进行聊天,张三通过键盘输入信息,然后到内存中经过cpu处理后发生回内存,内存再传输到网卡这个输出设备给李四。简而言之,内存从整体上提升了计算机的效率,不再以输入,输出设备为主,而是以内存自身的效率为主。原创 2024-08-06 03:05:38 · 348 阅读 · 0 评论 -
秒懂Linux之gdb调试
其实这些指令并不是重点,重点是我们需要学会有调试的思维,通过这些指令来帮我们找出问题,划定范围,然后不断缩小范围,最后找到问题。这个过程才是最重要的~原创 2024-08-04 21:53:15 · 1576 阅读 · 0 评论 -
秒懂Linux之编写小程序——进度条
在开始编写之前我们先来学习一些后面会用到的知识点~测试结果发现,Sleep无作用,编译完会立刻打印~这是因为打印的结果都存储在缓冲区里,之前是通过‘\n'成功把它们刷新出来,不过这样sleep就没有效果了~原创 2024-08-02 03:03:01 · 557 阅读 · 0 评论 -
秒懂Linux之自动化构建工具-make/Makefile
在学习自动化构建工具前我们先来补充一下动静态库的相关指令动态库指令gcc -o 文件(重命名) 源文件静态库指令gcc -o 文件(重命名) 源文件 -static。原创 2024-08-01 23:14:58 · 516 阅读 · 0 评论 -
秒懂Linux之vim
从网上整理了一些关于vim相关的指令操作作为笔记以便复习查阅原创 2024-07-27 21:55:15 · 614 阅读 · 2 评论 -
秒懂Linux之权限
其实普通用户得征求所改权限用户同意才可以修改,或者是用sudo指令。我们生成一个可执行文件mycmd,然后把该文件放进dir目录底下。当我们用ln -s链接命令时,这是通过链接去执行的操作~他就是你的所属组(与你同名)(从other变为所属组)r决定是否可以对文件属性信息进行查看的权利(例如ll)用二进制的形式如果想要对应的权限则置1,三个为一组。在文件权限里面我们每一个人都有要各自扮演的角色~这里感兴趣的同学可以慢慢尝试,我们直接说结论。你扮演的就是该文件的拥有者。这是我们正常去执行的操作。原创 2024-07-26 22:12:38 · 714 阅读 · 1 评论 -
秒懂LINUX之初识命令(下)
关于LINUX相关的一些常见指令原创 2024-07-21 02:05:18 · 809 阅读 · 0 评论 -
秒懂LINUX之初识指令(上)
ls [选项][目录或文件:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。原创 2024-07-18 00:24:11 · 931 阅读 · 0 评论
分享