为什么我们决定并反对Ubuntu核心

2021-03-16 06:17:14

当我们开始开发NextBox时,我们决定使用Ubuntu Core作为集成软件的操作系统。乍一看,Ubuntu核心似乎有很多优点,但遗憾的是,他们逐渐消失,甚至变成了问题。因此,我们必须修改这一决定并将系统改为Debian。本文介绍了导致此原因。

NextBox是一个带有NextCloud预装的硬件设备,它也针对没有技术理解的用户,但仍希望在其控制下运行安全系统。这导致其使用的操作系统的主要要求:

用户唯一控制。不需要使用我们的远程访问。

只要可能的安全更新,理想地是整个操作系统的可更新性。

与此同时,我们不想通过从头开始开发操作系统(或分布)来重新发明轮子,但我们希望使用符合上述要求的现有操作系统。

操作系统的开源景观非常多样化。不完全没有受到ubuntu作为可靠的,低管理的操作系统的积极经验,ubuntu核心在我们的雷达上出现了相对早期。 Ubuntu Core的概述列出了Nextbox的功能:"安全第一和#34;"篡改和抗拒腐败和#34;," 10年安全更新承诺&#34 ;,"最小的核心,最小的风险,最小的虫子"此外,还支持我们选择的硬件平台:覆盆子PI 4。

当然,经典的批评已经存在,特别是全球商店是将捕捉到设备上的唯一方法。对于NextBox,相关的安全机制甚至似乎是一个优势。显然,Ubuntu核心为独家安装捕捉的限制是一个双刃剑;然而,对于我们的要求个人资料,在安全性和鲁棒性方面基本上是良好的,并且是理想的。

但是,在这一点上,我们已经注意到所谓的品牌商店是使用Ubuntu核心的(明显的)选项。该文档描述了一个品牌存储,作为更大项目和软件供应商的其他功能。由于我们提供没有订阅成本的Nextbox,因此这种品牌商店的年度价格为30,000美元并不经济,因此不是一种选择。通过自定义图像,我们似乎可以在没有品牌商店的情况下做,因此解决了问题。

当然,我们在这一点上还调查了其他选择,但更稍后有更多信息......

一旦决定,就立即开发了概念验证。在此过程中,Snap Ecosystem的许多优点很快成为明显:

因此,我们在几天内开发并成功测试了概念。我们想,"哇,这将是好的,10年的安全更新,漂亮的生态系统,完美!"当然,在这一点上已经可见,我们必须适应这种生态系统,但我们很乐意鉴于快速进步。

兴奋并没有持续很长时间,第一次挫折不久即将到来:

NextBox必须具有将外部硬盘集成到系统中的能力。为此,UDISKS2被提出为解决方案,直到至少在2020年底之前,但这没有任何问题。 (今天' s ubuntu核心20文档不再推荐Udisks2。)

SNAP可理解地受到关于系统权限的许多限制。对此的解决方案被称为接口,乍一看似乎是一个相当迷人的解决方案:Snap宣布它所需的接口,并且可以在连接时立即使用它们。此时,我们没有将其视为真正的问题,而是作为这种生态系统的典型限制。

生态系统和自由的工具不允许我们创建可交付的图像。连接接口结果是更大的问题。

该计划是使用规范提供的工具来创建将写入SD卡的Ubuntu核心Nextbox映像,并在NextBox中与覆盆子PI 4一起发布。要实现这一点,有必要将小工具捕捉添加到图像中。不久所说的说法:刻破了覆盆子PI的适当的小工具,进行了调整,将其发布给Ubuntu全球商店进行建筑。

上述小工具捕捉成功构建,但无法将其添加到全球商店:"手动审查需要"不久之后,美国和规范之间的第一次接触发生。两个Salesmen在电话中告诉我们,这只是一个付费品牌商店。我们指出,我们如同规范,是一个开源公司,也没有赚取足够的资金,并为每年30,000美元的品牌储存支付费用。不幸的是,我们找不到妥协并被耸了耸肩。

"嘿,这是一个挫折,但这是开源,所以让'找到一个解决方案!"我们向自己说自己,因为我们开发了一个我们称之为A"黑客。"基本上,这个想法是使用我们的捕捉程序包在系统中获得所需的功能。然后启动生成的图像一次,安装了系统的系统,该服务运行捕捉作为根过程所带来的函数。这基本上删除了快照限制,并允许我们完全访问您只能与A&#34一起使用的所有内容;品牌商店"

基本上,这是我们长期以来的强制解决方案,我们已经将产品推出了它,而不是预期的,但"嘿,我们得到10年的更新"我们尽力减少尽可能减少黑客的风险。通过这种方法,我们能够成功实现Dyndns,USB访问和备份等所有基本功能。

几周后,Nextbox是一个成功的Kickstarter项目。 Canonical联系我们并希望技术上讨论该项目。当然我们立即同意,希望共同努力改善产品,甚至可以摆脱破解。

一段时间后,我们谈到了来自规范的两个软件工程师。主要发现如下:

承诺的10年的支持只是"良好的营销"实际上只有5年的支持。另外5年仅提供有偿品牌商店。这意味着我们可以从今天开始轻松获得ubuntu核心的3年安全更新。

Ubuntu核心18不能升级到Ubuntu核心20,而无需专门准备(未记录"特征")。我们可以在交付之前将软件升级到Ubuntu核心20,但我们使用的NextCloud Snap包仅适用于Ubuntu Core18.稍后升级到Ubuntu Core 20,我们必须在该字段中升级复杂的设备升级。

规范希望支持我们去除黑客并激励我们这样做。

黑客具有核心问题,即全球商店中的所有设备被识别为同一设备和#34;这可能导致问题"

哎呀,这对我们来说很难打击!尽管如此,还有一个建设性的"我们可以做到这一点"情绪。信息被交换,我们觉得有办法:没有黑客,ubuntu核心20和一堆工作。膝盖深在Ubuntu核心生态系统中,我们决定,"好的,我们'重新做到这一点。它' ll很好,支持在那里,让' s go!"

随着规范设想的新架构,第一个障碍不久即将到来:

接口只能使用网务过程自动连接。或者您只需有一个小工具,那就是付费品牌商店。

像GPIO,I2C等相互界面显然只能用于品牌商店。这与我们能够在未来实现进一步的硬件特征。

幸运的是,规范答复了我们,他们正在检查我们是否被允许在全球商店免费放置一个小工具。这将解决问题。

从那以后,我们没有听到任何从规范的任何东西。当然,规范从不为我们提供任何承诺或可靠的承诺。尽管如此,谈话的男高音是规范希望支持我们与Ubuntu核心右侧的Nextbox。不幸的是,到目前为止,这尚未实现。

最后,只有一个结论仍然存在:如果没有品牌商店,它就不起作用。这个paywall在无处不在地突然出现。即使我们在全球商店中获得了免费的小工具,Canonical肯定不会向我们提供任何保证,以及他们允许的时间。因此,Nextbox用户的风险将在未来的某个时刻,规范将从我们撤消这一特权,使NextBox从一天内更新到下一个,或者在最坏的情况下,无法使用。

事实上,在首页上广告的安全更新是,可以说最少,放置良好的营销,没有每年30,000美元的是不是真的,这是最大的失望。这不是我们对开源旗舰公司之一的期望的。甚至ubuntu核心的数据表甚至只暗示了与#34;最多10年的限制"

此外,显而易见的是,根据开源标准,我们没有选择足够严格。假设规范最终会停止存在或停止Ubuntu核心,对开源界的Ubuntu核心几乎不可能确保Neftbox将继续以有意义的方式使用。 Ubuntu核心的限制思想在这里显示了黑暗的一面。此外,应该提到的是,全球商店的守望限制了开源的固有自由。即使我们拥有一个品牌商店,几乎不可能将设备保持最新或通过社区进一步发展它们。

到底,我们没有其他选择,但要转向Ubuntu核心,以实现一个提供其承诺的Nextbox。

因此,通过这种新体验,我们再次分析并比较了可用的选项。如前所述,必须满足开始时描述的要求。此外,我们还注意到避免一个可能使系统无法使用(或不可突出)的守门员。在其他中,我们考虑了以下系统:

使用Buildroot,可以构建特殊定制的系统,因此具有最小尺寸。这将提供最小的攻击表面,因此允许安全系统。然而,由于这些原因,Buildroot图像的配置努力远非琐碎。同样,所得系统的灵活性是有限的,并且刻意缺席诸如包装管理器的奢侈品。 yocto或更常见的openembedded,另外提供了一个包管理器,但安全更新的各种和快速可用性缩短了Debian(稍后更多)。因此,它们是类似的分类:最初适应很适应,但稍后的灵活性和安全更新损失。但是,最大的挑战是可靠地更新整个系统。由于与Buildroot有责任为所使用的每个软件组件进行评估,安装和测试安全更新,这将是一个很高的维护工作。因此,不令人惊讶的是,许多基于这些小型系统的消费产品不足以提供安全更新。

Balenaos在灵活性,简单性和控制方面都在光谱的另一侧。原则上,除了主管容器之外,还使用容器编排。所以它'是一种类似的方法来掌握你的核心核心。生态系统也非常广泛,特别是不同硬件的广泛支持非常积极地脱颖而出。此外,OpenBalena是商用Balenacloud的自动替代品,它略有限制,但已经提供了最重要的功能作为开源解决方案。

这最清楚地显示为什么Nextbox不是IOT产品,至少不是在典卡或BALENA的解释中:OpenBalena允许通过SSH登录完全控制现场的设备。这显然不是我们想要为客户提供的东西。最后,NextBox应该是一个具有最小管理工作的设备,但绝不是我们控制的手段。

Debian提供了极大的社区和完全开放的优势。它与Ubuntu核心具有高相似性,因此最接近Ubuntu核心的用户体验,而无需上述限制。在系统规模和灵活性方面,我们几乎在Balenaos和Buildroot之间排名Debian:我们可以使用Debian软件包和额外的集装箱,以确保设备具有稳健和安全。与此同时,我们没有直接控制设备。仍然,用户仍然可以访问设备并安装其他包。

与Ubuntu核心相比,Debian当然非常稳定,在更长的时间内运行,包括自动安全更新。具体而言,对Debian Buster的长期支持计划于6月2024日至6月,通常额外2年,直到2026年可以预期延长长期支持。因此,如果没有我们的干预,NextBox将在今天开始提供安全更新约5年。这比Ubuntu核心18更多的是2年。我们的目标是在长期支持结束时提供最新的最新自动化可能性,从而获得另外5年的安全更新。通过Ubuntu核心,来自Ubuntu核心18到Ubuntu核心20的相应升级可能性将尚不清楚,因为这不是规范的!

我们使用Docker作为部署NextCloud及其依赖的核心技术,这使我们与Ubuntu Core' S拍摄方法相似的控制和限制。与此同时,我们更灵活,例如没有Gatekeer以使用GPIO。

我们通过以下类似概念构建与Ubuntu Core类似的强大系统。在这样做时,用户从Debian引入的灵活性中受益:

通过将写入密集型目录卸载到内部硬盘驱动器或SSD来最小的写入访问SD卡。

使用的容器的特定版本组合允许预先测试版本跳转,并使用Nextbox Debian包装作为整体推出。

无人值守升级提供安全更新并更新NextBox Debian包。由于APT的良好可积,我们还可以在将来直接从NextCloud Nextbox应用程序安装系统软件。

Ubuntu核心被宣传为"最小的核心,最小的风险,最小的虫子和#34;与Debian的比较很困难,因为它尚不清楚哪个系统区域是可比性的。尽管如此,我们能够使用Debian建立相对的精益系统:Ubuntu核心和Debian的基础系统每个都有大小约为1 GB。

Nextbox的整个功能现在可以由Debian封装提供,这为可测试性和平台独立性提供了许多优点。虽然后者也可以采用基于捕捉的方法,但只有一个品牌商店就可以。

从开发者和#39; S的角度来看,不再挤压到Ubuntu核心生态系统中的巨大救济。但当然这也意味着更多的责任,因为一般来说有更多的自由,当然它必须正确使用。

由于我们的系统架构,所谓的Hack,遵循常见的UNIX方法,转换为Debian只花了几天。 Ubuntu核心和Balenaos似乎在制造商(更好:运营商)保留控制的高价系统中。 据推测,这仅适用于具有订阅定价模型的高批量消费品。 这些系统更适合于例如工业系统和机器。 例如,可以使用Buildroot建造的特殊定制的系统似乎对小硬件更有意义。 此外,维护努力并不微不足道。 在像覆盆子PI(Nextbox)这样的相对强大的硬件上,我们的额外努力似乎是不必要的。 通过Debian,我们有一个系统,我们在ubuntu核心承诺的服务中,我们需要很少的努力,我们需要Nextbox:小型系统规模和高安全性,鲁棒性,许多年度安全更新,良好的硬件支持和全自自由。