02 2024 档案

摘要:从 Cache 说起 如今的多核计算机往往包含多个 CPU 核心,其中每个 CPU 有自己独立的 Cache L1、Cache L2,同时多个 CPU 共享主存。 由于 CPU 获取指令数据的速度远快于主存,所以通过一级缓存、二级缓存等等来降低 CPU 从主存获取数据的频率,提升性能。 CPU 不会 阅读全文
posted @ 2024-02-28 11:27 Stitches 阅读(44) 评论(0) 推荐(0) 编辑
摘要:SNAT、DNAT、MASQUERADE iptables 中可以做多种网络地址转换(NAT),包括 SNAT/DNAT。 概念 SNAT(source network address translation)是源地址目标转换。比如多个PC机通过同一个路由器上网,每个PC机配置了内网IP,PC机在访 阅读全文
posted @ 2024-02-22 01:47 Stitches 阅读(16) 评论(0) 推荐(0) 编辑
摘要:什么是 bridge bridge 是一个虚拟网络设备,可以配置 IP、MAC 地址等,bridge 是一个虚拟交换机,和物理交换机有类似的功能。 普通的网络设备两端,数据会从一端进入然后从另一端出去,如物理网卡从外部网络中收到的数据会转发给内核协议栈,而从协议栈过来的数据会转发到外部的物理网络中。 阅读全文
posted @ 2024-02-18 16:10 Stitches 阅读(48) 评论(0) 推荐(0) 编辑
摘要:veth 设备介绍 veth 和其它网络设备一样,一端连接的是内核协议栈; veth 设备是成对存在的,另一端两个设备彼此连接; 一个设备收到来自协议栈的请求数据后,会将数据发送到另一台设备上去。 + + | | | + + | | | Newwork Protocol Stack | | | + 阅读全文
posted @ 2024-02-17 23:40 Stitches 阅读(46) 评论(0) 推荐(0) 编辑
摘要:Linux 虚拟网络设备 tun/tap 物理设备和虚拟设备的区别 Linux 内核中有一个网络设备管理层,处于网络设备驱动和协议栈之间,负责衔接它们之间的数据交互。 假设一个物理网卡 eth0,它的两端分别是内核协议栈和外部物理网络。从物理网络接收到的数据,会转发给内核协议栈,而应用程序从协议栈发 阅读全文
posted @ 2024-02-17 15:54 Stitches 阅读(55) 评论(0) 推荐(0) 编辑
摘要:硬中断和软中断 硬中断 由与系统相连的外部设备(网卡、硬盘等)产生,通知操作系统外部设备状态变更。比如当网卡收到一个数据包时,就会产生硬中断。 硬中断是外部设备对 CPU 的中断; 硬中断是由硬件产生的,比如网卡、磁盘、时钟等。 处于中断的驱动是需要运行在 CPU 上的,因此中断产生时 CPU 会中 阅读全文
posted @ 2024-02-17 15:53 Stitches 阅读(51) 评论(0) 推荐(0) 编辑
摘要:数据卷挂载 上一节实现了 docker 中宿主机和容器间的写操作隔离。但是容器一旦退出,容器可读写层的所有内容都会被删除。所以需要持久化容器中的数据,实现将宿主机的目录作为数据卷挂载到容器中,这样如果容器退出,容器中的文件依然能够持久化到宿主机。 持久化操作具体依赖于 bind mount 来实现, 阅读全文
posted @ 2024-02-08 01:26 Stitches 阅读(109) 评论(0) 推荐(0) 编辑
摘要:容器文件系统隔离 前面实现了 container 容器创建及容器内部的资源管理和限制,但是容器内部的文件系统仍然和宿主机文件系统有关联,对容器内部文件系统的修改会影响到宿主机文件系统,因此需要单独隔离容器内部文件系统。 ufs介绍 Union File System:UFS 是一个将其它文件系统联合 阅读全文
posted @ 2024-02-06 01:45 Stitches 阅读(251) 评论(0) 推荐(0) 编辑
摘要:简介 上一节中我们完成了 Mydocker run -it /bin/sh 的方式创建并启动容器。本节我们通过 cgroups 来实现对容器资源的限制。通过增加 -mem、-cpu 等命令行参数来限制资源,完整命令比如 Mydocker run -it -mem 10m -cpu 20 /bin/s 阅读全文
posted @ 2024-02-04 16:23 Stitches 阅读(78) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示