![](https://img-blog.csdnimg.cn/e8322066d406401e9a5cf1f5539c0d99.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Linux
文章平均质量分 95
Linux系统、网络的知识
小唐学渣
君子可内敛不可懦弱,面不公可起而论之。
展开
-
【Linux从0到1】第十七篇:高级IO
阻塞IO: 当用户发出IO请求之后,内核会去查看数据是否就绪,如果没有就绪系统调用就会等待数据就绪,此时操作系统会将进程从运行队列拿到等待队列,当数据就绪时,操作系统又会将进程从等待队列拿到运行队列,进行数据读取, 所有的套接字, 默认都是阻塞方式.阻塞IO是最常见的IO模型。非阻塞IO: 当用户发出IO请求之后,内核会去查看数据是否就绪,如果内核还未将数据准备好, 系统调用仍然会直接返回, 并且返回EWOULDBLOCK错误码.非阻塞IO往往需要程序员循环的方式反复尝试读写文件描述符, 这个过程称为原创 2022-10-01 08:57:48 · 655 阅读 · 0 评论 -
【Linux从0到1】第十六篇:IP&&MAC
数据链路层的作用: 两个设备(同一种数据链路节点)之间进行传递数据以太网是一种技术标准;既包含了数据链路层的内容, 也包含了一些物理层的内容. 例如: 规定了网络拓扑结构, 访问控制方式, 传输速率等;以太网帧格式理解mac地址理解arp协议理解MTU。原创 2022-09-17 09:36:16 · 315 阅读 · 0 评论 -
【Linux从0到1】第十五篇:UDP&&TCP
机器掉电/网线断开: 接收端认为连接还在, 一旦接收端有写入操作, 接收端发现连接已经不在了, 就会进行reset. 即使没有写入操作, TCP自己也内置了一个保活定时器, 会定期询问对方是否还在. 如果对方不在, 也会把连接释放。回忆我们的TCP首部中, 有一个16位窗口字段, 就是存放了窗口大小信息;刚才我们讨论了确认应答策略, 对每一个发送的数据段, 都要给一个ACK确认应答. 收到ACK后再发送下一个数据段.这样做有一个比较大的缺点, 就是性能较差. 尤其是数据往返的时间较长的时候....原创 2022-08-14 19:51:20 · 157 阅读 · 0 评论 -
【Linux从0到1】第十四篇:HTTP&&HTTPS
这样,当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。有关使用Session对象的详细信息,请参阅“ASP应用程序”部分的“管理会话”。无论我们采用方案一,还是方案二,还是其他的方案,只要保证,一端发送时构造的数据,在另一端能够正确的进行解析,就是ok的.这种约定,就是。上面的本质问题是了client无法判断发来的密匙协商报文是不是合法的服务方发来的,所以就会有CA证书机构,来证明这个服务方是合法的。...原创 2022-07-20 20:46:35 · 486 阅读 · 12 评论 -
【Linux从0到1】第十三篇:网络编程套接字
本节只介绍基于IPv4的socket网络编程,sockaddr_in中的成员structin_addrsin_addr表示32位的IP地址但是我们通常用点分十进制的字符串表示IP地址,以下函数可以在字符串表示和in_addr表示之间转换;们已经知道,内存中的多字节数据相对于内存地址有大端和小端之分,磁盘文件中的多字节数据相对于文件中的偏移地址也有大端小端之分,网络数据流同样有大端小端之分.那么如何定义网络数据流的地址呢?此处我们的端口号也是唯一表示一个进程.那么这两者之间是怎样的关系?...原创 2022-07-16 17:46:33 · 1605 阅读 · 37 评论 -
【Linux从0到1】第十二篇:网络基础(一)
文章目录一、计算机网络背景二、认识 "协议"三、网络协议初识3.1 协议分层3.2 OSI七层模型3.3 TCP/IP五层(或四层)模型一、计算机网络背景网络发展独立模式: 计算机之间相互独立;网络互联: 多台计算机连接在一起, 完成数据共享;局域网LAN: 计算机数量更多了, 通过交换机和路由器连接在一起;广域网WAN: 将远隔千里的计算机都连在一起;所谓 “局域网” 和 “广域网” 只是一个相对的概念. 比如, 我们有 “天朝特色” 的广域网, 也可以看做一个比较大的局域网.二原创 2022-07-03 10:44:35 · 174 阅读 · 8 评论 -
【Linux从0到1】第十一篇:多线程
文章目录一、Linux线程概念1.1 什么是线程1.2 线程的优点1.3 线程的缺点1.4 线程异常1.5 线程用途1.6 Linux进程VS线程二、Linux线程控制2.1 POSIX线程库2.2 创建线程一、Linux线程概念1.1 什么是线程在一个程序里的一个执行路线就叫做线程(thread)。更准确的定义是:线程是“一个进程内部的控制序列”一切进程至少都有一个执行线程线程在进程内部运行,本质是在进程地址空间内运行在Linux系统中,在CPU眼中,看到的PCB都要比传统的进程更加轻量化原创 2022-05-25 17:26:16 · 549 阅读 · 11 评论 -
【Linux从0到1】第十篇:进程信号
文章目录一、信号入门1.1 1. 生活角度的信号1.2 2. 技术应用角度的信号1.3 注意一、信号入门1.1 1. 生活角度的信号你在网上买了很多件商品,再等待不同商品快递的到来。但即便快递没有到来,你也知道快递来临时,你该怎么处理快递。也就是你能“识别快递”当快递员到了你楼下,你也收到快递到来的通知,但是你正在打游戏,需5min之后才能去取快递。那么在在这5min之内,你并没有下去去取快递,但是你是知道有快递到来了。也就是取快递的行为并不是一定要立即执行,可以理解成“在合适的时候去取”。在原创 2022-05-08 19:34:05 · 394 阅读 · 28 评论 -
【Linux从0到1】第九篇:进程间通信
文章目录一、进程间通信介绍1.1 进程间通信目的一、进程间通信介绍1.1 进程间通信目的数据传输:一个进程需要将它的数据发送给另一个进程资源共享:多个进程之间共享同样的资源。通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)。进程控制:有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程希望能够拦截另一个进程的所有陷入和异常,并能够及时知道它的状态改变...原创 2022-04-23 19:40:57 · 291 阅读 · 36 评论 -
【Linux从0到1】第八篇:基础IO
文章目录一、C文件接口二、系统文件I/O2.1 open基本使用2.2 open函数返回值三、文件描述符fd3.1 文件描述符使用3.1文件描述符的分配规则一、C文件接口stdin :键盘stdout :显示器stderr:显示器C默认会打开三个输入输出流,分别是stdin, stdout, stderr仔细观察发现,这三个流的类型都是FILE*, fopen返回值类型,文件指针二、系统文件I/O2.1 open基本使用操作文件,除了上述C接口(当然,C++也有接原创 2022-04-18 21:33:05 · 708 阅读 · 33 评论 -
【Linux从0到1】第七篇:进程控制
文章目录一、进程创建1.1 fork函数初识2.2 fork函数返回值2.3 写时拷贝2.4 fork常规用法2.5 fork调用失败的原因二、进程终止2.1 进程退出场景2.2 进程常见退出方法一、进程创建1.1 fork函数初识在linux中fork函数时非常重要的函数,它从已存在进程中创建一个新进程。新进程为子进程,而原进程为父进程#include <unistd.h>pid_t fork(void);返回值:自进程中返回0,父进程返回子进程id,出错返回-1进程调用fo原创 2022-04-04 15:28:32 · 316 阅读 · 0 评论 -
【Linux从0到1】第六篇:进程概念(下)
文章目录一、环境变量1.1 基本概念1.2 常见环境变量1.3 查看环境变量方法1.4 测试PATH一、环境变量1.1 基本概念环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数如:我们在编写C/C++代码的时候,在链接的时候,从来不知道我们的所链接的动态静态库在哪里,但是照样可以链接成功,生成可执行程序,原因就是有相关环境变量帮助编译器进行查找。环境变量通常具有某些特殊用途,还有在系统当中通常具有全局特性。1.2 常见环境变量原创 2022-03-20 12:32:40 · 1263 阅读 · 0 评论 -
【Linux从0到1】第五篇:进程概念(上)
文章目录一、冯诺依曼体系结构二、操作系统(Operator System)2.1 概念2.2 设计OS的目的2.3 定位2.4 如何理解 "管理"2.5 总结2.6 系统调用和库函数概念三、进程3.1 基本概念3.2 描述进程-PCB3.3 组织进程3.4 查看进程一、冯诺依曼体系结构我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。截至目前,我们所认识的计算机,都是有一个个的硬件组件组成输入单元:包括键盘, 鼠标,扫描仪, 写板等中央处理器(CPU):..原创 2022-03-17 21:36:51 · 421 阅读 · 0 评论 -
【Linux从0到1】第四篇:Linux开发工具(下)
文章目录一、Linux编译器-gcc/g++使用1.1 背景知识1.2 gcc如何完成1.3 g++基本使用二、Linux调试器-gdb使用2.1 背景2.2 开始使用一、Linux编译器-gcc/g++使用1.1 背景知识预处理(进行宏替换)编译(生成汇编)汇编(生成机器可识别代码)链接(生成可执行文件或库文件)1.2 gcc如何完成格式 gcc [选项] 要编译的文件 [选项] [目标文件]预处理(进行宏替换)预处理功能主要包括宏定义,文件包含,条件编译,去注释等。预处.原创 2022-03-02 09:54:53 · 270 阅读 · 1 评论 -
【Linux从0到1】第三篇:Linux开发工具(上)
文章目录一、Linux 软件包管理器 yum1.1 什么是软件包1.2 注意事项1.3 查看软件包1.4 如何安装软件1.5 如何卸载软件1.6 关于 rzsz一、Linux 软件包管理器 yum1.1 什么是软件包在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序.但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在一个服务器上, 通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行原创 2022-02-18 20:11:12 · 341 阅读 · 17 评论 -
【Linux从0到1】第二篇:Linux权限
文章目录一、Linux权限的概念二、Linux权限管理01. 文件访问者的分类(人)02. 文件类型和访问权限(事物属性)03. 文件权限值的表示方法04. 文件访问权限的相关设置方法05. chgrp users /abc/f206. 目录的权限07. 粘滞位三、关于权限的总结一、Linux权限的概念Linux下有两种用户:超级用户(root)、普通用户。超级用户:可以再linux系统下做任何事情,不受限制普通用户:在linux下做有限的事情。超级用户的命令提示符是“#”,普通用户的命令提原创 2022-02-09 09:44:54 · 881 阅读 · 12 评论 -
【Linux从0到1】第一篇:Linux基本指令
文章目录Linux下基本指令01.ls 指令02. pwd命令03. cd 指令Linux下基本指令01.ls 指令语法: ls [选项][目录或文件]功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。常用选项:-l 列出文件的详细信息。-a 列出目录下的所有文件,包括以 . 开头的隐含文件。-d 将目录像文件一样显示,而不是显示其下的文件。 如: ls –d 指定目录02. pwd命令语法: pwd功能:显示用户当前所在的目录原创 2022-01-28 20:14:19 · 501 阅读 · 5 评论