44、Linux 命名空间:UTS 与网络命名空间实现解析

Linux 命名空间:UTS 与网络命名空间实现解析

1. 命名空间概述

在 2006 年渥太华 Linux 研讨会(OLS)的一次演讲中,Eric W. Biederman 提到了十个命名空间,其中设备命名空间、安全命名空间、安全密钥命名空间和时间命名空间尚未实现。对于命名空间的更多信息,可以阅读 Michael Kerrisk 的系列文章。移动操作系统虚拟化项目推动了对设备命名空间的开发支持。

与命名空间相关的系统调用有三个:
- clone() :创建一个附加到新命名空间(或多个命名空间)的新进程。命名空间的类型由作为参数传递的 CLONE_NEW* 标志指定,也可以使用这些标志的位掩码。该系统调用的实现在 kernel/fork.c 中。
- unshare() :前文已讨论。
- setns() :前文已讨论。

命名空间在内核中没有可供用户空间进程使用的名称。用户空间进程应打开 /proc/<pid>/ns/ 下的命名空间文件,使用其文件描述符与特定命名空间进行通信,以保持该命名空间的存活。命名空间由创建时生成的唯一 proc 索引节点号标识,释放时会被释放。

2. UTS 命名空间实现

为了实现 UTS 命名空间,添加了 uts_namespace 结构体:

struct uts_namespace {
 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值