Linux
文章平均质量分 91
本专栏记录了学习Linux从入门到熟练
无双@
Get ur shit together man
展开
-
软硬链接 && 动静态库(深入地址空间)
在前面一章,我们介绍了文件系统,下面我们来对关于文件I/O操作的进一步补充,我们来聊一聊软硬链接是个什么,还有我们之前粗略的讲解的动静态库,最后我们想来进一步谈谈地址空间的概念。原创 2024-09-11 15:30:06 · 884 阅读 · 0 评论 -
突破教材,简单聊聊《文件系统》
找到指定的文件 -> 找到该文件的目录 -> 打开目录 -> 找到inode与文件名映射关系 -> 找到inode进而找到属性与内容。原创 2024-09-04 18:30:19 · 988 阅读 · 0 评论 -
攻破:重定向 && 缓冲区
从上一章开始,我们进入了文件IO的学习,认识了文件描述符是个什么,以及在操作系统内部是如何管理那么多文件的,最终我们还解释了为什么说“linux一切皆文件”这个概念。下面我们继续往下学习,认识输入输出重定向以及了解缓冲区的概念。 现在我差不多知道什么叫重定向了,不就是原本是往显示器文件打印数据,变成了往普通文件打印数据吗。但是实现这个却要先close掉显示器文件,可不可以不关掉直接发生重定向呢? 对于这个函数,它的本质其实是文件描述符下标所对应的内容的拷贝。原创 2024-08-25 16:36:32 · 832 阅读 · 1 评论 -
Linux文件操作:文件描述符fd
现在我们对进程的总体概念也有了了解,下面我们进入新的模块学习。关于Linux如何操作文件。其关的操作也与进程有关。原创 2024-08-23 00:34:37 · 1039 阅读 · 0 评论 -
自主编写shell
我们在上一章学习的进程的程序替换,这对于我们来说是一件重要的事,因为可以实现创建子进程执行别的程序进而实现进程程序的替换,那么现在我们就可以实现我们自主编写的shell,一个命令解释器了!原创 2024-08-19 13:34:45 · 326 阅读 · 0 评论 -
攻破:进程替换
承接上文的进程控制,我们接下来想要来聊一聊进程替换,进程替换是怎么实现的呢?理解完进程替换后,我想我们就对命令行解释器bash有了一定的了解。所以这一章结束之后,我会带领大家自主编写一份属于自己的shell命令行解释器。 事实上,只有execve是真正的系统调用,其它五个函数最终都调用 execve,所以execve在man手册 第2节,其它函数在man手册第3节。这些函数之间的关系如下图所示。原创 2024-08-16 13:15:39 · 823 阅读 · 0 评论 -
如何理解:进程控制
对于前面的地址空间的学习,我们现在了解到原来所谓变量的地址其实是虚拟地址,该虚拟地址是通过页表的映射关系从而找到内存中真实的物理地址!下面我们进入到关于进程的控制 现在我们已经学会了有关进程创建的话题,接下来我们将要讨论进程替换的话题。原创 2024-08-15 17:54:50 · 1195 阅读 · 0 评论 -
进程的地址空间
现在我们已经了解关于地址空间的基础知识了,对于同一个地址但不同的值我们也清楚其本质是什么原因了,所以我们可以理解了为什么fork函数具有两个返回值识了,对于同一个地址但不同的值我们也清楚其本质是什么原因了,所以我们可以理解了为什么fork函数具有两个返回值。原创 2024-08-14 15:11:04 · 926 阅读 · 0 评论 -
命令行参数&&环境变量
我们在前一章就开始学习与进程相关的部分知识,上一章是先学习到了进程优先级接下来就是补充一些额外知识。原创 2024-08-12 20:58:30 · 1225 阅读 · 0 评论 -
理解:进程优先级
指定进程获取某种资源(CPU资源)的先后顺序(本质就是在各个进程在运行队列中排队)。我们的知道进程拥有自己的PCB(task_struct),这个PCB本质是一个struct,居然是个struct里面肯定封装了一些内部字段用来记录优先级,比如定义了一个int prio什么的。在Linux中,优先级数字越小,优先级越高。原创 2024-08-07 17:16:13 · 778 阅读 · 0 评论 -
进程的阻塞、挂起和运行状态
在上一章的学习中,对于进程部分进程有了初步的了解。同时我也抛出了一张图片,包含挂起态、阻塞态等的流程图。本章将要着重讲解这几个状态的原理! 我们对于前面的学习,目前我们一定要了解的就是,进程 = task_struct + 进程的代码和数据,那么进程要相处于运行状态,该进程的task_struct就一定存在在运行队列struct runqueue里,进程在运行队列中该进程状态就是R状态——“我已经准备好了,可以随时被调度。 问:一个进程一旦持有CPU,会一直运行到这个进程结原创 2024-08-06 14:48:19 · 589 阅读 · 0 评论 -
进程状态都有哪些?
在上一章的学习中,我们是初步的聊了聊关于进程的相关话题,认识到了fork函数和系统调用接口的getpid函数。本章的重点就是来剖析每个状态对应的内容以及原理。本章是主要介绍了进程状态的基础,这些进程状态还是需要下来多多理解理解,关于僵尸进程和孤儿进程为什么叫这个名字的,还需要下来写写代码画画图理解理解。下一章我们将介绍进程的阻塞,挂起和运行状态,会逐步分析我们在教材遇到的流程图!原创 2024-08-04 16:33:00 · 598 阅读 · 0 评论 -
如何理解进程?
我们在前面的对操作系统的学习,目的是为了让我们加深操作系统对“管理”的描述。我们在上一节了解到操作系统存在许多管理,今天我们就来初次了解一下——进程管理。原创 2024-08-02 14:21:01 · 640 阅读 · 0 评论 -
操作系统到底是在干嘛?
不知道我们在学习Linux操作系统之前是否有自己动手装过Windows操作系统?我们在组装一台新电脑后,一般会拿一个U盘进行windows操作系统的安装,会打开类似终端的界面进行设置和调配,最后等待下载和安装我们就可以使用它了!那为什么我们一定要安装这个操作系统呢?这一块知识听听就好了,主要想告诉大家学习这一块内容一定要有“对抽象事物实例化的能力”,同时要记住“先描述,再组织”的理念,后续这个理念就贯穿整个操作系统的知识。原创 2024-07-31 15:24:03 · 623 阅读 · 0 评论 -
操作系统到底是什么——冯诺依曼体系
目前我们对于学习Linux操作系统已经讲解完基础的指令和工具部分,接下来我们就可以以Linux为辅帮助我们来理解操作系统到底是个什么?本文主讲述了冯诺依曼这一操作体系,并且粗略的介绍了内存这一概念,我们需要记住以下两点:1、CPU不和外设打交道,只和内存打交道2、外设(输入和输出设备)的数据,不是直接给CPU的,而是先放在内存之中。原创 2024-07-26 19:14:59 · 580 阅读 · 0 评论 -
Linxu小项目:《进度条》的实现
我们在学习C语言阶段就使用过C语言来实现一个三子棋和扫雷游戏的项目,接下来我们就熟悉一下在Linux上用vim写代码。原创 2024-07-22 15:03:59 · 303 阅读 · 0 评论 -
Linux编译器-gcc/g++使用
我们目前在使用vim编写的都是C语言的代码,那是因为我们只知道用gcc来编译代码,其实我们还可以用g++来对c++的代码进行编译,那么对gcc的每一步,是怎么将C语言编译形成我们的可执行文件我们是否清楚呢?其实我们在学习c语言预处理的部分我们也讲解过,但是目前我们有必要再从头讲解一次!简单来说就是我们的程序和库的结合的过程,再简而言之,就是我们生成的目标文件代码.o文件,甚至说别的.c文件变成.o文件的代码,然后和库文件通过链接器进行链接从而形成的可执行程序。原创 2024-07-21 16:28:52 · 785 阅读 · 0 评论 -
Linux工具篇:gdb(调试工具)+ makefile(自动化构建工具)
在学习Linux之前,确切的说是在认识和使用vim之前,我们学习C语言甚至是C++都是在VS2022等Windows的IDE上进行编写代码的,我们之前也讲过,VS2022有两个版本,一个是Debug版本,还有一个是Release版本。Debug版本是给我们来进行调试编译的,那么在Linux下也存在我们的调试工具——gdb。makefile则是一个新的概念,它是Linux项目自动化构建工具。1. make会在当前目录下找名字叫“Makefile”或“makefile”的文件。原创 2024-07-18 13:19:08 · 610 阅读 · 0 评论 -
Linux工具篇:vim(实用的编译器)
如标题所说,我们今天学习的vim可以说是一个使用高效的多模式编译器,我们之前编写C++代码的时所用到的Visual Studio2022算是一个集成开发环境(IDE),而vim与咱们得IDE较为相似,接下来就开始进行对vim的学习。原创 2024-07-14 23:57:17 · 1266 阅读 · 0 评论 -
Linux工具篇:yum
在前面对于linux初步的学习中,学会了部分知识,比如说什么基本指令啦,或者说关于权限的一系列问题和概念引入到了windows的权限,那么对于linux的概念我们仅仅是停留在表面,想要真正的会利用linux甚至说到后期能把linux给完全熟练的使用,我们目前对于linux的工具则需要也很熟练。Linux软件包管理器yum。原创 2024-07-11 19:52:36 · 675 阅读 · 0 评论 -
攻破Linxu权限+拓展理解windows权限
在前面的学习中,对于Linux环境的搭建相信大家不难掌握,对于常用指令的讲解其实也不难理解,我们是否还记得每次输入ll指令后,除了显示当前文件夹下的除隐藏文件外的所有内容,前面还显示了一些数据?比如:那么这些像乱码一样的东西是什么呢?下面我们就将围绕这个话题进行展开,逐步剖析Linux的权限问题!shell命令以及运行原理Linux严格意义上说的是一个操作系统,我们称之为核心(kernel,但我们一般用户,不能直接使用kernel。而是通过kernel的外壳程序,也就是所谓的。原创 2024-06-11 12:31:59 · 804 阅读 · 0 评论 -
Linux基础指令
从上文开始我们已经在xshell配置好了属于自己的云服务器系统,但是想要在黑框框里面使用Linux来完成基本互动我们还需要学习和了解一些基础的指令。本文主要介绍了我们在Xshell下会运用到的基本指令,这么多指令记不住也没有关系,并不是所有都要求掌握,日后重要的指令就是经常用的,那么经常用的看多了也就记住了,所以不必担心!!!原创 2024-05-27 13:43:29 · 651 阅读 · 0 评论 -
Linux入门了解背景知识及环境搭建
据权威部门统计,目前Linux在服务器领域已经占据75%的市场份额,同时,Linux在服务器市场的迅速崛起,已经引起全球IT产业的高度关注,并以强劲的势头成为服务器操作系统领域中的中坚力量。互联网产业的迅猛发展,促使云计算、大数据产业的形成并快速发展,云计算、大数据作为一个基于开源软件的平台,Linux占据了核心优势;据Linux基金会的研究,86%的企业已经使用Linux操作系统进行云计算、大数据平台的构建,目前,Linux已开始取代Unix成为最受青睐的云计算、大数据平台操作系统。原创 2024-05-23 20:52:07 · 521 阅读 · 0 评论