![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
文章平均质量分 61
hardrong
这个作者很懒,什么都没留下…
展开
-
详解编译与链接(在linux系统下)
1. 翻译环境,在这个环境中源代码被转换成可执行的机器指令 每一个源文件通过编译过程转换成目标代码,每个目标文件由链接器捆绑在一起,形成一个单一而完整的可执行程序同时链接器同时也会引用标准C库函数中任何被该程序锁用到的函数,而且它可以搜索程序员个人的程序库,将其需要的函数也链接到程序中。2.执行环境,用于实际执行代码编译本身也分为几个阶段1.预处理由test.c 文件变为test.i,编译器主...原创 2018-05-03 22:23:46 · 169 阅读 · 0 评论 -
信号的产生,处理,终止
一,信号的产生信号的产生有三种方式: 硬件产生:CTRL + C,CPU,MMU报错等,发出的信号 软件产生:进程读写文件时发生错误,如另一个进程关掉了文件描述符,alarm信号等 ...原创 2018-11-16 19:15:58 · 1307 阅读 · 0 评论 -
通过信号量PV操作实现,同步互斥机制
如果你不了解信号和PV操作,可以看我上篇博客,这篇主要是实现同步互斥。场景:当一个进程和另一个进程在同时使用一个临界资源时,会变得错乱,所以我们需要通过信号量的PV操作,来加同步互斥。前言:1操作系统是通过数组来管理信号量的数量的。 2,P操作,是对信号量进行减减,V操作是对信号进行加加,(当信号量小于0时,会等待,这就是同步)。 3.当信号量...原创 2018-11-08 14:16:57 · 1559 阅读 · 0 评论 -
静态库,动态库(实现自己的加,减库)
一,静态库程序在编译链接期间的时候把库的代码链接到可执行文件中,程序运行的时候将不再需要静态库二,动态库程序在运行的时候才去链接动态库的代码,多个程序共享使用库的代码重点:一个动态链接的可执行程序文件仅仅包含它用到的函数入口地址的一个表,而不是外部函数所在目标的整个机器码 在可执行文件开始运行以前,外部函数的机器码由操作系统从磁盘上的动态库中复制到内存中,这...原创 2018-11-06 17:05:23 · 222 阅读 · 0 评论 -
理解文件系统(inode的掌握,软链接,硬链接)
一,在Linux中,一切皆文件,所有的东西都可以被看做文件。所以文件信息要被管理起来,要让操作系统能够很好的运用它,那么它是如何被管理起来的?1.被描述:自身属性和其他重要信息被描述为inode,操作系统为他们inode分配一个inode号,去标识它们。(这并不难理解,这和进程的pid是一样的道理)2,组织:操作系统要想把它们放在磁盘里,并让它们能够有序的判断哪些inode被用,哪些没被用...原创 2018-11-06 16:36:30 · 294 阅读 · 0 评论 -
支持输入输出重定向,管道等功能的shell
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<unistd.h>#include<sys/wait.h>#include<sys/types.h>#include<sys/stat.h>#include<fc原创 2018-10-19 20:20:16 · 297 阅读 · 0 评论 -
进程创建,进程等待,进程终止,进程程序替换
进程创建1.在Linux中,bash是shell的一种,它也是由操作系统创建的一个进程,但是它不可能完成操作系统给它每一个任务,所以它需要创建多个子进程完成任务,它只需要等待(进程等待),那如何创建进程呢?第一种fork:当我们调用fork后,内核做几件事情: ...原创 2018-10-14 11:33:15 · 220 阅读 · 0 评论 -
冯 诺依曼体系结构,操作系统,进程浅谈
一,冯诺依曼体系在我们日常生活中,大多硬件都用到了它,如计算机,手机,服务器等。知识点:存储器:指的是内存 局部性原理:在处理器和内存之间提供一个容量小且虚度快的存储器(位于被访问字附近的数据在近期被访问的概率大) 直接存储:简称DMA模块,CPU把所需要的东西都交给它,当它传完后通知CPU即可。 ...原创 2018-09-27 13:06:14 · 2874 阅读 · 0 评论 -
vim编译器,Makefile,yum,rpm,源码,等总结
一,vim vim是多模式文本编译器,但是我们一般只需掌握3中即可,第一种是命令模式,第二是插入模式,第三底行模式。命令模式:可以进行删除,复制,粘贴。nYY是复制,(n是复制的行数),p是粘贴,nDD(n是行数),gg是进入文本的开始G是到文本的末尾,^是移到光标所在行的首位置,$移到光标所在的行尾,b是删除回到上个字的开头,ctrl+b屏幕往后移一页。插入模式:inse...原创 2018-09-21 21:49:42 · 206 阅读 · 0 评论 -
linux 基本指令与操作
Linux是由 Unix 发展而来的,Unix:有价值的,高效的,多用户的,多任务的操作系统Linux:开源的,(免费,稳定的系统)基本指令: 1.ls :列出当前目录下的所有子目录与文件 ls-al 列出目录下的所有文件,包括隐藏文件,并且列出详细信息 ls-R 递归列出所有子目录下的文件 ...原创 2018-08-17 20:39:33 · 234 阅读 · 0 评论 -
gdb调试多进程和多线程命令(结合例子)
1. 默认设置下,在调试多进程程序时GDB只会调试主进程。但是GDB(>V7.0)支持多进程的分别以及同时调试,换句话说,GDB可以同时调试多个程序。只需要设置follow-fork-mode(默认值:parent)和detach-on-fork(默认值:on)即可。 follow-fork-mode detach-on-fork 说明parent ...转载 2018-11-16 21:25:36 · 307 阅读 · 0 评论