![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Linux
文章平均质量分 93
Linux
柳阿九
前途似海,来日方长~
展开
-
【Linux】几种典型的IO模型
几种典型的IO模型常见IO场景----输入和输出。读写文件 read/write/fread/fwrite 网络接收与发送 send/recv/sendto/recvfrom 上述两种场景都有一个共同点,就是最终都会和操作系统打交道IO过程等待数据 拷贝数据到用户空间阻塞IO1.当程序员在代码当中调用一个IO接口,如果内核还没有将数据准备好,IO接口就会阻塞等待,把这种IO的过程称之为阻塞IO2. IO调用的返回,预示着一定拿到了想要的数据非阻塞IO当程序员在代码.原创 2021-04-22 23:22:27 · 226 阅读 · 0 评论 -
【Linux】Ⅻ基础网络:数据链路层
以太网协议1. 来自网络层的ip数据报会交给递交给数据链路层的以太网协议;2. 网络层是负责数据从哪里来到哪里去,而数据链路层负责数据从链路当中的设备到相邻设备;以太网帧格式MAC地址:网卡绑定着,每一块网卡都有一个全球唯一的MAC地址。 目的地址:目的MAC地址 源地址:源MAC地址 类型:上层协议的类型 0800:ip协议 0806:ARP请求 0835:ARP应答、 数据:有效载荷,46~1500(MTU也就是1500字节),如果从网络协议栈传递下来的数.原创 2021-04-22 22:55:08 · 193 阅读 · 0 评论 -
【Linux】Ⅺ基础网络:网络层之IP协议
IP协议首部字段其他字段说明8位服务类型(Type Of Service):包括3位优先权字段(已经弃用),4位TOS字段,和1位保留字段(必须置为0);4位TOS分别表示:最小延时,最大吞吐吐量,最高可靠性,最小成本,这四者相互冲突,也就是说这四个中只能选择一个。对于ssh/telnet这样的应用程序,最小延时比较重要;对于ftp这样的程序,最大吞吐量比较重要。 16位标识:同一个数据包当中的不同分片具有同样的标识,本质上就是为了在接收方接受到数据的时候,可以成功找到属于同一个数据包的.原创 2021-04-22 22:40:33 · 201 阅读 · 0 评论 -
【Linux】Ⅹ基础网络:传输层之TCP协议
抓网络包:Linux:1.切换到root用户,使用tcpdump tcpdump-iany port[端口]-50-w 123.dat2.抓下来的结果,使用wrieshark打开,分析结果Windows:wireshark直接进行抓包TCP协议三大特性——面向连接,可靠传输,面向字节流面向连接TCP连接的本质,是在建立连接的三次握手时期,通信双方会协商很多连接当中的参数,例如:MSS,包序号对于TCP而言,如果不建立连接则不能够进行通信 对于TCP而言,建立连接的过.原创 2021-04-22 22:23:52 · 117 阅读 · 0 评论 -
【Linux】Ⅸ基础网络:传输层之UDP协议
认识端口使用端口(Port)来标记不同的网络进程 端口(Port)使用16比特位表示(0~2^16即65535) 知名端口:0~1023并不是说非知名端囗的就可以随意去使用了,常用软件在使用的端口如下:网络数据在传输过程当中的五元组信息,任何一个需要在网络当中传输的数据,都会具备五元组信息,否则网络就不会给转发——{源端口,目的端口,源ip,目的ip,协议}UDP协议1. 关于UDP协议的三大特点——无连接,不可靠,面向数据报无连接:是指在给对方发送消息的时候..原创 2021-04-22 22:04:15 · 198 阅读 · 0 评论 -
【Linux】Ⅷ基础网络:应用层之HTTP协议
自定义协议(TCP粘包问题) 自定制协议:就是在应用层对要传输的数据,进行数据格式的约定,消息的发送方和接收方都遵守该约定 自定制协议是工作在应用层,被程序员定义出来的协议对于应用层调用send接口,只是负责将数据放到TCP的发送缓冲区当中,至于TCP如何发送和之前应用层的发送规律没有任何关系; 3. TCP特性:面向字节流面向字节流好处是对于数据可以灵活的发送和接收,但是也带来了TCP粘包的问题,(对于消息的接收方而言,就不好区分,客户端应用层发送的每一条数据)比如第一次..原创 2021-04-22 21:52:34 · 310 阅读 · 0 评论 -
【Linux】Ⅶ基础网络:套接字
协议协议:1.协议是国家或者外交事务的一种规范2.沟通双发约定同一种语言来进行有效沟通网络协议:网络当中通信双方,采用同一种数据格式来进行有效通信网络协议簇:在网络当中不止一个协议,而是有很多个协议,我们讲这些很多个协议称之为协议簇。OSI七层参考模型——工业上并不常用,企业一般选择TCP/IP模型(物数网传会表应)OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范;把网络从逻辑原创 2021-04-22 21:26:47 · 263 阅读 · 1 评论 -
【Linux】Ⅵ多线程
线程概念有些情况需要在一个进程中同时执行多个控制流程,这时候线程就派上了用场,比如实现一个图形界面的下载软件,一方面需要和用户交互,等待和处理用户的鼠标键盘事件,另一方面又需要同时下载多个文件,等待和处理从多个网络主机发来的数据,这些任务都需要一个“等待-处理”的循环,可以用多线程实现,一个线程专门负责与用户交互,另外几个线程每个线程负责和一个网络主机通信。Linux当中是没有线程的概念的,而是将其称作轻量级进程:LWP,通俗的线程概念其实是C库(libc.so.6)当中的概念。在.原创 2021-04-16 23:59:57 · 219 阅读 · 0 评论 -
【Linux】Ⅴ进程信号
1. 同步与异步同步和异步关注的是消息通信机制(synchronous communication/ asynchronous communication)。 所谓同步,就是在发出一个调用时,在没有得到结果之前,该调用就不返回。但是一旦调用返回,就得到返回值了。 换句话说,就是由调用者主动等待这个调用的结果。 而异步则是相反,调用在发出之后,这个调用就直接返回了,所以没有返回结果。换句话说,当一个异步过程调用发出后,调用者不会立刻得到结果。而是在调用发出后,被调用者通过状态、通知来通知调用者,..原创 2021-04-16 22:38:51 · 137 阅读 · 0 评论 -
【Linux】Ⅳ进程间通信
为什么需要进程间通信?由于进程都拥有自己独立的进程虚拟地址空间,从而导致了进程的独立性,从而导致了封闭;通过进程间通信,可以让不同的进程之间很好地交换数据或者进程控制等。目前最大的进程间通信的技术是:网络管道管道本质上就是内核当中开辟的一段空间,这段空间也可以被称之为叫做缓冲区,这段空间是没有标识符的。1.从命令来看ps aux I grep test.c ——> 中 “|”就是管道。ps和grep是命令,同时也是程序。ps aux的输出结果,通过管道,传输给了gr.原创 2021-04-15 22:56:08 · 172 阅读 · 0 评论 -
【Linux】Ⅲ基础IO
C语言操作文件接口fopen——使用给定的模式 mode 打开 path 所指向的文件FILE*fopen(const char*path,const char*mode);path:待打开的文件(文件路径+文件名称)mode:以何种方式打开r:以只读方式打开,当文件不存在的时候,就会打开失败r+:以读写方式打开,当文件不存在的时候,就会打开失败w:以只写方式打开,如果文件不存在,则创建文件。如何文件存在,则会截断(清空)文件w+:以读写方式打开,如果文件不存在,则创建文原创 2021-04-16 22:07:32 · 114 阅读 · 0 评论 -
【Linux】Ⅱ进程控制
进程创建——fork与vfork的区别fork函数介绍#include <unistd.h>pid_t fork (void );描述:子进程是父进程的一个拷贝。具体说,子进程从父进程那得到了数据段和堆栈段,但不是与父进程共享而是单独分配内存。fork函数返回后,子进程和父进程都是从fork函数的下一条语句开始执行。(代码共享,数据独有,父子进程各有各的栈)由于子进程与父进程的运行是无关的,父进程可先于子进程运行,子进程也可先于父进程运行。vfork函数介绍#inclu原创 2021-04-15 22:32:03 · 81 阅读 · 0 评论 -
【Linux】Ⅰ进程概念
冯诺依曼体系结构——现代计算机硬件体系结构计算机应该包含五大单元:输入设备:采集数据的,比如:键盘,网卡(接受网络中的数据) 输出设备:进行数据输出,比如:显示器,网卡(向网络中发送数据) 存储器:进行中间数据缓冲,比如:内存 运算器:进行数据运算,运算器+控制器 = 中央处理器CPU 控制器:进行设备控制所有的设备都是围绕存储器工作的。存储器实际上就是内存,为什么不是硬盘呢?硬盘的数据吞吐量太低了:机械--200MB/s内存的数据吞吐量:是机械硬盘的数十倍内存速度这么快,为原创 2021-04-15 22:49:49 · 353 阅读 · 1 评论 -
【Linux】基本开发工具
yum——软件包管理工具查看软件包:yum list安装软件包:yum install package_name搜索软件包:yum search package_name移除软件包:yum remove package_nameyum install gccyum search gcc//搜索制定软件包写代码相关工具:编辑器/编译器/调试器vim——代码编辑器1.模式实际有12种,常见的有三种-普通模式 插入模式 底行模式,所有的模式打开都是围绕普通模式切换的。vi原创 2021-04-15 00:24:11 · 189 阅读 · 1 评论 -
【Linux】指令与权限
格式---------- 命令名称 [功能选项] [操作对象]目录相关的命令mkdir 创建目录-p 多层递归创建目录,每一层目录不存在都会被创建eg:mkdir -p test/abc/bcdrmdir 删除空目录-p 多层空目录的递归删除eg:rmdir -p test/abc/bcdcd 改变当前所在路径(进入指定目录)~ 快速回到当前用户的家目录 - 快速回到上一次所在的路径ls 浏览目录--—(文件夹),列出目录下的文件信息ls w...原创 2021-04-15 00:20:53 · 329 阅读 · 0 评论 -
【Linux】基础指令
命令的格式:----------------- 命令名称 [功能选项] [操作对象]目录相关的命令ls 浏览目录–—(文件夹),列出目录下的文件信息eg:ls work/ //浏览work目录下面的文件-a 浏览所有文件(不忽略所有以.开头的文件)即查看隐藏文件eg: ls -a worspace-l 查看文件的详细信息也可以组合使用eg:ls -la work/...原创 2020-01-16 13:40:46 · 108 阅读 · 0 评论