
Linux
文章平均质量分 96
此生只爱蛋
星光不问赶路人,大步流星向前走
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【Linux】动静态库制作
假设今天你有一位舍友。你需要帮助他完成老师的作业。而他写的代码依赖两个文件(mymath.h,mystdio.h)。但是这两个文件的功能他不会写,他只会调用。但是你会这两个文件具体功能的实现啊。出于热心肠的你现在要帮助他。你会怎么帮助他呢?原创 2025-08-05 09:42:35 · 995 阅读 · 0 评论 -
【Linux】进程控制(下)---程序替换宝藏岛
在上一节,我们学习了进程退出,进程退出无非就是两个数字,退出信号和退出码,以及相关场景,并给出最佳实践。我们同时分享了进程等待的相关话题解决"僵尸"问题,包括wait,waitpid相关的使用方式,以及非阻塞等待。这一节我们来谈一谈进程控制的下一个话题,进程程序替换,如果把进程比作一个“小工人”,那么原来用fork()创建的子进程,就像是“小工人”复制了一个“小分身”,它们做一样的工作,代码共享,数据各用各的。原创 2025-06-11 11:00:40 · 883 阅读 · 0 评论 -
【Linux】进程控制-上
上一篇文章我们认识了进程优先级,进程优先级其实主要由NI值决定的。然后我们又谈论了进程O(1)调度算法,通过活跃队列和过期队列,让每个进程都能够合理的享有CPU资源。本节内容将对进程进一步补充,包括进程创建,进程终止os会做什么,进程等待等等话题,话不多说,直接开冲!原创 2025-06-02 11:29:14 · 825 阅读 · 0 评论 -
【Linux】基础IO
我们在C语言阶段学习过对文件的操作,比如打开文件,向文件中写入,追加等等...在学习权限时,我们也天天谈文件,今天让我们来揭开文件大厦的神秘面纱吧!原创 2025-05-26 14:55:42 · 915 阅读 · 0 评论 -
【Linux】就该这么学---程序地址空间一
正是有了虚拟地址空间的存在,保护了物理内存的合法数据,同时也保护了各个进程和操作系统数据的正确性,有了虚拟地址空间的存在,就让我们的可执行程序可以在物理内存的任意位置加载,让物理内存管理模块和进程管理模块之间互不牵连,实现解耦合。并且通过页表的映射,让每个进程都看自已的地址空间是有序的,同时,在我们语言级别所学的malloc,new等向内存申请空间的函数,是给进程画了张大饼,并不是立即申请,而是当进程真正需要时,操作系统才会申请物理内存,构建页表的映射关系,而这一切,对用户是透明的,不过确大大提高了物理内存原创 2025-05-24 10:10:05 · 671 阅读 · 0 评论 -
【Linux】命令行参数和环境变量
通过今天的探索,我们看到了参数君和环境变量侠的默契配合。参数君在前台忙碌,传递着用户的指令;环境变量侠在幕后默默支持,为系统提供稳定的配置。正是他们的共同努力,让命令行成为了程序员和系统管理员手中不可或缺的利器。下次当你在命令行中输入命令时,不妨想想这两位英雄,感谢他们的付出,让我们的工作变得更加高效和便捷。原创 2025-05-13 12:00:00 · 903 阅读 · 0 评论 -
【Linux】进程优先级&&进程切换&&进程调度
在Linux的世界里,CPU调度员就像是一位超级能干的“指挥官”👮,它管理着一个繁忙的“工作车间”——runqueue(运行队列)。这个车间里有一个神奇的工具:prio_array(优先级数组),它就像是一个智能的“任务分配器”。原创 2025-05-06 10:59:20 · 1057 阅读 · 0 评论 -
【Linux】进程状态
在 Linux 的世界里,每个进程都像是一个忙碌的"上班族"🚶,他们有自己的工作任务💻、状态和行为。操作系统就像是公司的管理层,需要时刻了解每个员工的状态,以便合理分配任务和资源。因为操作系统是一款软硬件资源管理的管理者👮,如何管理?先描述,后组织。因此会描述进程属性,来方便操作系统需要了解每个进程的当前情况,以便合理地分配资源、调度任务、处理错误和进行系统管理⭐️。这些状态帮助操作系统保持对整个系统的控制,确保资源被高效利用,同时保证系统的稳定性和可靠性,为了更好的管理😄。原创 2025-04-23 12:00:00 · 1181 阅读 · 0 评论 -
【Linux】进程基础入门指南(下)
我们知道想要管理好进程,首先要先描述,因此我们粗略认识了进程属性,比如说标识符,程序计数器等,我们可以通过getppid(),getpid()来获取父子进程的唯一标识符。学会了用ps axj | head -1 ; ps axj | grep "可执行程序名"来查看系统的进程,也能通过开发者给我们的系统调用接口fork()来创建子进程,我们也知道了在Linux中,一切进程都是由父进程创建的,我们也能一次性创建多个进程。原创 2025-04-16 12:00:00 · 1224 阅读 · 0 评论 -
【Linux】进程基础入门指南(上)
我们通过一个校长的例子,也知道为什么要有进程:因为操作系统要管理。而管通的本质是对数据的管理,通过将对进程的管理转换成了对PCB(task_struct)的增删查改。知道了操作系统是如何管理的?先描述再组织。并且操作系统中一定有大量的数据结构。我们后面就要描述比如进程,内存,文件等...的属性,操作系统存在的意义就是为了给用户提供一个稳定的,安全的,可靠的运行环境。等等,这样一套体系结构,之后我们就开始描述进程的属性,再用数据结构组织起来!原创 2025-04-08 16:02:21 · 711 阅读 · 0 评论 -
【Linux】冯·诺依曼体系结构
我们带着这三个问题,冯诺依曼体系结构是什么?为什么要有冯诺依曼体系结构?冯诺依曼体系结构给我们带来了什么?冯诺依曼体系结构如上图,由5大部分组成。我们把运算器和控制器粗略归纳为中央处理器。一一介绍这5大结构:输入结构:包括键盘,话筒,摄像头,磁盘,网卡,音频...存储器:注意这里的存储器就指的是内存!!!CPU运算器:逻辑运算,算数运算。原创 2025-04-04 19:46:38 · 827 阅读 · 0 评论 -
【Linux】cgdb调试技巧全知道
一篇关于cgdb的宝藏岛原创 2025-03-26 09:30:00 · 725 阅读 · 0 评论 -
【Linux】Makefile秘籍
一个可执行程序的生成通常需要经过预处理、编译、汇编和链接四个主要阶段。在 Linux 中,对于简单的单文件项目,我们常常可以直接使用 gcc code.c -o code一步到位地生成可执行程序,然而,如果我们反复执行这条命令,依旧会编译,这就极大的浪费了时间和空间。对于大型项目,情况就复杂得多。大型项目通常包含多个.c文件、头文件以及其他资源文件。在这种情况下,手动管理这些文件的编译和链接过程不仅繁琐,而且容易出错。为了简化大型项目的构建过程,Linux 引入了make工具。make。原创 2025-03-18 14:10:48 · 1250 阅读 · 0 评论 -
【Linux】Linux Progress Pulse-进度条
我们将使用LInux中基础指令,使用工具vim编写一个进度条程序。通过自已编写的Makefile,使用指令make形成可执行程序,使用指令make clean清理文件进度条效果演示:进度条效果演示。原创 2025-03-09 15:49:58 · 940 阅读 · 2 评论