佛山网站建设优化,做vlogger的网站有哪些,专门开发app的公司,wordpress会员功能在过去的几年中#xff0c;我一直在做大量容器相关的工作。先前#xff0c;我看到 Julien Friedman 的一个很棒的演讲#xff0c;它用几行 Go 语言写了一个容器框架。这让我突然了解到容器只是一个受限的 Linux 进程中的机器。构建这个受限视图涉及到 Golang 系统调用包中的…在过去的几年中我一直在做大量容器相关的工作。先前我看到 Julien Friedman 的一个很棒的演讲它用几行 Go 语言写了一个容器框架。这让我突然了解到容器只是一个受限的 Linux 进程中的机器。构建这个受限视图涉及到 Golang 系统调用包中的很多调用。最初我只是用到了表面的那些但过了一段时间我想剥下洋葱的下一层看看这些系统调用是什么以及它们的工作原理。我将在 OSCON 的演讲中分享我所学到的东西。顾名思义syscalls 即系统调用它们是你从用户空间请求进入 Linux 内核的方式。内核为你做一些工作例如创建一个进程然后再回到用户空间。有一个常见的机制使所有的系统调用转换到内核这是由 libc 库处理的。 用户空间代码设置一些寄存器包括其想要的系统调用的 ID 以及需要传递给系统调用的所有参数。它触发一个 “陷阱” 将控制转换到内核。这就是用户空间代码如何向内核请求的而 Linux 也有一个伪文件系统它允许内核将信息传递给用户空间其内容看起来像普通的目录和文件。/proc 目录是一个很好的例子。看看里面你会发现有关机器上运行的进程的各种有趣的信息。在某些情况像 cgroups(控制组)那样用户空间可以通过写入这些伪文件系统下的文件来配置参数。当你在使用容器时特别有趣的是主机的 /proc 包含了所有有关容器化的进程的信息。这包括环境变量它们也保存在 /proc 伪文件系统中这意味着你的主机可以访问所有正在运行的容器的环境。如果你通过环境变量将诸如凭证或数据库密码这类秘密传递到容器中则可能会产生安全性后果。许多编写常规程序的程序员可能不觉得他们经常使用系统调用。但实际上他们会经常调用因为每天的活动比如制作文件或者更改目录都涉及 Linux 的系统调用。你不必是一位系统程序员才能享受系统调用的乐趣如果你想要了解更多Liz 会在 AustinTexas 举办的 OSCON 2017 上演讲 Linux 系统调用的初学者指南。(题图 opensource.com)作者简介Liz Rice - Liz Rice 是一位技术传播者也是 Aqua Security 的容器安全专家。此前她共同创立了 Microscaling Systems并开发了其实时伸缩引擎以及流行的图像元数据网站 MicroBadger.com。她拥有丰富的从网络协议和分布式系统以及数字技术领域如 VOD音乐和 VoIP 软件的开发、团队和产品管理经验。本文由 LCTT 原创编译Linux中国 荣誉推出