![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
WuDi_Quan
一步一脚印 付出总有回报
展开
-
网络编程基础概念整理
网络编程基础概念整理我们学习网络编程之前,先来复习整理一下其基础的概念。①:首先,我们先要认识一下什么是计算机网络?网络的概念非常简单:可以将两个终端连接起来的叫做网络而互联网则是基于网络的基础上,将各个不同的网络连接在了一起,使之可以互相通讯,也可以叫作Inter网②:而什么是C/S分布式模式呢?C是client 客户,S是server 服务,则可以知道C/S...原创 2019-01-17 16:52:36 · 431 阅读 · 3 评论 -
select,poll和深入探索epoll
select,poll和深入探索epoll我们首先先了解一下什么是I/O复用:我们用一个单进程或者单线程的服务器程序去监听多个文件描述符上是否有关注的事件发生,如果某些文件描述符上有事件发生,则程序接着处理有事件发生的文件描述符,其他的不用理会,这样就可以极大的提高程序的性能。常用的I/O复用技术有select,poll,epoll我们介绍前两种,主要探索第三种epoll...原创 2019-08-20 21:16:38 · 410 阅读 · 0 评论 -
Linux几个基础命令
Linux几个基础命令find:查找文件将当前目录和其子目录下所有延伸名是.c的文件列出来将目前目录其其下子目录中所有一般文件列出将目前目录及其子目录下所有最近 20 天内更新过的文件列出查找当前目录中更改时间在7日以前的普通文件查找当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的普通文件:查找系统中所有文件长度大于1M的普...原创 2019-08-08 23:56:45 · 247 阅读 · 0 评论 -
linux上可以运行多少进程 && 一个进程可以开辟多少线程?
linux上可以运行多少进程&& 一个进程可以开辟多少线程?这个问题我们被困扰了很久,只知道一个大致数字,而没有很准确的结果,今天我们就自己测试一下?首先我们需要了解:进程:是系统分配资源的单位,是运行中的程序,是程序+指令+资源的一组集合。 线程:是cpu调度执行的最小单位,可以看作轻量级进程,线程是进程中的一条执行序列,我们可以通过线程库创建线程我...原创 2019-08-01 20:20:33 · 1127 阅读 · 0 评论 -
线程的基础概念与线程创建
线程的基础概念与线程创建我们在之前了解了什么是进程,那么什么是线程呢?进程:执行中的程序,程序是存储在磁盘上的可执行文件,是静态的概念,而进程是动态的概念,进程可以看作一组有序指令+数据+资源的集合。 线程:我们将线程看作轻量级的进程,线程是进程内部的一条执行序列,一个进程中至少有一条线程,也就是main主函数所代表的执行序列,称之为主线程,通过可以通过线程库创建线程(函数线程)。...原创 2019-08-06 02:37:48 · 221 阅读 · 0 评论 -
进程,线程,以及什么是协程
进程,线程,以及什么是协程进程与线程的基础概念,我们之前都写过,这里只是来简单理一遍:进程:执行中的程序,程序是存储在磁盘上的可执行文件,是静态的概念,而进程是动态的概念,进程可以看作一组有序指令+数据+资源的集合。 线程:我们将线程看作轻量级的进程,线程是进程内部的一条执行序列,一个进程中至少有一条线程,也就是main主函数所代表的执行序列,称之为主线程,通过可以通过线程库创建线程(函...原创 2019-08-08 14:08:35 · 234 阅读 · 0 评论 -
fork
Fork创建总结(一)一:在fork总结之前,我们先详细认识一下进程,进程的基本概念在前面博客已经写过了,这里就不冗余了。我们知道进程是处于执行期的程序以及相关资源的总称。像打开的文件,挂起的信号,一个或多个具有内存映射的内存地址空间及一个或多个执行线程,当然还有用来存放全局变量的数据段等。而内核在为每一个进程分配PCB的时候,实际上是分配了两个连续的物理页面(共8K),这两个页面的底...原创 2019-07-31 19:24:47 · 491 阅读 · 0 评论 -
同步异步,阻塞非阻塞
同步异步,阻塞非阻塞我们首先要知道同步异步是什么?而阻塞非阻塞又是什么?这两种不是同样的概念:因为:同步异步:是指一种消息通知方式(关注的是进程在发送请求后,如何知道对方是否已经消息回馈)同步:就是指发送方发送一个申请的时候,在没接收到回馈的消息的时候,就一直不断的去探测查看对方是否已经回馈。 异步:就是指发送方发送一个申请的时候,发送方不会去不断探测,而是当对方消息回馈...原创 2019-08-03 23:56:25 · 160 阅读 · 0 评论 -
静态库 & 共享库
静态库 & 共享库我们先来介绍一下库文件:在我们编程过程中,有一些公共代码是需要重复使用的,为了方便使用,我们就将这些公共代码封装成一个库文件,用的时候直接链接这个库就可以了,非常方便。库是分享公共程序代码的方式,一般分为静态库与共享库。那么静态库与共享库有什么区别呢?静态库:在链接时是将库文件代码拷贝一份到可执行文件中,如果库文件代码更新了,对之前生成的可执行文...原创 2019-01-31 02:02:30 · 518 阅读 · 0 评论 -
gdb调试的基本用法
gdb调试的基本用法gdb是GNU开源组织发布的一个强大的UNIX下的程序调试工具。一般来说,gdb主要帮忙你完成下面四个方面的功能:启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。 可让被调试的程序在你所设置指定的断点处停住。(断点可以是条件表达式) 当程序被停住时,可以检查此时你的程序中所发生的事。 动态的改变你程序的执行环境。从上面看来,gdb和一般的调试工具没...原创 2019-01-29 21:51:53 · 722 阅读 · 0 评论 -
对超时重传、滑动窗口、拥塞控制的简单认识
对超时重传、滑动窗口、拥塞控制的简单认识我们之前说过TCP对于数据的可靠传输可以做到:数据准确的到达对端 数据到达后是有序的 数据不失真这也就是为什么说TCP是可靠的连接,而UDP是不可靠的连接。因为TCP拥有一些对于异常情况的处理机制来保证自身数据的可靠传输,这里我们就来看一下都有些什么机制:TCP重传机制 TCP滑动窗口 TCP的拥塞控制 接下来,我们对其依次进...原创 2019-01-23 01:40:16 · 1715 阅读 · 0 评论 -
TCP与UDP的对比及其报头信息的解析
TCP与UDP的对比及其报头信息的解析我们先来看看TCP与UDP对于数据交互时的区别:TCP:面向连接的 可靠的 字节流服务字节流服务:发送方send数据的次数与接收方recv的次数没有必然联系 发送缓冲区中的数据具体分成几个TCP报文段进行传输,每个报文段又携带了多少数据,与send情况没有任何关系,只会与当前网络环境有关。 接收方接收数据时,所有接收到的TCP...原创 2019-01-23 01:07:45 · 2005 阅读 · 1 评论 -
进程的基础概念与管理命令
进程的基础概念与管理命令一:什么是进程:我们都知道程序是存储在磁盘上可执行的二进制文件,那么进程就是运行中的程序(执行时,将程序加载到内存上)。也就是说进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动,是系统进行资源分配的单位。我们画图示意:就比如,我们平时看到的乐谱就是程序,音乐大师演奏的过程就是所谓的进程。二:进程与程序的差别程序是一组...原创 2019-01-31 23:58:20 · 859 阅读 · 0 评论 -
TCP/IP协议(三次握手、四次挥手、TCP状态转换)
TCP/IP协议(三次握手、四次挥手、TCP状态转换)我们先了解一下TCP的面向连接体现在:两端通信之前,必须先建立连接。 连接一旦建立,则两端的交互过程都是建立在这一连接上完成的,无需重新建立连接,直至关闭连接为止。 通信完成后,必须断开连接,以释放服务器的资源。 操作系统为我们维护连接,所以内核需要为连接分配相应的资源。 对于服务器而言,一个连接只能为一个客户端服务,从而造成服...原创 2019-01-20 01:01:22 · 871 阅读 · 0 评论 -
网络编程 --- UDP
网络编程 --- UDP前面我们实现的TCP网络编程,是基于TCP协议的,也是面向连接的字节流服务,这就是我们在创建socket的时候,socket函数的第二个参数总是指定为SOCK_STREAM,第三个参数protocol总是设置为0,即默认使用TCP协议。所以我们先来看一看TCP和UDP编程上的区别:TCP是有连接的,比如打电话,首先得拨号码(connect),接通电话(accep...原创 2019-01-17 17:33:08 · 1615 阅读 · 1 评论 -
网络编程 --- TCP
网络编程 --- TCP首先,我们得明确网络中进程是如何通信的。我们知道本地的进程间通讯(IPC)有很多种方式,总结后可以分为以下四类:消息传递(管道,FIFO,消息队列) 同步(互斥量,条件变量,读写锁,信号量) 共享内存(匿名的和具名的) 远程过程调用(它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。如TCP和UDP)但是这些都不是这篇博客...原创 2019-01-17 17:24:53 · 2617 阅读 · 0 评论 -
分段分页机制&虚拟地址映射过程
分段分页机制&虚拟地址映射过程分页:系统初始化时,类似于大小相等的固定分区,会将内存划分为很小的区块,称作页,而操作系统会为每一个进程分别维护一个页表,则进程根据这个页表可以实现加载到内存上页的不连续。分段:加载进程时,将进程根据段加载,一个进程可以被分为多个段,操作系统会为每个进程维护一个段表,则加载的进程可以根据这个段表在虚拟内存上不连续的占据多个段。MMU:内存管理...原创 2019-09-09 10:15:42 · 3178 阅读 · 0 评论