runc源码解读01 —— 介绍和使用
1 介绍 1.1 什么是OCI OCI(Open Container Initiative)即开放的容器运行时规范,目的在于定义一个容器运行时及镜像的相关标准和规范,其中包含: runtime-spec:容器的生命周期管理,包括容器的创建、启动、暂停、恢复和销毁等操作。规定了容器运行时应该如何使用 Linux 内核功能来实现...
1 介绍 1.1 什么是OCI OCI(Open Container Initiative)即开放的容器运行时规范,目的在于定义一个容器运行时及镜像的相关标准和规范,其中包含: runtime-spec:容器的生命周期管理,包括容器的创建、启动、暂停、恢复和销毁等操作。规定了容器运行时应该如何使用 Linux 内核功能来实现...
1 前言 map 是在 Go 中经常使用的一个数据结构,它通过键值对的方式在 O(1) 的时间复杂度的情况下通过 key 找到 value 。本篇文章就是深入解读 Go 的 map 的源码,走读的源码版本为 go v1.22.5。 2 基本使用 2.1 概述 map 是一个 key - value 数据结构,也被称为字典,核心特点包含下面三点: 是基于 key -value 关系映射的模式。 基于 key 维度实现...
1 前言 切片 slice 是 golang 中的一个非常经典的数据结构,它的定位可以类比于其它编程语言中的数组。本篇文章介绍的内容会分为源码实现以及使用 slice 会遇到的问题,走读的源码为 go v1.22.5。 2 源码实现 2.1 数据结构 type slice struct { array unsafe.Pointer // 指向起点的地址 len int // 切片的长度 cap int // 切片的容量 } array :指向了内存地址空间的起点...