- 博客(67)
- 收藏
- 关注
原创 【Linux】八、进程通信
目的数据传输:一个进程将它的数据发送给另一个进程;资源共享:多个进程间共享资源;通知事件:一个进程向另一个或一组进程发送消息,同时事件如,进程终止时要通知父进程;进程控制:有的进程需要完全控制另一个进程的执行,此时控制进程希望能够拦截另一个进程的所有陷入和异常,并及时知道它的状态;进程间通信的必要性在单进程下不通信是可以的,但是多进程的并发能力就无法使用,更加无法实现多进程协同,有的是为了传输数据,有的为了同步执行流,有的为了消息通知;进程间通信的技术背景。
2023-11-12 12:47:57
477
原创 【Linux】七、基础IO
文件 = 属性(本质上也是数据)+内容;文件的所有操作大致有两种,对内容的操作,和对属性的操作;文件在磁盘中放置,磁盘是硬件,只有操作系统可以真正的访问磁盘;C\C++程序要读写需要先变为进程;而文件在磁盘上放着,我们访问文件需要先写代码,fopen等,然后编译,生成exe文件,运行后访问文件,所以访问文件本质上是进程在访问文件;进程访问文件是需要通过接口访问;之前接触的接口是C\C++语言层面的接口,但是访问文件相当于要向硬件写入,所以只有操作系统(通过驱动程序)才能向硬件写入;
2023-11-06 22:13:19
328
原创 【Linux】六、进程控制
其次,因为进程随时可能被中断(可能没有执行完),下次回来,还必须从之前的位置继续运行,就要求CPU必须随时记录下当前进程执行的位置,所以,CPU内有对应的寄存器数据,用来记录当前进程执行的位置,寄存器叫做EIP,也叫做pc(point code)指针,程序计数器;寄存器在CPU内只有一份,但是寄存器的数据,可以有很多份,而这个数据也就是上下文数据,而这个上下文数据,通过写时拷贝给子进程,父子进程各自调度,各自会修改自己的EIP,但是此时子进程已经认为自己的EIP起始值就是fork之后的代码;
2023-10-16 21:54:55
239
原创 【C语言深度剖析】一、关键字
上述代码,在vs环境下执行编译链接本质上就是将文本文件转化为可执行的二进制文件,在Windows下双击可直接运行可执行文件,双击的本质就是打开文件而打开文件的本质就是将程序数据加载到内存中让计算机运行。一般认为关键字有32个,这都是C90(C89)的标准,C99后边又增加了5个关键字,但由于目前的编译器对C99的支持并不好,所以后面默认使用C90,32个关键字;由于冯诺依曼体系结构定义的,任何数据在处理时,都需要先加载到内存中,CPU再进行处理;为什么要把程序加载到内存中?未加载前程序数据在哪?
2023-08-24 22:58:53
186
原创 【Linux】五、进程
2、木桶原理,在直接与CPU交互时,输入设备和输出设备运行效率较低,会大大的拖慢CPU的运行速度,并降低计算机体系的效率,并且因为有了存储器的存在,所以可以有软件的策略(如 操作系统)预先将外设的数据装到内存中;1、运算效率/存储效率 ,CPU和寄存器 > 内存 > 磁盘/SSD > 光盘 > 磁带 他们的差别有数量级别的差别;输入设备:键盘、摄像头、话筒,磁盘,网卡;中央处理器(CPU):运算器、控制器;输出设备:显示器、音响、磁盘、网卡;运算器:算术运算、逻辑运算;
2023-08-06 22:37:41
364
原创 【Linux】四、开发工具
yy:将当前光标所在的行复制;x /shift + x:删除光标所在的字符,向后删/向前删;dd:将当前光标所在的行进行剪切(删除);n + shift + g:将光标定位到文件的第n行;r:替换光标所在的字符,也支持nr ,提换n个字符;shift + ^ :将光标定位到当前行的最开始;shift + $ :将光标定位到当前行的最结尾;h、j、k、l:左、下、上、右 光标进行移动;shift + g:光标定位到文件的结尾处;w,b:以单词为单位进行光标的前后移动;p:将复制行进行粘贴;
2023-07-30 12:12:55
325
原创 【Linux】三、权限
内核,而是通过图形接口,点击,从而完成我们的操作(比如进入D。,有相同的作用,主要是对我们的指令进行解析,解析指令给。反馈结果在通过内核运行出结果,通过shell。广义上Linux发行版由内核加外壳程序组成。严格意义上说的是一个操作系统,我们称之为。同时,将核心的处理结果翻译给使用者。,但我们一般用户,不能直接使用。或者运行起来一个应用程序)。一、shell命令及运行原理。的最简单定义:命令行解释器(将使用者的命令翻译给核心(从技术角度,Shell。盘的操作,我们通常是双击。而是通过kernel。
2023-05-12 09:43:34
274
原创 【Linux】二、Linux的基本指令
对于目录,该命令列出该目录下的所有子目录与文件。开头的隐含文件,包括. 和 .. 其中.是指当前路径,..是指上级路径。(大小排序,如何找到目录下最大的文件)(2)、-d 将目录象文件一样显示,而不是显示其下的文件。(7)、-F 在每个文件名后附上一个字符以说明该文件的类型,(11)、-R 列出所有子目录下的文件。(5)、-l 列出文件的详细信息。(12)、-1 一行只输出一个文件。(8)、-r 对目录反向排序。(9)、-t 以时间排序。字节的形式表示文件的大小。(3)、-i 输出文件的。
2023-04-26 09:21:16
605
原创 【Linux】一、Linux初始
1946.2.14(美苏冷战期间) 美国人发明了操作系统埃尼阿克,为了计算导弹弹道轨迹,美苏技术上对抗,推动技术进步(军方或政府没有研发能力,所以需要各种高效和实验室进行研究),产生了计算机,一般新技术都用于政治或军事用途,之后逐渐将技术商业化(硅谷+华尔街,孵化各种新兴公司),苹果、微软、IBM等各种公司应运而生,商业化之前都属于投入阶段,商业化后属于国家回收资本阶段。开源代码的效率更高,稳定性更好,更安全,漏洞也会被发现。2.发行版本:Ubuntu,kali,红旗,红帽,centos。
2023-04-26 09:20:52
83
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人