Linux
文章平均质量分 90
山姆哥up
这个作者很懒,什么都没留下…
展开
-
进程-信号的基本概念和产生函数
信号是Linux进程间通信的最古老方式。信号是软件中断,它是在软件层次上对中断机制的一种模拟,是一种异步通信的方式。信号可以导致一个正在运行的进程被另一个正在运行的异步进程中断,转而处理某一个突发事件。这里我们学习的信号就是属于这么一种中断。我们在终端上敲Ctrl + c就产生了一个中断,相当于产生了一个信号,接着就会处理这个一个中断任务信号的特点:1.简单2.不能携带大量信息3.满足某个特设条件才能发送。...原创 2022-08-04 16:48:32 · 137 阅读 · 0 评论 -
进程-共享存储映射
其实linux系统给我们提供了创建匿名映射区的方法,无需依赖一个文件即可创建映射区。共享内存可以说是最有用的进程间通信方式,也是最快的PC形式,因为进程可以直接读写内存,而不需要任何数据的拷贝。offset:以文件开始处的偏移量,必须是4k的整数倍,通常为0,表示从文件头开始映射。addr:指定映射的起始地址,通常设为NULL,由系统指定。fd:由open返回的文件描述符,代表要映射的文件。存储映射I/O使一个词磁盘文件与存储空间中的一个缓冲区相映射。参数:addr:使用mmap函数创建的映射区的首地址。.原创 2022-08-03 16:00:36 · 121 阅读 · 0 评论 -
进程-exec/僵尸和孤儿进程/wait/管道
任何一个进程的全局变量在另一个进程中都看不到,所以进程和进程之间不能相互访问,要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信。孤儿进程父进程先于子进程结束则子进程成为孤儿进程,子进程的父进程成为init进程,称为init进程领养孤儿进程。成功清理掉的子进程id失败-1(没有子进程)僵尸进程进程终止,父进程尚未回收,子进程残留资源(PCB)存放于内核中,变成僵尸进程。...原创 2022-08-02 02:17:01 · 153 阅读 · 0 评论 -
进程-CPU和MMU/环境变量/创建子进程
Linux操作系统是一个多任务多用户的开源操作系统多任务并发多用户同一时间点了可以有多个用户登陆到一台计算上环境变量是指在操作系统中用来指定操作系统运行环境的一些参数通常有以下特征1.字符串(本质)2.有统一的格式名=值[值]3.值用来描述进程环境信息PATH用来记录文件的可执行路径echo$PATHSHELL记录当前的命令解析器是什么当前Shell它的值通常是/bin/bashTERM。......原创 2022-07-30 22:31:44 · 535 阅读 · 0 评论 -
Linux基础-内建函数
空洞文件的作用例如当我们在网上下载一个10个g的文件的时候刚开始下载的时候磁盘上就多了一个10个g的文件这里就使用空洞文件进行填充的填充后就方便多线程下载时文件指针的移动。这时候发现aa的大小变为了2015因为我们在最后写了一个字节的a在文件中出现了2000个字节的空洞。这时候发现两个文件一样大证明写的没有问题。用lseek函数做一个文件的扩展。这时候发现aa文件有14个字节。输出了这个文件的所有信息。...原创 2022-07-29 14:33:55 · 154 阅读 · 0 评论 -
Linux基础-gdb/makefile/库函数工作流程
PHONYclean的作用就是当我们在目录下touchclean后再makeclean因为makefile的工作原理系统会把touch出来的clean一直当成最新的就不会执行makefile中的clean加了.PHONYclean就会生成尾目标就能解这个问题。⚠️这么写的好处就是当需要编译的文件有很多的时候可能对整体的一次编译就需要耗时几个小时如果按照第二个版本的makefile去写当我只修改了例如add.c中的一行代码再次编译的时候系统只会重新编译add.c而不是所有文件。......原创 2022-07-26 22:03:39 · 342 阅读 · 0 评论 -
Linux基础-vim/静态库/共享库
Ctrl+l清屏指令(ubuntu)创建终端。原创 2022-07-25 18:15:25 · 307 阅读 · 0 评论 -
Linux基础-压缩/网络进程/服务器基础指令
⚠️限定不允许匿名用户在任意目录直接切换只能在一个指定的目录范围内工作需要在ftp服务器上创建一个匿名用户的目录——匿名用户的根目录。进入配置文件在第十行(最后)加上/home/sam/NFSshare*(rw,sync)这里的*是一个网段代表从哪里共享出去的rw是读和写的权限sync是实时更新。使用useradd创建用户-s后内容代表用bash指令解析器-g后面的内容是属于哪个组-d是存放哪个目录下-m是没有userA则创建一个。......原创 2022-07-24 21:17:27 · 222 阅读 · 0 评论 -
Linux基础-指令操作
没有了-s就是硬链接hello.c的硬链接数+1这个硬链接有点像是指针如果查看硬链接的大小那么和源文件一样如果对硬链接做修改也会修改源文件内容hello.c和hello.hard指的都是同一块存储单元所以删除hello.c并不会影响hello.hard他们之间没有依赖关系访问时候的本质其实就是直接访问存储单元。显示filename文本文件的属性信息。/devdev是Device的缩写该目录下存放的是Linux的外部设备在Linux中访问设备的方式和访问文件的方式是相同的。...原创 2022-07-23 18:45:41 · 845 阅读 · 0 评论