Linux
文章平均质量分 93
Linux的基本知识
不是笨小孩i
C/C++领域新星创作者,阿里云专家博主,2023新星计划C/C++赛道TOP1,平凡的日子不动声色就很美好,不完美才是常态。
展开
-
进程信号 signal
如果信号的处理动作是用户自定义函数,在信号递达时就调用这个函数,这称为捕捉信号。由于信号处理函数的代码是在用户空间的,处理过程比较复杂,举例如下: 用户程序注册了SIGQUIT信号的处理函数sighandler。当前正在执行main函数,这时发生中断或异常切换到内核态。在中断处理完毕后要返回用户态的main函数之前检查到有信号SIGQUIT递达。原创 2024-05-15 23:11:59 · 1042 阅读 · 29 评论 -
【进程间通信】共享内存
共享内存的通信方式,不会提供同步机制,共享内存是直接裸露给所有的使用者的,所以一定要注意共享内存的使用安全问题。共享内存可以提供较大的空间。共享内存是所有进程间通信中速度最快的。可以减少数据拷贝的次数。为什么说共享内存是最快的?这样的内存映射到共享它的进程的地址空间,这些进程间数据传递不再涉及到内核,换句话说是进程不再通过执行进入内核的系统调用来传递彼此的数据,也就会减少很多的数据的拷贝。原创 2024-05-08 23:32:56 · 1107 阅读 · 37 评论 -
【进程间通信】管道和命名管道
一个文件被打开了两次,因为他们打开的方式不一样,所以他们的标记为也一定不一样,它们在内存中的file结构体一定是存在两份的,但是文件的属性和操作集合都是一样的,所以文件属性和操作集合以及文件缓冲区是存在一份的,每个file结构体中会有一些基本的属性(读写位置等等),其次还会有一些指针,分别指向自己的属性和方法集合以及缓冲区。我们可以看到fd数字是一个文件描述符数组,所以Linux管道是复用了很多文件部分的代码的,所以在通信的时候很多还是文件的操作。管道是Unix中最古老的进程间通信的形式。原创 2024-05-04 18:36:35 · 1215 阅读 · 43 评论 -
动静态库以及动态链接
库是给别人用的,所以库中一定不存在main函数。。原创 2024-04-27 17:09:37 · 1082 阅读 · 42 评论 -
文件系统和软硬链接
图中圈红的就是我们自己文件的inode。对于普通文件来说,创建一个普通文件只需要通过inode位图找到一个没有用过的inode,然后把位图修改成1,通过inode表,索引找到inode,把属性填进去,把内容放进block中,修改blocd的位图,把内容存在的block的下标填入自己的block数组中,就搞定了。文件分为打开的文件和没有被打开的文件,而只有打开的文件是在内存的,也就是我们之前讲的,然而大部分文件都不是被打开的(当前不需要被访问的),它们都在磁盘中存放,显而易见,他们也是需要被管理的。原创 2024-04-21 17:00:55 · 1369 阅读 · 45 评论 -
重定向原理和缓冲区
缓冲区的本质就是一快内存,用来存放数据的。原创 2024-04-17 22:20:56 · 1288 阅读 · 19 评论 -
自定义实现shell/bash
正文开始前给大家推荐个网站,前些天发现了一个巨牛的学习网站,,忍不住分享一下给大家。[点击跳转到网站]原创 2024-04-06 22:46:34 · 1129 阅读 · 24 评论 -
文件基础和文件fd
正文开始前给大家推荐个网站,前些天发现了一个巨牛的学习网站,,忍不住分享一下给大家。。原创 2024-03-01 17:14:42 · 1547 阅读 · 45 评论 -
进程的控制
进程等待就是通过wait/waitpid的方式,让父进程对子进程进行资源回收的等待过程。原创 2024-02-27 17:36:22 · 1057 阅读 · 35 评论 -
命令行参数环境变量和进程空间地址
正文开始前给大家推荐个网站,前些天发现了一个巨牛的学习网站,,忍不住分享一下给大家。。原创 2024-01-18 15:53:19 · 1249 阅读 · 50 评论 -
进程切换和是Linux2.6内核中进程调度的算法
正文开始前给大家推荐个网站,前些天发现了一个巨牛的学习网站,,忍不住分享一下给大家。。原创 2024-01-16 15:11:46 · 1366 阅读 · 44 评论 -
进程状态和优先级
每个CPU都会在系统层面上维护一个叫运行队列的东西,当我们的进程都准备好了,可以随时被调度,就会被放到运行队列中等待执行,所以只要在运行队列的进程都是运行状态。原创 2023-11-12 11:28:16 · 811 阅读 · 78 评论 -
Linux进程
我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。对于运算器和控制器都是属于CPU的,CPU处理数据的速度是非常快的,其次是内存,接下来才是各种外设。这里的存储器其实就是内存了。离CPU越近,速度越快,价格越贵,存储效率越高。不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备),因为外设的速度太慢了,如果CPU直接和外设打交道,会让CPU速度下降很多。外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取。原创 2023-11-02 18:38:07 · 653 阅读 · 56 评论 -
Linux基础工具
系统把这些函数实现都被做到名为 libc.so.6 的库文件中去了,在没有特别指定时,gcc会到系统默认的搜索路径“/usr/lib”下进行查找,也就是链接到 libc.so.6 库函数中去,这样就能实现函数“printf”了,而这也就是链接的作用。原创 2023-10-07 17:55:08 · 529 阅读 · 71 评论 -
Linux 权限
👀👀👀👀👀👀👀🌹欢迎大家三连关注,一起学习,一起进步!!💓。原创 2023-10-06 11:15:32 · 2448 阅读 · 56 评论 -
Linux基本指令(二)
👀👀👀👀👀👀👀🌹欢迎大家三连关注,一起学习,一起进步!!💓。原创 2023-10-03 11:33:11 · 1776 阅读 · 53 评论 -
Linux基本指令(一)
👀👀👀👀👀👀👀🌹欢迎大家三连关注,一起学习,一起进步!!💓。原创 2023-09-30 09:24:17 · 1097 阅读 · 60 评论