您是 UBOS 的掌控者
UBOS 是一个新的 Linux 发行版,我喜欢它的两个原因。一是它致力于让普通用户能够轻松地设置自己完全独立的个人家庭服务器,而无需或几乎无需专家的帮助。另一个原因是它来自我的朋友 Johannes Ernst。

在撰写本文时,它正处于 beta 测试阶段,可以在 PC、Raspberry Pi B 型和 B+ 型号以及 VirtualBox 中的 Mac 上运行。 它已经过 ownCloud、Known、WordPress、Mediawiki、Selfoss、Shaarli 和 Jenkins 以及其中一些插件的测试。
Johannes 说
我的目标是让用户管理个人服务器的难度降低 10 倍,并让开发者更容易创建不监视我们并部署它们的“个人数据”Web 应用程序。 随着时间的推移,我们将使 UBOS 能够运行在尽可能多的硬件上,并预装许多与“个人数据”相关的中间件。 我们已经在与两个物联网项目合作,使 UBOS 成为他们在硬件上默认运行的操作系统。 想象一下,如果您购买的所有物联网产品都是“独立的”,而不是与某些企业巨头的统治世界的战略捆绑在一起? 为了做到这一点,我们需要让管理变得更容易。
以下是一些实现方法
-
Web 应用程序的单命令部署,具有自动数据库配置、Web 服务器配置等等——包括 SSL 设置。
-
完整的虚拟主机——例如,您可以在同一主机上运行两个具有不同插件的 WordPress 实例和一个 ownCloud 实例,分别位于 http://personal.example.com/blog、http://home.example.com/news 和 http://home.example.net/owncloud。
-
单命令卸载.
-
单命令完整系统升级,它备份您的所有数据,升级从操作系统到中间件再到应用程序的所有代码,运行可能需要的数据迁移,并重新部署您的所有应用程序。
-
单命令备份和恢复安装在同一主机上的全部或部分应用程序。
Phil Windley 是 picos(持久计算对象或虚拟事物)和 CloudOS(picos 的操作系统,我们 2013 年 10 月刊的“第一个个人平台——面向一切”的主题)的创建者,也是我在我称之为个人事物互联网方面的导师。 当我向他询问他对 UBOS 的看法时,他回复道
在“个人云”领域,围绕设备、传感器和其他人们将使用的“事物”,以及围绕个人控制和所有权,正在发生一场健康的梳理。 Picos/CloudOS 旨在为用户控制下的事物以轻量级方式提供特定服务。 Picos 允许个人数据保持个人化。 因此,picos 和像 UBOS 这样的系统相关的第一个方面是人们意识到他们需要控制生活中的一切:文字、个人数据、事物或任何东西的头脑中。
更技术性地说,UBOS 和 picos 可以通过以下方式交互
1) 您可以将您的 picos 托管在您自己的 UBOS 服务器上。
2) 您可以从这样的平台监控和控制它们。
3) UBOS 将是运行您的个人(基于 UMA?)授权服务器的绝佳场所。
为了完全理解这一点,我采访了 Johannes。
DS:根据 DistroWatch 的说法,已经有数百个 Linux 发行版了。 为什么还要多一个?
JE:市场存在一个漏洞,它就在家庭中。 UBOS 专注于使家庭服务器的管理更加简单,这并不是大多数发行版非常关注的事情。
时机也恰到好处。 首先,硬件已经变得足够便宜和强大,可以在家中运行 Web 服务器。 现在许多人将他们的日历、个人照片和其他重要的私人数据远离主要的云提供商,因为他们宁愿将它们存储在他们可以控制的硬件上。 其次,酷炫的物联网项目的开发者几乎总是需要 Web 服务器,这样他们就可以通过 Web 打开他们的车库门、设置他们的恒温器或浇灌他们的植物。 虽然其中许多是 35 美元的 Raspberry Pi,但它们仍然需要与用于商业目的的任何大型 Linux 服务器相同的维护量。
借助 UBOS,我们着手使这些个人拥有的服务器的管理速度至少提高 10 倍,难度降低 10 倍,以便更多人可以在家中运行自己的服务器,构建更多酷炫的物联网项目,并将他们的数据保存在家中并保持私密性,而不会将家庭服务器维护变成一项全职工作。
DS:“10 倍”更快的系统管理是一个很大的说法。 您如何支持这一点?
JE:想想您需要在服务器上安装 Web 应用程序(例如 ownCloud)需要做什么。 这通常涉及
-
查找和下载 tar 文件。
-
完整的虚拟主机。 例如,您可以在 http://personal.example.com/blog、http://home.example.com/news 和 http://home.example.com/owncloud 上运行两个具有不同插件的 WordPress 实例和一个 ownCloud 实例。
-
配置 MySQL 数据库。
-
编辑应用程序配置文件并修复权限。
-
设置日志记录。
-
重启服务器等等。 安装单个应用程序很容易花费几个小时,通常需要真正的 Linux 管理知识。 我们认为应该更容易,以便更多人可以更快、更可靠地完成它。
在 UBOS 中,您输入 sudo ubos-admin createsite
。 UBOS 将询问您几个问题,例如所需的虚拟主机名或是否需要 SSL,然后 UBOS 会为您完成所有这些步骤。 总耗时:可能一分钟。
这已经适用于许多 Web 应用程序,包括 ownCloud、WordPress、Mediawiki、Selfoss、Shaarli、Known 甚至 Jenkins,其中 UBOS 自动设置 Apache 反向代理到 Tomcat。
当需要升级时,服务器管理更加耗时,而且我们不都希望出于安全原因而修补我们的网站吗! 您需要完成以上所有操作,但还要在之前备份数据(不要忘记应用程序可能已写入有价值文件的任何位置!),并且可能需要手动运行数据迁移。 像 WordPress 这样的一些应用程序已经使其变得容易,但大多数应用程序还没有。 在 UBOS 中,它很简单:sudo ubos-admin update
。 您可以放松身心,而 UBOS 会为您在个人服务器上所有虚拟主机上安装的所有应用程序完成以上所有操作。
DS:为了让 UBOS 可以管理您列出的 Web 应用程序,您需要对它们进行哪些更改?
JE:到目前为止,我们还没有必要 fork 它们中的任何一个,所以这非常简单。 主要是向应用程序包添加一些 JSON 元数据,并参数化配置文件,以便 UBOS 可以正确“编辑”它们。 有时需要一些额外的脚本,但很少。 所有当前的应用程序都在 GitHub 上,网址为 https://github.com/indiebox。
DS:现有的发行版中是否有一个接近您希望通过 UBOS 给世界带来的东西?
JE:UBOS 是 Arch Linux 的衍生产品,我们非常依赖它。 您可以将 UBOS 视为 Arch 的子集,加上 UBOS 管理工具以及使 ubos-admin 工作所需的额外元数据和约定。
我们继承了 Arch 的许多优点——例如,它是一个滚动发布发行版,因此我们永远不必对用户强制进行重大升级; Arch 上的软件包永远不会过时,因为我们确实想运行最新最好的软件包,而且 Arch 社区及其 wiki 非常棒。 UBOS 甚至无需重新编译即可使用许多 Arch 软件包。
我们最初只是简单地将我们的管理软件包添加到 Arch 中,但是因为我们想确保应用程序始终正确安装和正确升级,所以我们需要控制何时向服务器提供升级的软件包。 因此,正是质量保证过程的需求导致我们创建了一个具有独立存储库的新发行版。
DS:除了这次采访,您还将如何吸引黑客加入并改进代码?
JE:我们刚刚发布了首个 UBOS beta 版,适用于 x86_64 和 Raspberry Pi,因此我们才刚刚开始。 下一步是不可避免的错误修复、更简单的网络设置、如果用户需要,可能会有更多的硬件平台以及更多的应用程序。
但随后,我们正在寻求与 Web 应用程序的开发人员合作,他们希望让用户更容易安装他们的应用程序,并与物联网硬件的开发人员合作,他们希望让开发人员更容易在他们的硬件上运行和维护 Web 应用程序。 我们在这里都有相同的目标——让家庭服务器更容易——我们邀请任何认同此目标的人帮助实现它。
您也可能是一个真正沮丧的家庭用户,已经厌倦了在周六下午修复 /etc/i/forget/what,并且更愿意帮助一劳永逸地解决问题。
DS:您所说的个人服务器是什么意思? 我可以猜到,但我宁愿您告诉我。 除了它们存在的位置之外,这些与个人云、存储、储物柜和保险库有何不同?
JE:在我看来,所有这些都描述了同一头大象的不同部分。 对我来说,个人服务器是一台主要通过网络访问的计算机,但我拥有它的 root 访问权限,其他人没有。 (或者至少如果我想拥有 root 访问权限,我可以拥有,并且我可以从任何其他人那里取消 root 访问权限。) 这样的个人服务器可以是物理硬件,也可以是云中的虚拟硬件。 它与非个人服务器的不同之处在于,我将此服务器用于我自己的个人目的以及我的家人的目的,而不是为公众设置网站。
个人云、个人数据储物柜或保险库将是个人服务器的一种用途。 另一种用途是控制家庭电器。 许多类型的个人应用程序在个人服务器上都有其天然的家,因为根据其定义,除了所有者之外,没有人可以接触到该服务器上的数据。
DS:为什么只针对 Web 应用程序?
JE:软件包管理器非常擅长帮助管理 Linux 机器上的大多数代码,而 UBOS 在很大程度上依赖 pacman。 但是它们无法管理 Web 应用程序,因为它们不(并且不能)帮助进行 Web 服务器配置、数据库配置等等。 ubos-admin 位于 pacman 软件包管理器的顶部,并添加了额外的自动化层。
DS:您所说的“智能物联网设备”是什么类型的?
JE:似乎正在出现四种类型的物联网“设备”
-
传感器,例如,温度计,通常具有非常低的功耗要求。
-
执行器,例如,用于打开某些东西的继电器。
-
云服务器。
-
家中连接互联网到传感器和执行器的高功率设备。 对于许多爱好者来说,这通常是 Raspberry Pi。
最后一类设备通常足够强大,可以运行 Web 应用程序。 事实证明,对于许多家庭物联网应用程序,根本不需要在云中运行 Web 应用程序。 那么为什么不将这些设备变成直接运行 Web 应用程序的设备呢?
这还有一个额外的优点,即我们的个人物联网数据在家中保持私密性,并且不会被云提供商滥用。
DS:“我们自己的事物互联网”的最终状态是什么? 或者至少是 Linux Journal 读者可以渴望的状态——并贡献一些代码和产品?
JE:作为极客,以及作为一个行业,我们在这里需要做出选择,关于我们希望十年后的物联网看起来如何。
有“NEST 方式”,即完全封闭的设备 100% 依赖于连接到某些企业巨头。 在这种情况下是谷歌。 有些人认为这些外观精美的设备首先是监视设备,其次才是恒温器。 我想他们有道理。 无论如何,我们对它们的功能和 服务条款,以及它们如何处理我们的数据,没有任何控制权。
还有用户拥有、自由/开源、“独立”的方式,其中每个设备——至少原则上——都是可破解的。 数据保留在家中,或者至少只与任何人共享,因为设备的所有者决定他们想要这样做。 在那里我们可以运行我们想要在任何我们购买或构建的设备上运行的代码。 在那里,互操作性不受一些大公司本周是否彼此相爱或憎恨的影响。
就我个人而言,我对第一种情况感到震惊,而且我知道许多其他极客也是如此,因为所有这些伟大的物联网项目都在各地不断涌现。 下一步是使这一切足够可靠和可维护,以便不仅仅是极客可以控制自己的家。 UBOS 是朝着这个方向迈出的一步,但还需要许多其他步骤。 事实上,我们可能需要真正的集体努力,共同创建一个“我们自己的事物互联网”。 有人愿意吗? 我愿意!
LJ:我们也愿意。
资源
UBOS:http://ubos.net
Johannes Ernst:http://upon2020.com/blog
Phil Windley:http://www.windley.com
Picos:http://www.windley.com/archives/2014/09/events_picos_and_microservices.shtml
CloudOS:http://cloudos.me
Doc Searls 的“第一个个人平台——面向一切”(在 LJ 2013 年 10 月刊中):https://linuxjournal.cn/content/first-personal-platform—-everything
UMA:https://kantarainitiative.org/confluence/display/uma/Home
DistroWatch:http://distrowatch.com