![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
文章平均质量分 80
Linux是一个开源的操作系统,广泛应用于服务器、嵌入式设备和个人电脑等领域。
排骨炖粉条
愿你在冷铁卷刃前,得以窥见天光。
展开
-
基础I/O:文件系统调用接口
参数标志必须包括以下访问结点之一:O_RDONLY、O_WRONLY、O_RDWR.着三种方式分别表示只读、只读或读/写文件。在操作系统提供了类似open这种调用接口的情况下,C语言仍然对其进行了封装,主要原因是为了保证程序的可移植性和跨平台性。在files_struct数组当中,找到当前没有被使用的最小的一个下标,做为新打开的文件描述符。在实际的运行之后,本应该打印在显示器上的数据,却写入到了。系列的函数,都是对系统调用的二次封装,方便二次开发。都属于系统提供的接口,系统调用接口。原创 2024-05-11 21:54:12 · 556 阅读 · 0 评论 -
基础I/O:C文件、系统文件I/O
一定的时间的段内,系统中存在多个和进程,也可能同时存在更多的被打开的文件,操作系统OS需要对这个多个被进程打开的文件进行管理,先描述、再组织。内核中一定要有描述被打开文件的结构体,并且用其定义对象。在C语言中,以w的方式也就是以只写的方式打开文件,如果文件存在,则先将文件清空之后,再进行写入。如果文件不存在,则先创建一个文件,再进行写入。在linux中,输出重定向,每次写入的时候都会先清空文件,再写入,如果文件不存在则新建一个文件。原创 2024-05-10 22:58:55 · 426 阅读 · 1 评论 -
Linux详解:简单实现shell
简单实现shell原创 2024-05-05 20:55:45 · 76 阅读 · 0 评论 -
Linux详解:进程等待
子进程退出,父进程不进行回收的话,就可能造成僵尸进程,进而造成内存泄露原创 2024-04-29 23:00:45 · 1113 阅读 · 1 评论 -
Linux详解:进程终止、错误码
每个退出码都可以转化成为相对应的退出错误描述。原创 2024-04-28 21:11:07 · 474 阅读 · 0 评论 -
Linux详解:进程创建
当这个进程进行fork 的时候,创建了一个子进程,此时子进程的pcb是继承于父进程,所以子进程的虚拟内存以及页表以及映射的物理内存等信息都是相同的,所以此时父子进程的虚拟内存是相同的,页表映射的数据段和代码段的物理内存也是相同的,当有一方进行数据修改的时候,进行写入的时候,为了双方互不影响,会给试图进行写入的一方拷贝一份代码块,将页表映射的代码块映射到拷贝的物理内存的地址处,然后再进行写入。在linux 中fork函数,它从已经存在的进程中创建一个新的进程,新进程为子进程,而原进程为父进程。原创 2024-04-27 22:12:19 · 1230 阅读 · 0 评论 -
Linux环境变量
所有的环境变量默认情况下保存在磁盘文件中读取到的,读取到内存中,形成了shell中的环境变量,关闭shell就删除了所有内存中的环境变量,再次创建登录时再次从磁盘文件中读取。PATH环境变量修改之后,可以通过重新启动shell软件,可以重新初始化PATH环境变量。环境变量具有全局属性,环境变量会被所有的子进程包括孙子进程进行继承。定义变量的本质,就是开辟空间,在运行期间我们的程序也能开辟空间。系统的环境变量,本质上就是系统自己开辟空间,给它名字和内容即可。环境变量,一般是系统内置的具有特殊用途的变量。原创 2024-04-26 23:17:13 · 226 阅读 · 0 评论 -
Linux进程详解:进程优先级,调度算法,进程特性
在系统当中查找一个最合适调度的进程的时间复杂度是一个常数,不随着进程的增多而导致时间成本增加,我们称之为进程调度O(1)算法!当活动队列上的进程运行完毕之后,只需要交换active指针和expire指针的内容,就相当于具有了一批新的活动进程。优先级较高的进程,优先得到资源,后续还有很多的进程产生,导致常规的进程很难享受到CPU资源。可是活动队列上的进程会越来越少,过期队列上的进程会越来越多,因为进程时间片到期时一直都存在的。Linux优先级是可以被修改的,Linux的优先级的范围。,一共40个优先等级。原创 2024-04-25 21:32:19 · 879 阅读 · 0 评论 -
Linux进程详解三:进程状态
当一个进程在cpu的运行队列中,先时运行状态,但是这个进程需要的硬件资源还没有准备好,例如从键盘中读取数据,此时还没有读取到,此时操作系统会将这个进程从cpu的运行队列中拿下来,链入到键盘硬件相对应的排队队列中,并将这个进程的状态设置为阻塞状态,当进程从键盘中获取足够的资源的时候,操作系统再将这个进程拿到CPU的运行队列中重新进行排队。当父进程比子进程提前结束,父进程会被他的父进程bash回收,此时父进程被回收后,子进程就变成了孤儿,此时子进程会被1号进程领养,1号进程就是系统进程。如果父进程不读取呢。原创 2024-04-24 23:05:56 · 1217 阅读 · 0 评论 -
Linux进程详解二:创建、状态、进程排队
当父进程中过的代码执行到fork的时候,进入fork的内部函数中,fork的内部函数中首先创建一个子进程然后将父进程的部分属性继承到新创建的子进程中,将父进程对应的代码数据与子进程进行共享,此时子进程已经创建完成了,但是fork函数还没有执行完成,fork需要进行return返回,此时父进程和子进程已经同时存在了,所以fork的return被执行了两次,一次在父进程中,一次在子进程中。因为父子关系中,父亲只能有一个,而儿子可以有多个,对于儿子来说,他的父亲是唯一存在的,所有用儿子找父亲很明确。原创 2024-04-23 23:01:03 · 1035 阅读 · 0 评论 -
Linux进程详解一
用户要获取到进程的标示符,也就是pcb中的信息的时候,必须要调用系统调用,因为pcb在操作系统的内核中,用户不可以越过操作系统直接获取数据。Linux会将进程的相关信息,在/proc目录下,以一个目录的形式存放,这个进程的所有属性都存放在这个目录下面。所有对进程的控制和操作,都只和进程的PCB有关,和进程的可执行程序没有关系。几乎所有的独立的指令也是程序,所有在执行指令的时候也要变成进程。我们在命令行中启动的所有的程序,产生的进程都是bash的子进程。一般在Linux中,所有普通进程都有其对应的父进程。原创 2024-04-22 23:37:04 · 585 阅读 · 0 评论 -
计算机体系结构
在一台计算机中,有着多种设备,输入设备,输出设备,存储设备,CPU,这些设备的速度不同,有的速度很快,有的速度很慢,在不存在内存的情况下,计算机的效率取决于这些设备中速度最慢的设备。设备之间的数据流动,本质上时设备之间进行数据的来回拷贝,拷贝的整体速度,是决定计算机效率的重要指标。水桶的最大存储容量,不取决于木桶最长的边,取决于最短的。多核,一个CPU中存在一个控制器多个运算器。原创 2024-04-21 22:20:34 · 176 阅读 · 0 评论 -
Linux下:gcc/g++调试工具gdb
程序的发布方式有两种,debug模式和release模式Linux gcc/g++出来的二进制程序,默认是release模式gdb mybin。原创 2024-04-21 22:19:06 · 350 阅读 · 0 评论 -
git工具简单使用
远端仓库相当于对本地仓库的一个备份,push的时候相当于将本地仓库与远端仓库进行同步。将暂存区中的文件数据,提交到本地仓库中,形成历史修改记录,历史版本。查看当前暂存区,本地仓库,远端仓库的区别。git commit 本地提交。.git目录 本地仓库的意思。git push 远端提交。原创 2024-04-20 23:55:56 · 377 阅读 · 0 评论 -
Make/Makefile详解
Linux项目自动化构建工具。原创 2024-04-20 23:54:44 · 846 阅读 · 0 评论 -
动静态库详解
动静态库的区别:静态库在链接时需要拷贝到源文件中,动态库不需要。允许你拷贝的库就是静态库,允许你关联的库就是动态库。动态链接必须存在动态库,静态链接必须存在静态库。ldd命令可以查看一个可执行程序所依赖的库文件。默认是不安装静态库,只默认安装动态库。原创 2024-04-19 18:18:35 · 394 阅读 · 0 评论 -
GCC/G++详解
头文件展开是指,在预处理的时候,将头文件里面的内容拷贝到源文件中。C语言源文件可以使用gcc和g++编译(优先选择gcc)通过给编译一起传递不同的宏值,来进行对代码的动态裁剪。C++源文件只能使用g++进行编译。原创 2024-04-19 18:16:56 · 413 阅读 · 0 评论 -
vim使用指南:指令、配置、插件、异常
vim的本质是一个编辑器,是一种多模式的编辑器,只能进行读写操作,不能进行编译原创 2024-04-18 20:01:53 · 1190 阅读 · 0 评论 -
什么是yum、以及yum源
yum是Linux预装的一个指令,搜索、下载、安装对应的软件。手机上有应用商店,yum就相当于Linux中的应用商店。原创 2024-04-18 19:59:40 · 561 阅读 · 0 评论 -
Linux下:指令的理解、本质、shell
Linux下一切皆文件!!!原创 2024-04-17 21:46:27 · 1237 阅读 · 0 评论 -
Linux下的权限:论老流氓root的存在
root是何等的流氓,捂脸原创 2024-04-17 21:42:09 · 1241 阅读 · 0 评论 -
Linux:常用指令
常用指令原创 2024-04-15 20:47:01 · 1031 阅读 · 0 评论 -
CentOS 中的 Make 和 Makefile:Linux 构建工具的深入解析
Make 是一个命令行工具,它自动化了编译和构建过程,确保软件构建的正确性和高效性。它读取名为 Makefile 的文件,这个文件定义了一系列的构建规则和依赖关系。Make 和 Makefile 是 Linux 开发中不可或缺的工具,特别是在 CentOS 这样的企业级发行版中。通过精确控制编译过程,它们帮助开发者确保构建的可重复性和高效性。掌握它们的使用不仅可以提高开发效率,还可以帮助维护复杂的项目结构。原创 2024-04-15 20:36:25 · 1499 阅读 · 1 评论 -
深入理解GCC/G++在CentOS上的应用
GCC/G++是灵活的编译器,支持多种编程语言,主要是C和C++。理解如何编译这两种语言的源文件至关重要。原创 2024-04-14 19:27:28 · 1121 阅读 · 0 评论 -
CentOS 和 GCC/G++:Linux 的强大组合
CentOS与GCC/G++的组合为Linux开发者提供了一个强大、稳定且免费的平台,无论是学习、开发还是部署,都是非常理想的选择。这种组合保证了你可以在一个稳定的环境中使用最先进的编译技术,无疑,这对于追求高效和高质量的开发工作来说是一个巨大的加分项。原创 2024-04-14 19:19:49 · 793 阅读 · 0 评论 -
Vim:强大的文本编辑器
Vim,代表 Vi IMproved,是一款高效的文本编辑器,广泛用于编程和各种文本编辑任务。与其他IDE(集成开发环境)如Visual Studio不同,Vim本质上是一个编辑器,它专注于提供强大的文本编辑功能,不直接支持编译或调试,但可以通过插件扩展其功能。虽然它不是一个集成开发环境,但通过插件可以接近IDE的功能,特别是对于喜欢键盘操作的用户,Vim提供了无与伦比的快速操作体验。插件来增强Vim的功能。这个插件提供了代码高亮、代码折叠、错误检查等特性,使得Vim在处理C++项目时更加高效。原创 2024-04-12 20:25:12 · 775 阅读 · 0 评论 -
YUM:Linux 下的软件包管理神器
YUM 是一个开源的软件包管理器,它允许用户从指定的服务器自动安装、升级、配置及删除软件包。YUM 通过使用 RPM 包管理格式,简化了对软件包的依赖性处理和整个系统的管理工作。原创 2024-04-12 20:17:58 · 356 阅读 · 0 评论 -
拥抱Linux,拥抱开源,拥抱未来
Linux是我们这个时代的技术奇迹和文化象征。它不仅改变了软件和互联网的面貌,也正在影响和塑造我们的社会和文明。Linux代表了技术的力量、开源的精神、协作的文化、创新的动力。拥抱Linux,就是拥抱一个更加开放、自由、平等、协作的世界。拥抱开源,就是拥抱一种新的文明形态和价值观。拥抱未来,就是拥抱无限的可能性和创造力。让我们携手并肩,一起为Linux的生态和发展贡献自己的力量。让我们传承和发扬Linux的精神和文化,让技术成为推动社会进步的力量。让我们一起开启人类文明的新篇章,一起创造更加美好的未来。原创 2024-04-11 22:25:35 · 615 阅读 · 0 评论 -
Linux生态系统:探索Linux的开源世界
Linux不仅仅是一个操作系统,更是一种文化、一种生态、一种精神。它代表了开源、自由、协作、共享的理念,吸引了全球无数的开发者和用户。Linux的生态系统涵盖了操作系统、开源软件、云计算、物联网等多个领域,正在不断地创新和演进。原创 2024-04-11 22:24:18 · 784 阅读 · 0 评论 -
Linux生态系统:探索Linux的开源世界
Linux不仅仅是一个操作系统,更是一种文化、一种生态、一种精神。它代表了开源、自由、协作、共享的理念,吸引了全球无数的开发者和用户。Linux的生态系统涵盖了操作系统、开源软件、云计算、物联网等多个领域,正在不断地创新和演进。原创 2024-04-10 21:54:54 · 699 阅读 · 0 评论 -
Linux高手之路:玩转Linux的高级技巧
本文介绍了一些Linux高手的实用技巧,包括命令行技巧、Vim编辑器、正则表达式、性能调优、自动化运维等。这些技巧可以帮助我们更加高效、优雅地使用Linux系统,发挥Linux的最大潜力。原创 2024-04-10 21:39:21 · 741 阅读 · 0 评论 -
Linux进阶之旅:深入探索Linux的高级功能
本文介绍了Linux的一些高级功能,包括Shell脚本编程、进程管理、网络管理、文本处理和系统监控。这些功能是Linux系统管理的重要内容,掌握这些技能可以让我们更加全面和深入地理解Linux系统。当然,Linux的高级功能远不止这些,还包括内核编程、虚拟化、容器技术等多个领域。学习Linux是一个持续的过程,需要我们不断地探索和实践。希望这两篇博客能够帮助大家走进Linux的世界,感受开源技术的魅力。让我们一起在Linux的进阶之旅中不断成长,成为优秀的Linux工程师!原创 2024-04-09 20:40:47 · 771 阅读 · 0 评论 -
Linux操作系统入门指南
Linux是一种开源、免费、安全、稳定且功能强大的操作系统。它起源于20世纪90年代初,由芬兰学生Linus Torvalds开发,基于Unix操作系统,采用了GNU通用公共许可证(GPL)。Linux可以运行在各种硬件平台上,从个人电脑、服务器到嵌入式设备,广泛应用于各个领域。Linux是一个强大、灵活、安全、稳定的操作系统,适用于各种应用场景。通过学习Linux的基本概念、安装方法、常用命令和文件系统,初学者可以快速上手Linux,并逐步深入了解其高级功能。原创 2024-04-09 20:38:08 · 624 阅读 · 0 评论