Huweicai
Home
(current)
About
Archives
Huweicai
好奇心探索世界
善意假设
做最酷的事情
Hello, World!
~ Enjoy Today ~
Categories
Go (3)
English (1)
Featured Tags
linux (12)
操作系统 (7)
计算机网络 (7)
go (6)
容器 (6)
编程语言 (6)
存储 (5)
cloudnative (4)
cpp (4)
kubernetes (4)
硬件 (3)
cilium (2)
cpu (2)
docker (2)
ebpf (2)
hft (2)
ip (2)
java (2)
kernel (2)
programming (2)
shell (2)
命令行 (2)
c++ (1)
compiler (1)
en (1)
ethernet (1)
git (1)
harbor (1)
http (1)
innodb (1)
jvm (1)
mysql (1)
nic (1)
onload (1)
pprof (1)
programing (1)
python (1)
redis (1)
tcp (1)
yuv (1)
办公效率 (1)
图像 (1)
并发 (1)
数据库 (1)
文件系统 (1)
日志 (1)
权限管理 (1)
磁盘 (1)
网络 (1)
镜像 (1)
音视频 (1)
««
«
1
2
3
4
5
6
…
8
»
»»
一个网络数据包的深度解剖
2020-07-01
17 minutes read
众所周知,网络是分层的,国际标准化组织将网络划分了七层,定义于 ISO/IEC 7498-1,也就是我们所熟知的 ISO 七层模型。 自底向上分别是:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。 以我们所熟知的应用层协议,超文本传输协议(HTTP: HyperText Transfer Protocol)为例,它位于这个模型中的最高的一层,应用进程发送 HTTP 请求包发出之后,会一层一层往下叠加头部直到最终变成最底层的物理信号 0 1 0 1 比特流在网线上传输......
计算机网络
Ethernet
TCP
HTTP
IP
Golang 如何排查协程泄漏问题
2020-05-29
3 minutes read
背景 周所周知,内存泄漏是一个很严重的问题,会导致系统运行占用资源越来越多,无法释放,直至崩溃。所幸 Go 语言是一门 具有垃圾回收的语言,能大大降低遇到内存泄漏的概率,而我们今天要说的是另外一个棘手的问题:协程泄漏。 协程泄漏:顾名思义就是出现了应该释放而没有被释放的协程,导致系统协程数量一直上升。不像对象回收需要引用计数、三色标记等手段,协程的回收是相当简单的,等待协程将代码从头到尾执行完毕之后这一块儿空......
go
go
pprof
编程语言
颜色是如何呈现的
2020-04-09
5 minutes read
现实的世界是丰富多彩的,然而我们又是怎么将这种色彩呈现到我们的显示器上的呢? 人眼如何感知色彩 众所周知,光是一种电磁波,可见光是人眼所能处理的一个电磁波频率区间子集,人眼看到事物是通过光来感知的,颜色的本质就是电磁波的频率,不同频率的光即我们语言中所定义的不同种类的颜色。本质上我们的眼睛和雷达并没有任何区别,只是大脑的解码渲染能力强一点罢了。 人的眼睛中有视锥细胞和视杆细胞,视杆细胞负责感受光的强度,......
yuv
图像
音视频
找出使用最频繁的Shell命令
2020-03-20
5 minutes read
使用最频繁 TOP 10命令: history | awk '{map[$2]++} END { for (a in map )print map[ a ]" " map[ a ]/NR*100 "% " a }'| sort -rn | nl | head 先上成品,然后,我们一步一步分析这行语句都涉及到了命令,它们又是如何拼凑到一块儿完成我们的目的的。 Shell 首先我们需要明确一下 shell 的定义,大家可能经常听到 shell ,shell 脚本这些词,那么 shell 到底是什么呢? Shell 翻译成中文的意思就是壳,和操作系统内核的核相对应,就是一个基于内核的可操作界面。可操作性界面又分为两种: 图形界面类:Graphi......
linux
shell
Linux 是如何启动的
2020-03-20
One minute read
inux系统是如何启动的?......
linux
shell
进程线程协程的本质区别
2020-03-17
10 minutes read
现代多任务操作系统通常都会有进程的概念来对任务进行隔离,而为了充分利用多核处理器性能同时又减少进程创建的开销,通常又都会引入更细粒度的调度单元:线程。 我们经常能在教科书上看到对于进程和线程的定义: 进程是操作系统分配资源的最小单位,线程是进行调度的最小单元。 这句话没错,但是只是从职责上给出的定义,而不是基于底层实现出发的。 广义上的线程分为内核态线程和用户态线程两种,内核态线程受操作系统直接调度可以充......
操作系统
Go
Linux
Go语言sync包实现原理分析
2020-01-10
6 minutes read
Java 语言中有一个 java.util.Concurrent 包提供了大量的并发工,而 Go 语言中也有这样的角色:sync包。 sync.Mutex 锁实现原理 sync.Mutext 是 Go 提供的一种同步原语,用于表达互斥,不过不推荐在业务中使用,根据 Go 的设计思想,应首先考虑通过传递消息(管道)来共享内存,而不是通过共享内存来传递消息 Mutex 结构体如下,只有两个变量,非常简单: type Mutex struct { state int32 // 状态,bitmap sema uint32 // 信号量 } state 字段是一个位图 第 0 位表示是否加锁 第 1 位表示是否已唤醒 第 2 位表示是否为饥饿模......
go
并发
编程语言
««
«
1
2
3
4
5
6
…
8
»
»»