![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
文章平均质量分 75
西科陈冠希
此人不懒,什么都写
展开
-
【网络编程】ping 原理与ICMP协议
ping 的原理ping 程序是用来探测主机到主机之间是否可通信,如果不能 ping到某台主机,表明不能和这台主机建立连接。 ping 使用的是ICMP协议,它发送icmp回送请求消息给目的主机。ICMP协议规定:目的主机必须返回ICMP回送应答消息给源主机。如果源主机在一定时间内收到应答,则认为主机可达。ICMP协议通过IP协议发送的,IP协议是一种无连接的,不可靠的数据包协议。在Unix/Linux,序列号从0开始计数,依次递增。而Windows ping程序的ICMP序列号是没有规律。ICMP转载 2021-06-13 09:18:27 · 561 阅读 · 0 评论 -
【网络编程】TCP/UDP协议(传输层特性)
TCP/UDP协议(传输层特性)背景知识端口号UDP分析报头UDP特点面向数据报基于UDP的应用层协议TCPTCP报头分析确认应答机制超时重传机制连接管理机制TIME_WAITCLOSE_WAIT滑动窗口流量控制拥塞控制(网络问题)背景知识端口号在TCP/IP协议中, 用 “源IP”, “源端口号”, “目的IP”, “目的端口号”, “协议号” 这样一个五元组来标识一个通信(可以通过netstat -n查看)并且端口号是有范围划分的:0 - 1023: 知名端口号, HTTP, FTP, SS原创 2021-06-05 09:44:44 · 339 阅读 · 4 评论 -
【网络编程】HTTP协议(网络计算器,URL)
HTTP协议(详谈应用层,传输层)一级目录二级目录三级目录一级目录二级目录三级目录原创 2021-05-28 11:01:31 · 273 阅读 · 3 评论 -
【网络编程】TCP/UDP(socket编程)
TCP/UDP背景知识源IP地址和目的IP地址端口号源端口号和目的端口号网络字节序socket编程socket 常见APIsockaddr结构地址转换函数UDP基本概念UDP服务器和客户端框架服务器(Server)客户端(Client)TCP基本概念三级目录背景知识源IP地址和目的IP地址在IP数据包头部中, 有两个IP地址, 分别叫做源IP地址, 和目的IP地址。应为在链路层传输的时候,只需要去更改MAC的地址但是最终发到哪里是通过识别IP来确定的。端口号端口号(port)是传输层协议的原创 2021-05-24 16:07:49 · 888 阅读 · 2 评论 -
【网络基础】背景-协议-OSI模型-TCP/IP模型-网络传输-地址管理
网络基础①一级目录二级目录三级目录一级目录二级目录三级目录原创 2021-05-11 13:52:09 · 386 阅读 · 8 评论 -
【LINUX】多线程(线程池,单例模式,线程安全,读者写者模型)
这里写目录标题一级目录二级目录三级目录一级目录二级目录三级目录原创 2021-04-29 19:10:47 · 265 阅读 · 1 评论 -
【LINUX】多线程(生产者消费者模型,POXIS信号量)
多线程生产者消费者模型为何要使用生产者消费者模型生产者消费者模型优点基于BlockingQueue的生产者消费者模型BlockingQueue实战演示线程执行代码BlockQueue创建POXIS信号量基本概念和创建基于环形队列的生产消费模型三级目录生产者消费者模型为何要使用生产者消费者模型生产者消费者模式就是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直接通讯,而通过阻塞队列来进行通讯,所以生产者生产完数据之后不用等待消费者处理,直接扔给阻塞队列,消费者不找生产者要数据,原创 2021-04-24 13:39:54 · 326 阅读 · 5 评论 -
【LINXU】多线程(进程与线程区别,互斥同步)
互斥同步线程线程概念线程优点线程缺点线程异常Linux进程VS线程概念关系线程控制创建线程线程ID及进程地址空间布局线程终止线程等待线程分离互斥背景知识互斥量mutex互斥条件互斥量的接口实例运用(售票系统)互斥量实现原理探究死锁概念死锁四个必要条件避免死锁同步条件变量同步概念与竞态条件条件变量过程描述pthread_cond_wait 需要互斥量线程线程概念在一个程序里的一个执行路线就叫做线程(thread)。更准确的定义是:线程是“一个进程内部的控制序列”一切进程至少都有一个执行线程线程在进转载 2021-04-19 14:26:37 · 165 阅读 · 1 评论 -
【LINUX】进程信号时间线描述(产生-判断过程-处理)
进程信号(产生-存储-处理)背景知识信号产生通过终端按键产生信号Core Dump调用系统函数向进程发信号由软件条件产生信号由硬件异常产生信号总结信号判断过程阻塞信号信号其他相关常见概念在内核中的表示sigset_t信号处理信号集操作函数捕捉信号内核如何实现信号的捕捉sigaction背景知识信号是进程之间事件异步通知的一种方式。用kill -l可以查看信号列表每个信号都有一个编号和一个宏定义名称,这些宏定义可以在signal.h中找到,例如其中有定 义 #define SIGINT 2编号原创 2021-04-12 20:53:40 · 1084 阅读 · 3 评论 -
【LINUX】进程间通信(管道,共享内存,消息队列,信号量)
进程间通信(管道,共享内存,消息队列,信号量)一级目录二级目录三级目录二级目录三级目录二级目录三级目录二级目录三级目录二级目录一级目录二级目录三级目录二级目录三级目录二级目录三级目录二级目录三级目录二级目录...原创 2021-04-06 14:29:04 · 331 阅读 · 3 评论 -
【LINUX】基础IO(文件系统,软硬链接,动静态库)
文件系统,软硬链接,动静态库一级目录二级目录三级目录一级目录二级目录三级目录原创 2021-03-30 13:19:34 · 2639 阅读 · 8 评论 -
【LINUX】Minishell two(添加重定向功能)
Minishell two(追加重定向功能)Minishell two思路讲解代码实现Minishell two思路讲解当我们输入的命令用cmd来存储,然后通过循环来遍历cmd,通过找到> 或者>>来判断是重定向或者追加重定向,思路很简单接下来就是代码的实现。代码实现void redirect(char *cmd){ int fd =-1;//先定义文件描述符 int redirect_count=0;//计量到大于号的数量 char *ptr = cmd;//通过原创 2021-03-29 21:57:05 · 146 阅读 · 1 评论 -
【LINUX】基础IO(重定向)
基础IO重定向基础IO系统文件IO接口介绍文件描述符0 & 1 & 2重定向fd分配规则dup2函数基础IO系统文件IO在我们操作文件的时候除了fopen,fwrite等等一些接口,我们还可以采用系统接口来进行文件访问。接口介绍OPEN#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>int open(const char *pathname, int flags);原创 2021-03-29 21:03:31 · 308 阅读 · 3 评论 -
【LINUX】miniShell(替换函数)
miniShell(替换函数)背景简介代码实现函数与进程背景我们经常在linux上敲各种的命令like this。但我们知道底层是如何识别执行的吗?简介用下图的时间轴来表示事件的发生次序。其中时间从左向右。shell由标识为sh的方块代表,它随着时间的流逝从左向右移动。shell从用户读入字符串"ls"。shell建立一个新的进程,然后在那个进程中运行ls程序并等待那个进程结束。shell读取一行输入,建立一个新的进程,在这个·进程中运行程序并等待这个进程结束。所以要写一个shell,需原创 2021-03-21 18:30:30 · 2167 阅读 · 5 评论 -
【LINUX】进程创建-进程等待-进程替换-进程终止
进程的基本流程进程创建fork初识写时拷贝进程等待进程等待必要性进程等待的方法(wait和waitpid)waitwaitpid获取进程status进程替换进程替换原理进程替换函数进程替换函数命名理解进程终止进程常见退出方法exit退出和_exit退出retrun退出三级目录进程创建fork初识在linux中fork函数时非常重要的函数,它从已存在进程中创建一个新进程。新进程为子进程,而原进程为父进程。pid_t fork(void);返回值:自进程中返回0,父进程返回子进程id,出错返回-原创 2021-03-17 15:30:04 · 1043 阅读 · 2 评论 -
【LINUX】r,w,a,r+,w+,a+概念和区别
r:以只读的方式打开文本文件,文件必须存在;w:以只写的方式打开文本文件,文件若存在则清空文件内容从文件头部开始写,若不存在则根据文件名创建新文件并只写打开;a:以只写的方式打开文本文件,文件若存在则从文件尾部以追加的方式开始写,文件原来存在的内容不会清除(除了文件尾标志EOF),若不存在则根据文件名创建新文件并只写打开;r+:以可读写的方式打开文本文件,文件必须存在;w+:以可读写的方式打开文本文件,其他与w一样;a+:以可读写的方式打开文本文件,其他与a一样;若打开二进制文件,可在后面加个b原创 2021-03-11 11:20:21 · 4066 阅读 · 0 评论 -
【LINUX】Linux的进程优先级 NI 和 PR
Linux的进程优先级 NI 和 PR为什么要有进程优先级?基本概念PRI and NI优先级的其他概念为什么要有进程优先级?进程执行占用cpu的能力就是一个必须要可以人为控制的事情。因为有的进程相对重要,而有的进程则没那么重要。进程优先级起作用的方式从发明以来基本没有什么变化,无论是只有一个cpu的时代,还是多核cpu时代,都是通过控制进程占用cpu时间的长短来实现的。就是说在同一个调度周期中,优先级高的进程占用的时间长些,而优先级低的进程占用的短些。基本概念1.cpu资源分配的先后顺序,就是原创 2021-03-07 15:59:32 · 2765 阅读 · 5 评论 -
【LINUX】环境变量与程序地址空间
环境变量与程序地址空间环境变量环境变量简介基本概念常见环境变量和环境变量相关的命令环境变量相关的代码和组织方式程序地址空间环境变量环境变量简介基本概念环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数如:我们在编写C/C++代码的时候,在链接的时候,从来不知道我们的所链接的动态静态库在哪里,但是照样可以链接成功,生成可执行程序,原因就是有相关环境变量帮助编译器进行查找。环境变量通常具有某些特殊用途,还有在系统当中通常具有全局特性常见原创 2021-03-07 15:45:03 · 196 阅读 · 1 评论 -
【LINUX】内存的页面置换算法
内存的页面置换算法最佳(Optimal, OPT)置换算法FIFO 算法LRU算法最佳(Optimal, OPT)置换算法最佳(Optimal, OPT)置换算法所选择的被淘汰页面将是以后永不使用的,或者是在最长时间内不再被访问的页面,这样可以保证获得最低的缺页率。但由于人们目前无法预知进程在内存下的若千页面中哪个是未来最长时间内不再被访问的,因而该算法无法实现。最佳置换算法可以用来评价其他算法。假定系统为某进程分配了三个物理块,并考虑有以下页面号引用串:7, 0, 1, 2, 0, 3, 0, 4原创 2021-02-16 13:34:12 · 1182 阅读 · 2 评论 -
【LINUX】进程
进程进程基本概念描述进程-PCBtask_struct-PCBtask_ struct内容分类组织进程查看进程通过系统调用获取进程标示符通过系统调用创建进程-fork初识进程状态Z(zombie)-僵尸进程Z(zombie)-僵尸进程-危害孤儿进程进程基本概念课本概念:程序的一个执行实例,正在执行的程序等内核观点:担当分配系统资源(CPU时间,内存)的实体。描述进程-PCBtask_struct-PCBtask_struct-PCB的一种在Linux中描述进程的结构体叫做task_struc原创 2021-02-07 17:11:51 · 169 阅读 · 1 评论 -
【LINUX】LINUX0.11内核源码 真男人就读源码
LINUX0.11内核源码原创 2021-02-02 15:27:42 · 314 阅读 · 0 评论 -
【LINUX】Linux第一个小程序-进度条
进度条前提条件知识思路代码及其实现前提条件知识在以往我们的生活中都会有,例如写论文每一次划分段落和还行都需要回车和换行\r&&\n来执行。在C语言当中,程序在运行的时候默认永远是从上往下依次运行,当printf在显示器上显示的时候如果后边加了sleep睡眠那么我们看到的就是先执行睡眠然后在显示,这样就和语言冲突了,实际程序当中的原理是先执行了printf语句,将程序放在了缓冲区当sleep后缓冲区内容被刷新,才会看到字符。这就是我们的行刷新,如果非要让其显示在结束,那么我们就可以采用原创 2021-01-29 16:10:01 · 254 阅读 · 0 评论 -
【LINUX】No refs in common and none specified; doing nothing. Perhaps you should specify a branch such
git push后报错此报错意思为git没有关联到master的库解决办法:git push origin master原创 2021-01-29 11:49:03 · 176 阅读 · 0 评论 -
【LINUX】Shell及其环境开发工具
Shell及其环境开发工具Shell(贝壳)环境开发工具Shell(贝壳)Shell:包裹在操作系统外层的软件层,方便用户和OS进行沟通。功能:接受用户的输入,交给OS执行,得到结果反馈给用户.作用:交互 保护操作系统通俗解释:shell就相当于和操作系统交互,人通过Shell来交互。环境开发工具软件包管理器 (yum)软件包就相当于手机市场中的应用市场里边存放着g各种各样的APP应用,你可以自己选择需要的APP安装其中Linux中软件安装方式有三种源码安装rpm包安装y原创 2021-01-22 17:08:44 · 1030 阅读 · 0 评论 -
【LINUX】文件权限
文件权限权限理解LINUX(YUM)好玩的指令权限理解Linux下有两种用户:超级用户普通用户超级用户:可以再linux系统下做任何事情,不受限制 普通用户:在linux下做有限的事情。超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。切换指令su【用户名】文件访问者的分类:1.文件和文件目录所有者2.文件和文件目录所有者中组内用户 Group3.其他用户图例:在图中:rwx表示的是三种权限分别是,可读可写可执行janson分别是拥有者和所属组 4096是文件原创 2021-01-22 15:35:26 · 193 阅读 · 0 评论