Linux
文章平均质量分 95
flyyyya
这个作者很懒,什么都没留下…
展开
-
Linux高级IO
IO主要分为两步:第一步是等,即等待IO条件就绪。第二步是拷贝,也就是当IO条件就绪后将数据拷贝到内存或外设。任何IO的过程,都包含“等”和“拷贝”这两个步骤,但在实际的应用场景中“等”消耗的时间往往比“拷贝”消耗的时间多,因此要让IO变得高效,最核心的办法就是尽量减少“等”的时间。原创 2024-03-16 22:03:58 · 1161 阅读 · 0 评论 -
Linux线程安全
站在操作系统的角度,进程等待某种资源,就是将当前进程的task_struct放入对应的等待队列,这种情况可以称之为当前进程被挂起等待了。站在用户角度,当进程等待某种资源时,用户看到的就是自己的进程卡住不动了,我们一般称之为应用阻塞了。这里所说的资源可以是硬件资源也可以是软件资源,锁本质就是一种软件资源,当我们申请锁时,锁当前可能并没有就绪,可能正在被其他线程所占用,此时当其他线程再来申请锁时,就会被放到这个锁的资源等待队列当中。原创 2024-01-30 12:15:37 · 1538 阅读 · 0 评论 -
Linux进程间通信
之前我们说过,当管道的读端进程退出后,写端进程再向管道写入数据就没有意义了,此时写端进程会被操作系统杀掉,在这里就可以很好的得到验证:当我们终止掉读端进程后,因为写端执行的循环脚本是由命令行解释器bash执行的,所以此时bash就会被操作系统杀掉,我们的云服务器也就退出了。进程间通信的本质就是,让不同的进程看到同一份资源,使用匿名管道实现父子进程间通信的原理就是,让两个父子进程先看到同一份被打开的文件资源,然后父子进程就可以对该文件进行写入或是读取操作,进而实现父子进程间通信。原创 2024-01-28 23:26:06 · 985 阅读 · 0 评论 -
Linux进程信号
1.执行该信号的默认处理动作。2.提供一个信号处理函数,要求内核在处理该信号时切换到用户态执行这个处理函数,这种方式称为捕捉(Catch)一个信号。3.忽略该信号。在Linux当中,我们可以通过man手册查看各个信号默认的处理动作。原创 2024-01-29 12:28:46 · 910 阅读 · 0 评论 -
Linux多线程详解
在一个程序里的一个执行路线就叫做线程(thread)。更准确的定义是:线程是“一个进程内部的控制序列”。1.一切进程至少都有一个执行线程。2.线程在进程内部运行,本质是在进程地址空间内运行。3.在Linux系统中,在CPU眼中,看到的PCB都要比传统的进程更轻量化。4.透过进程虚拟地址空间,可以看到进程的大部分资源,将进程资源合理分配给每个执行流,就形成了线程执行流。原创 2024-01-30 08:00:00 · 1000 阅读 · 0 评论 -
Linux进程控制
多进程运行,需要独享各种资源,多进程运行期间互不干扰,不能让子进程的修改影响到父进程,所以产生了写时拷贝,子进程不一定会使用父进程的所有数据,并且在子进程不对数据进行写入的情况下,没有必要对数据进行拷贝,我们应该按需分配,在需要修改数据的时候再分配(延时分配),这样可以高效的使用内存空间。一个父进程可以创建多个子进程,而一个子进程只能有一个父进程。而对于父进程来说,子进程是需要被标识的,因为父进程创建子进程的目的是让其执行任务的,父进程只有知道了子进程的PID才能很好的对该子进程指派任务。...原创 2022-07-30 11:28:21 · 503 阅读 · 2 评论 -
Linux进程概念
当一个进程将要退出的时候,在系统层面,该进程曾经申请的资源并不是立即被释放,而是要暂时存储一段时间,以供操作系统或是其父进程进行读取,如果退出信息一直未被读取,则相关数据是不会被释放掉的,一个进程若是正在等待其退出信息被读取,那么我们称该进程处于僵尸状态.一个进程从创建而产生至撤销而消亡的整个生命期间,有时占有处理器执行,有时虽可运行但分不到处理器,有时虽有空闲处理器但因等待某个时间的发生而无法执行,这一切都说明进程和程序不相同,进程是活动的且有状态变化的,于是就有了进程状态这一概念。...原创 2022-07-27 10:25:56 · 1272 阅读 · 5 评论 -
Linux项目自动化构建工具
make/Makefile背景背景 会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力. 一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile 定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作.makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。make是一个命令工具,是一个解释ma原创 2022-07-18 11:35:59 · 325 阅读 · 0 评论 -
Linux之基础开发工具的应用(1)
Linux之基础开发工具的应用Linux 软件包管理器 yum什么是软件包注意事项查看软件包如何安装软件如何卸载软件Linux 软件包管理器 yum什么是软件包在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序.但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在一个服务器上, 通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装.软件包和软件包管理器, 就好比 “App” 和 “应原创 2021-08-25 10:45:19 · 4146 阅读 · 13 评论 -
Linux的权限管理详解
Linux的权限管理一、Linux权限的概念1.实现账号的切换2.仅提升当前指令的权限3.普通用户添加到信任列表二、Linux权限管理1.文件访问者的分类(人)2.文件类型和访问权限(事物属性)文件类型:基本权限:文件权限值的表示方法一、Linux权限的概念Linux下有两种用户:超级用户(root)、普通用户。超级用户:可以再linux系统下做任何事情,不受限制普通用户:在linux下做有限的事情。超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。命令:su [用户名]功能:切换用原创 2021-08-11 19:29:19 · 914 阅读 · 3 评论 -
Linux初级指令
Linux初识Linux能干什么?Linux基本指令Liunx目录组成机构01.ls指令02.pwd指令03. cd 指令04. touch指令05.mkdir指令06.rmdir指令 && rm 指令07.man指令09.cat10.cp指令11.more指令12.less指令12.head指令13.tail指令14.重定向15.时间相关的指令date显示16.Cal指令17.find指令:18.grep指令Linux能干什么?Linux能够进行各种语言的开发工作,基本主要以后端语言为原创 2021-07-25 11:19:02 · 1309 阅读 · 9 评论