Linux
文章平均质量分 83
Linux
阿然成长日记
学无止境
展开
-
【Linux】System V信号量详解以及semget()、semctl()和semop()函数讲解
上一篇博客讲解了System V共享内存,在最后说它的缺点时提到,他没有提供进程同步机制,那么为了弥补这个缺点,所以引入了信号量sem机制。临界资源:多个进程共同使用的一份资源,例如共享内存就是一个临界资源临界区:不同进程内部,访问临界资源的那段代码信号量的本质是:是一个描述临界资源的计数器System V信号量是一种在操作系统中提供的进程间通信(IPC)机制,用于实现进程之间的同步和互斥。它通过对计数器进行操作来控制资源的访问。原创 2024-07-09 19:19:17 · 1012 阅读 · 0 评论 -
【Linux】SystemV共享内存--shmget()、ftok()、shmat()、shmdt()、shmctl()函数
什么是共享内存,以及shmget()、ftok()、shmat()、shmdt()、shmctl()函数详解原创 2024-07-09 11:56:39 · 789 阅读 · 0 评论 -
【Linux】进程间的通信----管道
管道(Pipe)是一种进程间通信机制,用于在相关进程之间传输数据。它是一种特殊的文件描述符,它可以连接一个进程的输出(写入端)到另一个进程的输入(读取端),从而使得这两个进程可以通过管道进行数据传输。也就是说管道是单向传输的!现实生活中,我们所看听到的天然气管道、石油管道基本上都是单向传输的.历史上出现了许多通信机制,但是目前主流的进程通信只剩下了一小部分,管道之所以保留至今,是应为它没有多余的代码,而是巧妙的利用父子进程之间的特性,共用同一个文件进行信息的传输。原创 2024-07-07 18:17:21 · 910 阅读 · 0 评论 -
【Linux】什么是进程间通信?方式有哪些?本质理解?
进程间通信(Inter-Process Communication,IPC)是指操作系统或计算机系统中,不同进程之间进行数据交换和通信的机制或技术。由于进程是操作系统中独立运行的程序实例,而进程间通信允许这些独立的进程之间相互协作、共享资源和进行数据交换。原创 2024-07-06 19:18:13 · 1119 阅读 · 0 评论 -
【LInux】从动态库的加载深入理解页表机制
从动态库的加载深入理解页表机制原创 2024-07-06 18:42:45 · 1017 阅读 · 0 评论 -
【Linux】动态库的制作与使用
续上一篇博客讲解了静态库的制作过程,本篇博客将开始动态库制作的讲解。一定要看了静态库的制作后,才能更好的理解动态库的制作过程。原创 2024-07-05 17:27:12 · 759 阅读 · 0 评论 -
【Linux】静态库的制作和使用详解
本篇博客讲解两个类型的库:动态库(.so) 和 静态库(.a).的制作。原创 2024-07-05 12:00:00 · 1121 阅读 · 0 评论 -
【Linux】动静态库的基础知识
动态链接:简单理解就是,在我们写好我们C语言程序之后,有一些库函数比如printf,scanf,strlen等等,这些在被编译之时,编译器会将其替换成库中的这个函数的地址。这样在执行到这个函数的时候,编译器便可以根据这个地址找到这个库乃至找到这个函数.静态链接这个与动态链接不同的是:这些程序在编译时,编译器会直接将库中方法的实现,整体拷贝一份到我们的可执行程序中!而不是那个函数的地址了.但是缺点也很明显:会占用资源,想想好几份相同的代码拷贝到这里,再次运行一定占用大量的资源.当然优点是不会再依赖库。原创 2024-07-04 18:00:00 · 753 阅读 · 0 评论 -
【Linux】进程终止
我们前面学过,一个程序运行起来变成一个进程,进程本质就是它的代码和数据 + 内核数据结构。那这些数据是需要占用内存空间的,那肯定要去进行释放所以,进程终止就是要释放进程申请的内核数据结构和对应的数据和代码。本质是释放系统资源。原创 2024-05-25 20:03:17 · 1302 阅读 · 1 评论 -
【Linux】如何查看和获取环境变量四种方法($PATH、env表、environ、getenv)
查看获取环境变量的方法原创 2024-05-16 19:00:00 · 4580 阅读 · 0 评论 -
【Linux】如何在Linux中配置自己的环境变量?
如何配置环境变量原创 2024-05-14 16:49:32 · 547 阅读 · 0 评论 -
【Linux】环境变量知识汇总超详解!看这篇就够了
环境变量(environment variables):一般是指在操作系统在开机的时候帮我们维护系统运行时的一些动态参数。如:我们在编写C/C++代码的时候,在链接的时候,从来不知道我们的所链接的动态静态库在哪里,但是照样可以链接成功,生成可执行程序,原因就是有相关环境变量帮助编译器进行查找在Windows中,打开高级选项–环境变量便可以看到如下但是有没有注意过,你每次配置环境变量,你是往系统变量的Path中加呢?还是用户变量。环境变量的用户变量与系统变量的区别。原创 2024-05-14 18:45:00 · 1050 阅读 · 0 评论 -
【Linux】进程优先级
进程优先级原创 2024-05-13 22:16:13 · 826 阅读 · 0 评论 -
【Linux】环境变量是什么?如何配置?详解
环境变量(environment variables):一般是指在操作系统在开机的时候帮我们维护系统运行时的一些动态参数在Windows中,打开高级选项–环境变量便可以看到如下但是有没有注意过,你每次配置环境变量,你是往系统变量的Path中加呢?还是用户变量。环境变量的用户变量与系统变量的区别我也是刚注意到这个问题哈哈,下面就是环境变量的用户变量与系统变量的区别1、环境变量没有区分大小写,例如path跟PATH是一样的2、系统变量对所有用户有效3、用户变量只对当前用户有效。原创 2024-05-11 18:04:44 · 1470 阅读 · 0 评论 -
【Linux】为什么有僵尸状态,什么是僵尸进程,造成危害以及如何避免“内存泄漏”问题详解
学校星期五最后一节课大扫除,我们每次打扫完成后,不会立即就回家🏡,而是必须等待老师👱来验收完成后我才能回家。进程完成后,不能立即退出(回家🏡),必须等待父进程(老师👱)来获取子进程的信息后才能彻底释放掉。那这个等待的过程与僵尸状态十分相似。原创 2024-05-10 19:54:35 · 957 阅读 · 0 评论 -
linux状态中的T(停止状态)和S(浅度睡眠状态)有什么区别?
这篇博客就探求一下T和S状态之间的区别。原创 2024-05-10 12:15:00 · 305 阅读 · 0 评论 -
【Linux】进程的七大状态详解!
就绪状态(Ready):进程已经准备好执行但是还没有被处理器调度执行的状态。运行状态(Running):进程正在被处理器执行的状态。阻塞状态(Blocked):进程因为等待某些事件(如I/O操作完成)而被阻塞的状态。等待状态(Waiting):进程因为等待某些事件(如I/O操作完成、信号等)而被阻塞的状态。暂停状态(Paused):进程被暂停执行,可以自行恢复执行。挂起状态(Suspended):进程被操作系统挂起执行,资源被释放,进程状态被保存到磁盘上。原创 2024-05-10 16:18:52 · 2720 阅读 · 0 评论 -
【Linux】深浅睡眠状态超详解!!!
可中断睡眠状态进程因等待某个条件(如 I/O 完成、互斥锁释放或某个事件发生)而无法继续执行。在这种情况下,进程会进入阻塞状态,在阻塞状态下,进程不能继续执行,并且等待某个事件或资源的完成后或者接收到信号,操作系统会自动将其状态转换为运行状态,继续执行接下来的任务。* 我们的bash,也可以算是一种【阻塞状态】,一直等待着我们去输入命令行,一旦有了的话它就进行读取将该进程运行起来我们可以看到其是出于S+的状态,因为【shell】此时正在等待用户的输入,遇到I/O操作。激活自动运行状态。原创 2024-05-09 22:37:03 · 457 阅读 · 0 评论 -
【Linux】fork函数详解and写时拷贝再理解
fork函数详解and写时拷贝再理解原创 2024-04-27 19:39:39 · 1093 阅读 · 1 评论 -
【Linux】中的进程(PCB)详解及查看方法
可执行程序被加载到内存,加载的是程序的代码和数据,可是操作系统并不认识哪些代码和数据对应哪些进程。所以,操作系统在加载可执行程序形成进程的同时,会创建一个描述该进程的结构体,称为PCB(process control block,进程控制块),linux操作系统下称之为task_struct。操作系统通过PCB中的各种属性信息(状态,优先级,内存指针字段,标识符…),就能够了解到这个进程的属性信息,进而控制进程的运行。此后,操作系统对于进程的管理,就转换成了对于PCB链表的增删查改。原创 2024-04-27 19:30:00 · 2255 阅读 · 0 评论 -
【Linux】权限(rwx)及chmod、chown、chgrp修改权限等指令详解!
linux权限(rwx)及chmod、chown、chgrp修改权限等指令详解!原创 2024-04-26 18:30:00 · 2625 阅读 · 0 评论 -
chown命令错误:lhr is not in the sudoers file. This incident will be reported.怎么解决
xxx ALL=(ALL) ALL (这里的xxx是你的用户名)找到这行 root ALL=(ALL) ALL,在他下面添加。1.切换到root用户下,su -3.编辑sudoers文件。原创 2024-04-26 13:05:50 · 263 阅读 · 0 评论 -
【Linux】如何进行用户之间的切换——指令su
如何进行用户之间的切换——指令su原创 2024-04-26 19:00:00 · 2106 阅读 · 1 评论 -
【Linux】GDB调试器学起来!指令全解,建议收藏
gdb指令大全汇总,指令详解原创 2024-04-25 17:30:47 · 1228 阅读 · 0 评论 -
使用gdb调试遇到No symbol table is loaded. Use the “file“ command.怎么办?
在makefile文件如下进行修改即可。如果是在命令行中执行gcc,就直接跟上【-g】.出现下面问题,通常是没有处于调式模式环境下,所以我们需要在gcc指令后加 【-g】。因为,我么的gcc编辑器默认是动态链接,而且是realese发布版本。主要思路就是在gcc -g。原创 2024-04-25 16:30:39 · 1206 阅读 · 0 评论 -
【Liunx】程序的执行过程及gcc/g++的理解
链接(linking)是将各种代码和数据部分收集起来并组合成为一个单一文件的过程,这个文件可被加载(或被拷贝)到存储器并执行。原创 2024-04-25 19:30:00 · 645 阅读 · 0 评论 -
【Linux】谈谈shell外壳是什么?
外壳又叫shell,都是一个意思。命令行解释器我们经常使用的Xshell就是一种强大的安全终端模拟软件,用于远程连接Linux服务器,方便用户对Linux服务器上的资源文件进行远程操控;我们购买的Liunx云服务器,就需要使用Xshell这种终端模拟器,通过在命令行输入指令,进行使用。shell有很多种,最常见的是bash它逐渐成为 Linux 系统的标准 Shell), 另外还有sh, csh, tcsh, ksh。它们出现的年代不同,所支持的功能也有差异。原创 2024-04-24 21:01:59 · 486 阅读 · 0 评论 -
【Linux】什么是yum?--linux中的软件包管理器详解
1.查看系统是否符合程序需求2.查看是否有已安装的版本3.创建/更新程序文件/文件夹4.添加配置数据,如配置文件、windows registry entries(windows注册表条目)、环境变量5.让用户可用,如添加链接、快捷方式、书签6.配置自动运行的组件,如daemons或windows服务7.启动程序8.更新程序。原创 2024-04-24 20:15:19 · 977 阅读 · 2 评论 -
【Linux】vim指令大全,收藏这篇就够了
本篇博客讲解vim的各种指令。原创 2024-04-14 21:00:35 · 8404 阅读 · 0 评论 -
vim中如何进行批量注释?取消批量注释?
3.选择完成后,直接按下【shift+i】进入插入模式。1.首先进入vim的命令模式。然后按【ctrl+V】4.最后按【ESC】即可进行批量注释。2.按下【J】,可以向下继续选中。按下【L】可以向右选中一个位置。取消注释又是如何操作的呢?选中后,继续【J】向下选中。直接按【d】,就好了。原创 2024-04-14 20:55:05 · 873 阅读 · 0 评论 -
【Liunx】一键式配置vim,这一篇就够了配图超丰富!
一、配置个性化vim首先,进入自己的用户中,配置自己的vim时,是不会影响其他用户的。因为有关vim的配置取决于每个用户家目录下的一个配置文件.vimrc接下来就去我的家目录下看看这个隐藏文件【.vimrc】打开它,你会发现空空如也,因为你还什么都没配置呢。二、直接一键配置上面的个性化配置固然很不错!但是这样一个个加真的好麻烦,有没有什么写好的包可以直接下载下来使用呢?答案:有。在gitee上搜索vimforcpp。直接使用大佬写好的配置文件。vimforcpp。原创 2024-04-14 18:32:49 · 336 阅读 · 0 评论 -
【Liunx】什么是vim?五大模式及转换方法详解
Vim是从vi发展出来的一个文本编辑器。它具有代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,和【Emacs】并列成为类Unix系统用户最喜欢的文本编辑器。对于vim来说,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于Windows、MacoOSvim是一款 多模式的编辑器,它有着各种各样的模式。原创 2024-04-14 18:07:30 · 1496 阅读 · 0 评论 -
【Linux】make是如何判断可执行文件是否需要重新编译呢?(ACM时间)
make是根据【modify时间是否变化】判断可执行文件是否需要重新编译。原创 2024-04-09 20:43:04 · 513 阅读 · 0 评论 -
【Linux】Makefile中.PHONY伪目标是什么?
🔸.PHONY修饰后的目标文件,它可以被反复执行,每次都会执行它的依赖方法。🔸 .PHONY修饰的一定能被反复执行,但是能被反复执行的不一定被.PHONY修饰。原创 2024-04-09 19:48:18 · 603 阅读 · 0 评论 -
【Liunx】什么是make和makefile?
Makefile是一个文件。它是一个工程文件的编译规则,它记录了原始码如何编译的详细信息、描述了整个工程的编译链接等规则。Makefile带来的好处就是自动化编译。一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。target(目标文件):文件1 文件2(依赖文件列表) //依赖关系gcc -o 欲建立的执行文件 目标文件1 目标文件2 ///依赖方法command......目标文件依赖文件依赖方法📆。原创 2024-04-09 18:51:02 · 961 阅读 · 0 评论 -
liunx下如何对文件重命名(rename)
liunx下如何对文件重命名。使用renaem即可对文件进行重命名,这也是最方便快捷的一种了。等指令进行重命名操作。但是 最好的方法是使用。原创 2024-04-09 17:22:40 · 313 阅读 · 0 评论 -
如何在Linux上使用git远程上传至gitee托管(add-commit-push指令详解)
如何在Liunx上使用git远程上传,git add commit push 指令详解原创 2024-03-15 16:02:01 · 1037 阅读 · 0 评论 -
【Linux】常用指令大全 [万字详解!建议收藏记忆!]
本篇博客将盘点Linux各种指令,一起来学习吧~原创 2024-03-13 16:36:18 · 1144 阅读 · 0 评论 -
【Linux】入门篇---xshell安装以及远程连接Linux(看这篇就行啦!)
操作系统是管理计算机硬件与软件资源的程序,可以根据不同的分类标准分为不同的类型。常见的操作系统有:1️⃣ Windows操作系统:由微软公司开发,广泛应用于个人电脑和服务器领域。2️⃣ MacOS操作系统:由苹果公司开发,运行在Macintosh系列的电脑上。3️⃣ Linux操作系统:一种自由和开放源代码的操作系统,广泛应用于服务器领域和嵌入式设备等领域。4️⃣Android操作系统:由谷歌公司开发的移动操作系统,运行在大部分智能手机和平板电脑上。原创 2024-03-12 20:47:13 · 4808 阅读 · 0 评论
分享