5G|IBM 为 Linux 内核提出新的命名空间机制

出品|开源中国
文|Travis
命名空间(Namespace)是 Linux 内核的一个特性 , 它对内核资源进行分区 , 使得一组进程看到一组资源 , 而另一组进程看到一组不同的资源 。 该功能的工作原理是为一组资源和进程使用相同的命名空间 , 但这些命名空间引用不同的资源 。 资源可能存在于多个空间中 。 此类资源的示例包括进程 ID、主机名、用户 ID、文件名以及一些与网络访问和进程间通信相关的名称 。
【5G|IBM 为 Linux 内核提出新的命名空间机制】IBM 工程师 Pratik Sampat 了 Linux 内核的 CPU Namespace 接口的早期原型 。 设计这个命名空间是为了解决当前查看可用 CPU 资源的方法的一致性问题 , 以及解决因了解系统上的资源访问/位置而可能产生的安全问题 。
如今 , 在容器上运行的应用程序在 cgroups 的帮助下执行它们的 CPU、内存限制与要求 。 然而 , 许多应用程序通过 sysfs/procfs 继承或以其他方式获得系统的视图 , 并根据这些信息分配资源 , 如线程/进程的数量 , 内存分配 。 这可能会导致意外的运行行为 , 并对性能产生很大影响 。
除了一致性问题 , 目前的处理方式也给多租户系统带来了安全和公平使用的影响 , 例如:
攻击者可以在知道 CPU 节点拓扑的情况下调度工作负载并选择 CPU , 从而使总线被淹没而造成拒绝服务攻击;以及识别 CPU 系统拓扑结构可以帮助识别靠近总线和外围设备(如 GPU)的内核 , 以便从其他工作负载中获得不适当的延迟优势 。
因此 , 由 IBM 领导的 CPU Namespace 提案追求以下设计:
- 这个原型补丁集引入了一个新的内核命名空间机制 —— CPU Namespace 。
- CPU Namespace 通过虚拟化逻辑 CPU ID 和创建相同的虚拟 CPU 映射来隔离 CPU 信息 。 它锁定在 task_struct 上 , 并且 CPU 转化被设计成扁平的层次结构 , 这意味着每个虚拟命名空间 CPU 在创建命名空间时都映射到一个物理 CPU , 转化速度更快;并且子代不需要向上遍历树来检索转化 。
- 该命名空间允许控制和显示接口都能够感知 CPU 命名空间上下文 , 这样命名空间内的任务只能通过虚拟 CPU 映射获取视图并因此控制它 , 以及查看可用的 CPU 资源 。
相关经验推荐
- 酷睿处理器|11/12代酷睿+Win11封杀4K蓝光碟 播放软件厂商回应:无能为力
- 华为鸿蒙系统|蒙系统的那些卡片功能,也就是刚面世时候的噱头,用下来用处不大
- 华为|不可否认,华为做的事情,客观上让我们有了一个好的标杆
- 华为荣耀|9999元起售!国产“折叠屏性能王”诞生,荣耀逐步收复华为失地
- 华为鸿蒙系统|鸿蒙功耗很不错,比以前耐用一些,系统也增加了一些小功能
- 红米手机|中国的操作系统路在何方,华为鸿蒙系统普及路难, 新plug操作系统
- 耳机|获多个“年度最佳”的国产降噪耳机,为何能备受媒体青睐?
- 华为|华为上架新机,搭载麒麟芯片,5000mAh仅售1399元
- 电影|深度剖析:人类是如何沦为手机的奴隶
- 努比亚|小米雷军超大杯2022款成为米粉最新抢购目标,二手平台叫价千元!
