生成式AI领域的最新成果都在这里!抢 QCon 展区门票 了解详情
写点什么

systemd 和容器的姻缘

  • 2015-09-28
  • 本文字数:1300 字

    阅读完需:约 4 分钟

systemd 是 Linux 平台下的一款系统和服务管理器,兼容 SysV 和 LSB(Linux Standard Base)启动脚本。近日,CoreOS 团队采访了 systemd 项目的创始人 Lennart Poettering,探讨了 systemd 的历史,以及与容器结合、未来的规划等问题。目前,Arch Linux、CoreOS、Debian、Fedora、openSUSE、Ubuntu 等 Linux 发行版已经将 systemd 作为默认的服务管理器

systemd 历史

Lennart 描述,在创建 systemd 项目之前,他们曾经非常关注由 Canonical 公司(Ubuntu 发行版维护公司)创建的 Upstart 项目。Upstart 是严格事件驱动,代码比较简洁,当时已经被 Ubuntu 和 Fedora 等发行版采用。但是经过细致了解,Lennart 发现 Upstart 的基础设计是倒退的。他认为系统管理器应该计算到启动时的细节,而不是像 Upstart 那样只计算一个大概的工作,将细节留给开发者和系统管理员。因为这些区别,systemd 项目开始创建。

在 systemd 项目的创建之初,这些创建者们从系统管理员和其他系统启动器中汲取灵感。最初 systemd 被设计成仅仅是一个初始化(init)系统,即作为一个独立的启动进程,完成 Linux 用户空间启动的基础工作。然后,启动并不是 systemd 需要解决的唯一问题,后续,systemd 主要在 Linux 用户空间的创建和运行时维护上进行了大量工作。

目前,systemd 已经可以被看做是操作系统构建过程中需要的基础构建模块集,它除了是一个初始化系统之外,还包括了设备管理、登录管理、网络管理、日志模块等等。

systemd 和容器的关系

现代系统和服务管理中越来越多的应用到了容器。容器本身包含了应用需要的所有依赖,systemd 的作用,就是作为粘合剂,将容器和操作系统结合起来。

目前,在 systemd 中,一些命令已经能够直接感知到容器。这些命令的控制和信息获取,除了针对当前主机,也能够针对主机上的所有容器。例如journalctl命令,除了支持显示主机日志之外,还能显示主机上运行的容器输出的日志,并且可以将所有容器、主机的日志合并和一个日志流。

对于 systemd 来说,除了能够支持管理容器的运行,同时也能够运行在容器中。目前对 systemd 的大部分测试本身就是在容器中完成的,这是因为和物理机器相比,容器有着更快的启动速度,并且更容易进行测试。

systemd 现在也包含了一个命令systemd-nspawn用于管理容器。起初编写这个命令的目的是为了测试 systemd,但是现在它已经可以作为生产用途。事实上,CoreOS 的 rkt 容器工具,已经在使用这个命令作为底层容器后段。

更多 systemd 和容器、操作系统相关内容,可以观看 Lennart 在 CoreOS Fest 上的演讲: systemd at the Core of the OS

systemd 和其他容器工具的结合

目前 systemd 和 rkt 的结合已经基本上完成,rkt 使用 systemd-nspawn 作为它的容器后端。对于 systemd 的开发者来说,他们更加希望 systemd 能够专注于单机的管理,而上层的工具,如 rkt,可以基于 systemd,提供诸如分布式、网络感知高级等功能。


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-09-28 19:002391

评论

发布
暂无评论
发现更多内容

[开源更新]企业级身份管理和访问管理系统、为数字身份安全赋能

小狗围观科幻

软件测试/人工智能|PyCharm常用快捷键指南

霍格沃兹测试开发学社

用数字人进行直播带货的详细教程!

青否数字人

企业怎样用数字人实现降本增效?

青否数字人

Rust std fs 比 Python 慢!真的吗!?

Databend

超赞!让vue开发效率翻倍的工具分享

秃头小帅oi

Vue 前端

第16届中国R会议暨2023X-AGI大会开幕,和鲸科技分享ModelOps在数据科学平台中的实践与应用

ModelWhale

R语言 数据科学 算法模型 ModelOps 计算平台

要做职业规划么?我的三个机遇以及一个坚持

非晓为骁

个人成长 职业规划 坚持 目标 工作思考

飞书深诺接口自动化测试落地实战

飞书深诺技术团队

质量 AIGC #人工智能

“降本增效”才是选择低代码开发的主旋律

互联网工科生

软件开发 低代码开发 JNPF

2023~2024第三届瑞云渲染3d创造大赛报名方法

Renderbus瑞云渲染农场

云渲染 渲染农场 云渲染平台 3d渲染比赛

C# 泛型编译特性对性能的影响

快乐非自愿限量之名

c 编程语言 编译

如何解决在使用虾皮Shopee店铺详情API接口时遇到的问题?

技术冰糖葫芦

API 文档

用 LangChain 搭建基于 Notion 文档的 RAG 应用

Zilliz

Milvus Zilliz AIGC langchain rag

KubeBlocks与OceanBase完成产品兼容互认,可以使用KubeBlocks管理你的OceanBase集群啦!

小猿姐

云边协同的RTC如何助力即构全球实时互动业务实践

ZEGO即构

边缘计算 实时音视频 MSDN 云边协同 音视频质量

和鲸科技与国科环宇建立战略合作伙伴关系,以软硬件一体化解决方案促进科技创新

ModelWhale

软件 服务器 算力 大模型 计算平台

如何有效的进行 E2E

优测云服务平台

测试 测试技术

数仓实践丨常量标量子查询做全连接导致整体慢

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 华为云GaussDB(DWS)

屏幕截图工具 Snagit mac 2023.2.4中文版

iMac小白

软件测试/人工智能|教你轻松掌握Python输入与输出

霍格沃兹测试开发学社

只需两步生成自己的数字人形象!

青否数字人

WPF应用开发之附件管理

快乐非自愿限量之名

开发者 微服务附件 开源WPF项目

井然有序 | AIRIOT智能安防系统解决方案

AIRIOT

物联网 智能安防

获取体育比分、赛事直播源的途径,以及数据API接口的应用

软件开发-梦幻运营部

虾皮Shopee店铺详情API接口返回的数据包括哪些信息?

技术冰糖葫芦

API 开发

滴滴遭遇重击:12小时内损失千万订单量与超4亿成交额,背后有何启示?

EquatorCoco

滴滴 崩溃分析 滴滴出行

人工智能的技术研究与安全问题的深入讨论

不在线第一只蜗牛

人工智能 安全 信息安全

Reallusion Cartoon Animator for Mac(2D动画设计制作软件) v4.51.3511.1完美激活版

mac

苹果mac Windows软件 Reallusion 2D动画设计制作软件

Ableton Live 12 for Mac(音乐制作工具)激活版

iMac小白

整车级虚拟标定:降本增效

DevOps和数字孪生

汽车产业 虚拟汽车

systemd和容器的姻缘_语言 & 开发_金灵杰_InfoQ精选文章