
后端
文章平均质量分 83
linux,vim,tmux,shell
鱼竿钓鱼干
万丈高楼平地起,勿在浮沙筑高台
展开
-
思维导图:定时器设计
Linux 服务器经典定时器设计,根据网上的各种资料简单整理了个思维导图单个思维导图估计也就个人看看,如果各位有兴趣可以从以下几个问题入手下面是 Xmind 生成的 markdown 大纲,方便各位基于我的导图去修改。原创 2022-09-20 21:10:23 · 788 阅读 · 0 评论 -
思维导图:网络通信协议标准化
网络通信协议标准化原创 2022-09-16 17:41:42 · 783 阅读 · 0 评论 -
【Linux 高并发服务器】HTTP服务器雏形完工
【Linux 高并发服务器】HTTP服务器雏形完工简单学了一下计算机网络,UNIX网络编程,计算机系统,C++面向对象相关的知识。参照牛客网的教程写了个简单的HTTP服务器雏形完成,且经过webbench压力测试软件测试性能还可以。项目地址简易HTTP服务器项目概述HTTP服务器雏形版本支持对GET请求的解析,采用I/O多路复用技术的epoll,模拟实现Proactor模型,支持线程池,有一定并发处理能力收获我觉得写这个玩意能让计算机系统,计算机网络,面向对象,Linux之类的理论知识应用于原创 2021-11-27 20:56:24 · 2572 阅读 · 0 评论 -
[Linux 高并发服务器]使用webbench对HTTP服务器进行压力测试
[Linux 高并发服务器]使用webbence对HTTP服务器进行压力测试webbence介绍webbence是一个轻量级的压力测试软件通过webbence你可以得到下面这些数据Speed传输速度bytes/sec每秒传输数据量Requests请求数量,统计成功和失败次数最多支持3w并发测试原理参考这位大佬的博客WebBench压力测试工具(详细源码注释+分析)Linux下使用的服务器压力测试工具,利用fork建立多个子进程,每个子进程在测试时间内不断发送请求报文,建立多个连接,然原创 2021-11-24 17:52:34 · 3737 阅读 · 2 评论 -
[Linux 高并发服务器] I/O 多路复用
[Linux 高并发服务器] IO多路复用文章概述该文章为 牛客C++项目课:Linux高并发服务器 的个人笔记,记录了IO多路复用相关的知识点作者信息NEFU 2020级 zslID:fishingrod/鱼竿钓鱼干Email:851892190@qq.com欢迎各位引用此博客,引用时在显眼位置放置原文链接和作者基本信息参考资料感谢前辈们留下的优秀资料,从中学到很多,冒昧引用,如有冒犯可以私信或者在评论区下方指出标题作者引用处Linux 高并发服务器牛客网原创 2021-11-12 21:35:46 · 2699 阅读 · 0 评论 -
[Linux 高并发服务器]TCP通信流程
[Linux 高并发服务器]TCP通信流程文章概述作者信息NEFU 2020级 zslID:fishingrod/鱼竿钓鱼干Email:851892190@qq.com欢迎各位引用此博客,引用时在显眼位置放置原文链接和作者基本信息参考资料感谢前辈们留下的优秀资料,从中学到很多,冒昧引用,如有冒犯可以私信或者在评论区下方指出标题作者引用处正文部分TCP是什么TCP与UDP的区别Socket函数...原创 2021-11-04 20:18:13 · 450 阅读 · 0 评论 -
[Linux 高并发服务器]网络基础
[栏目名]篇目名文章概述作者信息NEFU 2020级 zslID:fishingrod/鱼竿钓鱼干Email:851892190@qq.com欢迎各位引用此博客,引用时在显眼位置放置原文链接和作者基本信息参考资料感谢前辈们留下的优秀资料,从中学到很多,冒昧引用,如有冒犯可以私信或者在评论区下方指出标题作者引用处正文部分...原创 2021-11-02 09:36:03 · 1997 阅读 · 4 评论 -
[Linux 高并发服务器]生产者与消费者模型
[Linux 高并发服务器]生产者与消费者模型文章概述该文章为牛客网C++项目课程:Linux高并发服务器的个人笔记,记录了生产者与消费者模型的一些知识点作者信息NEFU 2020级 zslID:fishingrod/鱼竿钓鱼干Email:851892190@qq.com欢迎各位引用此博客,引用时在显眼位置放置原文链接和作者基本信息参考资料感谢前辈们留下的优秀资料,从中学到很多,冒昧引用,如有冒犯可以私信或者在评论区下方指出标题作者引用处Linux高并发服务器原创 2021-10-31 15:03:43 · 789 阅读 · 0 评论 -
[Linux 高并发服务器]线程
[Linux 高并发服务器]线程文章概述本文为牛客网C++项目课:Linux高并发服务器的个人笔记,记录了线程相关的知识点作者信息NEFU 2020级 zslID:fishingrod/鱼竿钓鱼干Email:851892190@qq.com欢迎各位引用此博客,引用时在显眼位置放置原文链接和作者基本信息参考资料感谢前辈们留下的优秀资料,从中学到很多,冒昧引用,如有冒犯可以私信或者在评论区下方指出标题作者引用处正文部分线程的概念.原创 2021-10-30 23:00:13 · 996 阅读 · 0 评论 -
[Linux 高并发服务器]守护进程
[栏目名]篇目名文章概述作者信息NEFU 2020级 zslID:fishingrod/鱼竿钓鱼干Email:851892190@qq.com欢迎各位引用此博客,引用时在显眼位置放置原文链接和作者基本信息参考资料感谢前辈们留下的优秀资料,从中学到很多,冒昧引用,如有冒犯可以私信或者在评论区下方指出标题作者引用处相较于参考资料的不同之处标题作者不同处正文部分待解决的事项...原创 2021-10-26 21:16:15 · 531 阅读 · 0 评论 -
[Linux 高并发服务器]共享内存
[Linux 高并发服务器]共享内存文章概述这篇文章是牛客网C++项目课:Linux 高并发服务器的教程的个人笔记作者信息NEFU 2020级 zslID:fishingrod/鱼竿钓鱼干Email:851892190@qq.com欢迎各位引用此博客,引用时在显眼位置放置原文链接和作者基本信息参考资料感谢前辈们留下的优秀资料,从中学到很多,冒昧引用,如有冒犯可以私信或者在评论区下方指出标题作者引用处正文部分...原创 2021-10-26 10:37:04 · 887 阅读 · 0 评论 -
[Linux 高并发服务器] 信号
[Linux 高并发服务器] 信号文章概述牛客网C++项目课:Linux高并发服务器的个人笔记,记录了信号相关的知识点。作者信息NEFU 2020级 zslID:fishingrod/鱼竿钓鱼干Email:851892190@qq.com欢迎各位引用此博客,引用时在显眼位置放置原文链接和作者基本信息参考资料感谢前辈们留下的优秀资料,从中学到很多,冒昧引用,如有冒犯可以私信或者在评论区下方指出标题作者引用处牛客网C++项目课:Linux高并发服务器牛客网贯穿全文,原创 2021-10-25 21:29:26 · 778 阅读 · 0 评论 -
[Linux 高并发服务器] 内存映射
[Linux 高并发服务器] 内存映射参考:牛客C++项目课程认真分析mmap:是什么 为什么 怎么用第二篇参考博客很有用,建议看看。内存映射Memory-mapped I/O内存映射时间爱那个磁盘文件的数据映射到内存中,用户通过修改内存就可以修改磁盘文件,免去了read/write等操作内存映射的优点摘自第二篇参考博客1、对文件的读取操作跨过了页缓存,减少了数据的拷贝次数,用内存 读写 取代I/O读写,提高了文件读取效率。2、实现了用户空间和内核空间的高效交互方式。两空间的各自修改操原创 2021-10-23 22:49:35 · 448 阅读 · 0 评论 -
[Linux 高并发服务器] 管道
[Linux 高并发服务器] 管道什么是管道管道也叫做无名(匿名)管道,是UNIX系统IPC进程间通信的最古老形式,所有UNIX系统都支持这种通信机制。(一般说管道就是说匿名管道,但是还有有名管道,做个区分)管道的特点管道是一个在内核内存中维护的缓冲器,缓冲器存储能力有限,不同操作系统不一样管道拥有文件的特质:可以进行读写操作;匿名管道没有文件实体,有名管道有文件实体但不存储数据。可以按照操作文件的方式对管道进行操作一个管道是一个字节流,使用管道时不存在消息或者消息队列的概念,从管道读取数据原创 2021-10-20 19:52:32 · 670 阅读 · 0 评论 -
[Linux高并发服务器]进程间通信简介
[Linux高并发服务器]进程间通信简介摘自牛客项目课 Linux高并发服务器概念进程间通信IPC:Inter Processes Communication为什么需要进程间通信进程是一个独立的资源分配单元,不同进程之间的进程是独立的,没有关联,不能在一个进程中直接访问另一个进程的资源(这里一般指用户进程,不考虑系统进程)但是进程之间不是孤立的,不同进程之间需要进行信息交换和状态传递,因此需要进程间通信进程通信的目的数据传输:一个进程需要将他的数据发给另外一个进程通知事件:一个进程需要向原创 2021-10-13 21:33:58 · 322 阅读 · 0 评论 -
[Linux 高并发服务器]进程控制
[Linux 高并发服务器]进程控制此博客为牛客项目教程:Linux高并发服务器 的笔记,很多内容摘自其中进程退出C库和Linux系统都提供了进程退出函数exit()和_exit()exit()在_exit()的基础上还进行了刷新缓冲区,关闭文件描述符等操作对比代码/* #include <stdlib.h> void exit(int status); #include <unistd.h> void _exit(int status)原创 2021-10-13 17:17:48 · 371 阅读 · 0 评论 -
[Linux 高并发服务器] exec函数族
[Linux 高并发服务器] exec函数族exec函数族exec 函数族的作用是根据指定的文件名找到可执行文件,并用它来取代调用进程的内容,换句话说,就是在调用进程内部执行一个可执行文件exec 函数族的函数执行成功后不会返回,因为调用进程的实体,包括代码段,数据段和堆栈等都已经被新的内容取代,只留下进程 ID 等一些表面上的信息仍保持原样,只有调用失败了,它们才会返回 -1,从原程序的调用点接着往下执行。一般我们创建一个子进程,然后在子进程中使用exec函数族。虚拟地址空间视角执行exec函原创 2021-10-12 23:23:10 · 301 阅读 · 0 评论 -
[Linux 高并发服务器] 进程创建以及GDB多进程调试
[Linux 高并发服务器] 进程创建进程创建系统允许一个进程创建新进程,新进程就是子进程,子进程还可以创建子进程,形成树结构模型我们可以使用fork函数创建子进程/* #include <sys/types.h> #include <unistd.h> pid_t fork(void); 函数的作用:用于创建子进程。 返回值: fork()的返回值会返回两次。一次是在父进程中,一次是在子进程中原创 2021-10-11 20:22:01 · 412 阅读 · 0 评论 -
[Linux 高并发服务器] 进程状态的转换
[Linux 高并发服务器] 进程状态的转换根据牛客的c++项目课程做笔记,图片和知识点均摘录自该课程进程的状态转换进程状态反映进程执行过程的变化,这些状态随着进程的执行和外部条件的变化而转换三态模型运行态:进程占有处理器正在运行就绪态:进程具备运行条件,等待系统分配处理器以便运行,如果已经分配到除CPU外的资源,一旦获得CPU就立刻执行。在一个系统当中,处于就绪状态的进程可能有多个,通常将它们排成一个队列,称为就绪队列阻塞态:又称为等待(wait)态或睡眠(sleep)态,指进程不具备运行条原创 2021-10-10 21:12:47 · 339 阅读 · 0 评论 -
[Linux 高并发服务器] 进程概述
[Linux 高并发服务器] 进程概述程序和进程程序程序是包含一系列信息的文件,这些信息描述了如何在运行时创建一个进程二进制格式表示,用于描述可执行文件格式的元信息,内核利用此信息解释文件中的其他信息机器语言指令程序入口地址:标识程序开始执行时的起始指令位置数据:程序文件包含的变量初始值和程序使用的字面量值(字符串)符号表和重定位表,描述程序中函数和变量的位置以及名称。用来调试和运行时的符号解析(动态链接)共享库和动态链接信息其他信息也都是描述如何创建进程的进程进程是正在运行的原创 2021-10-10 12:08:11 · 397 阅读 · 0 评论 -
[Linux 高并发服务器]文件IO
[Linux 高并发服务器]文件IO此博客是根据牛客的项目课写的,使用了pdf里的资料各位可以去牛客官网学习一下另外注意,本博客和牛客的教程以32位系统为例,如果记忆一些默认数组,请明确前提![Linux 高并发服务器]文件IO[Linux 高并发服务器]文件IO标准C库IO函数与Linux系统IO函数标准C库函数FILE结构体补充知识虚拟地址空间文件描述符Linux系统IO函数标准C库IO函数与Linux系统IO函数标准C库IO函数相较于Linux系统IO函数,具有跨平台的优势,它可以针对不原创 2021-10-09 23:24:04 · 987 阅读 · 0 评论 -
[Linux高并发服务器]模拟实现 ls -l 指令
[Linux高并发服务器]模拟实现ls -l指令利用state函数模拟实现ls -l命令使用ls -l命令返回了以下信息文件类型文件权限连接数文件所属用户文件所属组文件大小文件上次修改时间文件名原创 2021-10-08 16:47:36 · 345 阅读 · 0 评论 -
[Linux 高并发服务器]GDB调试
[Linux 高并发服务器]GDB调试[Linux 高并发服务器]GDB调试[Linux 高并发服务器]GDB调试GDB是什么预先准备基本命令GDB是什么GDB是由GNU软件系统社区提供的调试工具,同GCC配套组成了一套完整的开发环境GDB可以帮助完成下面四个功能:启动程序,可以按照自定义要求运行程序可以让调试的程序在指定断点位置停住当程序停住时可以检查程序中发生的事情可以改变程序,将一个bug产生的影响修正从而测试其他bug预先准备如果为了调试而编译我们通常会关掉优化选项(-o原创 2021-10-05 21:51:02 · 6797 阅读 · 0 评论 -
[Linux 高并发服务器]Makefile
[Linux 高并发服务器]Makefile[Linux 高并发服务器]Makefile[Linux 高并发服务器]Makefile什么是Makefile文件命名和规则Makefile工作原理一、命令在执行之前,需要先检查依赖是否存在二、检测更新在执行规则中的命令时,会比较目标和依赖文件的时间变量自定义变量预定义变量获取变量的值模式匹配函数什么是MakefileMakefile 文件定义了一系列的规则来指定那些文件需要先编译,那些文件需要后编译,哪些文件需要重新编译,甚至于更复杂的操作。Makefi原创 2021-10-04 15:54:32 · 728 阅读 · 0 评论 -
[Linux 高并发服务器]制作静态库与动态库
[Linux 高并发服务器]制作静态库与动态库[Linux 高并发服务器]制作静态库与动态库[Linux 高并发服务器]制作静态库与动态库什么是库静态库的制作和使用命名规则静态库的制作静态库的使用动态库的制作和使用命名规则动态库的制作使用动态库静态库和动态库优缺点静态库优点静态库缺点动态库优点动态库缺点一般使用场景什么是库库文件是计算机类的一类文件,可以当作代码仓库,提供给使用者一些可以直接拿来用的变量函数和类库不能单独运行库文件用两种:静态库和动态库(共享库),区别是静态库在程序链接阶段被复原创 2021-10-03 21:12:26 · 1393 阅读 · 0 评论 -
[项目] Linux高并发服务器
[项目] Linux高并发服务器杂谈最近越来越感觉那些教你几小时做个网站啊之类的速成教程对技术学习有着很大危害,在贩卖焦虑的同时给你蛇油(虚伪的万金油),造成自己好像学了挺多的,做的挺好的假象。这对我来说,属实有些折磨了,因为作为普通人类的我,是很难抵挡住大数据推荐的勾引的。后来想了想还是找一些相对完整的项目学一下比较好,大一下的时候照着大佬的教程写了一个很水的JSON解析库,从中学到了很多,这种满足感真正令我感到充实。比较遗憾的是,后期没有做足够完整的总结,现在很多细节操作都忘的差不多了。翻了一原创 2021-10-03 00:20:34 · 6994 阅读 · 1 评论 -
[Linux]以匹配系统为例入门Thrift框架
[Linux]以匹配系统为例入门Thrift框架参考博客/文章:Apache Thrift系列详解(一) - 概述与入门acwing Linux(主要参考)RPC是什么,看完你就知道了什么是ThriftThrift是一个轻量级、跨语言的远程服务调用框架。它通过自身的IDL中间语言, 并借助代码生成引擎生成各种主流语言的RPC服务端/客户端模板代码。RPC(Remote Procedure Call)远程过程调用协议,一种通过网络从远程计算机上请求服务,而不需要了解底层网络技术的协议。简单来说原创 2021-10-02 02:07:51 · 543 阅读 · 0 评论 -
[Linux] SSH
[Linux] SSH参考资料使用Linux,从正确配置ssh开始Acwing Linux SSH什么是SSHssh相当于windows上的远程桌面连接,但没有桌面,只有文字终端。ssh是许多Linux使用者入门时必学的一个命令。借助ssh,开发人员可以很方便地连接远程或是局域网的其他电脑,直接在上面进行开发工作...原创 2021-09-13 20:33:40 · 172 阅读 · 0 评论 -
[Linux]swap分区被误删除导致系统启动失败的解决方案
[Linux]swap分区被误删除导致系统启动失败的解决方案问题阐述经过某种奇妙的操作后把系统的swap分区整没了,然后造成经常性的启动失败Dependency failed for /dev/disk/by-uuid/8bc79a31-f488-46a9-bf5b-3973ab39bd8Dependency failed for Swaps解决方案网上博客应该蛮多的,本文主要用于个人知识补充。个人觉得学linux遇到问题不应该只是复制粘贴博客上的命令来解决问题,更应该了解那些指令背后逻辑以及原创 2021-09-07 20:31:13 · 4005 阅读 · 1 评论 -
[Linux]Shell命令(一)
[Linux]Shell命令(一)参考资料http://c.biancheng.net/shell/https://zhuanlan.zhihu.com/p/264346586主要参考这两个菜鸟教程acwing linux教程这篇博客主要目的是用来迫使自己把资料仔细读下去,而非传播啥新知识。什么是shellShell 是一个应用程序,它连接了用户和 Linux 内核,让用户能够更加高效、安全、低成本地使用 Linux 内核,这就是 Shell 的本质。shell脚本就是由Shell命令组原创 2021-09-04 14:12:56 · 267 阅读 · 0 评论 -
[Linux]vim基本操作
[Linux]vim基本操作超级有用的健位图大小写有区别的!按键指令命令模式(1)i: 进入编辑模式1(2)ESC: 进入一般命令模式查找移动替换(3)h或左箭头键: 光标向左移动一个字符(4)j或向下箭头: 光标向下移动一个字符(5)k或向上箭头: 光标向下移动一个字符(6)l或向右箭头: 光标向右移动一个字符(7)n: n表示数字,按下数字后再按空格,光标会向右移动这一行的n个字符(8)0或功能键[Home]: 光标移动到本行开头(9)$或功能键[End]: 光标移动到原创 2021-08-31 10:30:14 · 167 阅读 · 2 评论 -
[Linux]tmux基础操作
[Linux]tmux基础操作原创 2021-08-30 10:12:45 · 319 阅读 · 0 评论 -
[Linux]基础bash shell命令
[Linux]基础操作命令参考书本《Linux命令行与shell脚本大全》复习和查询用,别的用到了在慢慢补充遍历目录目录路径绝对路径cd /usr/bin相对路径cd Documents返回主目录cd其他实用命令显示当前目录pwd当前目录的父目录…单点表示当前目录(在下面的文件复制当中很常用)cd ../Downloads文件和目录列表ls及其参数显示该目录下文件和目录,列表按字母排序,如果是彩色终端仿真器会用颜色区分不同类型的文件ls-F参数区分文件和目原创 2021-08-28 15:59:38 · 160 阅读 · 0 评论 -
[Linux]如何解决archlinux KDE下vscode登陆账户,出现“将登陆信息写入钥匙串失败”
[Linux]如何解决archlinux KDE下vscode登陆账户,“出现将登陆信息写入钥匙串失败”环境问题描述使用github帐号登陆vscode,出现“将登陆信息写入钥匙串失败”。github网站可以登陆,设置同步可以使用,但是使用liveshare进行协作的时候无法登陆帐号进入协作。根据vscode报错,发现是keyring的问题问题解决翻了一下archlinux的wiki和vscode的故障排除指南没翻到比较好的解决方案后来在这个知乎回答里找到了解决方案具体解决方案可以看git原创 2021-08-15 19:07:58 · 2779 阅读 · 0 评论