
Linux
文章平均质量分 93
Linux
爱上小公举
希望明天的我
仍然对不同充满宽容
继续对未知饱含敬畏
展开
-
网络基础 -- 保证TCP协议可靠传输和提高性能的机制
保证TCP可靠传输的机制1. 面向连接2. 包序管理和确认应答3. 超时重传机制4. 滑动窗口机制5. 快速重传机制6. 拥塞窗口7. 保活机制提高传输性能的机制1. 延迟应答机制2. 捎带应答机制原创 2020-04-13 16:34:00 · 1842 阅读 · 0 评论 -
网络基础 -- 传输层协议(UDP与TCP/三次握手与四次挥手/可靠传输)
端口号UDP协议UDP报文格式UDP的特点协议实现(原理) / 特性对于上层应用层代码编写的影响 (我们用UDP协议时该注意什么?)TCP协议TCP报文格式TCP三次握手与四次挥手close()shutdown()的区别及使用场景三次挥手和四次挥手中的一些问题TCP特点可靠传输原创 2020-04-12 18:47:02 · 1429 阅读 · 1 评论 -
网络基础 -- 应用层HTTP协议
应用层(TCP/IP协议中的应用层/HTTP协议)HTTP协议URL -- 统一资源定位符UrlEncode / UrlDecodeHTTP协议格式概述HTTP 请求消息Request / 响应消息Response首行请求(Request)首行请求(Request)首行头部正文实现一个简单的HTTP服务器原创 2020-03-25 11:17:09 · 1147 阅读 · 0 评论 -
Linux 网络编程套接字(socket) (网络字节序/UDP/TCP)
认识TCP协议与UDP协议网络字节序字节序转换接口套接字(socket)sockaddr结构socket通信接口UDP通信流程(客户端)UDP通信流程(服务端)TCP通信流程(服务端)TCP通信流程(客户端)TCP通信中新的接口多进程版本通用服务/客户端封装多线程版通用服务/客户端TCP和UDP的对比TCP与UDP的应用场景原创 2020-03-21 14:04:31 · 1072 阅读 · 1 评论 -
Linux 多线程(线程池/线程安全的单例模式/STL容器线程安全问题/智能指针线程安全问题)
线程池线程安全的单例模式饿汉实现方式和懒汉实现方式STL线程安全的问题智能指针线程安全问题原创 2020-03-14 22:12:31 · 603 阅读 · 2 评论 -
Linux 多线程之线程安全(生产者消费者模型/POSIX信号量/读者写者模型/读写锁/自旋锁)
生产者消费者模型基于阻塞队列(BlockingQueue)的生产者消费者模型POSIX信号量POSIX信号量接口信号量实现的环形队列的生产者消费者模型读者写者模型自旋锁读写锁的接口原创 2020-03-11 14:15:57 · 724 阅读 · 0 评论 -
Linux 多线程之线程安全(同步与互斥/互斥锁/条件变量/死锁/)
线程安全线程同步与互斥互斥锁(量) 互斥锁接口可重入函数&线程安全死锁条件变量条件变量接口条件变量使用规范为什么pthread_cond_wait()中要传入互斥锁?为什么互斥锁和条件变量要配合使用?原创 2020-03-07 17:43:48 · 3493 阅读 · 2 评论 -
Linux 多线程(线程控制(创建/终止/等待/分离))
POSIX线程库创建线程线程ID及进程地址空间布局线程终止线程等待线程分离原创 2020-03-03 19:03:37 · 791 阅读 · 0 评论 -
Linux 多线程(线程概念/特点/优缺点/与进程比较)
线程线程间数据的独有与共享(同组线程)线程的优点--("轻"+多任务并发/并行处理的优势(对比于进程))线程的缺点多线程与多进程的比较Linux 多线程(线程控制(创建/终止/等待/分离))原创 2020-03-02 01:30:26 · 1816 阅读 · 0 评论 -
什么是线程?
什么是线程?说到线程, 离不开的概念就是进程 .也离不开计算机或操作系统的发展过程. 简单的说一下.进程的引入在计算机高度发达的今天, 我们很难想象以前的计算机是什么样的.最初的时候, 计算机只能接受一些特定的指令, 用户输入一个指令, 计算机就做一个操作. 当用户在思考或者输入数据时, 计算机就在等待. 显然这样效率很低下, 因为很多时候,计算机处于等待用户输入的状态 ...原创 2020-02-28 17:50:08 · 580 阅读 · 1 评论 -
Linux 进程信号(产生/注册/安装/阻塞/销毁/处理)
生命周期(事件发生->注册安装->注销->处理) 信号的产生 硬件产生 软件产生 kill 命令 kill() sigqueue() raise() abort() alarm() setitimer() 信号的注册安装 非可靠信号与可靠信号 信号的注册 信号的安装 signal() sigaction() 信号的阻塞 sigprocmask() 信号的注销和处理 注销 处理 进程响应信号的时机 可重入函数 用户处理信号的时机 信号在防止僵尸进程中的应用原创 2019-12-23 09:00:53 · 1438 阅读 · 2 评论 -
Linux 进程间通信----共享内存
目录共享内存(Shared Memory)通信原理为什么共享内存通信最快?基本特征/优缺点共享内存的使用共享内存操作流程操作共享内存的函数shmget() shmat() shmdt() shmctl() ftok()共享内存(Shared Memory)是最快(没有之一)的进程间通信方式 .PS : 共享内存并没有提供...原创 2019-12-16 17:02:12 · 1038 阅读 · 0 评论 -
Linux 管道(匿名管道与命名管道)
管道管道是Unix中最古老古老的进程间通信手段, 人们把从一个进程连接到另一个进程的数据流称为“管道” . Linux中的管道从Unix继承而来 .管道分为匿名管道(pipe)和命名管道(named pipe / FIFO)匿名管道(pipe)匿名管道实际上是由内核管理内核中的一块缓冲区, 是一种半双工通信手段, 通过让不同进程都能访问同一块缓冲区,来实现进程间通...原创 2019-12-15 18:18:49 · 1860 阅读 · 0 评论 -
Linux 基础IO(系统调用/文件描述符/重定向)
目录Linux 系统 . 文件IOLinux 系统调用与C库函数对比记忆fopen & open fclose & closefwrite & write fread & readfleek & leekstdin &stdout& strerr文件描述符fdstr...原创 2019-12-12 14:38:34 · 1371 阅读 · 0 评论 -
Linux 进程控制(创建/退出/等待/替换)
目录进程创建fork()函数fork返回值fork写时拷贝fork失败原因fork用法进程退出退出场景常见的退出方法正常退出异常退出_exit()系统调用exit()函数_exit()和exit()的区别return进程等待进程等待的必要性进程等待的方法wait()waitpid()参数int* status...原创 2019-12-01 19:23:02 · 996 阅读 · 0 评论 -
Linux 进程程序替换
目录进程程序替换 进程替换的原理替换函数exec族函数1. execv(参数格式是数组)2.execl(参数格式是列表)3.execvp / execlp(不带替换程序的路径)4.execle / execve(需要自己设置环境变量)相关博客:进程相关概念:戳链接( ̄︶ ̄)↗https://blog.youkuaiyun.com/qq_41071068...原创 2019-12-01 19:15:18 · 484 阅读 · 2 评论 -
Linux 进程
目录操作系统进程进程概念进程的描述--PCBtask_ struct内容分类进程的组织查看进程通过系统调用接口获取进程标志符(进程ID)进程状态进程优先级操作系统引言:在了解进程之前, 先简单了解一下操作系统 .操作系统(OperatingSystem), 简称OS 是配置在计算机硬件上的第一层软件, 是对硬件系统的首次扩充 . 其主要作用是...原创 2019-11-30 00:10:02 · 300 阅读 · 0 评论 -
Linux 进程状态(R, S, D, T(t), X, Z)
目录进程状态R-- 运行状态S-- 睡眠状态(可中断睡眠状态)D-- 磁盘休眠状态(不可中断睡眠)T-- 停止状态& t-- (跟踪状态)X-- 死亡状态(退出状态)Z-- 僵死状态&僵尸进程僵尸进程僵尸进程危害如何避免僵尸进程孤儿进程进程状态进程的先描述,再组织戳链接( ̄︶ ̄)↗https://blog.youkuaiyun.com/qq...原创 2019-11-30 00:08:53 · 3399 阅读 · 0 评论 -
Linux 进程优先级
进程优先级由于系统中进程数量众多, 而CPU资源却较少, 甚至只有一个, 而进程之间需要竞争来使用CPU . 这时让一个比较重要, 需要优先执行的进程去和众多的其他进程去竞争, 显然是不合理的. 就像感冒患者和有生命危险的患者抢床位一样的不合理. 此时为了更合理的分配CPU资源, 就有了进程优先级优先级高的进程有优先执行的权利.此外, 优先级还影响分配给进程的时间片长短...原创 2019-11-29 20:48:39 · 1050 阅读 · 0 评论 -
Linux 进程等待
目录进程等待进程等待的必要性进程等待的方法wait()waitpid()参数int* status进程等待 谁要等待? 等待什么? 为什么要等待 ?首先要知道进程终止或退出的时候会发生什么, 进程退出时会关闭...原创 2019-11-28 23:17:43 · 831 阅读 · 0 评论 -
Linux 进程的退出
目录进程退出退出场景常见的退出方法正常退出异常退出_exit()系统调用exit()函数_exit()和exit()的区别return进程退出退出场景正常符合预期退出 正常不符合预期退出 异常退出(执行过程中异常奔溃, 还未执行完)常见的退出方法正常退出main函数返回 ( return ) 调用 exit( int status ...原创 2019-11-28 23:16:31 · 330 阅读 · 0 评论 -
Linux 进程的创建
目录进程创建fork()函数fork返回值fork写时拷贝fork失败原因fork用法进程创建Linux 中我们可以说一个进程就是一个PCB, 即 一个task_struct, 那么创建进程也就是创建PCB, 即是创建task_structLinux 中说到进程创建, 就不得不提到 fork()函数. fork()在Lnux下是非常重要的一个函数 ....原创 2019-11-28 23:10:37 · 561 阅读 · 0 评论 -
Shell ? bash?
Shellshelln. (蛋、坚果、某些种子和某些动物的)壳;壳状物;炮弹v. 炮击; 给…去壳shell在排序算法中是希尔排序, 不过接下来要说的是它的另一个意思 " 壳 "计算机发展到现在, 用户与计算机交互的方式还是大致两种, 图形界面 和 命令行简单来说, 对于图形界面,用户点击某个图标就能启动某个程序对于命令行,用户输入某个程序的名字(可以看做一个命...原创 2019-11-21 19:47:38 · 196 阅读 · 0 评论 -
Linux 源码安装, rpm和yum三种安装方式
目录原码安装rpmyumLinux中安装软件可不像Windows那样只需要我同意xxx, 我接受xxx, 然后一直下一步就ok了Linux中主要有三种安装方式: 源码安装, rpm和yum注: 本文测试于Centos 7中注: 当不是root用户进行安装/卸载/升级操作时, 会提示权限不够, 我们只需在命令前面加上 sudo 获取到root的权限(会提示输入r...原创 2019-11-17 17:44:57 · 1229 阅读 · 0 评论 -
Linux 调试器gdb命令及TUI模式
gdbgdb是Unix及类Unix下的调试工具。在Windows下, 我们习惯用了有图形界面的,像VC, VS, BCB等IDE的调试,但如果是在Unix或类Unix平台下开发, gdb是我们的首选 .背景我们编写的程序可以有两种版本, Debug版本和Release版本, Linux中gcc/g++编译器默认是Release版本, Debug版本要在编译时后面加上-g...原创 2019-11-13 00:15:18 · 4112 阅读 · 0 评论 -
Linux中 git的使用
目录使用1. 不保存用户名和密码2.多个用户提交并保存用户名和密码一个有趣的故事题目 : Git-----一个大佬的随手之作很久很久以前, 也就是1991, 好像也不久, Linux之父Linus创建了Linux, 并将其开源, 至此, Linux至今在服务器端占据将近90%的市场, 在移动端, 全球市场份额最多Android内核也是Linux, 如今鸿蒙(Harmony...原创 2019-11-04 10:27:45 · 811 阅读 · 0 评论 -
Linux 编译器--gcc
目录从代码到可执行程序1. 预处理 2.编译 3. 汇编 4. 链接编译器gccgcc 命令集说到编译器, 就不得不说一个程序从代码到可执行的过程了从代码到可执行程序我们的源代码到一个可执行程序可不是一步到位, 需要以下几个步骤:预处理 --> 编译 --> 汇编 --> 链接1. 预处理对源代码进行宏替...原创 2019-11-02 01:11:45 · 452 阅读 · 0 评论 -
Linux 编辑器--vim的使用及分屏模式
目录vim的使用命令模式 输入模式 底行模式命令模式指令集进入插入模式 光标移动 删除 复制撤销 替换 更改 跳至指定的行底行模式命令集分屏模式打开方法 shell中打开 vim中创建分屏切换分屏 关闭分屏 分屏调节小结vim是什么所有的类Unix系统(如Linux)...原创 2019-10-31 19:11:51 · 1613 阅读 · 0 评论 -
Linux与Windows机器之间传输文件(lrzsz与Xftp)
Linux机器与Windows机器传输文件(lrzsz与Xftp)目录lrzszXftplrzszlrzsz这个工具用于 windows 机器和Linux 机器通过 XShell 传输文件.lrzsz安装 , 需要用到包管理器yum, 具体命令: sudo yum -y install lrzsz, 接下来需要输入root用户的密码使用 : 安装在Linux中, 需...原创 2019-10-30 23:14:03 · 1263 阅读 · 0 评论 -
Linux 软件包管理器yum
目录什么是软件包和软件包管理器查看软件包yum 安装/更新软件yum 卸载软件什么是软件包和软件包管理器yum(Yellow dog Updater, Modified)是Linux下非常常用的一种包管理器. 主要应用在Fedora, RedHat, Centos等发行版上.在智能手机中, 我们安装程序都是在应用商店或者网上下一个App安装包, 下载后安装就能用, ...原创 2019-10-30 23:08:56 · 925 阅读 · 0 评论 -
Linux 权限相关总结(用户&权限管理&权限设置方法)
目录Linux 中的用户su指令Linux 权限管理1. 文件访问者的分类(对于用户来说) 2.文件类型和访问权限(对于文件或目录来说) 1). 文件类型 2). 其中 r , w, x, - 具体含义 文件权限值的表示方法粘滞位文件访问权限的相关设置方法 ...原创 2019-10-26 00:22:42 · 4413 阅读 · 0 评论 -
Linux文件目录类常用命令
Linux文件目录类常用命令目录 常见Linux命令的格式1.浏览目录命令: ls pwdls pwd2.目录操作命令: cd mkdir rmdircd mkdir3.浏览文件命令: cat more less head tailcat more less head tail 区别...原创 2019-10-07 23:11:25 · 6562 阅读 · 2 评论 -
VMware NAT模式不能获取主机IP的解决办法
解决这个问题的办法是, 在控制面板中找到服务, 找到VMware DHCP Service 与 VMware NAT Service 分别右键点击, 选择属性打开, 将启动类型设置为自动(可能本来就已经是自动, 但还是没有自己启动, 这种就需要我们自己手动启动)原创 2019-09-29 00:42:08 · 3513 阅读 · 0 评论 -
VMware Workstation cannot connect to the virtual machine.Make sure you have rights to run the......
VMware 中虚拟机启动时错误VMware Workstation cannot connect to the virtual machine. Make sure you have rights to run the program, access all directories the program uses, and access all directories for temp...原创 2019-09-29 00:02:23 · 1651 阅读 · 0 评论