Linux
文章平均质量分 93
Linux的知识
~小火苗
这个作者很懒,什么都没留下…
展开
-
网络层IP协议和数据链路层
可以参考 相关章节。原创 2023-04-04 13:37:56 · 710 阅读 · 1 评论 -
网络传输层
讨论了确认应答策略, 对每一个发送的数据段, 都要给一个ACK确认应答. 收到ACK后再发送下一个数据段.这样做有一个比较大的缺点, 就是性能较差. 尤其是数据往返的时间较长的时候;接收端处理数据的速度是有限的. 如果发送端发的太快, 导致接收端的缓冲区被打满, 这个时候如果发送端继续发送,就会造成丢包, 继而引起丢包重传等等一系列连锁反应.因此TCP支持根据接收端的处理能力, 来决定发送端的发送速度. 这个机制就叫做流量控。TCP和UDP之间的优点和缺点, 不能简单, 绝对的进行比较。原创 2023-04-04 13:38:34 · 324 阅读 · 0 评论 -
网络编程套接字
基于IPv4的socket网络编程,sockaddr_in中的成员struct in_addr sin_addr表示32位 的IP 地址但是我们通常用点分十进制的字符串表示IP 地址,以下函数可以在字符串表示 和in_addr表示之间转换;我们已经知道,内存中的多字节数据相对于内存地址有大端和小端之分, 磁盘文件中的多字节数据相对于文件中的偏移地址也有大端小端之分, 网络数据流同样有大端小端之分. 那么如何定义网络数据流的地址呢?那么问题来了, 如果我们调用多次这个函数, 会有什么样的效果呢?原创 2023-04-04 13:41:22 · 367 阅读 · 0 评论 -
高级IO涉及的编程模型
非阻塞IO,纪录锁,系统V流机制, I/O多路转接(也叫I/O多路复用) ,readv和writev函数以及存储映射IO(mmap),这些统称为高级IO。. 我们定义的struct epoll_event是我们在用户空间中分配好的内存. 势必还是需要将内核的数据拷贝到这个用户空间的内存中的。内存映射机制: 内核直接将就绪队列通过mmap的方式映射到用户态. 避免了拷贝内存这样的额外性能开销.多进程多线程, 也提到同步和互斥. 这里的同步通信和进程之间的同步是完全不想干的概念.创建一个epoll的句柄.原创 2023-05-04 22:10:51 · 617 阅读 · 0 评论 -
网络应用层
之所以脱离于终端是为了避免进程被任何终端所产生的信息所打断,其在执行过程中的信息也不在任何终端上显示。由于在 Linux 中,每一个系统与用户进行交流的界面称为终端,每一个从此终端开始运行的进程都会依附于这个终端,这个终端就称为这些进程的控制终端,当控制终端被关闭时,相应的进程都会自动关闭。应用之间交互的信息叫消息,应用协议定义这些消息的格式以及消息的控制或操作的规则。守护进程(Daemon Process),也就是通常说的 Daemon 进程(精灵进程),是 Linux 中的后台服务进程。原创 2023-04-04 13:37:49 · 579 阅读 · 0 评论 -
https
加密就是把明文(要传输的信息)进行一系列变换, 生成密文解密就是把密文再进行一系列变换,还原成明文在这个加密和解密的过程中,往往需要一个或者 多个中间的数据,辅助进行这个过程,这样的数据称为密钥(正确发音yue四声,不过大家平时都读作yao四声) .数字指纹(数据摘要),其基 本原理是利用单向散列函数(Hash函数)对信息进行运算,生成一串固定长度的数字摘要。数字指纹并不是一-种加密机制,但可以用来判断数据有没有被窜改。摘要常见算法:有MD5。原创 2023-04-04 13:37:05 · 508 阅读 · 0 评论 -
STL与其空间配置器
STL(standard template libaray-标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架stl有容器,空间配置器,适配器,迭代器,仿函数以及算法这6个组件,它们六者关系大概如下:容器通过配置器取得数据存储空间,算法通过迭代器获取容器内容,仿函数可以协助算法完成不同的策略变化,配接器可以修饰或套界仿函数。空间配置器为各个容器高效的管理空间(空间的申请与回收)原创 2023-03-18 14:59:08 · 409 阅读 · 0 评论 -
BIT.8_Linux 多线程
进程的多个线程共享 同一地址空间,因此Text Segment、Data Segment都是共享的,如果定义一个函数,在各线程中都可以调用,如果定义一个全局变量,在各线程中都可以访问到,除此之外,各线程还共享以下进程资源和环境进程和线程的关系如下图:如何看待之前学习的单进程?具有一个线程执行流的进程错误检查:线程ID及进程地址空间布局thread_ create函数会产生一个线程ID,存放在第一个参数指向的地址中。该线程ID和前面说的线程ID不是一回事。前面讲的线程ID属于进程调度的范畴。原创 2023-02-17 16:30:03 · 733 阅读 · 0 评论 -
BIT.7_ 进程信号
每个信号都有一个编号和一个宏定义名称,这些宏定义可以在signal.h中找到,例如其中有定 义 #define SIGINT 2编号34以上的是实时信号,本章只讨论编号34以下的信号,不讨论实时信号。这些信号各自在什么条件下产生,默认的处理动作是什么,在signal(7)中都有详细说明: man 7 signal。原创 2023-02-03 12:42:51 · 177 阅读 · 0 评论 -
BIT.6_进程间通信
管道是Unix中最古老的进程间通信的形式。我们把从一个进程连接到另一个进程的一个数据流称为一个“管道”原创 2023-01-27 13:22:48 · 74 阅读 · 0 评论 -
BIT.5_基础IO
【代码】BIT.5_基础IO。原创 2023-01-10 18:53:15 · 152 阅读 · 0 评论 -
BIT.4 Linux进程控制
用fork创建子进程后执行的是和父进程相同的程序(但有可能执行不同的代码分支),子进程往往要调用一种exec函数以执行另一个程序。(exce函数是程序替换,调用该程序成功之后,回将当前程序的所有代码和数据进行替换,包括执行的和没有执行的,所以一旦调用成功,后续所有代码去不不会执行!新进程为子进程,而原进程为父进程。(程序替换是通过特定的接口,加载磁盘上的一个权限的程序(代码和数据),加载到调用进程的地址空间)(进程替换,没有创建新的子进程,就是将磁盘的程序加载到内存,并和当前进程的页表重新建立映射)原创 2022-12-24 20:04:23 · 214 阅读 · 0 评论 -
BIT.3_Linux进程概念
计算机管理硬件描述起来,用struct结构体组织起来,用链表或其他高效的数据结构。原创 2022-12-24 20:04:32 · 152 阅读 · 0 评论 -
BIT.1_常见指令以及权限理解
链接grep参考文档bc命令可以很方便的进行浮点运算原创 2022-12-24 20:04:04 · 341 阅读 · 0 评论 -
BIT.2_Linux环境基础开发工具使用
点我配置好的vim, 按照文档操作即可。原创 2022-12-24 20:02:55 · 120 阅读 · 0 评论