2022年9月

神秘的黑客组织正在“超级劫持”虚拟化软件

安全研究人员已经警告过虚拟化技术潜在的黑暗面:理论上的 “ 超级劫持 hyperjacking ” 攻击,即黑客劫持虚拟化来监视和操纵虚拟机,而目标计算机可能没有办法发现这种入侵。现在,这种攻击从研究论文中跳到了现实中。谷歌旗下的安全公司 Mandiant 和 VMware 联合发布警告称,一个复杂的黑客组织已经在多个目标网络的 VMware 虚拟化软件中安装了后门。黑客能够在这些管理程序监督的计算机上隐蔽地观察和运行命令。由于恶意代码的目标是物理机上的管理程序,几乎逃避了所有旨在监控这些虚拟机的异常迹象的传统安全措施。

消息来源:Wired
老王点评:虽然不像英特尔芯片里的 管理引擎 一样隐蔽,但是这种从虚拟化层植入的木马,确实非常隐蔽,危害很大。

谷歌将关闭 Stadia 云游戏串流服务

Stadia 高管称,“虽然 Stadia 为消费者提供流媒体游戏的方法是建立在强大的技术基础上的,但它并没有获得我们预期的用户牵引力,所以我们做出了艰难的决定,开始逐步关闭 Stadia 流媒体服务。”谷歌宣布,将于 2023 年 1 月 18 日关闭 Stadia,玩家可以在这个日期前继续使用该服务。大多数不支持跨平台的游戏的进度不太可能转移到其它平台。Stadia 商店已经关闭了购买游戏的选项。

消息来源:谷歌
老王点评:去年就有 Stadia 关闭的消息,当时谷歌否认了,看来谷歌的各种外围服务都是或早或晚走上关闭的道路。

软件机器人正在抢占白领工作

从工业到办公室,从蓝领到白领,机器人正在接手越来越多的工作。世界经济论坛预测,到 2025 年,机器人的工作时间将与人类一样多。乐观的观点认为,被自动化的是任务,而不是整个工作 -- 如果平凡的任务可以由计算机或机器人处理,那就应该让员工从事更具挑战性和满意度的工作。负面的风险是:从销售代表到行政支持的职业可能开始消失。不过,一些走在自动化前沿的大公司也表示,他们已经能够做到不裁员。

消息来源:彭博社
老王点评:无论如何,自动化程度的增加都会让那些觉得自己的工作很脆弱的工人引发不安。随着人工智能的崛起,这个群体越来越多地包括白领雇员。

现在,试试看这 4 个简单的步骤,来清理你的 Ubuntu 系统吧。

这份精简指南将告诉你如何清理 Ubuntu 系统以及如何释放一些磁盘空间。

如果你的 Ubuntu 系统已经运行了至少一年,尽管系统是最新的,你仍然可能会觉得你的 Ubuntu 系统运行缓慢且滞后。

在过去,因为你想试验某一应用程序,或是在看到了它的好评推荐之后,而安装了许多应用程序,但你并没有删除它们。下面这些方法可以帮助你找出一些可以释放的隐藏磁盘空间。

清理 Ubuntu 系统的步骤

1、清理 Apt 缓存

Apt 缓存是 Ubuntu 系统保存你下载过的所有文件的地方,以供你之后可以查看它。大多数用户不会去清理 Apt 缓存,而它却可能会占用数百兆字节。

打开终端,并运行以下命令,可以得到你的 Apt 缓存有多少:

du -sh /var/cache/apt/archives

如果你的 Ubuntu 系统已经安装了很久的话,你将看到这个数字非常大。运行以下命令来清理 Apt 缓存。

sudo apt-get clean

2、删除无用的内核

如果你已经运行 Ubuntu 系统超过了一年,那么你很可能安装多个内核。如果你的硬件是最新的,并且与 Linux 兼容而没有太多配置,你可以删除旧的内核,保留最新的内核。

在终端运行以下命令来删除旧的内核:

sudo apt-get autoremove --purge

Autoremove Purge

3、删除旧的应用程序和软件包

如果你是一个喜欢尝试 Linux 应用程序的人,那么你的系统中肯定有一些不再需要的没用的应用程序。

现在,你可能已经忘记了你安装过的应用程序名称。不过你可以在终端运行以下命令来查看你最近安装的内容:

你会得到通过 apt 命令安装的应用程序和软件包的列表:

history | grep "apt-get install"

List of apt installed app – History

你将得到最近安装的应用程序列表:

grep " install " /var/log/dpkg.log.1
zgrep " install " /var/log/dpkg.log.2.gz

你可以运行以下命令来删除应用程序和软件包:

sudo apt remove app1 package1

4、使用系统清理应用

有大量免费和原生的系统 清理应用 可以使用。但是,我认为 BleachBit 是清理系统最好的一个应用,因为它经久不衰。

使用以下命令安装 BleachBit 或通过应用商店安装。

sudo apt install bleachbit

安装后,打开 BleachBit,并运行扫描。它会向你显示浏览器占用的所有缓存文件、临时文件、垃圾等,你只需单击一个按钮即可清理它。

附送技巧

清理 Flatpak 软件包

Flatpak 应用程序和 运行时 runtime 会占用大量磁盘空间。因为在设计上,Flatpak 的可执行文件结合了运行时。尽管运行时可以在相关应用程序之间共享,但许多未使用的剩余运行时可能会占用你的磁盘空间。

删除一些未使用的 Flatpak 包最直接的方法是下面的命令。在终端运行这一命令。

flatpak uninstall --unused

可以参考 这篇文章 了解有关 Flatpak 包的更多信息。

清理未使用的 Snap 项目

如果你使用 Ubuntu 系统,那么你很有可能使用的是 Snap 软件包。随着时间的推移,Snap 会积累不相关的运行时和文件。你可以使用以下脚本来清理一些没用的 snap 运行时。

将下面的脚本复制到一个新文件中,并将其命名为 clean_snap.sh

然后使用 chmod +x clean_snap.sh 命令来赋予它可执行权限,并通过 ./clean_snap.sh 运行

#!/bin/bash  
#Removes old revisions of snaps  
#CLOSE ALL SNAPS BEFORE RUNNING THIS  
set -eu  
LANG=en_US.UTF-8 
snap list --all | awk '/disabled/{print $1, $3}' |
      while read snapname revision; do
          snap remove "$snapname" --revision="$revision"
      done

可以参考 这篇文章 了解有关清理 Snap 包的更多信息。

更多技巧

你还可以使用以下命令来手动搜索大文件。

find /home -type f -exec du -h {} + | sort -hr | head -20

例如,运行以下命令,你会得到根目录 / 中的前 20 个大文件。现在你可以查看大文件,并使用文件管理器手动删除它们。请注意删除文件时要非常小心。尽量不要涉及 /home 目录以外的任何内容。

Find Large files in Linux

总结

这样就完成了。如果你按照上述步骤操作,你一定能够释放 Ubuntu 系统中的一些空间,现在你的系统有剩余空间了。你可以按照这些措施来清理 Ubuntu 系统。不要忘记使用最新的软件包,使你的系统保持到最新。

?️ 如果你认为使用上述的技巧可以释放一些磁盘空间,并使得你的 Ubuntu 更快了,请在下方评论区留言。你通常又是使用什么命令来清理你的 Ubuntu 系统?

快留言告诉我吧。


via: https://www.debugpoint.com/4-simple-steps-clean-ubuntu-system-linux/

作者:Arindam 选题:lkxed 译者:Donkey-Hao 校对:wxy

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

使用艾森豪威尔矩阵更好地安排你的待办事项的优先次序。

 title=

在本文中,将研究一种在待办事项上确定任务优先级的策略。想要找到适合你日常工作的开源工具,请查看 此列表

把事情添加到任务或待办事项中很容易。几乎太容易了。而一旦列入清单,挑战就变成了弄清楚先做什么。我们要做清单首位的事情吗?清单首位的事情是最重要的吗?如何弄清楚最重要的事是什么?

 title=

要做的事。今天?明天?谁知道呢?(Kevin Sonney, CC BY-SA 4.0

与电子邮件一样,我们可以根据一些事情来确定任务的优先级,这可以让我们弄清楚什么事情需要先做,什么可以等到以后再做。

我使用一种被称为“ 艾森豪威尔矩阵 Eisenhower Matrix ” 的方法,它取自美国总统 德怀特·戴维·艾森豪威尔 Dwight D. Eisenhower 的一句话。画一个水平和垂直分割的方框。在列上标明“紧急”和“不紧急”,在行上标明“重要”和“不重要”。

 title=

一个艾森豪威尔矩阵。(Kevin Sonney, CC BY-SA 4.0

你可以把待办事项上的任务放在其中一个框里。但如何知道一个任务应该放在哪里?紧迫性和重要性往往是主观的。因此,第一步就是决定什么对你来说是重要的。我的家庭(包括宠物)、工作和爱好都很重要。如果待办事项上的东西与这三件事无关,我可以立即把它放到 “不重要” 行。

紧迫性是一个比较简单的问题。一件事需要在今天或明天完成吗?那么它可能是 “紧急的”。一件事是否有一个即将到来的最后期限,但离那个时间还有几天/几周/几个月,或者它根本就没有最后期限?当然是 “不急的”。

现在我们可以将这些框转化为优先级。“紧急/重要” 是最高优先级(即第一优先级),需要首先完成。接下来是 “不紧急/重要”(优先级 2),然后是 “紧急/不重要”(优先级 3),最后是 “不紧急/不重要”(优先级 4 或根本没有优先级)。

请注意,“紧急/不重要” 是第三位,而不是第二位。这是因为,人们花了很多时间在那些看似重要的事情上,只是因为它们比较紧急,实际上这些事并不是重要的。当我看到这类事项时,我会问自己一些问题。这些任务需要我具体完成吗?这些任务我可以要求其他人去做吗?它们对其他人来说是否重要和紧急?而这是否改变了它们对我的重要性?也许它们需要重新分类,或者我可以要求别人完成,并将它们从我的清单中删除。

 title=

确定优先级后。(Kevin Sonney, CC BY-SA 4.0

对于“不紧急/不重要”框中的事项,有一个问题要问,那就是 “这些事情到底需不需要放在我的清单上?”说实话,我们经常用那些不紧急或不重要的事情来填满待办事项清单,但其实完全可以将它们从清单上删除。我知道承认 “这事永远不会完成” 是很难的,但在接受这个事实后,把这个事情从清单上删除并且不用再为它担心,是一种解脱。

经过这一切,看着清单很容易说出:“这是我现在需要做的事情。” 然后完成它。这就是待办事项的作用:为一天提供指导和重点。


via: https://opensource.com/article/21/1/prioritize-tasks

作者:Kevin Sonney 选题:lujun9972 译者:Veryzzj 校对:wxy

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

chroot 环境为你在 Linux 中进行测试提供了隔离。你无需费心创建虚拟机。相反,如果你想测试应用或其他东西,请创建一个允许你选择不同根目录的 chroot 环境。

因此,使用 chroot,你可以在不让应用访问系统其余部分的情况下进行测试。你安装的任何应用或你尝试的任何东西都会被限制在该目录中,并且不会影响操作系统的功能。

chroot 有它的好处,这就是为什么它是为各种用户(尤其是系统管理员)测试事物的便捷方式。

不幸的是,所有这些都通过 Linux 终端运行。如果你可以有一个图形用户界面来让事情变得简单一些呢?这就是“Atoms”的用武之地。

Atoms:管理 Linux Chroot 的 GUI

atoms

Atoms 是一个 GUI 工具,它可以方便地创建和管理 Linux chroot 环境。

它还支持与 Distrobox 的集成。因此,你还可以使用 Atoms 管理容器。

但是,开发人员提到,该工具不提供与 Podman 的无缝集成,并解释其用途:“它的目的只是允许用户在新环境中打开 shell,无论是 chroot 还是容器。

如果你正在寻找这样的东西,你可能需要试试 pods

Atoms 的特性

atoms options

Atoms 是一个简单的 GUI 程序,可让你为多个受支持的 Linux 发行版创建 chroot 环境。

让我重点介绍支持的发行版及其提供的功能:

  • 浏览创建的 chroot 文件。
  • 能够选择要露出的挂载点。
  • 访问控制台。
  • 支持的 Linux 发行版包括 Ubuntu、Alpine Linux、Fedora、Rocky Linux、Gentoo、AlmaLinux、OpenSUSE、Debian 和 CentOS。

它非常易于使用。从该应用中创建一个 atom 只需一键。(LCTT 校注:该应用创建的每一个 chroot 环境称之为一个“atom”。)

你所要做的就是为该 atom 命名,然后从可用选项列表中选择 Linux 发行版(Ubuntu 作为上面截图中的选择)。它会在几分钟内下载镜像并为你设置 chroot 环境,如下所示。

atom config

完成后,你可以访问选项启动控制台以管理 chroot 环境,或自定义/删除它。

atoms option

要访问控制台,请转到另一个选项卡菜单。非常顺滑的体验,并且运行良好,至少对于我测试过的 Ubuntu 而言。

atoms console

此外,你可以分离控制台以将其作为单独的窗口进行访问。

atoms detach console

在 Linux 上安装 Atom

你可以使用 Flathub 上提供的 Flatpak 包在任何 Linux 发行版上安装 Atoms。如果你是 Linux 新手,请遵循我们的 Flatpak 指南

注意: 最新的稳定版本 1.0.2 只能通过 Flathub 获得。

要探索其源代码和其他详细信息,请访问其 GitHub 页面

总结

Linux 命令行功能强大,你几乎可以使用这些命令执行任何操作。但并不是每个人都对它感到满意,因此像 Atoms 这样的工具通过提供 GUI 使其更加方便。

Atoms 并不是唯一的这类工具。还有 Grub Customizer 可以更轻松地更改本来通过通过命令行完成的 Grub 配置。

我相信还有更多这样的工具。

你如何看待使用像 Atom 这样的 GUI 程序来管理 Chroot 环境?在下面的评论中分享你的想法。


via: https://itsfoss.com/atoms-chroot-tool/

作者:Ankush Das 选题:lkxed 译者:geekpi 校对:wxy

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

复古极客给 SSD 添加机械硬盘读写声音

复古计算的一个 “问题” 是,我们用紧凑型闪存、SD 卡甚至 SSD 来取代这些传统的机械硬盘时,通常情况下不会发出任何你能听到的声音。这样不但显得不够“复古”,而且有时你无法判断电脑是崩溃了还是仍在工作。有位极客制造的一个小装置解决了这个问题,它被称为 HDD Clicker,它连接到硬盘活动指示灯,触发扬声器发出的一系列咔嚓声,听起来非常像硬盘在寻找轨道。

消息来源:Hackday
老王点评:我觉得我的 SSD 硬盘也需要这样一个小装置,要是能像个 U 盘一样插上就能用就更好了。这就是“无用”的极客精神。

黑爵士达斯·维德的声音未来将用 AI 合成

为星战系列的黑爵士达斯·维德的配音长达 45 年的 James Jones 已经 91 岁了。他早就考虑退出了,在创作星战电视剧《欧比旺·克诺比》期间,James Jones 签署了允许迪士尼在未来项目中使用 AI 合成其声音的协议。他们使用的软件是 AI 语音建模工具 Respeecher,它使用了深度学习去建模和复制人类声音,能达到以假乱真。在此之前卢卡斯公司使用该软件在《曼达洛人》中克隆了天行者卢克的扮演者的声音。

消息来源:Ars Technica
老王点评:从配音演员、有声书朗读演员开始,AI 真的会接管很多工作。

Cloudflare 宣布了一个新的“验证码”服务

Cloudflare 本周宣布了一个名为 Turnstile 的项目,旨在取消整个网络上用来验证人们是否机器人的传统验证码。它会根据遥测和会话中表现出的客户行为自动选择浏览器挑战方案,以检查网页的访问者是否实际上是机器人。廉价劳动力的兴起、各种验证码类型的错误以及自动解算器让验证码越来越容易绕过。一些研究人员声称基于 AI 的攻击可以成功解决世界上最受欢迎的网站使用的验证码。

消息来源:Tech Crunch
老王点评:终究还是一种高级的验证码。

回音

  • 谷歌 推迟 MV2 扩展淘汰时间,明年 1 月起停止接受 MV2 扩展更新,这些扩展将从明年 6 月开始不再列出。

Rust for Linux 这个项目是希望今后可以使用 Rust 编程语言来编写内核代码,该项目已经进行了几年,有越来越多的开发者认为是时候将这项工作合并到主线中了。在 2022 年的 Linux 内核维护者峰会上,Miguel Ojeda 向大家更新了此项目的最新状况,希望能达成一致来确定何时可以完成合并。

他得到的答案是很清晰的:内核中确实很快会有 Rust 了。

这方面并没有什么悬念。Linus Torvalds 在会议开始时就说,他计划接受(可能在 12 月中旬发布的) 6.1 内核的 Rust 补丁,除非他听到强烈的反对意见。Ojeda 表示,他很期待这一天,并询问这些补丁应该如何进入主线。Torvalds 说,他不愿意直接接受这些补丁,所以看起来很可能需要 Kees Cook 来将这项工作引向上游。

Dave Airlie 说,有一些 MacBook 驱动程序的开发者打算用 Rust 来做他们的工作,所以很可能在不久之后就会有真正的 Rust 驱动程序进入上游了。不过,Torvalds 说他希望最开始只合入尽量少的内容,只是让基础设施先进入内核,让开发者开始使用它。它应该可以完成编译,但应该基本仅限在 “hello, world” 这种水平就好。他说,这将是一个向世界发出的信号:“终于落地了”。

Greg Kroah-Hartman 问道,针对特定子系统的 Rust 绑定实现,该如何进入上游;是应该通过 Rust 树还是通过相关子系统的维护者?Ojeda 回答说,Rust 核心支持应该通过 Rust 树来合入,但其他的应该经过维护者来合入。Alexei Starovoitov 担心,如果子系统维护者不想在他们的子系统中使用 Rust,他们也无法拒绝 Rust 补丁;James Bottomley 补充说,对于长期从事 C 语言开发的人来说,Rust 可能是一种很难理解的语言,把它强加给维护者并不合适。Torvalds 回答说,这应该由维护者决定;目前没有必要制定统一的规则。

Paolo Bonzini 说,对于不熟悉该语言的开发者来说,针对特定子系统实现抽象层的 Rust 代码往往是最难读懂的,“but it's stupid code”,并没有做什么复杂的动作。驱动程序级的 Rust 代码则要简单易懂得多。Torvalds 重申,就目前而言,维护者将可以说他们不想接受 Rust。但 Starovoitov 反驳说,无论他如何决定,BPF 都会受到影响;开发者需要能够对 Rust 代码进行跟踪 来调试问题。他补充说,每个人最终都会需要了解 Rust。Torvalds 回答说,他预计这个过程需要几年时间。

Cook 说,这种变化将类似于内核所经历的许多 C 语言变动。停止使用可变长度数组也是一个类似的过程,开发人员目前已经习惯了这一点。Torvalds 说,这其实更加类似于 BPF 的引入过程;这也是一种新的语言,起初是针对特定使用场景的,但现在已经无处不在了。

Ted Ts'o 指出,内核必须使用不稳定的 Rust 功能,这就导致不好确定应该使用 Rust 的哪个版本了。也许开发者应该宣布一个特定版本的编译器作为内核开发所使用的版本?这将鼓励发行版提供商把这个版本打包发行出来,使其得以更广泛地被采用。Thomas Gleixner 说,在 kernel.org 上提供我们选定的编译器应该就够了,但 Torvalds 回答说,只要有可能,他都希望优先从发行版提供商那里获取编译器。Bottomley 问道,Rust 什么时候会成为内核编译的必备条件;答案是 “当某人需要使用的硬件需要 Rust 的时候”。Torvalds 说,如果这一天到来了,那说明 Rust 在内核开发领域是非常成功的了。

Gleixner 问 Rust 语言现在的规范性如何;Ojeda 回答说,这取决于人们希望用什么。Rust 保证了稳定功能都可以向后兼容,所以这些功能不会意外不能用了。不过,内核正在使用一些不稳定的功能;这些功能出现变动是很有可能的。目前正在做的工作就是把这些功能稳定下来,以便让内核能够稳定地使用它们。

目前正在努力为 Rust 编写一个强调安全的系统的规范,这会最终得到一个类似于标准的文档。不过 Ojeda 说目前基于 GCC 的 gccrs Rust 编译器的开发者发现当前的文档有些地方比较模糊。其中经常把相关行为定义为 “参考 rustc 编译器的实现方式”。他说,这 “不是好事”,但会继续改善。

Gleixner 还询问了生成 Rust 绑定的工具,尤其是有没有自动化工具来确保 Rust 和 C 版本的数据结构是相互匹配的。Ojeda 说,这些工具确实存在,但它们还不能成功地对所有类型完成自动转换。这也是可以解决的。

最后,Gleixner 告诫 Rust 开发者不要改变 C 语言中锁定原语的语义;目前看来大家也没有表现出这样的倾向。Ts'o 补充说,应该从一开始就让 Rust 的锁定抽象能跟 lockdep 这个锁定检查工具配合起来。Chris Mason 插话说,如果 Rust 代码需要 lockdep,这将是该语言成功的另一个标志,是时候 “跳个舞庆祝胜利” 了。

人们经常说,将 Rust 合并到内核代码树中还是一个实验性质的动作;如果不成功就可以删除掉。Ojeda 说,为 Rust for Linux 工作的开发者们想知道试验期可能会有多长。不过,他并没有从这个小组讨论中得到切实的答案。

相反,Bottomley 建议说,与其引入 Rust,不如直接将更多类似 Rust 的功能移入 C 语言。Ojeda 说,他实际上一直在与 C 语言委员会合作来推动这些改进,但这方面的任何变动如果能够落实,也需要很长的时间。Christoph Hellwig 说,除非计划用 Rust 重写整个内核,否则这种改动无论如何都得去做;他对使用一种新的语言来重写已经能正常工作的代码的方案不是很满意。他说,也许 sparse 静态分析工具可以加强一下,从而实现更多 Rust 可以做到的检查。Ojeda 回答说,这种做法最终的效果就像是又获得了一个 Rust 一样——但时间上要晚很多。

Hellwig 继续说,可以随着时间的推移,来逐步采用类似 Rust 的一些功能。这 “必定是不如从 Rust 开始”,但内核社区现在有一个庞大的代码库需要管理。他说,需要有一种方法将类似 Rust 的语言的好处纳入所有的 C 代码中。Cook 说他一直在推动编译器开发人员来创建更安全的 C 语言。

Ts'o 在会议结束时指出,语言设计本身就是一个耗时很长的研究项目;也许我们大家应该在下一年来专注于策略问题。Torvalds 说,他希望看到各位维护者能运行一些持续集成测试并且加入 Rust 相关的测试——这个情况其实已经在进行中了。Laurent Pinchart 说,Rust 开发者需要准备好前期需要给内核社区提供支持;开发者会很快掌握一些技能,在一段时间后应该可以开始相互帮助了。Torvalds 补充说,Rust 其实并不是那么可怕的;“毕竟不是 Perl”。

当被问及文档问题时,Ojeda 说,Rust 的开发者正试图改进一些相应的 C 语言中已经完成了的文档。例如,可以让 Rust 的文档机制能很简单地就确保这些例子是可以被实际测试通过的。他们正在遵守关于应如何解释不安全区块的规则。

时间不够了,Matthew Wilcox 最后问道,内核开发人员是否应该编写地道的 Rust 代码,还是说应该写 “C in Rust”。Ojeda 回答说,这些代码在开始时可能更像 C 语言;采用更高级的功能(如 async)可能会需要更长时间。Gleixner 问,怎样才能防止开发者使用那些不稳定的特性(是说等内核使用的特性已经变成稳定特性之后);答案是指定内核开发时使用的编译器版本。