![](https://i-blog.csdnimg.cn/direct/f43a5b0c3985468f9af109a73a509032.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Linux
文章平均质量分 88
Linux详细介绍
是小满满满满吗
主要记录学习历程,加油加油加油加油加油
展开
-
进程的控制
因此进程的退出码可以被它的父进程拿到,可以通过 echo $?由此通过errno变量我们可以知道库函数调用失败的错误码,也可以通过strerror打印错误原因,还可以将错误码转化为进程的退出码。在fork之后,页表中所有进程地址的标志位都变成只读,看后续谁先触发只读权限的错误就给谁进行写时拷贝,并且修改权限为可读可写。通常,父子代码共享,父子再不写入时,数据也是共享的,当任意一方试图写入,便以写时拷贝的方式拷贝一份副本。我们这个main函数return的是进程的退出码,来表征进程的运行结果是否正确。原创 2024-07-09 21:34:49 · 1221 阅读 · 0 评论 -
Linux开发工具
实质上头文件包含的是方法的声明,而方法的实现在库中,库其实就是把源文件(.c)进行一定的翻译,然后打包,只提供我们一个文件,不提供太多的源文件,而且也可以起到隐藏源文件的效果。动态库因为是共享库,可以有效节省资源,(磁盘空间,内存空间,网络空间等),动态库一旦缺失,会导致与它链接的各个程序都无法运行。如果我们没有动态库,只有静态库,gcc还是能找到静态库进行静态链接的,-static的本质是改变调用库的优先级。在编译器使用动态库进行动态链接的时候,会进行跳转,跳转到库中执行,再返回我们的代码调用处。原创 2024-06-20 23:03:31 · 1045 阅读 · 4 评论 -
进程的等待
之前讲过,子进程退出,父进程如果不管不顾,就可能造成‘僵尸进程’的问题,进而造成内存泄漏。另外,进程一旦变成僵尸状态,kill -9 也无法再处理僵尸进程,因为谁也没有办法杀死一个已经死去的进程。最后,父进程派给子进程的任务完成的如何,我们需要知道。如,子进程运行完成,是否正常退出,如果正常退出结果对还是不对父进程通过进程等待的方式,回收子进程资源,获取子进程退出信息。原创 2024-07-11 15:10:09 · 568 阅读 · 7 评论 -
make与makefile
值得注意的是因为修改文件内容时,绝大多数时候文件的大小都会改变,因此modify改变大部分情况change也都会改变,而修改文件属性时则不会改变modify。假设这是一个makefile文件,make的时候默认生成第一行的目标文件 ,make会自动推导makefile中的依赖关系,推导过程是一个栈式结构。change是文件属性被修改的最近一次时间,包括文件名,文件大小,文件创建日期,文件的权限等等。因为一定是先有源文件再有可执行文件的,所以一般而言,源文件的最早修改时间是要比可执行文件早的。原创 2024-06-22 01:06:15 · 939 阅读 · 4 评论 -
linux上git的使用
如果输入git --help 会显示下面一大串那么就是已经安装,否则需要自行手动安装。原创 2024-06-24 14:32:36 · 490 阅读 · 0 评论 -
linux下进度条的实现
使用模块化编程。原创 2024-06-24 12:37:06 · 468 阅读 · 0 评论 -
linux中的调试工具gdb
3. list(简写为l)行号:显示binFile源代码,接着上次的位置往下列,每次列10行。如果后面添加行号,它会将行号所在的语句放在显示出来的代码的较为中间部分,所有当我们l 0时,因为前面没有代码了,所有效果就等效于从第一行开始显示10行。gdb会记忆上一次进行的操作,比如我使用 s,按回车键就会继续产生按s的效果,如果我们先输入了一个 l 0,继续按回车就会产生继续按l的效果。12print(简写为p):打印表达式的值,通过表达式可以修改变量的值或者调用函数p 变量:打印变量值。原创 2024-06-24 17:27:54 · 822 阅读 · 1 评论 -
进程地址空间(初)
task_struct中存有页表的起始地址,cpu中有一个cr3寄存器可以储存该进程的页表信息,(页表信息也属于上下文),因此当需要访问内存的时候,cpu可以通过cr3寄存器找到该进程的页表,再通过虚拟地址去找到物理地址。2.增加进程虚拟地址空间可以让我们访问内存的时候,增加一个转换的过程,在这个转化的过程中,可以对我们的寻址请求进行审查,所以一旦异常访问,它会被直接拦截,该请求不会到达物理内存,可以起到。当我们要访问内存时,我们先找到虚拟地址,再看其标志位,当标志位为1,那么我们直接访问对应的物理内存。原创 2024-07-09 10:16:03 · 1123 阅读 · 0 评论 -
进程的初步认识
abcde都是独立的个体,所以各个单元必须要用“线”连接起来,称为总线,为图中红色1.系统总线 连接运算器和控制器2.io总线 连接存储器和输入输出设备一个程序要运行必须先加载到内存,是因为冯诺依曼体系就是这样子规定的计算机管理硬件1. 描述起来,用struct结构体2. 组织起来,用链表或其他高效的数据结构。原创 2024-07-06 18:37:03 · 1158 阅读 · 0 评论 -
进程切换与环境变量(一)
环境变量是一组name=vaule形式的变量,不同的用户具有不同的环境变量,环境变量具有全局性它的作用是帮助系统“认识你是谁”原创 2024-07-08 09:46:54 · 705 阅读 · 0 评论 -
Linux权限
如果我们想要暂时对一条命令进行权限的提升可以使用 sudo 指令, 可以暂时使用root身份来调用这条指令,比如说我们使用 sudo whoami 那么会输出root,不过用户要实现存在于系统的信任白名单中。linux中,每个人的身份只能被唯一识别,比如说如果用户a既是拥有者,也是所属组,系统会优先认定其为拥有者,如果文件的属性是r--rw-r--,那么该用户是不能写该文件的。如果我们需要共享文件,需要我们在里面可以创建自己的文件,进行增删查改,但是不能删除他人文件,我们可以增加粘滞位。原创 2024-06-18 23:19:51 · 641 阅读 · 0 评论 -
Linux工具(包含sudo提权与vim快捷配置)
在Linux下安装软件1.源代码安装,下载到程序的源代码, 并进行编译, 得到可执行程序2.rpm安装 Linux安装包但是这两种方法太过于麻烦,因此我们使用yum3.yum安装 解决安装源,安装版本,安装依赖(相关联的插件什么的都会一并装了,不需要我们担心)原创 2024-06-19 21:26:54 · 1322 阅读 · 10 评论 -
Linux基本指令
文件的类型d:是一个目录-:文件是一个普通文件在Linux中,以.开头的文件称为隐藏文件,任何一个目录下面都有两个隐藏文件.. :表示当前路径的上层路径.:表示当前路径,其存在意义是帮助用户定位当前目录下的一个文件常用选项(选项可以多个叠加使用)如 ls -a -d1. -a列出目录下的所有文件,包括以.开头的隐藏文件2.-d将目录像文件一样展示,而不是显示其下的文件, 如ls -d 指定目录3.-l 列出文件的详细信息。原创 2024-06-14 14:57:06 · 958 阅读 · 0 评论