标签 FreeBSD 下的文章

这是运行在 AWS Firecracker 上的,当然,同时也有其他的新兴微 虚拟机 microVM 引擎可供选择。

在更换了 FreeBSD 内核中的排序算法后,其启动速度提高了 100 倍以上……虽然这是专门针对 微虚拟机 microVM 的优化,但所有人都应能从中受益。

过去五年,微虚拟机在科技研发领域中备受关注。其核心理念是重新包装和创新了 IBM 在 1960 年代随着 虚拟机管理程序 hypervisor 诞生所发明的 一些概念和技术:设计专门作为另一个操作系统上的访客系统运行的操作系统。这意味着该操作系统必须专门构建在虚拟机内执行,并与特定的管理程序提供的资源进行交互,而不是模拟硬件。

这就意味着访客操作系统几乎不需要针对真实硬件的支持,只需要 VirtIO 驱动,它们可以直接和宿主机的管理程序提供的功能进行交互。反过来说,管理程序无需提供模拟的 PCI 总线、模拟的电源管理、模拟的显卡、模拟的网卡等等。结果就是,管理程序本身可以变得更加微型和简化。

通过无情地缩减虚拟机监视器和运行在其内部的操作系统,这让两端都能更小、更简洁。意味着虚拟机能更少的使用资源,并能更快速地启动。

目前,这个商业目标是提供 “ 无服务器 serverless ” 的计算能力。实际上,“无服务器” 是一种市场双关语:当然,真实世界中的服务器仍存在于某个数据中心中。但这与提供“基础设施即服务(IaaS)”模型不同,而是提供“函数即服务(FaaS)”的模式。这就代表着你不需要了解任何有关基础设施的知识 —— 你的程序直接调用另一个程序,然后管理工具会运行所需的特定操作,返回结果,然后删除用于执行计算的虚拟机。你根本不需要知道这过程在何处,如何进行。

对消费者来说,这种技术的优势在于其快速和易用性。而对服务提供商而言,因为能够更快地回收和再利用资源,使得相同的硬件能服务更多的客户,这是一个巨大的优势。

AWS 通过一项名为 Lambda 的服务提供 FaaS,这个名称是来源于一个深奥的函数式编程术语。Lambda 由亚马逊自家研发的 Firecracker 管理程序提供支持,Firecracker 同样也支撑着 Fargate 这一无服务器服务。

Firecracker 基于 Linux 内核的内建 KVM 管理程序:这本身就有别于之前 AWS 基于 Xen 管理程序 的实践。这也就意味着它本质上是一个 Linux-on-Linux 的解决方案。这听起来对 FreeBSD 内核开发者 Colin Percival 来说像是一个挑战,正如我们 一年前的报道:他决定在 Firecracker 上运行 FreeBSD。然而就如同大部分的计算任务一样,优化的过程大致上是:首先,让它可以运行;然后,提高其运行速度。

根据他本周稍早的一则 推文,他最新的性能优化成果相当令人震惊:替换排序算法使 FreeBSD 内核启动过程加速了约一百倍,将内核加载时间降至了惊人的 25 毫秒。换言之,只有四十分之一秒的时间。

FreeBSD(HEAD)现已不再执行其 SYSINIT 上的冒泡排序。如今,我们运行的是更高效、速度大概快了 100 倍的归并排序:https://cgit.freebsd.org/src/commit/?id=9a7add6d01f3c5f7eba811e794cf860d2bce131d

当 FreeBSD 内核在 Firecracker (配备 1 CPU,128 MB 内存)中启动时,现在有大约 7% 的时间用于执行其 SYSINIT 上的冒泡排序。

当你需要对上千个条目进行排序时,O(N^2) 的复杂度可能会带来较大的影响。因此,是时候将冒泡排序替换为更高效的算法了。

这一调整只是一系列优化措施中的最新一个环节,两天后,他进一步 详细 阐述了这些优化。这包括了引导所需的初始更改:消除了假定在 Xen 下引导的一些初始化步骤,然后查询 ACPI 获取处理器的类型和数量。这一步出现了问题,因为 Firecracker 并未提供 ACPI。接着,对其仿真的唯一的硬件,串行控制台,进行初始化也失败了。

在内核成功启动之后,内存的使用迅速成为了一个问题:Firecracker 默认只给客户端分配了 128MB 的内存,原因在于一个必须修改的假设。之后是一整套的优化清单,每一项都为减少时间作出了一部分贡献。

即便你不是特别懂技术,阅读这篇文章也会很有趣。一些步骤更改了在专用硬件上引导的合理选择,在虚拟环境中,这些选择在机器产生、做工作、然后在几秒钟内再次被删除的情况下,已经无法适用。

Percival 评论 称:

我相信在相同的环境下,Linux 的引导时间是 75-80 毫秒,而我已经让 FreeBSD 在 25 毫秒内引导。

接着 说道:

当我开始研究提速引导的过程时,内核大约需要 10 秒钟的时间来引导,所以现在我拥有的内核引导速度,比我几年前快约 400 倍。

目前,已经优化的系统内核是 FreeBSD 14 版的,运行在 x86-64 架构上,但也正在进行适配到 Arm64 的工作 —— AWS 是世界上 最大的 Arm 服务器用户

Firecracker 是众多备受瞩目的微虚拟机中的一员,但也有其他的微虚拟机,而且它的成功也激励了 QEMU 开发者增加了一个 微虚拟机 平台。Canonical 的开发者 Christian Erhardt 在 博客 上介绍了如何在 Ubuntu 中使用这种技术,并且在线代码开发环境供应商 Hocus 最近 解释 了为什么它从 Firecracker 转移到了 QEMU 等价物。

我们可以看到微虚拟机有很多潜在的使用场景,不仅仅是在云场景中。能够在一个完全不同的 OS 上运行为另一个 OS 构建的单个程序,而不需要始终运行完整的模拟环境,可能在各种情况下都非常方便。

容器是一个非常有用的工具,但在容器中你只能运行与宿主 OS 相同的二进制文件。运行任何其他的东西 —— 比如在 macOS 上运行 Docker Linux 容器 —— 意味着有一些模拟和一个访客操作系统被隐藏在堆栈的某个位置。这个 VM 能够越小,并且使用的资源越少,无论是对容器还是整个机器的整体性能来说都会更好。

(题图:MJ/a5910e84-656d-4a5c-abad-bb0b0ffcb3fc)


via: https://www.theregister.com/2023/08/29/freebsd_boots_in_25ms/

作者:Liam Proven 译者:ChatGPT 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

众包工人用 AI 为 AI 做数据标注工作

AI 模型是建立在人类劳动的基础之上的,高质量的数据标注对 AI 模型至关重要,AI 公司通常会雇佣廉价的众包工人做一些数据标注工作。但研究显示,随着 AI 聊天机器人,如 ChatGPT 的流行,众包工人开始利用 AI 做这些数据标注的工作。瑞士洛桑联邦理工学院的研究人员招募了 44 名众包工人来对 16 篇医学研究论文总结摘要,根据记录的击键情况,比如按下复制快捷键等,他们估计有 33-46% 的摘要文本是用 AI 生成的。

消息来源:The Register
老王点评:还记得前两天我们的#1032 期报道吗,显然这种 AI 吃 AI 的狗粮的事情已经在发生,并且会越来越多。而且,AI 真的能分清楚哪些是 AI 生成的么?可能会越来越难。

FreeBSD 本月庆祝其三十岁生日

1993 年 6 月 19 日,从 386BSD 项目中分裂出来的 FreeBSD 正式有了这个名字。但第一个正式版本直到 1993 年 11 月才发布。FreeBSD 14 将于未来几个月后发布,晚于预期计划。

消息来源:FreeBSD
老王点评:虽然不如 Linux 那么流行,但是 FreeBSD 仍然是一个独特而重要的操作系统。当然,这里面故事很多,感兴趣的朋友可以了解一下。

GPT-4 生成的商业计划书更受投资者青睐

虽然用 AI 撰写商业计划书能节约很多时间,但更重要的是,AI 撰写的比人类撰写的更好,更吸引投资。有公司邀请了数百名投资者和企业主对一组由人类创造和 GPT-4 生成的商业计划书进行评分,他们并不知道有 AI 参与撰写。而且,其中人类撰写的计划书来自于已经获得融资的成功案例。结果显示 GPT-4 生成的商业计划书比人类更有效,被认为在质量、关键要素描述和问题描述上胜过人类。调查显示,在投资者和企业主阅读了 GPT-4 的计划书之后,投资可能性为人类的三倍,他们认为 AI 生成计划书的说服力是人类的两倍。

消息来源:ZDNet
老王点评:投资人可能会想,那我为什么不直接投资 AI 创建的企业呢?这一天或许不远了。

欧盟拟议的《网络弹性法案》可能对开源产生可怕的影响

欧盟拟议的《网络弹性法案(CRA)》被称之为软件产品的 “CE 标志”。它有四个具体目标,其中之一要求制造商在 “整个生命周期” 内提高数字产品的安全性。对于软件开发商和硬件制造商来说,这将增加新的网络安全要求、合格评估、文件和报告义务的直接合规成本。这个成本预计将达到 290 亿欧元,但预计可以减少安全事件带来的成本为 1800 至 2900 亿欧元。问题是,自由软件开发者如何能够承担合规成本?这可能打破了开源生态系统的社会契约:免费提供用于任何目的的开源软件,可以自由修改和进一步分发,但作者、贡献者或开源分销商没有保证或责任。

消息来源:Dev Class
老王点评:我觉得,开源软件的基石不容触动,CRA 尽可以去约束那些商业的专有软件。

美国联邦调查局黑掉了勒索团伙

美国联邦调查局的政府黑客闯入了勒索团伙 Hive 的网络,并对该团伙进行了监视,窃取了该团伙用来解锁数据的数字密钥。然后他们提前提醒受害者,以便他们能够在 Hive 要求付款之前保护他们的系统。美国司法部表示,多年来,Hive 入侵了 80 个不同国家的 1500 多名受害者,勒索金额超过了 1 亿美元。周四,Hive 的网站被查封,并在该网站显示了查封信息。政府黑客对 Hive 的监视从 2022 年 7 月开始直到被查封前,都没有被 Hive 发现。

消息来源:路透社
老王点评:政府黑客技高一筹啊,看来是懒得和勒索黑帮玩下去了。

2022 年 FreeBSD 没有达到筹款目标

FreeBSD 发布了其 2022 年第四季度的状态报告。根据报告,他们 2022 年的筹款目标是 140 万美元,而截至现在大约是 114.7 万美元。他们正在考虑引进一个能够鼓励组织投资于 FreeBSD 的人。报告中其中值得关注的信息还有:发布工程团队正在努力推出 FreeBSD 13.2;正在开发集成应用容器 Vessel,以类似 Docker 的界面向应用开发者展示许多 FreeBSD 的特性。

消息来源:Phoronix
老王点评:FreeBSD 的日子比起来 Linux 惨淡得多,但是 FreeBSD 依旧带来了很多技术进步。

回音

  • AI 律师(#874)背后的公司受到多个州的律师协会 起诉,称未经授权进行律师执业活动在某些州属于轻罪,因此原定于 1 月 22 日的 AI 律师参与的庭审被取消了。

安全研究人员根据修复补丁,直接在网上公开了 Chrome 漏洞

一名印度安全研究人员公布了一个最近发现的漏洞的概念验证利用代码,该漏洞存在于 V8 JavaScript 引擎中,影响了谷歌 Chrome、微软 Edge 以及 Opera 和 Brave 等其他基于 Chromium 的浏览器。

该漏洞在上周举行的 Pwn2Own 黑客大赛中被使用,参赛选手因此赢得了 10 万美元的奖金。根据比赛规则,关于这个漏洞的细节被交给了 Chrome 安全团队,谷歌将修复补丁提交到了 V8 引擎,但尚未及时发布到 Chromium 浏览器中(本文发布时已更新修复)。结果,另外一位安全研究人员根据该补丁重现了该漏洞,并将其发布到了 GitHub 上,并通过 Twitter 公之于众。

研究人员所发布的并非完全武器化的漏洞,利用也需要一定的条件。但这件事凸显了“开源补丁间隙”问题,在安全补丁传递到下游之前的空隙期间,可能带来更大的安全风险。

FreeBSD 13.0 发布

新版本包含了大量的软件更新;64 位 ARM 架构现在与 x86\_64 并列成为一级架构;ZFS 采用 OpenZFS 实现;LLVM Clang 11 成为默认的编译器工具链;移除了各种过时的老版本工具,如旧版的 GDB、GCC 和 Binutils;以及因为质量原因,这次对 WireGuard 的支持未能加入。其它亮点可参见基金会文章

这是一个值得关注的大版本,可惜的是 WireGuard 没能进入。

Apache 软件基金会撤下了大量的 Hadoop 相关项目

从 4 月 1 日开始,Apache 软件基金会(ASF)宣布至少有 19 个开源项目退居“ 阁楼 Attic ”,其中 13 个与大数据相关,10 个是 Hadoop 生态系统的一部分。ASF 表示这是常规的项目退役高峰,经过了项目管理委员会到董事会的投票,这些项目被放到了“阁楼”。

这或许是 ASF 内部进行清仓,但是似乎也能表明,Hadoop 已经在优胜劣汰中处于劣势,让位于 Spark 了。

50 岁大叔用 FaceApp 冒充“超人气美少女骑手”,揭穿后却得到了更多支持

一位日本车手“宗谷の苍氷”经常在 Twitter 上晒自己的“超人气美少女骑手”照片,“她”在几个月内收获了 1.7 万粉丝。然而,最近“她”参加了一期综艺节目,揭穿了自己其实是一位 50 岁的大叔,所贴出来的照片都是使用著名的换脸应用 FaceApp 处理过的。原因是他一直在 Twitter 分享自己玩机车的照片,但是关注寥寥。在发现 FaceApp 后,他想,人们应该更爱看一个“年轻美丽的女人”,而不是一个“中年大叔”。于是就在几个月内变身成了一位“超人气美少女骑手”,获得了大量关注和互动,有的推文能获得上千点赞。

或许你会觉得被揭穿后,这位“超人气美少女骑手”会被网友们唾弃取关。不料,该节目播出后不仅没有引起观众反感,粉丝数还增加了,一周就新增了 8000 粉丝。网友们表示,这属于 Deepfake 技术的“善意”使用。

看到这篇新闻,想到我主持的“硬核观察”寥寥无几的数据,我不禁陷入了深深的思考。

谷歌支持使用 Rust 编写安卓代码

安卓操作系统大量使用了 Java,有效地保护了安卓平台的大部分内存错误。但是,对于操作系统的下层来说,Java 和 Kotlin 并不适用。虽然谷歌投入了大量精力,防止了大量的 bug 进入安卓操作系统,而适用于此场景的 C 和 C++ 中的内存安全漏洞仍然是最难解决的不正确性来源。

因此,谷歌刚刚宣布,Android 开源项目(AOSP)现在支持 Rust 编程语言来开发操作系统本身。Rust 在实现这种安全性的同时,还能提供与 C 和 C++ 相当的性能。当然,这并不意味着谷歌会用 Rust 重写数百万行安卓代码,而是会逐渐使用 Rust 编写新的代码,因为随着时间的推移,旧代码中的 bug 也在逐渐减少。

看来 Rust 进一步蚕食 C/C++ 领域的机会已经出现了,C/C++ 程序员们,是时候考虑学习 Rust 了。

苹果向 FreeBSD 基金会捐赠了不到 250 美元

根据 FreeBSD 基金会的记录,苹果公司在 2021 年向该基金会捐赠了 100 到 249 美元。而微软捐赠了 500 到 999 美元,思科、Google、英特尔和 NetFlix 捐赠了 1000 到 4999 美元。

为什么世界市值最高的企业只捐赠如此少的钱?苹果的做法其实是基于一项政策:匹配雇员的捐赠。有很多公司采用类似的政策,苹果是其中之一。

感觉 FreeBSD 基金会没有得到应有的关注。

AI 在“我的世界”中生成一只会走路、可再生的毛毛虫

在 3D 世界构建游戏“我的世界”中建造一个建筑和功能机器,对很多人来说并不稀奇。现在科学家们教会了神经网络将单个立方体长成包含数千块砖头的复杂设计,比如城堡、树木或装修好的公寓楼,甚至长成功能机器,比如毛毛虫。

而且 AI 从“生命游戏”中得到了启发制作的这种“自动细胞机”,不但可以行走,还可以自动生长,在该“毛毛虫”被切成两段后自动再生。未来,研究人员希望训练系统不仅能生长出预定义的形式,而且能发明出执行某些功能的设计。

真是令人震惊的 AI 进步,我不敢想象会不会将来有更超出想象的进步。

4 万行有缺陷的代码差点进入 FreeBSD 内核

为了可以在 Netgate 公司流行的 pfSense 路由器发行版中使用 WireGuard,该公司让一个开发者将 WireGuard 移植到 FreeBSD 内核。但该开发者最终提交的移植代码却大部分未经过审查和充分测试,存在多个缓冲区溢出、测试性质的 printf 语句,甚至有总是“返回真”空验证函数。这些代码直接提交到了 FreeBSD 代码库中,并计划纳入到 FreeBSD 13.0 中。幸好,WireGuard 的创始人发现了许多问题,并着手亲自动手修复这些存在缺陷的代码。

而对此事件,在 FreeBSD 社区引发了一些争议

从这件事中反映出的一个问题是,FreeBSD 似乎缺乏足够的代码审查环节,而是依赖于对代码提交者的信任来保证 FreeBSD 的质量。这让我们不得不怀疑,FreeBSD 的质量真的那么可靠吗?

Open Collective 推出资助开源社区的基金

Open Collective 是一个非营利性平台,为“集体”提供接收资金的工具,同时也提供机制让这些集体的成员以民主和透明的方式花钱。它为 2500 多个项目提供了服务,试图让开源项目全职工作成为在营利性公司从事开发工作的替代选择。

现在,它正在将基金引入其开放资金管理平台,以使公司更容易投资开源项目,通过向该基金一次性付款,然后基金将资金重新分配给不同的项目和贡献者,而不是单独向这些项目付款。

现在越来越多的公司开始意识到需要对开发者在开源项目上的工作进行补偿,并愿意为他们提供资金。这是一件好事,开源不仅仅是热情和理想,也会成为一种职业。