小吴同学
善良比聪明更重要
Linux 进程与线程模型 Linux 进程与线程模型
UNIX 的传统倾向于把一个任务交给一个进程全权受理。但一个任务内部往往不止一个执行流——就像公司里所有人做同一件事,每个人只负责一部分,粒度减小后各事情可以同时进行,同时大家又共享着所有资源。于是就有了线程:线程就是共享资源的不同的执行流
2020-03-29
TCP在CLOSE_WAIT状态还能收到报文 TCP在CLOSE_WAIT状态还能收到报文
我们都知道 TCP 是全双工通信,当客户端发送 FIN 后,服务端回复 ACK 进入 CLOSE_WAIT 状态,这个时候对于客户端来说,发送功能没有了,但是还可以正常接收服务端的数据,对于服务端来说,既可以接收客户端的数据也可以给客户端
2020-03-19
Linux 僵尸进程的产生与处理 Linux 僵尸进程的产生与处理
可能很少有人意识到,一个进程调用 exit 之后,它并非马上就消失,而是留下一个称为僵尸进程(Zombie)的数据结构。在 Linux 进程的几种状态中,僵尸进程非常特殊:它已经放弃了几乎所有内存空间,没有任何可执行代码,也不能被调度,仅仅
2020-03-17
Linux 孤儿进程与僵尸进程 Linux 孤儿进程与僵尸进程
子进程的结束和父进程的运行是异步的——父进程永远无法预测子进程什么时候结束。那么,会不会因为父进程太忙来不及 wait 子进程,或者不知道子进程何时结束,而丢失子进程结束时的状态信息呢?答案是:不会。 UNIX 提供了一种机制来保证:只要父
2020-03-05
Linux 进程状态详解 Linux 进程状态详解
有同事问到 top 命令里的 running、sleep、stop、zombie 等进程状态分别是什么意思,于是借这个机会整理一下 Linux 系统里的进程状态。 概述进程(Process)即当前正在运行的计算机程序的实例。每个进程都有一些
2020-02-20
JSON/YAML 数据模型 JSON/YAML 数据模型
从结构上看,所有的数据最终都可以分解成三种类型: 标量(scalar):一个单独的字符串或数字,如”北京”。 序列(sequence):若干相关数据按顺序并列,又称数组(array)或列表(list),如”北京,上海”。 映射(mappi
2020-02-06
Linux 查看端口占用 Linux 查看端口占用
一、lsof 查看端口占用用 lsof -i:端口号 可以查看某一端口的占用情况: # lsof -i:8000 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME lwfs
2020-01-23
Linux nc(netcat) 使用指南 Linux nc(netcat) 使用指南
netcat 号称 TCP/IP 的瑞士军刀,以体积小(可执行文件约 200KB)、功能灵活著称,各大发行版默认安装。netcat 主要有 GNU 版本和 OpenBSD 版本,两者在 debian/ubuntu 下均可安装(Windows
2020-01-09
Linux netstat 查看网络状态 Linux netstat 查看网络状态
netstat 用于显示各种网络相关信息,如网络连接、路由表、接口状态、masquerade 连接、多播成员等。 输出信息含义执行 netstat 后,输出分为两部分: Active Internet connections (w/o se
2019-12-26
Linux 常用网络工具 Linux 常用网络工具
在 Linux 上监控网络,命令行工具非常实用。常见的工具包括 nethogs、ntopng、nload、iftop、iptraf、bmon、slurm、tcptrack、cbm、netwatch、collectl、trafshow、eth
2019-12-12
Linux 10 个危险命令 Linux 10 个危险命令
Linux 命令行很有用、很高效,但也很危险——尤其是在你不确定自己在做什么的时候。本文列出一些危险命令,最好不要尝试。以下命令通常是在 root 权限下才具备毁灭性;普通用户身份下,破坏的只是自己的文件。 rm -rfrm -rf 是删除
2019-11-28
C++ 工程实践:值语义 C++ 工程实践:值语义
什么是值语义值语义指的是对象的拷贝与原对象无关,就像拷贝 int 一样。C++ 的内置类型 bool、int、double、char 都是值语义,标准库里的 complex<>、pair<>、vector<&g
2019-11-14
6 / 10