
Linux
文章平均质量分 94
Linux学习
我爱吃福鼎肉片
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【Linux】——初识操作系统
我们现在所使用的计算机就是冯-诺依曼体系结构。存储器就是内存。由下图可知,寄存器最快,为啥不用寄存器呢?因为越快价格就最贵,冯诺依曼体系结构的诞生,极大降低了计算机的价格。冯诺依曼结构的原理是,在CPU进行计算的时候,内存已经接收外部输入设备输入的数据并存储,在CPU进行完计算后将结果取出,然后将结果放到输出设备,再把输入的数据交给CPU进行计算所以这就是为什么程序运行前要先加载的内存!通过冯-诺依曼体系结构去理解何为操作系统。内存怎么读数据?输入数据以后怎么从缓冲区输出到输出设备的?操作系原创 2025-03-07 21:02:34 · 770 阅读 · 0 评论 -
【Linux】——权限
但是有时候我们并不知道root用户的密码,但是又需要root用户去执行某条指令,那么这时就需要输入指令sudo 指令,这条指令就可以提升我们要执行指令的权限,即让root用户执行。如果仔细观察就可以发现,其一共有十个字符,除开第一个代表文件的类型外,后九个每三个为一组,分别代表拥有者,所属组,其他用户的可读,可写,可执行的权限。但是这种情况就会导致一个非常严重的问题,那就是:拥有可读权限的人可以删除文件,这是不可取的,因为这个文件不一定是你创建的,你不可能去删除别人的文件。所以这时候就需要我们切换用户。原创 2024-12-16 18:51:44 · 770 阅读 · 0 评论 -
【Linux】——环境变量与进程地址空间
进程地址空间是进程可以使用的全部线性地址的集合,就是程序地址空间那张图,它是抽象的,其实它屏蔽了物理存储器的实际大小和分布细节,使进程得以在一个看似连续且足够大的存储空间中存放进程映像。子进程不一定会使用父进程的所有数据,并且在子进程不对数据进行写入的情况下,没有必要对数据进行拷贝,我们应该按需分配,在需要修改数据的时候再分配(延时分配),提高空间利用率。如果我们是在同一个物理地址处获取的值,那必定值是相同的,而现在在同一个地址处获取到的值却不同,这只能证明我们打印出的地址并不是物理地址。原创 2025-03-20 19:53:48 · 718 阅读 · 0 评论 -
【Linux】——基础指令(上)
如果我们想指定删除某种类型的文件,比如说我们想删除后缀为.c的文件,可以这样使用rm ./*.c。-r 或 -R 递归处理,将指定目录下的文件与子目录一并处理,若源文件或目录的形态不属于目录或符号链接,则一律视为普通文件处理。我们先要清楚,Linux的目录结构是一颗多叉树。可以是一个路径名称,此时若路径中的某些目录不存在,加上此选项后,系统将自动建立好那些不存在的目录,即一次可以建立多个目录。-i 或 --interactive 如果文件不存在,则复制文件,如果文件存在,则覆盖文件,覆盖之前先询问用户。原创 2024-11-22 20:10:51 · 907 阅读 · 0 评论 -
【Linux】——进程(下)
它的第一个参数就是路径,第一个参数到最后一个参数之间的参数叫做可变参数列表,也就是说可以有多个,它和我们在命令行使用的命令是一样的,只不过我们命令行的分隔是空格,而这里的分隔是逗号和引号,最后一个参数必是NULL,表示该表的末尾边界。//options == WNOHANG,若pid指定的子进程没有结束,则waitpid直接返回0,不等待,若正常结束,则返回子进程pid。在之前的父子进程关系中,当子进程还未退出时,父进程通常处于阻塞状态,这个期间父进程不能进程其他操作。但是,我们可以采取非阻塞等待的方式。原创 2025-03-26 20:18:27 · 900 阅读 · 0 评论 -
【Linux】——动静态库
库文件主要分为动态库和静态库在Linux中,以.so为后缀的是动态库,以.a为后缀的是静态库。在Window中,以.dll为后缀的是动态库,以.lib为后缀的是静态库。在程序编译时链接到可执行文件中,本质上是将库中的代码和数据到可执行文件中,所以静态库代码就成了可执行文件的一部分了。这就意味着多个程序使用同一个静态库时,库代码会被重复复制,从而导致程序体积太大。是在运行时由操作系统加载到内存中的库,多个程序可以一个动态库,所以程序体积较小,库更新后,只需要替换动态库文件,不需要重新编译。原创 2025-04-09 21:56:50 · 611 阅读 · 0 评论 -
【Linux】——进程(上)
可执行程序加载到内存后就形成了进程,进程里包含了代码数据,运行状态等信息。操作系统通过管理进程控制块PCB(task_struct)来管理可执行程序,进程担当分配系统资源(CPU时间,内存)的任务。所以,只要可执行程序加载到内存,操作系统就会创建PCB将其管理,最后就形成了进程。操作系统将每个PCB通过双向链表的方式链接起来,创建了一个新进程就直接将对应的PCB链入双向链表中,退出就是将PCB删除。原创 2025-03-16 18:28:55 · 701 阅读 · 1 评论 -
【Linux】——文件(下)
记录的信息主要有:bolck 和 inode的总量,未使用的block和inode的数量,一个block和inode的大小,最近一次挂载的时间,最近一次写入数据的时间,最近一次检验磁盘的时间等其他文件系统的相关信息。目录也是一种文件,是文件就有对应的文件属性与文件内容,其中对应的文件属性就是我们的inode存储的就是目录的大小,目录的拥有者等。关闭了对应的文件描述符(fd),所以在程序结束后就无法找到对应的文件,就不会对文件进行任何的写入,所以我们一般用刷新缓冲区的函数来提前刷新缓冲区(如。原创 2025-04-09 21:56:13 · 663 阅读 · 0 评论 -
【Linux】——必须掌握的开发工具
PHONY是一个伪目标,用来告诉make哪些目标不是真正的文件名,我的clean是为了删除文件,保持工作目录的整洁,如果不加.PHONY,而且项目中存在一个clean文件,clean文件万一比依赖文件更新,make就会认为clean文件是最新的,从而不会执行make clean。最终在最后一次的依赖关系中找到myproc.c,再出栈依并执行,做到了从上到下扫描,从下到上执行,最终形成myproc目标文件。所以在将clean定义为伪目标时,它会告诉make,clean总是被执行,不用考虑其他。原创 2025-03-04 19:15:58 · 1074 阅读 · 0 评论 -
【Linux】——文件(上)
在系统层面来说,文件就是。我们的所有文件操作其实就是对文件的内容和属性进行操作。。,自然其他语言也会有相似的概念,因为这是操作系统所支持的,而不是某个语言所独有的。文件在没有被访问时,是存储在磁盘上的,访问时,在内存中,为什么不在磁盘直接访问呢,还要跑到内存里?。因为,所以加载时,加载的就是。原创 2025-03-29 21:23:55 · 691 阅读 · 0 评论 -
【Linux】——基础指令(下)
a详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称。tar指令也可以用来打包压缩和解压文件,并且可以实现不解开压缩包,直接查看里面内容的操作,以及只打包不压缩等操作。功能: 用于查看日历等时间信息,如只有一个参数,则表示年份(1~9999),如有两个参数,则表示月份和年份。与more指令不同的是,less指令可以进行上翻操作,并且less指令在查看之前不会先加载整个文件。-f:使用档名,请留意,在f之后要立即接文档名,不要再加参数。原创 2024-12-03 19:55:01 · 992 阅读 · 0 评论