![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
文章平均质量分 96
大桑树保安队
这个作者很懒,什么都没留下…
展开
-
【Linux网络】第三篇:套接字(二)与TCP编程
在 套接字(一)与UDP编程 中我们讲了套接字和UDP的一些知识及常用API,我们知道当系统有多个进程进行网络通信的时候,每个进程必须各自通过协议+端口+IP地址的方式才能确定网络对端的唯一进程。为了区别不同的应用程序以及进程的网络连接之间相互独立,Linux系统为应用程序和TCP/IP协议交互提供了称为套接字(Socket)的接口套接字是网络编程中十分重要的概念,Linux以文件的形式实现套接字,与套接字相应的文件属于sockfs特殊文件系统,每创建一个套接字,就是在sockfs中创建一个特殊文件,并建立原创 2022-06-16 16:17:15 · 729 阅读 · 8 评论 -
【Linux网络】第二篇:套接字(一)与UDP编程
每台计算机的公网IP是唯一的,如果本地主机和对端主机要实现通信,那么对端主机的IP地址将作为该数据传输的目的IP地址。仅仅知道目的IP地址是不够的,当对端主机接受数据后需对该主机做出响应,于是对端主机就需要知道本地主机的IP地址,即源IP。大部分网络服务使跨局域网的,期间会跳到多个路由器最终达到目的主机。开始传输时的源MAC地址是本地主机的MAC,目的MAC是下一跳的路由器MAC。最后一跳的源MAC则是最后途径的路由器的MAC,目的MAC是对端主机的MAC。因此数据的网络地址是有两套地址的:一个端口号唯一标原创 2022-06-09 17:16:59 · 498 阅读 · 7 评论 -
【Linux网络】第一篇:初识网络(分层,封装与分用)
现在的Internet使用的主流协议族是TCP/IP协议族,,他是一个分层,多协议的通信体系。TCP/IP包含众多协议,我们无法一一讨论,我会在后续章节逐步介绍,本篇将对协议如何分层,封装和分用进行介绍。网络协议栈设计成层状结构,目的在于将一个实时传输通信的庞大的功能进行解耦,使得各层能做到各自可维护以及可扩展。例如,我们在通话时,符合人与人之间的语言协议,这使得我们可以彼此进行沟通,但是下一层电话之间的通信协议是如何约定的,再往下的电信号是如何传输的,以及经过了多少基站,我们并不关心,当然电话也听不懂人类原创 2022-06-05 20:32:15 · 440 阅读 · 6 评论 -
【Linux】第十三篇:线程池与单例模式
1.线程池介绍一个基于简单任务的线程池实现2.线程池与单例模式饿汉模式与懒汉模式懒汉模式的线程池3.读写锁读写锁接口设置读者写者优先级读写锁API读写锁实验4.自旋锁简介原创 2022-05-26 13:04:04 · 929 阅读 · 0 评论 -
【Linux】第十二篇:生产者消费者模型与信号量
1. 生产者消费者模型为何使用生产者消费者模型模型特点2. 基于 BlockingQueue 的生产消费者模型模拟实现基于阻塞队列的生产消费模型基于任务队列的生产者消费者模型3. POSIX信号量(Semaphore)信号量使用信号量的接口函数sem_init —— 初始化信号量sem_destroy —— 销毁信号量sem_wait —— 等待信号量sem_post —— 发布信号量信号量使用入门4. 基于环形队列的生产者消费者模型环形队列的资源实现思想使用信号量实现基于原创 2022-05-26 12:56:48 · 774 阅读 · 0 评论 -
【Linux】第十一篇:线程安全(互斥锁,死锁,条件变量)
概念1. 互斥量(mutex)🔒互斥量的接口初始化互斥量互斥量加锁与解锁销毁互斥量互斥量实验2. 互斥量原理3. 线程安全与可重入函数判定线程安全的情形判断函数是否可重入两者关联4. 死锁构成死锁的四个必要条件如何避免死锁模拟死锁以及gdb调试5. 线程同步条件变量初始化与销毁 —— pthread_cond_init ,pthread_cond_init条件变量的等待与唤醒何为条件变量设计 pthread_cond_wait 的初衷pthread_cond_wa原创 2022-05-26 12:49:12 · 767 阅读 · 0 评论 -
【Linux】第十篇:线程的创建,等待,终止与分离
目录1.线程理解线程与进程线程的特点线程异常Linux线程控制2.创建进程 —— pthread_create获取线程ID —— pthread_self代码示例实验1实验2实验33.进程ID和线程ID4.终止线程等待线程 —— pthread_join线程退出 return线程退出 pthread_exit实验线程退出 pthread_cancel取消点库函数 pthread_setcancelstate : 修改cancelstate库函数 pthread_setcanceltype : 修改cance原创 2022-05-26 12:37:24 · 492 阅读 · 0 评论 -
【Linux】第八篇:进程信号
1. 信号入门进程中的信号前后台进程处理Linux系统中的信号信号的产生与处理简介产生信号的条件信号的处理动作注册信号处理函数 —— signal 系统调用注册信号处理函数 —— sigaction 系统调用2. 产生信号通过终端按键产生信号Core Dump调试core文件status 中的 core dump 位调用系统函数向进程发信号kill 函数raise 函数abort 函数由软件条件产生信号3. 阻塞信号信号的相关概念信号在内核中的表示sigset_t原创 2022-05-26 12:26:34 · 577 阅读 · 0 评论 -
【Linux】第五篇:IO(初阶)
1. C语言文件流操作2. 系统 I/O 接口openwriteread3. 文件描述符fdstruct file 描述已打开的文件struct files_struct 结构文件描述符的分配规则重定向dup2 系统调用4. 文件缓冲标原创 2022-04-26 11:14:25 · 574 阅读 · 4 评论 -
【Linux】第七篇:进程间通信
1. 进程间通信(IPC:interprocess communication)理解目的分类2. 管道匿名管道站在文件描述符角度理解管道创建匿名管道函数 —— pipe管道的四个读写规则匿名管道的特点命名管道命令行创建命名管道系统调用创建命名管道命名管道应用实例命名管道派发任务命名管道与匿名管道的区别3. 共享内存shmget 系统调用——创建共享内存ipcs 指令ipcrm 指令shmctl 系统调用——控制共享内存shmat 系统调用——挂接共享内存(attac原创 2022-04-26 10:51:52 · 438 阅读 · 4 评论 -
【Linux】第六篇:静动态库文件的理解及实现
基本概念库的命名安装c静态库指令静态库的打包与使用静态库打包调用静态库动态库的打包与使用动态库打包动态库调用原创 2022-04-25 23:15:02 · 1011 阅读 · 2 评论 -
【Linux】第四篇:进程控制
目录1.程序地址空间测试父子进程的地址空间虚拟进程地址空间虚拟地址的由来mm_struct页表2.进程创建fork函数再探fork的返回值写时拷贝fork 的用处fork调用失败3.进程终止进程的退出场景进程常见退出方法exit 函数_exit 函数4.进程等待为何需要等待进程如何进程等待waitwaitpid获取 statusoption:WNOHANG总结5.进程替换替换原理替换函数6.自制简易 shell1.程序地址空间程序是由若干个逻辑分段组成的,如可由代码分段、数据分段、栈段、堆段组成。原创 2022-04-02 16:09:05 · 1094 阅读 · 0 评论 -
【Linux】第三篇:进程
这里写目录标题1. 简述操作系统概念为什么需要操作系统何为资源管理操作系统的目标2.进程描述进程-PCBtask_structLinux 查看当前进程进程标识符-PID系统调用创建子进程——初识fork()3. 进程状态基本概念其他概念Linux 进程状态R 运行态+就绪态S 休眠状态(可中断睡眠) ,阻塞D 深度睡眠状态T 暂停状态t 追踪状态X 死亡状态Z(僵尸状态)孤儿进程进程优先级查看进程PRI 与 NI调整进程优先级top 指令renice 指令4. 环境变量环境变量基本概念常用环境变量echo原创 2022-03-19 00:11:57 · 1502 阅读 · 0 评论 -
【Linux】第二篇:Linux环境及开发工具
目录1. Linux软件包管理器1.1 如何在Linux安装软件?1.2 关于rzsz2.Linux 文本编辑器——vim2.1 vim的模式2.2 vim的基本操作2.3 命令模式下指令集基本移动文本操作2.4 底行模式命令2.5 vim的配置配置文件的位置常用的配置选项2.6 使用vim给用户添加sudo权限命令总览3 Linux编译器——gcc/g++使用3.1 代码生成可执行文件的步骤3.2 使用gccgcc分别完成预处理、编译、汇编、链接预处理 ◔编译 ◑汇编 ◕链接 ◉4. Linux调试器——原创 2022-03-18 23:57:49 · 6282 阅读 · 0 评论 -
【Linux 从入门到精通】第一篇 常见指令及初识权限
常用指令 以及文件权限原创 2022-02-18 22:07:06 · 796 阅读 · 0 评论