2 Days at LinuxCon 2017

有幸获得了 HACKx 赠送的 LinuxCon 2017 门票,于是便动身参加了 LinuxCon 2017,这也是 LinuxCon 首次在国内举行,顺便也在大会上见到了 Linus Torvalds。

Linus Torvalds @LinuxCon 2017
Linus Torvalds @LinuxCon 2017

这次的 LinuxCon 实际上是三个会议,其一不用说,就是 LinuxCon 了,然后是 ContainerCon 和 CloudOpen,官方合称为 LC3。此次 LC3 的 Keynote 和各展商的 Presentation 覆盖了以下 10 个方面

  • Programming Frameworks 编程框架
  • Application Platforms 应用平台
  • VM / VIM Managers 虚机管理
  • Containers 容器
  • Operating System 操作系统
  • Virtual Machines 虚拟机
  • Network Management & Orchestration
  • Carrier Networking 运营商网络
  • Network Controller 网络控制
  • Data Plane Services 数据平面服务

在这 10 个方面上,作为支撑的则是

  • Security 安全性
  • Governance, Operations & Ecosystem 运维
  • Licensing & IPR 许可和知识产权
  • Training & Certification 培训和认证

除了 Keynote Session 之外,各展商的 Presentation 都是同时在不同会议室展开的,我只去听了其中几场

  • Much Ado About Blocking: Wait/Wake in the Linux Kernel - Davidlohr Bueso, SUSE Labs
  • Rethinking the OS: A Travel Journal - Simora Arsene, SUSE
  • MD RAID1 and NVMe: High Performance Data Duplication - Coly (Yong) Li, SUSE Linux
  • Kubernetes Bootcamp 101 - Caicloud
  • LinuxCon K8S + TensorFlow Bootcamp 101 - Caicloud

要说什么的话,这次的 LC3 给我的感觉是(大部分)围绕 Container 来进行的,包括但不限于 SUSE、Intel、VMWare、Caicloud 在内的公司都在致力于为 Containter 提供更好、更易用、更安全的体验。

这里我挑选几个印象最深的来说说吧。

首先是 SUSE 正式发布了 SUSE MicroOS(Micro stands for Microservice),官方是这样描述的,

A purpose built Operating System designed for microservice & containers and optimized for large deployments.

一个专为微服务容器打造的,且为大规模部署优化过的操作系统。

主要特点则是

  • An always up-to-date Operating System
  • An easy to manage/upgrade OS
  • Easily setup/manage a cluster of nodes
  • scalable - up to 1000s of nodes

An always up-to-date Operating System(一个总是最新的操作系统)。关于更新这一点,可能有人遇到过更新之后出现问题的情况,SUSE 在这边使用了 Atomic Upgrade(原子更新),保证了在更新期间,即使出现了问题,也能回滚到更新前的状态。接下来,SUSE 做到 always up-to-date 的方案则是,一直在后台拉取更新,然后在系统负载低时进行更新。

SUSE MicroOS 则是作为 SUSE CaaS Platform 的组成之一,剩下则是 Kubernetes 和 Container Engines。

SUSE CaaS Platform 3 Key Technology Components v1.1
SUSE CaaS Platform 3 Key Technology Components v1.1
Source: https://www.suse.com/communities/blog/suse-caas-platform-whats-buzz/

关于 SUSE CaaS Platform 的更多信息,可以参考 SUSE 官方的博客

接下来则是 Intel 的 Clear Linux 和 Clear Container 技术。需要注意的是,虽然这两个项目命名方式类似,但是实际上是两个不相干的项目。

Clear Container 技术是为了给现有的 Container 提供一个虚拟机级别(例如 VMWare)的隔离。在现有的 Container Engine 技术中,由于不同的 Container 共享的是一个 Linux Kernel,如果其中一个感染了可以取得 Kernel 代码执行权限的病毒,那么这个病毒就可以绕过 Container Engine 的隔离,感染所有正在运行的 Container。

在 Clear Container 中,Intel 目前实现了与 Docker 无缝对接,利用 Intel VT-x 实现了 Kernel 级别的隔离,因此不同的 Container 也可以运行在不同版本的 Kernel 之上。当然,虽说是无缝对接,但是实际上还是多了一层,即 Intel VT-x 那层,据 Intel 的说明,目前在内部测试出来的开销并不大,启动一个 Container 只多 20ms 的样子,但是对文件读取的开销还没有非常明确,目前是将文件映射到内存以尽可能降低这方面的开销。

Clear Linux 则是另一个项目,这个项目的目标是构造一个尽可能小的 Linux 用于 Container,并且内核模块全部使用静态链接的方式换取速度与安全,如果你有特别的需求的话,可以自己在 Clear Linux 的基础上编译内核(当然也都是静态方式)。目前 Clear Linux 的 Container 镜像仅仅 5 MB。

量子力学在奇偶游戏中的运用

假设你和你的朋友在外闲逛时,突然被邀请参加一个便于本文接着写下去的游戏——奇偶游戏。游戏的主持人告诉你们,两位参赛者,友人 A 和你(那么不妨称你为便于后文表示的友人 B 吧w),在正式开始比赛之后,处于相互隔离(即无法交换信息)的状态。游戏的主持者会随机选取两个二进制位 $x, y\in \{0,1\}$。然后 $x$ 会交给友人 A,$y$ 自然是交给你,即友人 A 知道 $x$ 是 0 还是 1,但不知道 $y$ 的值;类似的,你知道 $y$ 的值,但不知道友人 A 手上的 $x$ 的值。你们需要根据自己所知道的值,分别给出一个二进制位 $a, b\in \{0,1\}$ 作为回答。

在你们都给出了回答之后,主持者先计算 $a \oplus b$ 的值($\oplus$ 代表异或运算),然后计算 $x\wedge y$ 的值。如果有 $a \oplus b = x\wedge y$,那么你们就获胜。(会获得什么奖品呢~我想要小裙子!

假设在比赛开始前(或者说参赛前),你和友人 A 可以在一起商量策略,设计一个使你们最大可能获胜的方案。那么传统的策略有两种,一种是确定型的,另一种是随机的。下面进入你们的讨论过程吧。

Continue reading 量子力学在奇偶游戏中的运用