青萍之末的博客

学无止境

Linux系统中重要的命令

一、硬盘和内存相关指令 (1)df   df命令作用是列出文件系统的整体磁盘空间使用情况。可以用来查看磁盘已被使用多少空间和还剩余多少空间。 // 命令参数: df -a:--all,显示所有的文件系统,包括虚拟文件系统。 df -B:--block-size,指定单位大小。比如1...

2019-05-05 15:23:04

阅读数 91

评论数 0

gdb调试详解

一、gdb调试coredump文件 二、gdb调试多线程       【Note】:

2019-05-04 19:04:58

阅读数 20

评论数 0

Linux系统相关的基础问题(空间、内存、库、链接、环境变量)

一、用户与内核 1、用户空间与内核空间   4G的进程地址空间被人为的分为两个部分–用户空间与内核空间。用户空间从0到3G(0xc0000000),内核空间占据3G到4G。用户进程通常情况下只能访问用户空间的虚拟地址,不能访问内核空间的虚拟地址。例外情况只有用户进程进行系统调用(代表用...

2019-04-28 22:11:51

阅读数 45

评论数 0

HTTPS原理详解

文章目录一、HTTPS简介二、对称加密和非对称加密1、对称加密(DES)2、非对称加密(RSA)3、RSA的原理三、一个HTTPS请求的流程 一、HTTPS简介    HTTPS的本质就是在HTTP连接发起之前,先使用SSL/TLS协议,协调客户端和服务端,在两端各自生产一个对称加密算法的秘钥,然...

2019-03-26 19:37:56

阅读数 33

评论数 0

std::move原理实现与用法总结

文章目录一、左值与右值二、左值引用和右值引用1、std::move简介2、std::move详解3、std::move的优点   右值引用(及其支持的Move语意和完美转发)是C++0x加入的最重大语言特性之一。从实践角度讲,它能够完美解决C++中长久以来为人所诟病的临时对象效率问题。从语言本身讲...

2019-03-09 21:42:59

阅读数 185

评论数 0

从输入URL到页面加载完成发生了什么?

文章目录一、URL二、缓存三、DNS域名解析四、TCP连接五、浏览器向服务器发送HTTP请求六、浏览器接收响应七、页面渲染八、关闭TCP连接或继续保持连接 1. 浏览器的地址栏输入URL并按下回车。 2. 浏览器查找当前URL是否存在缓存,并比较缓存是否过期。 3. DNS解析URL对应的I...

2018-12-09 19:33:45

阅读数 64

评论数 0

线程池和内存池

文章目录一、线程池1、线程池的概念2、线程池的组成部分3、线程池的流程4、线程池的Demo5、线程池的应用二、线程池的惊群效应1、惊群效应的概念2、惊群效应存在的问题3、线程池的惊群效应4、怎么判断发生了惊群5、如何解决惊群效应三、内存池1、内存池的概念2、内存池的流程和设计3、内存池的Demo4...

2018-11-25 15:40:24

阅读数 72

评论数 0

select、poll、epoll总结

一、select总结   select本质上是通过设置或者检查存放fd标志位的数据结构来进行下一步处理。它仅仅知道了,有I/O事件发生了,却并不知道是哪那几个流(可能有一个,多个,甚至全部),我们只能无差别轮询所有流,找出能读出数据,或者写入数据的流,对他们进行操作。所以select具有O(...

2018-11-08 16:37:53

阅读数 76

评论数 0

epoll原理详解及epoll反应堆模型

  设想一个场景:有100万用户同时与一个进程保持着TCP连接,而每一时刻只有几十个或几百个TCP连接是活跃的(接收TCP包),也就是说在每一时刻进程只需要处理这100万连接中的一小部分连接。那么,如何才能高效的处理这种场景呢?进程是否在每次询问操作系统收集有事件发生的TCP连接时,把这100万个...

2018-11-08 15:40:03

阅读数 636

评论数 0

TCP协议详解(TCP报文、三次握手、四次挥手、TIME_WAIT状态、滑动窗口、拥塞控制、粘包问题、状态转换图)

文章目录一、TCP报文二、三次握手三、四次挥手四、TIME_WAIT状态五、connect()、listen()和accept()三者之间的关系六、三次握手、四次挥手总结七、滑动窗口(流量控制)八、拥塞控制九、粘包问题十、TCP状态转换图 一、TCP报文 【重要的字段】: 序号:Se...

2018-10-28 16:36:33

阅读数 849

评论数 1

Linux内核的五大模块

一、进程调度模块   Linux以进程作为系统资源分配的基本单位,并采用动态优先级的进程高级算法,保证各个进程使用处理机的合理性。进程调度模块主要是对进程使用的处理机进行管理和控制。 【进程创建】:   在Linux环境编程时,一般采用fork()/vfork()函数(fork 是 创建一个子进...

2018-10-07 13:32:59

阅读数 400

评论数 0

多线程的同步与互斥(互斥锁、条件变量、读写锁、自旋锁、信号量)

一、同步与互斥的概念   现代操作系统基本都是多任务操作系统,即同时有大量可调度实体在运行。在多任务操作系统中,同时运行的多个任务可能: 都需要访问/使用同一种资源; 多个任务之间有依赖关系,某个任务的运行依赖于另一个任务。 【同步】:   是指散步在不同任务之间的若干程序片断,...

2018-10-06 14:06:34

阅读数 4547

评论数 0

Linux系统启动过程

  Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段: 1. 内核的引导; 2. 运行 init; 3. 系统初始化; 4. 建立终端 ; 5. 用户登录系统。 () ()    ()   () 【Note】: ...

2018-10-04 19:57:43

阅读数 46

评论数 0

Make和Makefile

  Makefile是一个神奇的东西,有了它只需一个make命令就可以让源文件按你的规则编译成你所想要的程序。非常简单,方便。对于Keil,VS等IDE,一般只需点一下绿色的三角按钮,就可以完成编译。但具体内部是怎么实现编译的?改动文件后如何只编译改动的文件?学完makefile就可以掌握这些东西...

2018-09-02 10:37:08

阅读数 56

评论数 0

gcc/g++ 编译器

一、单个源文件生成可执行程序 g++ -o helloworld helloworld.cpp $ ./helloworld //运行 hello, world 二、多个源文件生成可执行程序 1、生成共享库和静态库 (1)生成目标文件(.o) g++ -c say_hello....

2018-09-01 17:21:06

阅读数 269

评论数 0

Vim编辑器

Vim常用配置 set nu syntax on set autoindent set smartindent set shiftwidth=4 set tabstop=4 set softtabstop=4 set expandtab set showmatch ...

2018-09-01 16:59:42

阅读数 50

评论数 0

四个强大的linux文本处理工具(find、grep、sed、awk)

一、find   因为Linux下面一切皆文件,经常需要搜索某些文件来编写,所以对于linux来说find是一条很重要的命令。linux下面的find指令用于在目录结构中搜索文件,并执行指定的操作。它提供了相当多的查找条件,功能很强大。在不指定查找目录的情况下,find会在对整个系统进行遍历。即...

2018-09-01 16:50:50

阅读数 258

评论数 0

C++11多线程知识点总结

一、多线程的基本概念 1、进程与线程的区别和联系 进程:进程是一个动态的过程,是一个活动的实体。简单来说,一个应用程序的运行就可以被看做是一个进程; 线程:是运行中的实际的任务执行者。可以说,进程中包含了多个可以同时运行的线程。通俗理解:例如你打开微信就是打开一个进程,在微信里面和好友视频聊...

2018-07-27 11:39:42

阅读数 378

评论数 0

平时刷题遇到的一些常见问题

1、头文件 #include <bits/stdc++.h> using namespace std; int ma...

2018-05-26 10:52:48

阅读数 126

评论数 0

sizeof用法总结

sizeof用法总结 以下运行环境都是一般的,在32位编译环境中 1、基本数据类型的sizeof cout<<sizeof(char)<<endl; 结果是1 cout<<sizeof(int)<<endl; ...

2017-10-02 20:36:13

阅读数 110

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭