0%

Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件,它是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

Read more »

容器编排(Container orchestration)提供了一个开放有影响力的模型,包含打包(packaging)、发布(deployment)、隔离(isolation)、服务发现(service discovery)、伸缩(scaling)和滚动更新(rolling upgrades)。

Read more »

Bridge 是一个虚拟网络设备,所以具有网络设备的特征,可以配置 IP、MAC 地址等;其次,Bridge 是一个虚拟交换机,和物理交换机有类似的功能。对于普通的网络设备来说,只有两端,从一端进来的数据会从另一端出去,如物理网卡从外面网络中收到的数据会转发给内核协议栈,而从协议栈过来的数据会转发到外面的物理网络中。而 Bridge 不同,Bridge 有多个端口,数据可以从任何端口进来,进来之后从哪个口出去和物理交换机的原理差不多,要看 MAC 地址。

Read more »

Veth Peer 是成对出现的一种虚拟网络设备接口,一端连着网络协议栈,一端彼此相连。由于它的这个特性,常常被用于构建虚拟网络拓扑。例如连接两个不同的网络命名空间(netns),连接 docker 容器,连接网桥(Bridge)等,其中一个很常见的案例就是 OpenStack Neutron 底层用它来构建非常复杂的网络拓扑。

Read more »

本文只讨论以太网的物理网卡,不涉及虚拟设备,并且以一个 UDP 包的接收过程作为示例。

本示例里列出的函数调用关系来自于 kernel 3.13.0

Read more »

虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。目前,大多数操作系统都使用了虚拟内存,如 Windows 家族的“虚拟内存”;Linux 的“交换空间”等。

Read more »