ALOVN

我干了什么 究竟拿时间换了什么

Golang 1.22新特性

Golang 1.22 feature

本文介绍一下Go1.22比较重要的几个新特性。 for Go1.22版本中最大的变化是对于for循环的,有两处较大的更新: 之前的for循环每次循环中的变量只创建一次,每次循环。go1.22版本开始,每次循环都会创建新的变量。 for range 直接支持变量整数。 下面用示例演示,首先安装go1.22 1 2 go install golang.org/dl/go1....

了解 Base64 算法编码原理

Base64 algorithm

Base64 base64是一种常用的对二进制数据编码的方式,它可以将任意的数据转换为字符串格式,从而无需担心在网络传输中特殊符号被转换导致数据错误的问题。网页开发中为了减少网络传输次数通常将小尺寸的图片转换纬base64字符串格式直接存储到页面或者打包到js文件中。 base64编码包含a-z、A-Z、0-9、’+’、’/’ 共64个有效字符。其实除了这64个字符以外,我们还经常见到一...

Golang多值赋值

Golang multiple assignment

Golang和Python一样使用了多值赋值的语法,它在很多地方可以简化代码,不过有时也会让人产生困惑。 示例一 1 2 3 4 5 6 7 8 9 10 package main import "fmt" func main() { x := []int{1, 2, 3} i := 0 i, x[i] = 1, 2 fmt.Println(i, x) } 上面代码由于左...

iptables

iptables

工作模式 iptables两种工作模式:一种是用做NAT路由器,另一种是用做主机防火墙。对于数据包而言在两种工作模式下,分别有以下两种主要流向: PREROUTING → FORWARD → POSTROUTING PREROUTING → INPUT → 本机OUTPUT → POSTROUTING 规则表 iptables会根据不同的数据包处理功能使用不同的规则表。它包...

Kubernetes 证书更新

Kubernetes certificate renewal

声明:以下实验环境为 k8s v1.21.0, 其它版本不一定适用。 k8s突然发现启动不了了,用 journalctl -xefu kubelet 查看一下日志, 发现有如下打印: 1 part of the existing bootstrap client certificate in /etc/kubernetes/kubelet.conf is expired: 2023-05...

ESXI linux虚拟机磁盘扩容

ESXI linux virtual machain disk expansion

ESXI(VMware)里linux系统的磁盘空间有点不够用了,所以要扩容一下。它不像Windows系统那样简单的点几下鼠标就完成扩容了。这里简单记录一下操作过程。 首先关闭linux虚拟机,然后进入ESXI, 编辑虚拟机, 直接修改硬盘大小, 这里原先是50GB,直接设置到100GB。然后启动linux虚拟机后进入系统, 首先查看挂载点和文件系统类型, 1 2 3 4 5 6 7 8...

双绞线的分类

twisted pair classfication

双绞线在计算机网络中,特别是局域网连接中应用最为广泛,这主要得益于它的廉价性和非常不错的可用性。把两根互相绝缘的铜导线并排放在一起,然后用规则的方法绞合起来就构成了双绞线。 双绞线最早使用在电话交换系统中(那时主要是三类或以前版本的),后来才移植到计算机网络中,当然材质和标准都不一样。在计算机网络中使用的双绞线可分为屏蔽双绞线(Shielded Twisted Pair,STP)和非屏蔽双...

IPv4地址分类

IP v4 address classification

IPv4组成 IPv4是个32位的地址,它被分成4个8位的分组,每个8位写成十进制,中间用点分隔。例如: 1 192.168.0.1 二进制为: 1 11000000 10101000 00000000 00000001 IPv4地址其实两部分组成:网络地址(Network ID)和主机地址(Host ID)。即 1 IP地址=网络地址+主机地址 网络地址标识的是Inte...

ESXI 主机显卡和USB设备直通

ESXI GPU and USB device passthrough

对于一台ESXI上的虚拟机,如果想要直接通过显示器输出、连接USB键盘鼠标或蓝牙使用其它外设,那么可以通过设备直通实现。 显卡直通 显卡直通的配置比较简单,步骤如下: 在设备管理里找到显卡,点击【切换为直通】,然后需要重启ESXI主机。 在虚拟机配置里添加PCI设备,并选择你要直通的显卡。 在虚拟机高级选项中配置参数 hypervisor.cpuid.v0 = FALSE...

CPU分支预测

cpu branch prediction

CPU为了加速程序的运行,它可以预取、缓存指令和数据。对于静态函数的调用,CPU会预知即将执行的分支,然后预取对应的指令。当使用动态调度的时候,CPU就无法预知程序的执行分支了。不过CPU会运用各种算法来猜测程序的下一步执行分支,这就是分支预测。如果CPU猜对了,就可以快速的执行,因为即将执行的指令已经被预取到了处理器的缓存中了。 下面的两个函数有什么区别吗?可以看出它们执行的总数都是10...