Linux知识总结
文章平均质量分 91
Linux知识总结
小龙呮
这个作者很懒,什么都没留下…
展开
-
【Linux】网络基础知识(三)—— 传输层 —— UDP协议详解
文章目录传输层1. 再谈端口号1.1 端口号范围划分1.2 认识知名端口号1.3 netstat1.4 pidof2. UDP协议2.1 UDP协议端格式2.2 UDP的特点2.3 面向数据报2.4 UDP的缓冲区2.5 UDP使用注意事项2.6 基于UDP的应用层协议传输层负责数据能够从发送端传输接收端。1. 再谈端口号端口号(Port)标识了一个主机上进行通信的不同的应用程序。在TCP/IP协议中, 用 “源IP”, “源端口号”, “目的IP”, “目的端口号”, “协议号” 这样一个五元原创 2021-01-04 09:53:13 · 280 阅读 · 0 评论 -
【Linux】网络基础知识(二)—— 应用层 —— HTTP协议详解
文章目录应用层1. 再谈 "协议"1.1 自定制协议2. HTTP协议2.1 认识URL2.2 urlencode和urldecode2.3 HTTP协议格式2.3.1 HTTP请求2.3.2 HTTP响应2.4 HTTP常见Header2.5 HTTP的方法2.6 HTTP的状态码3. 实现简单的HTTP服务器4. 测试不同的状态码应用层我们程序员写的一个个解决我们实际问题,满足我们日常需求的网络程序,都是在应用层。1. 再谈 “协议”协议是一种 “约定”,socket api的接口,在读写数据时原创 2020-12-28 11:01:00 · 366 阅读 · 0 评论 -
【Linux】网络编程套接字(二)—— TCP编程
文章目录1. TCP协议通信流程1.1 初始化1.2 建立连接 —— 三次握手1.3 数据传输1.4 关闭连接 —— 四次挥手2. 简单的TCP网络程序2.1 TCP的socket API详解2.1.1 监听2.1.2 获取连接2.1.3 建立连接2.1.4 发送数据2.1.5 接收数据2.2 客户端程序2.3 服务端程序2.4 测试多个连接的情况3. TCP多进程版本4. TCP多线程版本1. TCP协议通信流程1.1 初始化服务器:调用socket, 创建文件描述符;调用bind, 将当前原创 2020-12-26 21:24:20 · 386 阅读 · 3 评论 -
【Linux】网络编程套接字(一)—— UDP编程
文章目录1. 预备知识1.1 源IP地址和目的IP地址1.2 认识端口号1.3 理解 "端口号" 和 "进程ID"1.4 源端口号和目的端口号1.5 认识UDP协议1.6 认识TCP协议1.7 网络字节序2. socket编程接口2.1 socket 常见API2.1.1 创建2.1.2 绑定2.1.3 关闭2.2 sockaddr结构2.2.1 sockaddr 结构2.2.2 sockaddr_in 结构2.2.3 in_addr 结构2.2.4 小结2.3 地址转换函数2.4 例子3. 简单的UDP网原创 2020-12-26 21:21:57 · 2365 阅读 · 2 评论 -
【Linux】网络基础知识(一)—— 网络初识
文章目录1. 计算机网络背景1.1 网络发展1.2 认识 "协议"2. 网络协议初识2.1 OSI七层模型2.2 TCP/IP五层(或四层)模型3. 网络传输基本流程3.1 网络传输流程图3.2 数据包封装和分用3.2.1 数据封装的过程3.2.2 数据分用的过程4. 网络中的地址管理4.1 认识IP地址4.2 认识MAC地址1. 计算机网络背景1.1 网络发展独立模式: 计算机之间相互独立;网络互联: 多台计算机连接在一起, 完成数据共享;局域网LAN: 计算机数量更多了, 通过交换机和路由原创 2020-12-21 16:09:30 · 224 阅读 · 0 评论 -
【Linux】多线程深度剖析(二)
文章目录1. 死锁1.1 死锁的概念1.2 死锁四个必要条件1.3 避免死锁1.4 简单案例2. 生产者消费者模型2.1 三二一原则2.2 为何要使用生产者消费者模型2.3 生产者消费者模型优点2.4 基于BlockingQueue的生产者消费者模型2.5 C++ queue模拟阻塞队列的生产消费模型3. POSIX信号量3.1 信号量的接口3.1.1 初始化信号量3.1.2 销毁信号量3.1.3 等待信号量3.1.4 唤醒信号量3.2 基于环形队列的生产消费模型3.3 用信号量进行多线程间的同步过程4.原创 2020-12-20 19:35:00 · 136 阅读 · 0 评论 -
【Linux】多线程深度剖析(一)
文章目录1. 线程概念1.1 什么是线程1.2 线程的优点1.3 线程的缺点1.4 线程异常1.5 线程用途2. 进程VS线程2.1 进程和线程2.2 进程的多个线程共享3. 线程控制3.1 POSIX线程库3.2 创建线程3.3 线程ID及进程地址空间布局3.4 线程终止3.5 线程等待3.6 分离线程3.7 简单案例4. 线程互斥(线程安全)4.1 进程线程间的互斥相关概念4.2 互斥量(互斥锁)mutex4.3 互斥量的接口4.3.1 初始化互斥量4.3.2 销毁互斥量4.3.3 互斥量加锁和解锁4.原创 2020-12-20 19:33:20 · 179 阅读 · 0 评论 -
【Linux】进程信号介绍
1. Linux信号的基本概念1.1 生活角度的信号1.2 技术应用角度的信号用户输入命令,在Shell下启动一个前台进程。用户按下 Ctrl-C ,这个键盘输入产生一个硬件中断,被OS获取,解释成信号,发送给目标前台进程。前台进程因为收到信号,进而引起进程退出。1.3 注意Ctrl-C 产生的信号只能发给前台进程。一个命令后面加个&可以放到后台运行,这样Shell不必等待进程结束就可以接受新的命令,启动新的进程。Shell可以同时运行一个前台进程和任意多个后台进程,只有前台进原创 2020-12-07 22:43:30 · 153 阅读 · 0 评论 -
【Linux】进程间通信介绍
1. 进程间通信介绍1.1 进程间通信目的数据传输:一个进程需要将它的数据发送给另一个进程。资源共享:多个进程之间共享同样的资源。通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)。进程控制:有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程希望能够拦截另一个进程的所有陷入和异常,并能够及时知道它的状态改变。1.2 进程间通信发展管道System V进程间通信POSIX进程间通信1.3 进程间通信分类原创 2020-10-23 17:48:49 · 301 阅读 · 1 评论 -
【Linux】基础IO介绍
1.回顾C文件接口hello.c写文件#include <stdio.h>#include <string.h>int main(){ FILE *fp = fopen("myfile", "w"); if (!fp){ printf("fopen error!\n"); } const char *msg = "hello bit!\n"; int count = 5; while (count--){ fwrite(msg, strlen(msg),原创 2020-10-14 13:41:31 · 1326 阅读 · 2 评论 -
【Linux】进程概念与进程控制
一、进程1.基本概念课本概念:程序的一个执行实例,正在执行的程序等;内核观点:担当分配系统资源(CPU时间,内存)的实体。2.描述进程-PCB进程信息被放在一个叫做进程控制块的数据结构中,可以理解为进程属性的集合。课本上称之为PCB(process control block),Linux操作系统下的PCB是: task_structtask_struct-PCB的一种在Linux中描述进程的结构体叫做task_structtask_struct是Linux内核的一种数据结构,它会被原创 2020-08-19 19:52:41 · 193 阅读 · 0 评论 -
【Linux】基础命令与基础工具介绍
Linux下基本指令1. ls 指令语法: ls [选项] [目录或文件]功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。2. pwd 指令语法: pwd功能:显示用户当前所在的目录。3. cd 指令语法: cd 目录名功能:改变工作目录。将当前工作目录改变到指定的目录下。4. touch 指令语法: touch [选项]… 文件…功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。5.原创 2020-07-29 10:42:02 · 248 阅读 · 0 评论