2022.1.16
2023.11.27
1891
9 mins在计算机的运行过程中,程序计数器依次指向一系列的值:$a_0, a_1, …, a_n$。其中,$a_k$ 是其对应指令 $I_k$ 的地址。从 $a_k$ 到 $a_{k+1}$ 的转换被称为控制转移(Control Transfer),一系列的控制转移则被称为处理器的控制流 … 2021.12.28
2022.7.31
988
5 mins存储系统(Memory System)包含多个层级(Hierarchy),每个层级的存储设备(Storage Device)具有不同的容量、成本和访问时间。层级越低,存储设备的容量就越大,成本也越低,但访问速度却越慢。存储系统的层级结构对应用性能有着显著的影响 … 2021.12.12
2022.8.8
296
2 mins我们将处理器支持的指令及其对应的字节编码方式称为指令集架构(Instruction Set Architecture,ISA)。不同的处理器系列,例如 Intel IA32/x86-64,IBM/Freescale Power 和 ARM 等,均使用不同的 ISA。为一种机器编译得到的程序,无法在 ISA 不同的机器上运行 … 2021.11.21
2024.10.21
1419
7 minsPrometheus 是一个包含了自定义时间序列数据库的监控系统,其查询语言、操作模型以及一些概念性决策使得它易于与 Kubernetes 集成。然而,Kubernetes 集群中的工作负载是动态变化的,有可能给它带来一定的压力 … 2021.10.20
2024.10.14
1009
5 minsOpenShift 4.X 版本要求安装在操作系统为 CoreOS 的机器上,因此官方文档给出了使用 PXE 或 IPXE 引导 CoreOS 系统的方法。我们可以参考其操作流程,将一台 CentOS 7.X 的机器改写为 CoreOS 系统,步骤如下 … 2021.9.23
2024.8.6
3495
17 mins在使用高级语言,如 C、Java 编程时,我们无法了解程序在机器级别的实现。而使用汇编语言编写程序时,程序员则只能引用低级指令。由高级语言编写的程序可以在多种不同的机器上编译运行,而汇编语言则与机器特性高度相关 … 2021.7.19
2023.3.13
1294
7 mins大多数机器使用字节(8 位的块)作为存储器中的最小寻址单元,而非访问单独的位。内存中的每一个字节都对应一个唯一的数字,即它的地址,所有可能的地址集合构成了虚拟内存。它是由 DRAM、闪存(Flash Memory) 和磁盘存储共同实现的,而在程序看来则只是一个统一的字节数组 … 2021.5.26
2022.9.14
210
1 min一堆 bit 可以表示系统中的所有信息,包括磁盘中的文件、内存中的程序和用户数据以及网络中传输的数据,区分它们的唯一方式便是我们查看这些数据对象时所处的上下文(Context)。例如,相同的一串 bit 在不同的 Context 中可能代表一个整数,也可能代表一个浮点数,甚至字符串 … 2021.5.13
2024.1.12
1449
7 mins在《Kubernetes Pod 是如何跨节点通信的?》中,我们简单地介绍了 Kubernetes 中的两种 SDN 网络模型:Underlay 和 Overlay。而 Openshift 中的 SDN 则是由 Overlay 网络 OVS(Open vSwitch)实现的,其使用的插件如下 … 2021.5.9
2022.8.11
355
2 mins《A Guide to the Kubernetes Networking Model》一文生动形象地介绍了 Kubernetes 中的网络模型,然而受篇幅所限,作者并没有对 Pod 跨节点通信时数据包在节点之间传递的细节进行过多讨论 …