Hello, World!

~ Enjoy Today ~

Minikube安装教程
Minikube 是一个迷你版的 k8s,部署极其简单(相较于正常一套完整的k8s系统而言),对于想要学习k8s或者本地开发调试的人而言都是一个非常不错的选择。 注:以下操作均基于 CentOS 7,其他发型版流程大致一样,不过包管理部分会略有差异 安装容器引擎: Docker Kubernetes 是一个容器编排调度系统,但是容器实体还是需要其他系统来创建的,常见的有如:docker、virtual box、kata等,这里我们以最常见的 docker 为例进行安装,如果系统上已......
小米路由器4A百兆版刷OpenWRT
我其实不怎么喜欢写这种教程类的博客,不过苦于刷机过程中资料过少,踩坑过多,特此系统性的捋一下,分享给有缘人,我手上的型号是百兆版的,4A千兆版刷OpenWRT的流程也基本一样,不过需要注意镜像地址什么的自行替换一下。 前提:需要安装 git、python3 以及熟悉基本的终端操作。 OpenWRT 首先我们要对 OpenWRT 有一些最基本的概念,OpenWRT 是一种 Linux 发行版,本质上是一个操作系统,和我们的常见的 Windows、And......
Git实现原理
基本概念 概述 Git 是一个基于快照的文件版本管理系统,其实现原理是为每个文件计算一个 hash 值然后压缩存储到 .git/objects 目录内,普通文件为 blob 对象,而文件夹也会生成一个对象:tree,这样一个版本的文件就能被根目录串联起来,这个版本的再上层会有一个 commit 对象,commit 对象会有一到多个 parent 指针,指向上一个提交,这样就把一个个版本串联了起来。 commit 的上层还有一个概念叫分支,分支是一个指向 commit 的指针,相当于是对这一系列 commit 的抽象。 这是一......
一个网络数据包的深度解剖
众所周知,网络是分层的,国际标准化组织将网络划分了七层,定义于 ISO/IEC 7498-1,也就是我们所熟知的 ISO 七层模型。 自底向上分别是:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。 以我们所熟知的应用层协议,超文本传输协议(HTTP: HyperText Transfer Protocol)为例,它位于这个模型中的最高的一层,应用进程发送 HTTP 请求包发出之后,会一层一层往下叠加头部直到最终变成最底层的物理信号 0 1 0 1 比特流在网线上传输......
Golang 如何排查协程泄漏问题
背景 周所周知,内存泄漏是一个很严重的问题,会导致系统运行占用资源越来越多,无法释放,直至崩溃。所幸 Go 语言是一门 具有垃圾回收的语言,能大大降低遇到内存泄漏的概率,而我们今天要说的是另外一个棘手的问题:协程泄漏。 协程泄漏:顾名思义就是出现了应该释放而没有被释放的协程,导致系统协程数量一直上升。不像对象回收需要引用计数、三色标记等手段,协程的回收是相当简单的,等待协程将代码从头到尾执行完毕之后这一块儿空......
颜色是如何呈现的
现实的世界是丰富多彩的,然而我们又是怎么将这种色彩呈现到我们的显示器上的呢? 人眼如何感知色彩 众所周知,光是一种电磁波,可见光是人眼所能处理的一个电磁波频率区间子集,人眼看到事物是通过光来感知的,颜色的本质就是电磁波的频率,不同频率的光即我们语言中所定义的不同种类的颜色。本质上我们的眼睛和雷达并没有任何区别,只是大脑的解码渲染能力强一点罢了。 人的眼睛中有视锥细胞和视杆细胞,视杆细胞负责感受光的强度,......
找出使用最频繁的Shell命令
使用最频繁 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......