13 个最好的 React JavaScript 框架

# 13 个最好的 React JavaScript 框架

>
> 如果你正在用 React.js 或 React Native 来开发用户界面的话，试试这些框架。
>
>
>

<img src="content_image/album_202109_18_095748k48eskmjpzuhyzuj.jpg" alt="" title="Javascript code close-up with neon graphic overlay">

React.js 和 React Native 都是用来开发用户界面（UI）的很受欢迎的开源平台。在 StackOverflow 2019 年度开发者调查里，两个框架的可取性和使用情况都排名靠前。React.js 是 Facebook 在 2011 年开发的一个 JavaScript 库，来实现跨平台，动态以及高性能的 UI 设计需求；而 React Native 则是 Facebook 在 2015 年发布的框架，目的是使用 JavaScript 构建原生应用。

下面介绍 13 个最好的 React JavaScript 框架，都是开源项目。前 11 个（和 React 一样）都使用 MIT 许可证授权，后面两个使用 Apache 2.0 许可证。

### 1、Create React App

这个 Facebook 开发的命令行工具是 React Native 项目一定要用的。因为 [Create React App](https://github.com/facebook/create-react-app) 使用很简单，还可以避免你自己手动设定和配置应用，因此能节省大量的时间和精力。仅仅使用给一个简单的命令，就可以为你准备好创建 React 原生项目所需的一切。你可以用它来创建分类和文件，而且该框架还自带了工具用来构建，测试和启动应用。

```
# 安装软件包
$ npm install -g create-react-native-web-app

# 运行 create-react-native-web-app <项目目录>
$ create-react-native-web-app myApp

# 切换到创建的 <项目目录>
$ cd myApp

# 运行 Web/Ios/Android 调试
# Web
$ npm run web

# IOS（模拟）
$ npm run ios

# Android（实际连接的设备）
$ npm run android

```

#### 为什么选择 Create React App

1. 使用配置包、转码器，以及测试运行器进行开发的一流工具
2. 在应用架构里不需要配置以及没有额外文件
3. 确定的开发栈
4. 高效快速的开发工具

### 2、Material Kit React

[Material Kit React](https://github.com/creativetimofficial/material-kit-react) 是受谷歌的 Material Design 系统启发开发的，很适合用来创建 React UI 组件。这个库最大的优点是提供了大量的组件，可以互相搭配做出非常好的效果。有超过一千个完全编码的组件，每一个都有用文件夹组织起来的独立层。这样你就可以有上千个选项可以选择。它同时也包含一些示例页面，方便你从中寻找灵感，或者向别人分享你的点子或创意。

#### 安装 Material Kit

```
$ npm install @material-ui/core

```

#### 使用

```
import React from 'react';
import Button from '@material-ui/core/Button';

const App = () => (
  <Button variant="contained" color="primary">
    Hello World
  </Button>
);

```

Material-UI 组件不需要其他额外设置，也不会干扰全局变量空间。

#### 优点

这个 React 组件支持简易快速的网页开发。你可以用它创建自己的设计系统，或者直接开始 Material Design。

### 3、Shards React

这个现代的 React UI 工具为了追求高效率，是从最底层开始构建的。它拥有现代的设计系统，可以让你按自己的想法任意定制。你甚至可以下载源文件，然后从代码级别定制。另外，它用来设计样式的 SCSS 语法提高了开发体验。

[Shards React](https://github.com/DesignRevision/shards-react) 基于 Shards，使用了 React Datepicker、React Popper（一个定位引擎）和 noUISlider。还带有非常优秀的 Material Design 图标。还有很多设计好的版本，可以帮你寻找灵感或上手。

#### 用 Yarn 或 NPM 安装 Shards

```
# Yarn
yarn add shards-react

# NPM
npm i shards-react

```

#### 优点

1. Shards 是一个轻量级的脚本，压缩后大概 13kb
2. Shards 默认支持响应式，图层可以适配任意大小屏幕
3. Shards 有完整的文档，可以快速开始构建漂亮的界面

### 4、Styled Components

这个高效的 CSS 工具可以用来为应用的可视界面创建小型可重用的组件。使用传统的 CSS，你可能会不小心覆盖掉网站其他位置的选择器，但 [Styled Components](https://github.com/styled-components/styled-components) 通过使用直接内嵌到组件里的 CSS 语法，可以完全避免这个问题。

#### 安装

```
npm install --save styled-components

```

#### 使用

```
const Button = styled.button`
  background: background_type;
  border-radius: radius_value;
  border: abc;
  color: name_of_color;
  Margin: margin_value;
  padding: value`;

```

#### 优点

1. 让组件有更好的可读性
2. 组件样式依赖 JavaScript
3. 创建定制 CSS 组件
4. 内嵌样式
5. 简单地调用 `styled()` 可以将组件甚至是自定义组件转换成样式组件

### 5、Redux

[Redux](https://github.com/reduxjs/redux) 是一个为 JavaScript 应用提供状态管理的方案。常用于 React.js，也可以用在其他类 React 框架里。

#### 安装

```
sudo npm install redux
sudo npm install react-redux

```

#### 使用

```
import { createStore } from "redux";
import rotateReducer from "reducers/rotateReducer";

function configureStore(state = { rotating: value}) {
  return createStore(rotateReducer,state);
}

export default configureStore;

```

#### 优点

1. 可预计的状态更新有助于定义应用里的数据流
2. 逻辑上测试更简单，使用 reducer 函数进行时间旅行调试也更容易
3. 统一管理状态

### 6、React Virtualized

这个 React Native JavaScript 框架帮助渲染 large-list 和 tabular-data。使用 [React Virtualized](https://github.com/bvaughn/react-virtualized)，你可以限制请求和文档对象模型（DOM）元素的数量，从而提高 React 应用的性能。

#### 安装

```
npm install react-virtualized

```

#### 使用

```
import 'react-virtualized/styles.css'
import { Column, Table } from 'react-virtualized'
import AutoSizer from 'react-virtualized/dist/commonjs/AutoSizer'
import List from 'react-virtualized/dist/commonjs/List'
{
  alias: {
    'react-virtualized/List': 'react-virtualized/dist/es/List',
  },
  ...等等
}

```

#### 优点

1. 高效展示大量数据
2. 渲染超大数据集
3. 使用一系列组件实现虚拟渲染

### 7、React DnD

[React DnD](https://github.com/react-dnd/react-dnd/) 用来创建复杂的拖放界面。拖放控件库有很多，选用 React DnD 是因为它是基于 HTML5 的拖放 API 的，创建界面更简单。

#### 安装

```
npm install react-dnd-preview

```

#### 使用

```
import Preview from 'react-dnd-preview';

const generatePreview = ({itemType, item, style}) => {
  return <div class="item-list" style={style}>{itemType}</div>;
};

class App extends React.Component {
 ...
  render() {
    return (
      <DndProvider backend={MyBackend}>
        <ItemList />
        <Preview generator={generatePreview} />
        // or
        <Preview>{generatePreview}</Preview>
      </DndProvider>
    );
  }
}

```

#### 优点

1. 漂亮自然的控件移动
2. 强大的键盘和屏幕阅读支持
3. 极限性能
4. 强大整洁的接口
5. 标准浏览器支持非常好
6. 中性样式
7. 没有额外创建 DOM 节点

### 8、React Bootstrap

这个 UI 库将 Bootstrap 的 JavaScript 替换成了 React，可以更好地控制每个组件的功能。每个组件都构建成能轻易访问，因此 [React Bootstrap](https://github.com/react-bootstrap/react-bootstrap) 有利于构建前端框架。有上千种 bootstrap 主题可以选择。

#### 安装

```
npm install react-bootstrap bootstrap

```

#### 使用

```
import 'bootstrap/dist/css/bootstrap.min.css';
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import registerServiceWorker from './registerServiceWorker';

ReactDOM.render(<App />, document.getElementById('root'));
registerServiceWorker();

```

#### 优点

1. 可以简单导入所需的代码/组件
2. 通过压缩 Bootstrap 节省了输入和问题
3. 通过压缩 Bootstrap 减少了输入工作和冲突
4. 使用简单
5. 使用元素封装

### 9、React Suite

[React Suite](https://github.com/rsuite/rsuite) 是另一个高效的 React.js 框架，包含了大量组件库，方便开发企业级产品。支持所有主流浏览器和平台，适用于任何系统。还支持服务器端渲染。

#### 安装

```
npm i rsuite --save

```

#### 使用

```
import { Button } from 'rsuite';
import 'rsuite/styles/less/index.less';
ReactDOM.render(<Button>Button</Button>, mountNode);

```

#### 优点

1. 通过全局访问特性轻松管理应用
2. 使用 Redux 库集中管理系统状态
3. Redux 库有灵活的 UI 层，以及广泛的生态
4. Redux 库减少系统复杂度，并提供了全局访问特性

### 10、PrimeReact

[PrimeReact](https://github.com/primefaces/primereact) 最值得推荐的是它提供了几乎覆盖所有基本 UI 需求的组件，比如输入选项，菜单，数据展示，消息，等等。这个框架还优化了移动体验，帮助你设计触摸优化的元素。

#### 安装

```
npm install primereact --save
npm install primeicons --save

```

#### 使用

```
import {Dialog} from 'primereact/dialog';
import {Accordion,AccordionTab} from 'primereact/accordion';
dependencies: {
    "react": "^16.0.0",
    "react-dom": "^16.0.0",
    "react-transition-group": "^2.2.1",
    "classnames": "^2.2.5",
    "primeicons": "^2.0.0"
}

```

#### 优点

1. 简单而高效
2. 容易使用
3. Spring 应用
4. 创建复杂用户界面
5. 好用而简单

### 11、React Router

[React Router](https://github.com/ReactTraining/react-router) 在 React Native 开发社区很受欢迎，因为它上手很容易。只需要你在电脑上安装 Git 和 npm 包管理工具，有 React 的基础知识，以及好学的意愿。没什么特别难的地方。

#### 安装

```
$ npm install --save react-router

```

#### 使用

```
import { Router, Route, Switch } from "react-router";

// 使用 CommonJS 模块
var Router = require("react-router").Router;
var Route = require("react-router").Route;
var Switch = require("react-router").Switch;

```

#### 优点

1. 动态路由匹配
2. 在导航时支持不同页面的 CSS 切换
3. 统一的应用结构和行为

### 12、Grommet

[Grommet](https://github.com/grommet/grommet) 常用于开发响应式、可访问的移动网页应用。这个用 Apache 2.0 许可证授权的 JavaScript 框架最大的优点是用很小的包提供了可访问性、模块化、响应式以及主题功能。这可能是它被一些公司广泛使用的主要原因，比如奈飞、通用电气、优步以及波音。

#### 安装 for yarn and npm

```
$ npm install grommet styled-components --save

```

#### 使用

```
"grommet-controls/chartjs": {
          "transform": "grommet-controls/es6/chartjs/${member}",
          "preventFullImport": true,
          "skipDefaultConversion": true

```

#### 优点

1. 创建一个工具包来打包
2. 把开放政策发挥到极致
3. 重构有助于影响已成立的组织

### 13、Onsen UI

[Onsen UI](https://github.com/OnsenUI/OnsenUI) 另一个使用 HTML5 和 JavaScript 的手机应用开发框架，集成了 Angular、Vue 和 React，使用 Apache 2.0 许可证授权。

Onsen 提供了标签、侧边栏、堆栈导航以及其他组件。这个框架最好的地方是，它所有的组件都支持 iOS 和安卓 Material Design 自动适配，会根据不同的平台切换应用的外观。

#### 安装

```
npm install onsenui

```

#### 使用

```
(function() {
    'use strict';
    var module = angular.module('app', ['onsen']);

    module.controller('AppController', function($scope) {
      // more to come here
    });

})();

```

#### 优点

1. Onsen UI 基于自由而开源代码
2. 不强制基于它开发的应用使用任何形式的 DRM
3. 内置了 JavaScript 和 HTML5 代码
4. 给最终用户带来原生体验

---

你最喜欢哪个 React JavaScript 框架？请在评论区分享。

---

via: <https://opensource.com/article/20/1/react-javascript-frameworks>

作者：[Amit Dua](https://opensource.com/users/amitdua) 选题：[lujun9972](https://github.com/lujun9972) 译者：[zpl1025](https://github.com/zpl1025) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #398 一笔 BTC 交易将产生至少 272g 的电子垃圾

Summary: 更多：• 微软必应可能很快成为 Firefox 的默认搜索引擎 • 研究人员用化妆打败了先进的面部识别技术

攻击 AI 最好的方式，是不是断电？

# 硬核观察 #398 一笔 BTC 交易将产生至少 272g 的电子垃圾

### 一笔 BTC 交易将产生至少 272g 的电子垃圾

根据荷兰央行和 MIT 经济学家的[分析](https://www.theguardian.com/technology/2021/sep/17/waste-from-one-bitcoin-transaction-like-binning-two-iphones)，专门用于 BTC 挖矿的 ASIC 矿机的生命期只有 1.29 年。这些 ASIC 矿机除了用来挖矿而别无用处，为了追上算力增加，这些矿机需要不断升级，每年比特币网络需要更换重达 3.07 万吨的矿机，这个数字与荷兰这样的国家产生的小型IT和电信设备垃圾量相当。在 2020 年比特币网络共处理了 1.125 亿笔交易，即每笔交易产生至少 272g 的电子垃圾，与两部 iPhone 12 mini 手机的**重量**相当。

>
> 这种代价不可谓不高，但是我认为 BTC 重要的不是它本身的价格，而是它所揭示的新思想。
>
>
>

### 微软必应可能很快成为 Firefox 的默认搜索引擎

Mozilla 目前正在测试将微软的 Bing 作为 Firefox 的默认搜索引擎。自本月 6 日以来，约有 1% 的 Firefox 桌面用户群接受了这种[早期测试](https://www.bleepingcomputer.com/news/software/mozilla-tests-microsoft-bing-as-the-default-firefox-search-engine)。Mozilla 预计这个测试阶段将持续约五个月，并在明年一月前完成。目前，Mozilla 与 Google 的搜索协议预计将在明年结束，所以必应可能是 Mozilla 的备胎，以防与 Google 的搜索合同没有进一步延长。

>
> 其实，做浏览器挺赚钱的。
>
>
>

### 研究人员用化妆打败了先进的面部识别技术

一项[新研究发现](https://www.vice.com/en/article/k78v9m/researchers-defeated-advanced-facial-recognition-tech-using-makeup)，软件生成的化妆图案可以用来持续绕过最先进的面部识别软件，这些通过通过数字和物理施加的化妆的成功率高达 98%。他们使用一个自拍应用程序，根据面部最易识别的区域对进行数字化妆。然后，一位化妆师用自然的妆容将数字妆容模仿到参与者身上，以测试目标模特在现实情况下的识别能力。论文称，在物理实验中，他们只在 1.2% 的画面中被识别到。

>
> 虽然之前也有一些在面部绘制特定条纹的方式来欺骗 AI，但是反而容易被人类注意到，而这种化妆术却可以做到不引起人类注意的同时欺骗 AI。
>
>
>


Kali Linux 2021.3 的新改进

# Kali Linux 2021.3 的新改进

>
> Kali Linux 2021.3 带来了一些重要的功能改进以及一些新工具。此外还有一个惊喜，他们还宣布正在开发他们的第一个 NetHunter 智能手表。
>
>
>

Kali Linux 是 [用于渗透测试的最佳 Linux 发行版](https://itsfoss.com/linux-hacking-penetration-testing/) 之一。它是基于 Debian 的，但它可能不适合替代你的成熟的桌面操作系统。

最新的 2021.3 版本带来了一些重要的功能添加和改进。让我们来看看它们。

### 有何新变化？

#### OpenSSL 兼容性

重新配置了 [OpenSSL](https://www.openssl.org/)，以扩大 Kali 可以连接的服务。因此，老式过期的协议，如 TLS 1.0 和 TLS 1.1 以及更旧的加密算法，在默认情况下是允许的。也就是说；它将让 Kali 可以连接到更多过时的服务器。然而，如果你不需要它，你可以改变这个选项。

#### 虚拟化的改进

众所周知，Kali 可以作为一个虚拟机完美地工作。首先，无论你的访客机是在 VirtualBox、VMware、Hyper-V 还是 QEMU+Spice 下运行，宿主机和访客机系统之间的拖放、复制和粘贴等操作都比以前更顺畅。

其次，使用 Kali-Tweaks 可以更容易为 Hyper-V 增强会话模式（一种虚拟化管理程序）配置 Kali。

简而言之，Kali Linux 2021.3 使得在设置虚拟环境时的体验更加完美。

#### Kali 工具

每一个 Kali 版本都包含新的工具，这是理所当然的。同样的，这个版本也不例外。Kali 加入的工具有：

* [Berate\_ap](https://pkg.kali.org/pkg/berate-ap) - 编组 MANA rogue Wi-Fi 接入点
* [CALDERA](https://pkg.kali.org/pkg/caldera) - 可扩展的自动对手模拟平台
* [EAPHammer](https://pkg.kali.org/pkg/eaphammer) - 针对 WPA2-Enterprise Wi-Fi 网络的 evil twin 攻击
* [HostHunter](https://pkg.kali.org/pkg/hosthunter) - 使用 OSINT 技术发现主机名的侦察工具
* [RouterKeygenPC](https://pkg.kali.org/pkg/routerkeygenpc) - 生成默认的 WPA/WEP 无线密钥
* [Subjack](https://pkg.kali.org/pkg/subjack) - 子域接管
* [WPA\_Sycophant](https://pkg.kali.org/pkg/wpa-sycophant) - EAP 中继攻击的邪恶客户端部分

#### Kali ARM 更新和 Kali-Tools

在 Kali 2021.3 中，对 ARM 设备的支持得到了更多的改进。我发现最吸引人的是：

* en\_US.UTF-8 是所有镜像的默认语言。
* 重新构建了 Kali ARM 构建脚本，以更好地支持一些设备。
* 树莓派镜像现在可以使用 `/boot` 分区上的 `wpa_supplicant.conf` 文件。

此外，Kali 刷新了其信息域 **Kali-Tools**，以提供简洁的工具概述、整洁的界面和快速的系统。

### 其他变化

Kali 还有其他一些不错的改进，包括：

* 改进了 Xfce 和 Gnome 版本的布局。Kali 并没有忘记 KDE，因为这是它最喜欢的桌面环境之一，已经内置了 KDE 5.21 是新的版本。
* 他们的文档网站中的一些重要页面进行了大幅更新。
* 与 Ampere 合作，让其 ARM 包构建机运行在 Ampere 的硬件上。因此，其大幅的提速使得 Kali 受益。

Kali 增强了针对安卓设备的移动渗透测试平台。换句话说，你现在可以在 Android 11 设备上安装 Kali NetHunter，而不需要完整的可工作的 [TWRP](http://twrp.me/)（Team Win Recovery Project）。最重要的是，由于其方便的安装程序，这一更新很有希望。

除了这个版本之外，他们还宣布了他们的第一个 NetHunter 智能手表，**TicHunter Pro**。但是，它仍然处于开发的最初阶段。

要了解更多关于这次升级的所有技术变化，请参考 [官方公告](https://www.kali.org/blog/kali-linux-2021-3-release/)。

### 总结

总的来说，这是一个重要的版本，提供了重要的改进和令人兴奋的新工具。从它的官方网站上下载它，就可以开始了。

* [下载 Kali Linux 2021.3](https://www.kali.org/get-kali/)

---

via: <https://news.itsfoss.com/kali-linux-2021-3-release/>

作者：[Omar Maarof](https://news.itsfoss.com/author/omar/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


树莓派 Zero 与 Zero W 对比

Summary: Zero W 中的 W 代表的是无线，它表示的是 Zero W 模块拥有无线功能。这是这两个相似模块之间的最大差异。

# 树莓派 Zero 与 Zero W 对比

树莓派十年前凭借 25 美元的迷你电脑掀起了一场革命。随着时间的推移，树莓派发布了许多变种。有些是对以前的型号进行升级，有些是为特定目的而制作的。

在所有的树莓派模块中，Pi Zero 和 Pi Zero W 是最便宜的型号，旨在用于小规模项目和 IoT 项目。这两种设备几乎是相同的，但是它们之间有一些微妙而重要的区别。

**那么，树莓派 Zero 和 Zero W 之间的区别是什么？Zero W 中的 W 代表的是<ruby> 无线 <rt>  Wireless </rt></ruby>，它表示的是 Zero W 模块拥有无线功能。这是这两个相似模块之间的最大差异。**

让我们来详细了解一下。

### Pi Zero 与 Pi Zero W 之间的主要不同点

树莓派 Zero 是以在只有 A+ 板一半的大小上提供尽可能多的功能为目标。

而树莓派 Zero W 是为了支持无线在后来推出的，在不需要任何附加的组件和模块的情况下就可以使用蓝牙和 Wi-Fi。

这是两者之间的关键区别，其他的规格保持一致。

所以，如果你需要以下功能：

* 802.11 b/g/n 无线网口
* 蓝牙 4.1
* 低功耗蓝牙（BLE）

树莓派 Zero W 将是你的不二之选。

此外，树莓派 Zero W 还提供了一种带引脚的版本，叫做 “树莓派 Pi Zero WH”

### 树莓派 Zero 和 Zero W 的规格

[树莓派 Zero 和 Zero W 的规格](https://itsfoss.com/raspberry-pi-zero-w/) 几乎是一样的。

它们都具有 1 GHz 的单核 CPU 和 512 MB 的 RAM。至于接口方面，一个 mini HDMI 接口，支持 micro USB OTG、micro USB 供电和一个 CSI 摄像头接口（用于插入一个相机模块）。

这些板子会提供一种叫 [HAT](https://github.com/raspberrypi/hats)（<ruby> 顶部附加硬件 <rt>  Hardware Attached on Top </rt></ruby>）兼容的 40 个引脚。但一般情况下，没有这些可以让你轻松插入接口的引脚。

你可以根据自己的功能需要选择使用 [各种树莓派兼容的系统](https://itsfoss.com/raspberry-pi-os/)，但无论哪种情况，我还是推荐你使用树莓派 OS。

### 树莓派 Zero 系列值不值得买？

树莓派 Zero 是一种很受人们喜欢的单片机形式，即使你有很多树莓派 Zero 的替代品，树莓派 Zero 仍然是最推荐的选择。

当然，除非你有特殊需求。

除了板子的尺寸之外，定价、功率要求、运算能力也是这款 20 美元以下的板子的主要亮点。

因此，如果你正在寻找预算内满足基本功能的单片机，树莓派 Zero 就是专门为你打造的。

### 树莓派 Zero 系列价格怎么样？

树莓派 Zero 售价 **5 美元** ，Zero W 售价 **10 美元左右**，当然，根据其供应情况和地区，定价规则会不一样，如果你选择带引脚的版本树莓派 Zero WH ，售价大概是 **14 美元** 左右。

还有 [其他的设备可以代替树莓派 Zero](https://itsfoss.com/raspberry-pi-zero-alternatives/)，它们价格也相差不大。

---

via: <https://itsfoss.com/raspberry-pi-zero-vs-zero-w/>

作者：[Ankush Das](https://itsfoss.com/author/ankush/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[anine09](https://github.com/anine09) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


构建开源的社区健康分析平台

# 构建开源的社区健康分析平台

>
> 一个学术性的 OSPO 正在与 CHAOSS 软件合作，以建立一个社区健康分析平台。
>
>
>

<ruby> 罗切斯特理工学院 <rt>  Rochester Institute of Technology </rt></ruby>（RIT）最近在增加其在开源世界的影响力方面取得了相当大的进展。RIT的自由和开源软件及自由文化辅修课程是学术界的第一个此类课程。例如，其开源项目办公室 Open@RIT 已经开始帮助 RIT 的教职员工和研究员为他们的开源项目建立和维护社区。

这些进展是由 RIT 的学生、教师和工作人员推动的。目前，大学里已经有越来越多的人在管理他们自己的开源项目。然而，运行一个完全的开源项目可能是很麻烦的。这主要来自于维护项目的社区和管理数据，如项目的代码、问题跟踪和仓库。

为了帮助他们，Open@RIT 正在创建一个名为 Mystic 的系统，这是一个社区健康分析平台，利用了 [GrimoireLab](https://chaoss.github.io/grimoirelab/)，这是一个由 [CHAOSS](https://chaoss.community/) 软件开发的开源工具包，为开源项目提供了指标和分析。GrimoireLab 允许用户收集、丰富、过滤和可视化一个项目的数据，例如一个报告的问题被解决的时间、贡献者的关系等。

Mystic 将作为一个前端门户，任何人都可以提交他们的项目。在那里，项目将被直接发送到 GrimoireLab，它将在几分钟后为提交者计算并发布项目的指标。

>
> Open@RIT 的全栈开发者和 Mystic 的首席开发者 Emi Simpson 说：“我们希望 RIT 的任何管理、领导或参与开源项目的人都能将该项目提交给 Mystic，并获得他们需要的任何指标”。
>
>
>

这个过程很简单。登录 Mystic 后，上传项目的用户会打开一个弹出式窗口，输入项目的细节和数据源的链接，如 GitLab、RSS feed 和一个<ruby> 开放软件基金会 <rt>  Open Software Foundation </rt></ruby>（OSF）项目名。一旦保存了细节和项目，Mystic 就会使用 GrimoireLab 从项目源中自动检索指标，并为每个源渲染图表。然后，该项目及其指标将显示在它自己的仪表板上。

这些仪表盘将并列显示在一个页面上，以供其他人查看，鼓励 RIT 内部的开源社区之间的合作开发和互动。Simpson 和 Open@RIT 希望这将增加 RIT 的开放工作的参与度，并进一步巩固该大学作为开放工作中心的地位。

>
> Simpson 说：“如果有人问 RIT 在为开源软件做什么，我希望人们能够指着 Mystic 和 GrimoireLab 说就是这些。通过建立‘这些是我们正在做的，这些是我们的贡献，这些是人们正在做的项目’的指标，我们可以在 RIT 建立一个以我们正在做的开源工作为中心的社区。”
>
>
>

目前，Mystic 仍在开发中，还没有准备好进入生产环境，但它对 RIT 和整个开源的潜力仍然是有目共睹的。未来的目标包括实现与大学报告工具的轻松整合，以及在项目层面和总体上的综合仪表盘。

你对 Mystic 的贡献感兴趣吗？[请与我们联系](https://opensource.ieee.org/rit/mystic) 开始吧。

---

via: <https://opensource.com/article/21/9/openrit-mystic>

作者：[Quinn Foster](https://opensource.com/users/quinn-foster) 选题：[lujun9972](https://github.com/lujun9972) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #399 英特尔准备为 Linux 引入无需重启更新固件功能

Summary: 更多：• Android 6 以上版本将重置不使用应用的权限 • 全球计算的碳足迹比以前估计的要大

# 硬核观察 #399 英特尔准备为 Linux 引入无需重启更新固件功能

### 英特尔准备为 Linux 引入无需重启更新固件功能

“英特尔无缝更新”是英特尔平台即将推出的一项功能，在其最新的 Linux [内核补丁](https://lore.kernel.org/lkml/cover.1631600169.git.yu.c.chen@intel.com/T/#m7962a60c7e10346582f701128b8d790b8fa67c7b)中暴露出了这一新功能，它能够避免重新启动而进行系统固件更新，如 UEFI 更新。其目标是那些在停机时间方面有高服务水平协议（SLA）的客户。由于系统固件更新通常需要重新启动，这可能会使服务中断几分钟，从而可能影响服务水平协议，或者给这些服务的用户带来不便。英特尔可能会在明年发布的 CPU 上推出这项功能。

>
> 这下好了，内核更新不用重启，固件更新也不用重启了。
>
>
>

### Android 6 以上版本将重置不使用应用的权限

谷歌周五[宣布](https://android-developers.googleblog.com/2021/09/making-permissions-auto-reset-available.html)将向后移植 Android 11 系统的隐私功能，将应用权限自动重置机制引入到 Android 6 及以上版本。该功能旨在自动限制用户不使用的应用，当我们在一段时间内未使用某应用时，Android 会自动剥离该应用已被授予的一切权限，从而限制它在后台跟踪你的动向或访问数据。在再次打开该应用时，系统会再次请求所有权限。该功能是去年推出的 Android 11 版本带来的。

>
> 这是一个不错的功能，可以让你随时被提醒收回那些不必要的权限。
>
>
>

### 全球计算的碳足迹比以前估计的要大

根据一项[新研究](https://www.cell.com/patterns/fulltext/S2666-3899(21)00188-4)，信息和通信技术（ICT）在温室气体排放中的比例比之前估计的要大。之前的估测没有考虑到 ICT 产品和基础设施的整个生命周期和供应链，这包括 ICT 组件制造商产生的排放，或与 ICT 产品的处置有关的排放。之前估计 ICT 在温室气体排放中的份额定为 1.8% 至 2.8%。但最新的研究结果表明，全球计算更有可能达到 2.1% 至 3.9% 的温室气体排放比例。这一比例要比占 2% 的航空业要高。

>
> 随着信息化的增加，ICT 的碳足迹可能还会更高。
>
>
>


在 Linux 中使用 OBS 和 Wayland 进行屏幕录制

Summary: 有 大量可用于 Linux 的屏幕录像机。但是当涉及到支持 Wayland 时，几乎所有的都不能用。

# 在 Linux 中使用 OBS 和 Wayland 进行屏幕录制

有 [大量可用于 Linux 的屏幕录像机](https://itsfoss.com/best-linux-screen-recorders/)。但是当涉及到支持 [Wayland](https://wayland.freedesktop.org/) 时，几乎所有的都不能用。

这是个问题，因为许多新发布的版本都再次默认切换到 Wayland 显示管理器。而如果像屏幕录像机这样基本的东西不能工作，就会给人留下不好的体验。

[GNOME 的内置屏幕录像机](https://itsfoss.com/gnome-screen-recorder/) 可以工作，但它是隐藏的，没有 GUI，也没有办法配置和控制记录内容。此外，还有一个叫 [Kooha](https://itsfoss.com/kooha-screen-recorder/) 的工具，但它一直在屏幕上显示一个计时器。

只是为了录制屏幕而 [在 Xorg 和 Wayland 之间切换](https://itsfoss.com/switch-xorg-wayland/)，这不是很方便。

这种情况下，我很高兴地得知，由于 Pipewire 的帮助，在 OBS Studio v27 中支持了 Wayland。但即使是这样，也不是很简单，因此我将向你展示使用 [OBS Studio](https://obsproject.com/) 在 Wayland 上录制屏幕的步骤。

### 使用 OBS 在 Wayland 上进行屏幕录制

让我们来看看它是如何完成的。

#### 第一步：安装 OBS Studio

你应该先安装 OBS Studio v27。它已经包含在 Ubuntu 21.10 中，我会在本教程中使用它。

要在 Ubuntu 18.04、20.04、Linux Mint 20 等系统上安装 OBS Studio 27，请使用 [官方的 OBS Studio PPA](https://launchpad.net/~obsproject/+archive/ubuntu/obs-studio)。

打开终端，逐一使用以下命令：

```
sudo add-apt-repository ppa:obsproject/obs-studio
sudo apt update
sudo apt install obs-studio

```

如果已经安装了 OBS Studio 的旧版本，它将被升级到较新的版本。

对于 Fedora、Arch 和其他发行版，请检查你的包管理器或非官方仓库以安装最新版本的 OBS Studio。

#### 第二步：检查 Wayland 捕获是否工作

请确认你正在使用 Wayland。现在启动 OBS Studio，查看它在第一次运行时显示的所有内容。我不打算展示这些。

主要步骤是添加 Pipewire 作为屏幕捕捉源。点击 “Sources” 列表下的 “+” 符号。

你有没有看到 “Screen Capture (PipeWire)” 的字样？

**如果没看到，请退出 OBS Studio**。这很正常。至少在 Ubuntu 下，OBS Studio 不会自动切换到使用 Wayland。对此有一个修复方法。

打开一个终端，使用以下命令：

```
export QT_QPA_PLATFORM=wayland

```

在同一个终端，运行以下命令，启动 OBS Studio：

```
obs

```

它将在终端上显示一些信息。不要理会它们。你的注意力应该放在 OBS Studio GUI 上。再次尝试添加屏幕捕捉。你现在应该看到 PipeWire 选项了。

你这次用 `QT_QPA_PLATFORM` 变量明确要求 OBS Studio 使用 Wayland。

选择 PipeWire 作为源，然后它要求你选择一个显示屏幕。选择它并点击分享按钮。

现在它应该无限次递归地显示你的屏幕。如果你看到了，你现在就可以开始在 Wayland 中录制屏幕了。

#### 第三步：让改变成为永久性的

这很好。你刚刚验证了你可以在 Wayland 上录制屏幕。但每次设置环境变量并从终端启动 OBS 并不方便。

你可以做的是**把这个变量导出到你的 `~/.bash_profile`（对你而言）或 `/etc/profile`（对系统中的所有用户而言）。**

```
export QT_QPA_PLATFORM=wayland

```

退出并重新登录。现在 OBS 会自动开始使用这个参数，你可以用它来录制 Wayland 的屏幕。

我希望这个快速技巧对你有帮助。如果你还有问题或建议，请在评论区告诉我。

---

via: <https://itsfoss.com/screen-record-obs-wayland/>

作者：[Abhishek Prakash](https://itsfoss.com/author/abhishek/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


如何用 rpm-ostree 数据库检查更新信息和更新日志

Summary: 你现在发现自己在 Fedora Silverblue（或其他类似的发行版）上，你想检查更新。但你遇到了一个问题。

# 如何用 rpm-ostree 数据库检查更新信息和更新日志

<img src="content_image/album_202109_20_165451xa7xog752xh20x1a.jpg" alt="" title="">

这篇文章将教你如何使用 `rpm-ostree` 数据库及其子命令检查更新、检查更改的软件包和阅读更新日志。

这些命令将在 Fedora Silverblue 上进行演示，并且应该在任何使用 `rpm-ostree` 的操作系统上工作。

### 简介

假设你对不可更改的系统感兴趣。在基于容器技术构建用例时使用只读的基本系统听起来非常有吸引力，它会说服你选择使用 `rpm-ostree` 的发行版。

你现在发现自己在 [Fedora Silverblue](https://fedoramagazine.org/what-is-silverblue/)（或其他类似的发行版）上，你想检查更新。但你遇到了一个问题。虽然你可以通过 GNOME Software 找到 Fedora Silverblue 上的更新包，但你实际上无法阅读它们的更新日志。你也不能 [使用 dnf updateinfo 在命令行上读取它们](https://fedoramagazine.org/use-dnf-updateinfo-to-read-update-changelogs/)，因为主机系统上没有 DNF。

那么，你应该怎么做呢？嗯，`rpm-ostree` 有一些子命令可以在这种情况下提供帮助。

### 检查更新

第一步是检查更新。只需运行：

```
$ rpm-ostree upgrade --check
...
AvailableUpdate:
        Version: 34.20210905.0 (2021-09-05T20:59:47Z)
         Commit: d8bab818f5abcfb58d2c038614965bf26426d55667e52018fcd295b9bfbc88b4
   GPGSignature: Valid signature by 8C5BA6990BDB26E19F2A1A801161AE6945719A39
  SecAdvisories: 1 moderate
           Diff: 4 upgraded

```

请注意，虽然它没有在输出中告诉更新的软件包，但它显示了更新的提交为 `d8bab818f5abcfb58d2c038614965bf26426d55667e52018fcd295b9bfbc88b4`。这在后面会很有用。

接下来你需要做的是找到你正在运行的当前部署的提交。运行 `rpm-ostree status` 以获得当前部署的<ruby> 基提交 <rt>  BaseCommit </rt></ruby>：

```
$ rpm-ostree status
State: idle
Deployments:
● fedora:fedora/34/x86_64/silverblue
                   Version: 34.20210904.0 (2021-09-04T19:16:37Z)
                BaseCommit: e279286dcd8b5e231cff15c4130a4b1f5a03b6735327b213ee474332b311dd1e
              GPGSignature: Valid signature by 8C5BA6990BDB26E19F2A1A801161AE6945719A39
       RemovedBasePackages: ...
           LayeredPackages: ...
...

```

对于这个例子，基提交是`e279286dcd8b5e231cff15c4130a4b1f5a03b6735327b213ee474332b311dd1e`。

现在你可以用 `rpm-ostree db diff [commit1] [commit2]` 找到这两个提交的差异。在这个命令中，`[commit1]` 将是当前部署的基提交，`[commit2]` 将是升级检查命令中的提交。

```
$ rpm-ostree db diff e279286dcd8b5e231cff15c4130a4b1f5a03b6735327b213ee474332b311dd1e d8bab818f5abcfb58d2c038614965bf26426d55667e52018fcd295b9bfbc88b4
ostree diff commit from: e279286dcd8b5e231cff15c4130a4b1f5a03b6735327b213ee474332b311dd1e
ostree diff commit to:   d8bab818f5abcfb58d2c038614965bf26426d55667e52018fcd295b9bfbc88b4
Upgraded:
  soundtouch 2.1.1-6.fc34 -> 2.1.2-1.fc34

```

`diff` 输出显示 `soundtouch` 被更新了，并指出了版本号。通过在前面的命令中加入 `-changelogs` 来查看更新日志：

```
$ rpm-ostree db diff e279286dcd8b5e231cff15c4130a4b1f5a03b6735327b213ee474332b311dd1e d8bab818f5abcfb58d2c038614965bf26426d55667e52018fcd295b9bfbc88b4 --changelogs
ostree diff commit from: e279286dcd8b5e231cff15c4130a4b1f5a03b6735327b213ee474332b311dd1e
ostree diff commit to:   d8bab818f5abcfb58d2c038614965bf26426d55667e52018fcd295b9bfbc88b4
Upgraded:
  soundtouch 2.1.1-6.fc34.x86_64 -> 2.1.2-1.fc34.x86_64
    * dom ago 29 2021 Uwe Klotz <uwe.klotz@gmail.com> - 2.1.2-1
    - Update to new upstream version 2.1.2
      Bump version to 2.1.2 to correct incorrect version info in configure.ac

    * sex jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.1-7
    - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild

```

这个输出显示了提交说明以及版本号。

### 总结

使用 `rpm-ostree db`，你现在可以拥有相当于 `dnf check-update` 和 `dnf updateinfo` 的功能。

如果你想检查你所安装的更新的详细信息，这将非常有用。

---

via: <https://fedoramagazine.org/how-to-check-for-update-info-and-changelogs-with-rpm-ostree-db/>

作者：[Mateus Rodrigues Costa](https://fedoramagazine.org/author/mateusrodcosta/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


Summary: 更多：• 微软 Exchange 将默认阻止某些新文件类型 • 在虚拟机运行 Windows 11 也要求 TPM 2.0

win 11 也就值得在虚拟机里装一下.

# 硬核观察 #400 Linus Torvalds 表态 9.17 才是真正的 Linux 内核生日

### Linus Torvalds 表态 9.17 才是真正的 Linux 内核生日

关于 Linux 内核的诞生日有几个不同的意见，比如 Linus Torvalds 第一次在 USENET 宣布开发消息、第一个出现的版本，第一个宣布的版本等等。Linux 内核 0.01 是 1991 年 9 月 17 日上传的，但该版本从来没有公开宣布过。不过，Torvalds [认为](http://lkml.iu.edu/hypermail/linux/kernel/2109.2/03485.html)，这才是 Linux 内核真正的纪念日，“虽然没有宣布，但在许多方面，这是实际代码的真正的 30 周年纪念日。”

此外，Torvalds [承认](http://lkml.iu.edu/hypermail/linux/kernel/2109.2/04371.html) `-Werror` 的决定使得 Linux 内核的工作混乱，这个决定让他陷入了“按下葫芦起了瓢”的境地，但他愿意承受这种痛苦，“我仍然相信，这一切都是为了一个好的目的。”他说，“rc2 这周对我来说往往是相当安静的，所以这周我接着看奇怪的‘警告变成错误’的报告也不是太糟糕。”

>
> 感谢您！脱袜子先生！
>
>
>

### 微软 Exchange 将默认阻止某些新文件类型

近年来，攻击者的技术纯熟度日渐增长，甚至能够将恶意软件隐藏在 .ISO 文件中，以使之更隐蔽地躲过 Windows 与反病毒软件的深层扫描。为解决这一问题，微软计划在 10 月份增加 Exchange 服务器默认自动阻止的附件类型和数量。新添加的文件类型包括 .iso、.cab、以及 .jnlp，带有这些附件的邮件将被自动隔离，目前总计有 96 种文件类型被阻止。

>
> 这种阻止只能是带来越来越的不便，而最终导致阻止被跳过。
>
>
>

### 在虚拟机运行 Windows 11 也要求 TPM 2.0

之前，在虚拟机中安装 Windows 11 预览版没有任何特殊要求。但最近在开发和测试频道中提供给用户的 Windows 11 预览版，即使是在虚拟机上也开始要求 TPM 2.0，以使它们与单独运行操作系统的设备[保持一致](https://blogs.windows.com/windows-insider/2021/08/27/update-on-windows-11-minimum-system-requirements-and-the-pc-health-check-app/)。所以在理论上，除非 TPM 2.0 可用，否则你将不能再在虚拟机中运行 Windows 11。而 Oracle 已经开始为 VirtualBox [添加 TPM 2.0 设备支持](https://www.neowin.net/news/windows-11-may-work-with-virtualbox-as-oracle-apparently-preps-a-passthrough-driver-for-tpm/)了。

>
> 好吧，有人要在虚拟机中安装 Windows 11 吗？
>
>
>


如何在 VMware 中安装 Kali Linux

Summary: Kali Linux 是 用于学习和练习黑客攻击和渗透测试的 Linux 发行版 的不二之选。

kail玩的好，局子进的早

emmm，这种vmware使用说明，有点水啊

我看可刑?

不过对我这种纯纯小白想体验kali是有帮助的，感谢笔者

# 如何在 VMware 中安装 Kali Linux

Kali Linux 是 [用于学习和练习黑客攻击和渗透测试的 Linux 发行版](https://itsfoss.com/linux-hacking-penetration-testing/) 的不二之选。

而且，如果你经常捣鼓 Linux 发行版，出于好奇心，你可能已经尝试过它。

>
> **警告！**
>
>
> 本文介绍的内容仅供学习 Kali Linux 的安装，请勿使用 Kali Linux 进行任何非授权的行为。Kali Linux 应该用于在授权的情况下，对授权的目标进行合理的渗透测试，以了解其脆弱性并加以防范。本文作译者和本站均不对非授权和非法的使用及其造成的后果负责。
>
>
>

然而，无论你用它做什么，它都不能替代正规成熟的桌面 Linux 操作系统。因此，（至少对于初学者来说）建议使用虚拟机程序（如 VMware）来安装 Kali Linux。

通过虚拟机，你可以把 Kali Linux 作为你的 Windows 或 Linux 系统中的一个常规应用程序来使用，就像在你的系统中运行 VLC 或 Skype 一样。

有一些免费的虚拟化工具可供使用。你可以 [在 Oracle VirtualBox 上安装 Kali Linux](https://itsfoss.com/install-kali-linux-virtualbox/) ，也可以使用 VMWare Workstation。

本教程重点介绍 VMWare。

### 在 Windows 和 Linux 的 VMware 上安装 Kali Linux

>
> **非 FOSS 警报！**
>
>
> VMWare 不是开源软件。
>
>
>

对于本教程，我假定你使用的是 Windows，是考虑到大多数 VMware 用户喜欢使用 Windows 10/11。

然而，除了在 Windows 上安装 VMWare 的部分，本 **教程对 Linux 也是有效的**。你可以 [轻松地在 Ubuntu 和其他 Linux 发行版上安装 VMWare](https://itsfoss.com/install-vmware-player-ubuntu-1310/)。

#### 步骤 1：安装 VMWare Workstation Player（在 Windows 上）

如果你的系统上已经安装了 VMware，你可以跳到安装 Kali Linux 的步骤。

前往 [VMWare 的 Workstation Player 官方网页](https://www.vmware.com/products/workstation-player.html)，然后点击 “Download For Free” 按钮。

接下来，你可以选择版本（如果你想要特定的版本或遇到最新版本的 bug），然后点击 “Go to Downloads”。

然后你就会看到 Windows 和 Linux 版本的下载按钮。你需要点击 “Windows 64-bit” 的按钮，因为这就是我们在这里需要的。

顺便提一句，它不支持 32 位系统。

最后，当你得到下载的 .exe 文件时，启动它以开始安装过程。你需要点击 “Next” 来开始安装 VMware。

接下来，你需要同意这些政策和条件才能继续。

现在，你可以选择安装的路径。理想情况下，保持默认设置。但是，如果你在虚拟机中需要更好的键盘响应/屏幕上的键盘性能，你可能想启用 “<ruby> 增强型键盘驱动程序 <rt>  Enhanced Keyboard Driver </rt></ruby>”。

进入下一步，你可以选择禁用每次启动程序时的更新检查（可能很烦人），并禁用向 VMware 发送数据，这是其用户体验改进计划的一部分。

如果你想使用桌面和开始菜单的快捷方式进行快速访问，你可以勾选这些设置，或像我一样将其取消。

现在，继续以开始安装。

这可能需要一些时间，完成后，你会看到另一个窗口，让你完成这个过程，并让你选择输入一个许可证密钥。如果你想获得商业许可，你需要 VMware Workstation 专业版，否则，该 Player 版本对个人使用是免费的。

>
> **注意！**
>
>
> 请确保你的系统已经启用了虚拟化功能。最近的 VMWare 的 Windows 版本要求你明确启用虚拟化以使用虚拟机。
>
>
>

#### 步骤 2：在 VMware 上安装 Kali Linux

开始时，你需要下载 Kali Linux 的镜像文件。而且，如果你打算在虚拟机上使用它，Kali Linux 会提供一个单独的 ISO 文件。

前往其 [官方下载页面](https://www.kali.org/get-kali/)，下载可用的预构建的 VMware 镜像。

你可以直接下载 .7z 文件或利用 Torrent（一般来说速度更快）。在这两种情况下，你也可以用提供的 SHA256 值检查文件的完整性。

下载完成，你需要将文件解压到你选择的任何路径。

打开 VMware Workstation Player，然后点击 “<ruby> 打开一个虚拟机 <rt>  Open a Virtual Machine </rt></ruby>”。现在，寻找你提取的文件夹。然后浏览它，直到你找到一个扩展名为 .vmx 的文件。

比如说，`Kali-Linux-2021.3-vmware-amd64.vmx`。

选择 .vmx 文件来打开该虚拟机。它应该直接出现在你的 VMware Player 中。

你可以选择以默认设置启动虚拟机。或者，如果你想调整分配给虚拟机的硬件，可以在启动前随意改变设置。

根据你的计算机硬件，你应该分配更多的内存和至少一半的处理器核心，以获得流畅的性能。

在这种情况下，我有 16GB 的内存和一个四核处理器。因此，为这个虚拟机分配近 7GB 的内存和两个内核是安全的。

虽然你可以分配更多的资源，但它可能会影响你的宿主机操作系统在工作时的性能。所以，建议在这两者之间保持平衡。

现在，保存设置并点击 “<ruby> 播放虚拟机 <rt>  Play virtual machine </rt></ruby>” 来启动 Kali Linux on VMware。

当它开始加载时，你可能会看到一些提示，告诉你可以通过调整一些虚拟机设置来提高性能。

你不用必须这样做，但如果你注意到性能问题，你可以禁用<ruby> 侧通道缓解措施 <rt>  side-channel mitigations </rt></ruby>（用于增强安全性）来提高虚拟机的性能。

另外，你可能会被提示下载并 [安装 VMware tools for Linux](https://itsfoss.com/install-vmware-tools-linux/)；你需要这样做以获得良好的虚拟机体验。

完成之后，你就会看到 Kali Linux 的登录界面。

考虑到你启动了一个预先建立的 VMware 虚拟机，你需要输入默认的登录名和密码来继续。

* 用户名：`kali`
* 密码： `kali`

就是这样！你已经完成了在 VMware 上安装 Kali Linux。现在，你所要做的就是开始探索了！

### 接下来呢？

这里有一些你可以利用的提示：

* 如果剪贴板共享和文件共享不工作，请在访客系统（Kali Linux）上 [安装 VMWare tools](https://itsfoss.com/install-vmware-tools-linux/)。
* 如果你是新手，请查看这个 [Kali Linux 工具列表](https://itsfoss.com/best-kali-linux-tools/)。

如果你觉得这个教程有帮助，欢迎分享你的想法。你是否喜欢在不使用 VMware 镜像的情况下安装 Kali Linux？请在下面的评论中告诉我。

---

via: <https://itsfoss.com/install-kali-linux-vmware/>

作者：[Ankush Das](https://itsfoss.com/author/ankush/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


用 Linux sed 命令替换智能引号

Summary: 用你喜欢的 sed 版本去除“智能”引号。

用你喜欢的 sed 版本去除“智能”引号。

# 用 Linux sed 命令替换智能引号

>
> 用你喜欢的 sed 版本去除“智能”引号。
>
>
>

<img src="content_image/album_202109_21_151406chun5nyumy8wyu5y.png" alt="" title="Coding on a computer">

在排版学中，一对引号传统上是朝向彼此的。它们看起来像这样：

“智能引号”

随着计算机在二十世纪中期的普及，这种朝向往往被放弃了。计算机的原始字符集没有太多的空间，所以在 ASCII 规范中，两个双引号和两个单引号被缩减为各一个是合理的。如今，通用的字符集是 Unicode，有足够的空间容纳许多花哨的引号和撇号，但许多人已经习惯了开头和结尾引号都只有一个字符的极简主义。此外，计算机实际上将不同种类的引号和撇号视为不同的字符。换句话说，对计算机来说，右双引号与左双引号或直引号是不同的。

### 用 sed 替换智能引号

计算机并不是打字机。当你按下键盘上的一个键时，你不是在按一个带有印章的控制杆。你只是按下一个按钮，向你的计算机发送一个信号，计算机将其解释为一个显示特定预定义字符的请求。这个请求取决于你的键盘映射。作为一个 Dvorak 打字员，我目睹了人们在发现我的键盘上的 “asdf” 在屏幕上产生 “aoeu” 时脸上的困惑。你也可能按了一些特殊的组合键来产生字符，如 ™ 或 ß 或 ≠，这甚至没有印在你的键盘上。

每个字母或字符，不管它是否印在你的键盘上，都有一个编码。字符编码可以用不同的方式表达，但对计算机来说，Unicode 序列 u2018 和 u2019 产生 `‘` 和 `’`，而代码 u201c 和 u201d 产生 `“` 和 `”` 字符。知道这些“秘密”代码意味着你可以使用 [sed](https://opensource.com/article/20/12/sed) 这样的命令以编程方式替换它们。任何版本的 sed 都可以，所以你可以使用 GNU sed 或 BSD sed，甚至是 [Busybox](https://opensource.com/article/21/8/what-busybox) sed。

下面是我使用的简单的 shell 脚本：

```
#!/bin/sh
# GNU All-Permissive License

SDQUO=$(echo -ne '\u2018\u2019')
RDQUO=$(echo -ne '\u201C\u201D')
$SED -i -e "s/[$SDQUO]/\'/g" -e "s/[$RDQUO]/\"/g" "${1}"

```

将此脚本保存为 `fixquotes.sh`，然后创建一个包含智能引号的单独测试文件：

```
‘Single quote’
“Double quote”

```

运行该脚本，然后使用 [cat](https://opensource.com/article/19/2/getting-started-cat-command) 命令查看结果：

```
$ sh ./fixquotes.sh test.txt
$ cat test.txt
'Single quote'
"Double quote"

```

### 安装 sed

如果你使用的是 Linux、BSD 或 macOS，那么你已经安装了 GNU 或 BSD 的 `sed`。这是原始 `sed` 命令的两个独特的重新实现，对于本文中的脚本来说，它们在功能上是一样的(不过并不是所有的脚本都是这样)。

在 Windows 上，你可以用 [Chocolatey](https://opensource.com/article/20/3/chocolatey) [安装 GNU sed](https://chocolatey.org/packages/sed)。

---

via: <https://opensource.com/article/21/9/sed-replace-smart-quotes>

作者：[Seth Kenlon](https://opensource.com/users/seth) 选题：[lujun9972](https://github.com/lujun9972) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #401 Google 的标志性口号“不作恶”在劳工审判中受到质疑

Summary: 更多：• Linux 基金会调查显示企业急于招聘开源人才 • Apache OpenOffice 发现安全漏洞，能被恶意文件劫持

我觉得Google做得很好了。吹毛求疵没意思。

看看天朝的互联网公司，可能没几家有Google的节操。

如果没有Google作为标杆，还不知道烂成什么样子。

来自223.104.212.184的 MIUI Browser 15.3|Android 10 用户

# 硬核观察 #401 Google 的标志性口号“不作恶”在劳工审判中受到质疑

### Google 的标志性口号“不作恶”在劳工审判中受到质疑

上个月，软件工程师 Kyle Dhillon 在美国国家劳工关系委员会（NLRB）的审判中说，Google著名的企业口号“<ruby> 不作恶 <rt>  Don't be evil </rt></ruby>”，在五年前吸引了他加入这家科技巨头。近年来，Google 不再强调这一口号，但现在却成了 NLRB 对该公司投诉案的焦点，公众对该公司的行为准则进行了反思。2015 年，Google 成立新的 Alphabet 母公司之后，这句口号从 Google 行为准则的开头被移到了结尾。而 Alphabet 的更广泛的行为准则没有提到这句话。

>
> 终究还是“作恶”更容易一些。
>
>
>

### Linux 基金会调查显示企业急于招聘开源人才

在西雅图举行的开源峰会上，Linux 基金会和 edX 发布了 2021 年[开源工作报告](https://www.linuxfoundation.org/resources/publications/the-2021-open-source-jobs-report)。其中有几个值得注意的数据：92% 的经理人说难于找到足够的人才；在该调查历史上第一次，云和容器技术技能比 Linux 更受招聘经理的青睐，分别是 41% 和 32%；几乎所有的开源专业人士（88%）都报告说在他们的工作中使用 DevOps 实践；大多数雇主（88%）优先雇用经过认证的专业人员，而 2020 年为 57%，2018 年为 47%。

>
> 开源和云技术已经成为技术人的必备技能。
>
>
>

### Apache OpenOffice 发现安全漏洞，能被恶意文件劫持

Apache OpenOffice（AOO）目前存在[远程代码执行漏洞](https://www.theregister.com/2021/09/20/apache_openoffice_rce/)，虽然该应用的源代码已经打了补丁，但该修复程序只作为测试版软件提供，等待正式发布。该漏洞的公开披露日期是 8 月 30 日，这意味着大多数运行这个开源办公套件的人可能拥有该软件的脆弱版本，该套件已被下载数亿次，最后一次更新是在 5 月。

>
> 还有人用 OpenOffice 吗？赶快离开它吧。
>
>
>


满足日常需求的应用（五）：视频编辑器

Summary: 本文将介绍一些你可以在 Fedora Linux 上使用的开源视频编辑器。

本文将介绍一些你可以在 Fedora Linux 上使用的开源视频编辑器。

# 满足日常需求的应用（五）：视频编辑器

视频编辑已经成为一种流行的活动。人们出于各种原因需要视频编辑，不管是工作、教育或仅仅是一种爱好。现在也有很多平台可以在互联网上分享视频，以及几乎所有的社交媒体和聊天工具都提供分享视频的功能。本文将介绍一些你可以在 Fedora Linux 上使用的开源视频编辑器。你可能需要安装提到的这些软件才能使用。如果你不熟悉如何在 Fedora Linux 中添加软件包，请参阅我之前的文章《[安装 Fedora 34 工作站后要做的事情](https://fedoramagazine.org/things-to-do-after-installing-fedora-34-workstation/)》。这里列出了视频编辑器类别的一些日常需求的应用程序。

### Kdenlive

当有人问起 Linux 上的开源视频编辑器时，经常出现的答案是 Kdenlive。它是一个在开源用户群体中非常流行的视频编辑器。这是因为它的功能对于一般用途来说是足够的，而且对于非专业人士的人来说也很容易使用。

Kdenlive 支持多轨编辑，因此你可以将多个来源的音频、视频、图像和文本结合起来。这个应用程序还支持各种视频和音频格式，这样你就不必事先转换它们。此外，Kdenlive 提供了各种各样的效果和转场，以支持你的创造力来制作很酷的视频。Kdenlive 提供的一些功能有：用于创建 2D 字幕的字幕器、音频和视频范围、代理编辑、时间线预览、关键帧效果等等。

更多信息可在此链接中获得：<https://kdenlive.org/en/>

### Shotcut

Shotcut 与 Kdenlive 的功能大致相同。这个应用程序是一个通用的视频编辑器。它有一个相当简单的界面，但功能齐全，可以满足你视频编辑工作的各种需要。

Shotcut 拥有一套完整视频编辑功能，提供了从简单的编辑到高级的功能。它还支持各种视频、音频和图像格式。你不需要担心你的编辑历史，因为这个应用程序有无限的撤销和重做功能。Shotcut 还提供了各种视频和音频效果，因此你可以自由地创造性地制作你的视频作品。它提供的一些功能有：音频过滤器、音频混合、交叉淡化的音视频溶解过渡、音调发生器、速度变化、视频合成、3 路色轮、轨道合成/混合模式、视频过滤器等。

更多信息可在此链接中获得：<https://shotcut.org/>

### Pitivi

如果你想要一个具有直观和简洁用户界面的视频编辑器，Pitivi 将是正确的选择。你会对它的外观感到舒适，并且不难找到你需要的功能。这个应用程序被归类为非常容易学习，特别是如果你需要一个用于简单编辑需求的应用程序时。然而，Pitivi 仍然提供了种种功能，如修剪 & 切割、混音、关键帧音频效果、音频波形、音量关键帧曲线、视频过渡等。

更多信息可在此链接中获得：<https://www.pitivi.org/>

### Cinelerra

Cinelerra 是一个已经开发了很久的视频编辑器。它为你的视频工作提供了大量的功能，如内置帧渲染、各种视频效果、无限的层、8K 支持、多相机支持、视频音频同步、渲染农场、动态图形、实时预览等。这个应用程序可能不适合那些刚开始学习的人。我认为你需要一段时间来适应这个界面，特别是如果你已经熟悉了其他流行的视频编辑应用程序。但 Cinelerra 仍是一个有趣的选择，可以作为你的视频编辑器。

更多信息请见此链接：<http://cinelerra.org/>

### 总结

这篇文章介绍了四个在 Fedora Linux 上可用的视频编辑器应用，以满足你的日常需求。实际上，在 Fedora Linux 上还有很多其他的视频编辑器可以使用。你也可以使用 Olive（Fedora Linux 仓库）、 OpenShot（rpmfusion-free）、Flowblade（rpmfusion-free）等等。每个视频编辑器都有自己的优势。有些在纠正颜色方面比较好，而有些在各种转场和效果方面比较好。当涉及到如何轻松地添加文本时，有些则更好。请选择适合你需求的应用程序。希望这篇文章可以帮助你选择正确的视频编辑。如果你有使用这些应用程序的经验，请在评论中分享你的经验。

---

via: <https://fedoramagazine.org/apps-for-daily-needs-part-5-video-editors/>

作者：[Arman Arisman](https://fedoramagazine.org/author/armanwu/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


Summary: 更多：• Ubuntu 14.04/16.04 LTS 支持期延长至十年 • 安全部门成功阻止最大的 DDoS 僵尸网络 1/5 的设备

# 硬核观察 #402 美国联邦调查局早就拿到了 REvil 解密密钥但并没有用来解锁

### 美国联邦调查局早就拿到了 REvil 解密密钥但并没有用来解锁

[据称](https://www.washingtonpost.com/national-security/ransomware-fbi-revil-decryption-key/2021/09/21/4a9417d0-f15f-11eb-a452-4da5fe48582d_story.html)，尽管美国联邦调查局已经秘密从 REvil 黑客组织的服务器上得到解密密钥，但在近三周的时间里，他们没有帮助解锁今年夏天受到重大勒索软件攻击的数百家企业和机构的计算机。如果立即部署这些密钥可以帮助受害者，以避免估计的数百万美元的恢复费用。但是，联邦调查局没有帮忙解锁，而是正计划开展一项行动来瓦解 REvil 黑客组织，以免打草惊蛇。不过，在联邦调查局有机会执行其计划之前，7 月中旬 REvil 的平台就自行下线了，该组织就[消失](/article-13583-1.html)了。

>
> 最终蛇也跑了，鸡也没了。
>
>
>

### Ubuntu 14.04/16.04 LTS 支持期延长至十年

Ubuntu 18.04 LTS 和 Ubuntu 20.04 LTS 已经有了十年的支持计划，而 Canonical 宣布将 Ubuntu 14.04 LTS 和 Ubuntu 16.04 LTS 也[支持十年](https://ubuntu.com/blog/ubuntu-14-04-and-16-04-lifecycle-extended-to-ten-years)，这意味着它们现在将分别支持到 2024 年 4 月和 2026 年 4 月。原本这些早期的 LTS 版本在 5 年支持期结束后，Canonical 提供了 3 年的对个人免费的扩展安全服务（ESM）。

>
> 确实，有很多生产环境的 Linux 服务器没法做升级，这也说明了 Ubuntu 在企业用户中保持了大量的长期用户。
>
>
>

### 安全部门成功阻止最大的 DDoS 僵尸网络 1/5 的设备

Meris 僵尸网络在今年早些时候首次被发现，是目前互联网上最大的 DDoS 僵尸网络，其规模估计约为 25 万个受感染的系统，绝大多数受感染的系统都是 MikroTik 网络设备，如路由器、交换机和接入点。Meris 今年两次打破了最大容量 DDoS 攻击的记录，一次是在 [6 月](/article-13706-1.html)，另一次是在 [9 月](/article-13770-1.html)。俄罗斯电信巨头 Rostelecom 旗下网络安全部门周一[表示](https://therecord.media/russian-security-firm-sinkholes-part-of-the-dangerous-meris-ddos-botnet/)，他们发现并利用恶意软件创建者的一个纰漏，提前占位了一个 C&C 域名，成功阻止了 Meris 僵尸网络约 1/5 的设备获取攻击指令。

>
> 说到底，这些联网设备的厂商没有更新设备的主动性，这种僵尸网络会越来越庞大。
>
>
>


用 Linux 的 watch 命令观察命令和任务

Summary: 了解 watch 命令如何让你知道任务已完成或命令已执行。

了解 watch 命令如何让你知道任务已完成或命令已执行。

# 用 Linux 的 watch 命令观察命令和任务

>
> 了解 watch 命令如何让你知道任务已完成或命令已执行。
>
>
>

<img src="content_image/album_202109_22_104541ddfgzpvud5ga55sp.jpg" alt="" title="Clock, pen, and notepad on a desk">

有很多时候，你需要等待一些事情的完成，比如：

* 一个文件的下载。
* 创建或解压一个 [tar](https://opensource.com/article/17/7/how-unzip-targz-file) 文件。
* 一个 [Ansible](https://opensource.com/resources/what-ansible) 作业。

其中一些进程有进度指示，但有时进程是通过一层抽象运行的，衡量进度的唯一方法是通过其副作用。其中一些可能是：

* 一个正在下载的文件不断增长。
* 一个从 tarball 中提取的目录被文件填满了。
* Ansible 作业构建了一个[容器](https://opensource.com/resources/what-docker)。

你可以用这样的命令查询所有这些：

```
$ ls -l downloaded-file
$ find . | wc -l
$ podman ps
$ docker ps

```

但是反复运行这些命令，即使是利用 [Bash 历史](https://opensource.com/article/20/6/bash-history-control) 和**向上箭头**的便利，也是很乏味的。

另一种方法是写一个小的 Bash 脚本来为你自动执行这些命令：

```
while :
do
 docker ps
 sleep 2
done

```

但这样的脚本写起来也会很繁琐。你可以写一个小的通用脚本，并将其打包，这样它就可以一直被你使用。幸运的是，其他开源的开发者已经有了这样的经验和做法。

那就是 `watch` 这个命令。

### 安装 watch

`watch` 命令是 [procps-ng 包](https://opensource.com/article/21/8/linux-procps-ng)的一部分，所以如果你是在 Linux 上，你已经安装了它。

在 macOS 上，使用 [MacPorts](https://opensource.com/article/20/11/macports) 或 [Homebrew](https://opensource.com/article/20/6/homebrew-mac) 安装 `watch`。在 Windows 上，使用 [Chocolatey](https://opensource.com/article/20/3/chocolatey)。

### 使用 watch

`watch` 命令定期运行一个命令并显示其输出。它有一些文本终端的特性，所以只有最新的输出才会出现在屏幕上。

最简单的用法是：`watch <command>`。

例如，在 `docker ps` 命令前加上 `watch`，就可以这样操作：

```
$ watch docker ps

```

用 `watch` 命令，以及一些创造性的 Unix 命令行技巧，可以生成临时的仪表盘。例如，要计算审计事件：

```
$ watch 'grep audit: /var/log/kern.log |wc -l'

```

在最后一个例子中，如果有一个可视化的指示，表明审计事件的数量发生了变化，这可能是有用的。如果变化是预期的，但你想让一些东西看起来“不同”，`watch --differences` 就很好用。它可以高亮显示与上次运行的任何差异。如果你在多个文件中搜索，这一点尤其有效，所以你可以很容易地看到哪个文件发生了变化。

如果没有预期的变化，你可以使用 `watch --differences=permanent` 要求它们被“永久”高亮显示，以便知道哪些变化需要调查。这通常是更有用的。

### 控制频率

最后，有时该命令可能是资源密集型的，不应运行得太频繁。`-n` 参数控制频率。`watch` 默认使用 2 秒间隔，但是 `watch -n 10` 可能适合于资源密集型的情况，比如在子目录的任何文件中搜索一个模式：

```
$ watch -n 10 'find . -type f | xargs grep suspicious-pattern'

```

### 用 watch 观察一个命令

`watch` 命令对于许多临时性的系统管理任务非常有用，在这些任务中，你需要在没有进度条的情况下等待一些耗时的步骤，然后再进入下一个步骤。尽管这种情况并不理想，但 `watch` 可以使情况稍微好转。它让你有时间为工作做回顾性笔记！"。下载 [备忘录](https://opensource.com/downloads/watch-cheat-sheet)，让有用的语法和选项触手可及。。

---

via: <https://opensource.com/article/21/9/linux-watch-command>

作者：[Moshe Zadka](https://opensource.com/users/moshez) 选题：[lujun9972](https://github.com/lujun9972) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


YAML 使用入门

Summary: 什么是 YAML，为什么我们现在应该开始使用它？

这个和markdown有什么本质区别呢？  又造一个轮子吗，搞不懂。

YAML生于2001，markdown生于2004。<br />
程序员造“轮子”不是很正常吗，别人的“轮子”都不适合自己的“车”。

什么是 YAML，为什么我们现在应该开始使用它？

# YAML 使用入门

>
> 什么是 YAML，为什么我们现在应该开始使用它？
>
>
>

<img src="content_image/album_202109_23_095242fw0qzzp5fe6e565z.jpg" alt="" title="young woman working on a laptop">

[YAML](https://yaml.org/)（<ruby> YAML 不是标记语言 <rt>  YAML Ain't Markup Language </rt></ruby>）是一种适宜阅读理解的数据序列化语言。它的语法简单而易于阅读。它不包含引号、打开和关闭的标签或大括号。它不包含任何可能使人类难以解析嵌套规则的东西。你可以看一下你的 YAML 文档就知道它在什么。

### YAML 特性

YAML 有一些超级特性，使其优于其他序列化格式：

* 易于略读。
* 易于使用。
* 可在编程语言之间移植。
* 敏捷语言的原生数据结构。
* 支持通用工具的一致模型。
* 支持一次性处理。
* 表现力和可扩展性。

我将通过一些例子进一步向你展示 YAML 的强大。

你能弄清楚下面发生了什么吗？

```
-------
# My grocery list
groceries:
    - Milk
    - Eggs
    - Bread
    - Butter
...

```

上面的例子包含了一个简单的杂货购物清单，它是一个完全格式化的 YAML 文档。在 YAML 中，字符串不加引号，而列表需要简单的连字符和空格。一个 YAML 文档以 `---` 开始，以 `...` 结束，但它们是可选的。YAML中的注释以 `#` 开始。

缩进是 YAML 的关键。缩进必须包含空格，而不是制表符。虽然所需的空格数量是灵活的，但保持一致是个好主意。

### 基本元素

#### 集合

YAML 有两种类型的集合。列表（用于序列）和字典（用于映射）。列表是键值对，每个值都在一个新的行中，以连字符和空格开始。字典也是键值对，每个值都是一个映射，包含一个键、一个冒号和空格以及一个值。

例如：

```
# My List
groceries:
    - Milk
    - Eggs
    - Bread
    - Butter

# My dictionary
contact:
    name: Ayush Sharma
    email: myemail@example.com

```

列表和字典经常被结合起来，以提供更复杂的数据结构。列表可以包含字典，而字典可以包含列表。

#### 字符串

YAML 中的字符串不需要加引号。多行字符串可以用 `|` 或 `>` 来定义。前者保留了换行符，而后者则没有。

例如：

```
my_string: |
    This is my string.
    It can contain many lines.
    Newlines are preserved.

```

```
my_string_2: >
    This is my string.
    This can also contain many lines.
    Newlines aren't preserved and all lines are folded.

```

#### 锚点

YAML 可以通过节点锚点来获得可重复的数据块。`&` 字符定义了一个数据块，以后可以用 `*` 来引用。例如：

```
billing_address: &add1
    house: B1
    street: My Street

shipping_address: *add1

```

至止你对 YAML 的了解就足以让你开始工作了。你可以使用在线 YAML 解析器来测试。如果你每天都与 YAML 打交道，那么 [这个方便的备忘单](https://yaml.org/refcard.html) 会对你有所帮助。

*这篇文章最初发表在[作者的个人博客](https://notes.ayushsharma.in/2021/08/introduction-to-yaml)上，并经授权改编。*

---

via: <https://opensource.com/article/21/9/intro-yaml>

作者：[Ayush Sharma](https://opensource.com/users/ayushsharma) 选题：[lujun9972](https://github.com/lujun9972) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


Summary: 更多：• 树莓派基金会获 4500 万美元融资，估值 5 亿 • MIT 新研究表明 43% 的算法改进速度超过摩尔定律

# 硬核观察 #403 微软 Exchange 曝出安全漏洞，可获取全球 Windows 域和应用凭证

### 微软 Exchange 曝出安全漏洞，可获取全球 Windows 域和应用凭证

该[漏洞](https://techcrunch.com/2021/09/22/autodiscover-exchange-windows-passwords-leak/)存在于 Exchange 电子邮件服务器的 Autodiscover 协议中，允许电子邮件客户自动发现电子邮件服务器，提供凭证，然后接收适当的配置。为了获得这些自动配置，电子邮件客户通常会探测一系列预先确定的 URL，这些 URL 中采用客户域名和 autodiscover 等关键字组合而成。然而问题就在这里，在找不到这些预制域名时，Exchange 客户端会寻找 [autodiscover.com](http://autodiscover.com/)、[autodiscover.com.cn](http://autodiscover.com.cn/) 等域名。也就是说，谁拥有这些域名，就会收到所有这些失败的请求，其中包含有用户的凭证。研究人员注册了一些这种域名，搭建了蜜罐，四个多月里收到了数百个请求和成千上万的凭证，其中还包括一些来自中国上市公司的凭证。

>
> 微软滥用默认域名已经不是第一次了。当年 [corp.com](http://corp.com/) 域名就是最臭名昭著的一个，最后微软花了 160 万美元才把这个域名买下来。
>
>
>

### 树莓派基金会获 4500 万美元融资，估值 5 亿

非营利机构树莓派基金会于昨日宣布，其已完成新一轮 4500 万美元的[融资](https://techcrunch.com/2021/09/21/raspberry-pi-gets-45m-to-meet-demand-for-low-cost-pcs-and-iot/)。本轮融资由一家私人慈善基金会领投，融资后估值为 5 亿美元左右。树莓派打算将这笔资金用于扩展丰富的 Pi 微处理器产品线，另外计划在面向广大消费者群体的“自建 PC”和面向工业应用的物联网领域加大营销投入。目前树莓派的年设备出货量超过 700 万台，且树莓派基金会正在向 100 多个市场区域投放超过 4200 台由 Pi 驱动的 PC 。

>
> 这是最成功的单板机了，你要是没有一块吃灰的树莓派，你都不好意思说自己是个计算机爱好者。
>
>
>

### MIT 新研究表明 43% 的算法改进速度超过摩尔定律

MIT 的两位研究人员对来自 57 本教科书，超过 1137 篇研究论文的数据进行了分析，统计了从 1940 年到现在的各种算法的改进，他们[发现](https://news.mit.edu/2021/how-quickly-do-algorithms-improve-0920)，在 110 个算法家族上，对中等规模（n=1000）的问题来说，只有 18% 的算法改进率快于硬件；当规模达到百万、亿、甚至万亿级别时，算法的改进速度就超过了硬件性能；甚至有 14% 的算法家族的改进率超过 1000%，远超硬件改进所带来的性能提升。

>
> 硬件的更新毕竟需要更多时间和投入，还是人类大脑做成的改进毕竟快。
>
>
>


Linux 黑话解释：什么是 sudo rm -rf？为什么如此危险？

Summary: 当你刚接触 Linux 时，你会经常遇到这样的建议：永远不要运行 sudo rm -rf /。在 Linux 世界里，更是围绕着 sudo rm -rf 有很多梗。

# Linux 黑话解释：什么是 sudo rm -rf？为什么如此危险？

当你刚接触 Linux 时，你会经常遇到这样的建议：永远不要运行 `sudo rm -rf /`。在 Linux 世界里，更是围绕着 `sudo rm -rf` 有很多梗。

但似乎对于它也有一些混乱的认识。在 [清理 Ubuntu 以腾出空间](https://itsfoss.com/free-up-space-ubuntu-linux/) 的教程中，我建议运行一些涉及 `sudo` 和 `rm -rf` 的命令。一位读者问我，如果 `sudo rm -rf` 是一个不应该运行的危险的 Linux 命令，我为什么要建议这样做。

因此，我想到了写一篇 Linux 黑话解释，以消除误解。

### sudo rm -rf 在做什么？

让我们按步骤来学习。

`rm` 命令用于 [在 Linux 命令行中删除文件和目录](https://linuxhandbook.com/remove-files-directories/)。

```
$ rm agatha
$

```

但是因为有只读的 [文件权限](https://linuxhandbook.com/linux-file-permissions/)，有些文件不会被立即删除。它们必须用选项 `-f` 强制删除。

```
$ rm books
rm: remove write-protected regular file 'books'? y
$ rm -f christie
$

```

另外，`rm` 命令不能被用来直接删除目录（文件夹）。你必须在 `rm` 命令中使用递归选项 `-r`。

```
$ rm new_dir
rm: cannot remove 'new_dir': Is a directory

```

因此最终，`rm -rf` 命令意味着递归地、强制删除指定的目录。

```
$ rm -r new_dir
rm: remove write-protected regular file 'new_dir/books'? ^C
$ rm -rf new_dir
$

```

下面是上述所有命令的截图。

如果你在 `rm -rf` 命令前加入 `sudo`，你就是在删除具有 root 权限的文件。这意味着你可以删除由 [root 用户](https://itsfoss.com/root-user-ubuntu/) 拥有的系统文件。

### 所以，sudo rm -rf 是一个危险的 Linux 命令？

嗯，任何删除东西的命令都可能是危险的，如果你不确定你正在删除什么。

把 `rm -rf` 命令看作一把刀。刀是一个危险的东西吗？有可能。如果你用刀切蔬菜，那是好事。如果你用刀切手指，那当然是不好的。

`rm -rf` 命令也是如此。它本身并不危险。它只是用来删除文件的。但是，如果你在不知情的情况下用它来删除重要文件，那就有问题了。

现在来看看 `sudo rm -rf /`。

你知道，使用 `sudo`，你是以 root 身份运行一个命令，这允许你对系统进行任何改变。

`/` 是根目录的符号。`/var` 表示根目录下的 `var` 目录。`/var/log/apt` 指的是根目录的 `log` 目录下的 `apt` 目录。

按照 [Linux 目录层次结构](https://linuxhandbook.com/linux-directory-structure/)，Linux 文件系统中的一切都从根目录开始。如果你删除了根目录，你基本上就是删除了系统中的所有文件。

这就是为什么建议不要运行 `sudo rm -rf /` 命令，因为你会抹去你的整个 Linux 系统。

请注意，在某些情况下，你可能正在运行像 `sudo rm -rf /var/log/apt` 这样的命令，这可能是没问题的。同样，你必须注意你正在删除的东西，就像你必须注意你正在用刀切割的东西一样。

### 我在玩火：如果我运行 sudo rm -rf /，看看会发生什么呢？

大多数 Linux 发行版都提供了一个故障安全保护，防止意外删除根目录。

```
$ sudo rm -rf /
[sudo] password for abhishek:
rm: it is dangerous to operate recursively on '/'
rm: use --no-preserve-root to override this failsafe

```

我的意思是，人是会打错字的，如果你不小心打了 `/ var/log/apt`，而不是 `/var/log/apt`（`/` 和 `var` 之间的空格意味着你给出了 `/` 和 `var` 目录来删除），你将会删除根目录。（LCTT 译注：我真干过，键盘敲的飞起，结果多敲了一个空格，然后就丢了半个文件系统 —— 那时候 Linux 还没这种故障安全保护。）

别担心。你的 Linux 系统会照顾到这种意外。

现在，如果你一心想用 `sudo rm -rf /` 来破坏你的系统呢？你将必须使用它将要求你使用的 `-no-preserve-root` 选项与之配合。

不，请不要自己这样做。让我做给你看看。

所以，我在一个虚拟机中运行基本的操作系统。我运行 `sudo rm -rf / --no-preserve-root`，你可以在下面的视频中看到灯光熄灭（大约 1 分钟）。

### 清楚了么？

Linux 有一个活跃的社区，大多数人都会帮助新用户。 之所以说是大多数，是是因为有一些的邪恶坏人潜伏着捣乱新用户。他们经常会建议对初学者所面临的最简单的问题运行 `rm -rf /`。我认为这些白痴在这种邪恶行为中得到了某种至上主义的满足。我会立即将他们从我管理的论坛和群组中踢出去。

我希望这篇文章能让你更清楚地了解这些情况。你有可能仍然有一些困惑，特别是因为它涉及到根目录、文件权限和其他新用户可能不熟悉的东西。如果是这样的话，请在评论区告诉我你的疑惑，我会尽力去解决。

最后，请记住。<ruby> 不要喝酒胡搞 <rt>  Don’t drink and root </rt></ruby>。在运行你的 Linux 系统时要安全驾驶。

---

via: <https://itsfoss.com/sudo-rm-rf/>

作者：[Abhishek Prakash](https://itsfoss.com/author/abhishek/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #404 谷歌终于转向“上游优先”方式来实现安卓功能

Summary: 更多：• GNOME 41 发布 • Ubuntu Touch OTA-19 发布

与其说googole转变，不如说是GPL协议本身带来的某些特性，让google知道大家好才是真的好

我连Google公司都进不去，现在也想着指导Google做事。

哈哈，但现在这似乎不是不可能了。

来自河南郑州的 Chrome Mobile 83.0|Android 10 用户

哈哈，但现在这似乎不是不可能了。

哈哈，但现在这似乎不是不可能了。

哈哈，但现在这似乎不是不可能了。

# 硬核观察 #404 谷歌终于转向“上游优先”方式来实现安卓功能

### 谷歌终于转向“上游优先”方式来实现安卓功能

安卓系统以其在 Linux 内核树外携带的下游补丁而臭名昭著，并且各种供应商/设备的树外补丁更加剧了这一状况。而近年来，谷歌在向安卓通用内核镜像（GKI）转变，上游化更多的安卓代码，将其作为他们所有产品内核的基础，以进一步减少碎片化的现象。在 Android 12 和基于 Linux 5.10 开发的的 GKI 中，谷歌进一步[减少了碎片化](https://www.phoronix.com/scan.php?page=news_item&px=Android-Linux-Upstream-First)，做到了“几乎消除”。在 GKI 中，大部分供应商/OEM 的内核功能现在要么被上游到 Linux 内核中，要么被隔离到供应商模块/钩子中，要么被合并到安卓公共内核（ACK）中。谷歌还承诺“努力将 ACK 中的所有树外补丁上游化”。

>
> 谷歌最初就想着自己的小算盘，现在终于领悟了“大家好才是真的好”。
>
>
>

### GNOME 41 发布

[新版本](https://help.gnome.org/misc/release-notes/41.0/)带来了很多新的变化，例如增强多任务设置和一个全新的远程桌面客户端 “Connections”。最重要的是，GNOME 41 带来了明显的性能改进，特别是对于那些使用 Wayland 的用户。新版本还为开发者带来了重大改进，包括一个新的开发者文档网站，一个重要的新版人机界面指南，Builder IDE 的新功能，GTK 4 增强等等。GNOME 团队表示：“GNOME 41 对系统进行了全面的修改，无论是外观还是交互都比此前更好。几乎系统的每一个部分都以某种方式进行了打磨或改进。”

>
> 作为 Linux 的两大桌面环境，可以说，GNOME 已经越来越尽善尽美了。
>
>
>

### Ubuntu Touch OTA-19 发布

本周二，UBports [发布](https://ubports.com/zh_CN/blog/ubports-1/post/ubuntu-touch-ota-19-release-3779)了 Ubuntu Touch OTA-19 版本更新。这是一款适用于智能手机和平板的 Ubuntu Linux 发行版本。本次 OTA-19 更新依然基于过时的 Ubuntu 16.04 LTS 代码库，后续版本将会过渡到 Ubuntu 20.04 LTS，但是估计移植工作会很多。Ubuntu Touch 适用于多种设备，包括小米、魅族和索尼、LG 及其他安卓设备。

>
> 我一度以为这个系统已经消亡了。
>
>
>


GNOME 41 发布：最受欢迎的 Linux 桌面环境的精细打磨

GNOME竟然变成最受欢迎的了

gnome3始终像个半成品

来自河南洛阳的 Chrome Mobile 83.0|Android 10 用户

gnome3始终像个半成品

gnome3始终像个半成品

gnome3始终像个半成品

gnome tweak tools跟上了没有 没有的话我继续用3

# GNOME 41 发布：最受欢迎的 Linux 桌面环境的精细打磨

>
> GNOME 41 是一次有价值的升级，它带来了新的应用程序、功能和细微的视觉改进。
>
>
>

现在 GNOME 41 稳定版终于发布了。

虽然 GNOME 40 带来了不少激进的改变，让许多用户不得不去适应新的工作流程，但 GNOME 41 似乎避免了这个问题。

在 GNOME 41 中没有明显的工作流程变化，但有增加了新的功能，做了全面的改进。

GNOME 41 的测试版已经发布了一段时间了。而且，为了发现它值得关注的地方，我们在发布前就使用 [GNOME OS](https://itsfoss.com/gnome-os/) 试用了它的稳定版。

### GNOME 41 有什么新功能？

GNOME 41 并没有给你带来任何新的视觉感受，但是一些有用的改进可以帮助你改善或控制工作流程。

此外，还升级了一些 GNOME 应用程序。

让我提一下 GNOME 41 的主要亮点。

#### GNOME 41 软件的上下文板块

每个版本中，用户都期待着对 GNOME “<ruby> 软件 <rt>  Software </rt></ruby>”的改进。

虽然他们一直在朝着正确的方向改进它，但它需要一次视觉上的重新打造。而且，这一次，GNOME 41 带来了急需的 UI 更新。

软件商店的描述性更强了，看起来应该对新用户有吸引力。它使用表情符号/创意图标来对应用程序进行分类，使软件中心变得更时尚。

就像 [Apps for GNOME](https://news.itsfoss.com/apps-for-gnome-portal/) 门户网站一样，“软件”的应用程序屏幕包括了更多的细节，以尽可能地告知用户，而不需要参考项目页面或其网站。

换句话说，这些添加到应用程序页面的上下文板块，提供了有关设备支持、安全/许可、年龄等级、下载的大小、项目等信息。

你还可以为某些应用程序（如 GIMP）选择可用的附加组件，以便一次都安装上。这样你就可以节省寻找附加组件和单独安装它们的时间了。

事实证明，GNOME 41 “软件”比以前更有好用了。

#### 新的多任务选项

GNOME 41 打造了新的多任务设置以帮助你改善工作流程。

你可以通过切换热角来快速打开“<ruby> 活动概览 <rt>  Activities Overview </rt></ruby>”。还添加了一个拖动窗口到边缘时调整其大小的能力。

根据你的需求，你可以设置一个固定的可用工作空间的数量，当然也可以保持动态数量。

除此以外，你还可以调整这些功能：

* 多显示器工作区
* 应用程序切换行为

当你有多个显示器时，你可以选择将工作空间限制在一个屏幕上，或在连接的显示器上连续显示。

而且，当你在切换应用程序并浏览它们时，你可以自定义只在同一工作区或在所有工作区预览应用程序。

#### 节电设置

在 GNOME 41 中，现在有一个有效节省电力的性能调整。这对于笔记本用户手动调整其性能，或者当一个应用程序要求切换模式以节省电力时，是非常有用的。

#### GNOME “日历”的改进

GNOME “<ruby> 日历 <rt>  Calendar </rt></ruby>”现在可以打开 ICS 文件及导入活动。

#### 触摸板手势

无缝的工作流程的体验：可以利用三指垂直向上/向下滑动的动作来获得“活动概览”，以及利用三指水平向右/向左滑动的动作在工作空间之间导航。

很高兴看到他们重点放在改善使用触摸板的工作流程上，这类似于 [elementary OS 6 的功能](https://news.itsfoss.com/elementary-os-6-features/)。

#### GNOME 连接应用

添加了一个新的“<ruby> 连接 <rt>  Connections </rt></ruby>”应用程序，可以连接到远程计算机，不管是什么平台。

我看到这个应用程序仍然是一个 alpha 版本，但也许随着接下来的几次更新，就会看到这个应用程序的完成版本。

我还没有试过它是否可以工作，但也许值得再写一篇简短的文章来告诉你如何使用它。

#### SIP/VoIP 支持

在 [GNOME 41 测试版](https://news.itsfoss.com/gnome-41-beta/) 中，我发现了对 SIP/VoIP 的支持。

如果你是一个商业用户或者经常打国际电话，你现在可以直接从 GNOME 41 的拨号盘上拨打 VoIP 电话了。

不幸的是，在使用带有 GNOME 41 稳定版的 GNOME OS 时，我无法找到包含的“<ruby> 通话 <rt>  Calls </rt></ruby>”应用程序。所以，我无法截图给你看。

#### GNOME Web / Epiphany 的改进

GNOME Web（即 Epiphany 浏览器）最近进行了很多很棒的改进。

在 GNOME 41 中，Epiphany 浏览器现在利用 AdGuard 的脚本来阻止 YouTube 广告。别忘了，它还增加了对 Epiphany canary 构建版的支持。

#### 其他改进

在底层，有一些细微但重要的变化带来了更好、更快的用户体验。

例如，你可能会注意到，在应用程序/窗口的标题区域，图标更加醒目。这是为了提高清晰度和增强外观。

同样地，GNOME 应用程序和功能也有许多改进，你在使用它们时可能会发现：

* GNOME “<ruby> 地图 <rt>  Map </rt></ruby>”现在以一种用户友好的方式显示平均海平面。
* Nautilus 文件管理器进行了改进，支持有密码保护的压缩文件，并能够让你切换启用/禁用自动清理垃圾的功能
* “<ruby> 音乐 <rt>  Music </rt></ruby>”应用程序的用户界面进行了更新
* GNOME 文本编辑器有了更多功能
* GTK 更新至 4.4.0
* 增加 libawaita，以潜在地改善 GNOME 应用程序的用户体验

你可以参考 [官方更新日志和公告博文](https://help.gnome.org/misc/release-notes/41.0/) 来探索所有的技术变化。

### 总结

GNOME 41 可能不是一个突破性的升级，但它是一个带有许多有价值的补充的重要更新。

你可以期待在下个月发布 Fedora 35 中带有它。不幸的是，Ubuntu 21.10 将不包括它，但你可以在其他 Linux 发行版中等待它。

---

via: <https://news.itsfoss.com/gnome-41-release/>

作者：[Ankush Das](https://news.itsfoss.com/author/ankush/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


如何在树莓派 4 上安装 Ubuntu 桌面系统

Summary: 本教程将详细告诉你在树莓派 4 设备上如何安装 Ubuntu 桌面。

实用

技术活，当赏！

如何通过修改配置文件的方式，配置WiFi连接

本教程将详细告诉你在树莓派 4 设备上如何安装 Ubuntu 桌面。

# 如何在树莓派 4 上安装 Ubuntu 桌面系统

>
> 本教程将详细告诉你在树莓派 4 设备上如何安装 Ubuntu 桌面。
>
>
>

革命性的<ruby> 树莓派 <rt>  Raspberry Pi </rt></ruby>是最受欢迎的单板计算机。它拥有基于 Debian 的操作系统，叫做 <ruby>   树莓派操作系统  <rt>  Raspberry Pi OS </rt></ruby>（原名 Raspbian）。

还有其他几个 [可用于树莓派的操作系统](https://itsfoss.com/raspberry-pi-os/)，但几乎所有的都是轻量级的，适合于树莓派设备的小尺寸和低端硬件。

随着标榜 8GB 内存和支持 4K 显示的树莓派 4B 的推出，情况发生了变化。其目的是将树莓派作为常规桌面使用，并在更大程度上成功地做到了这一点。

在 4B 型号之前，你可以 [在树莓派上安装 Ubuntu 服务器](https://itsfoss.com/install-ubuntu-server-raspberry-pi/)，但桌面版本却无法使用。然而，**Ubuntu 现在为树莓派 4 提供了官方的桌面镜像**。

在本教程中，我将展示在树莓派 4 上安装 Ubuntu 桌面的步骤。

首先，快速了解一下运行要求。

### 在树莓派 4 上运行 Ubuntu 的要求

以下是你需要的东西：

1. 一个能够联网的 Linux 或 Windows 系统。
2. [树莓派镜像工具](https://github.com/raspberrypi/rpi-imager) ：树莓派的官方开源工具，可以在你的 SD 卡上写入发行版镜像。
3. Micro SD 卡：最低使用 16GB 的存储卡，推荐使用 32GB 的版本。
4. 一个基于 USB 的 Micro SD 卡读卡器（如果你的电脑没有读卡器）。
5. 树莓派 4 必备配件，如 HDMI 兼容显示器、[Micro HDMI 连接到标准 HDMI（A/M） 接口的电缆](https://www.raspberrypi.org/products/micro-hdmi-to-standard-hdmi-a-cable/)、[电源（建议使用官方适配器）](https://www.raspberrypi.org/products/type-c-power-supply/)、USB 的有线/无线键盘和鼠标/触摸板。

最好能够提前 [详细阅读树莓派的要求](https://itsfoss.com/things-you-need-to-get-your-raspberry-pi-working/) 。

现在，闲话少叙，让我快速带领你完成 SD 卡的镜像准备。

### 为树莓派准备 Ubuntu 桌面镜像

树莓派提供了一个 GUI 应用程序，用于将 ISO 镜像写入 SD 卡中。**这个工具还可以自动下载兼容的操作系统，如 Ubuntu、树莓派操作系统等**。

你可以从官方网站上下载这个工具的 Ubuntu、Windows 和 macOS 版本：

* [下载树莓派镜像工具](https://www.raspberrypi.org/software/)

在 Ubuntu 和其他 Linux 发行版上，你也可以使用 Snap 安装它：

```
sudo snap install rpi-imager

```

安装完毕后，运行该工具。当你看到下面的界面时，选择 “<ruby> 选择操作系统 <rt>  CHOOSE OS </rt></ruby>”：

在“<ruby> 操作系统 <rt>  Operating System </rt></ruby>”下，选择 “<ruby> 其它通用的操作系统 <rt>  Other general purpose OS </rt></ruby>”：

现在，选择 “Ubuntu”：

接下来，选择 “Ubuntu Desktop 21.04（RPI 4/400）”，如下图所示。

>
> **注意：**
>
>
> 如果你没有一个稳定的网络连接，你可以 [从 Ubuntu 的网站上单独下载 Ubuntu 的树莓派镜像](https://ubuntu.com/download/raspberry-pi)。在镜像工具中，在选择操作系统时，从底部选择“<ruby> 使用自定义 <rt>  Use custom </rt></ruby>”选项。你也可以使用 Etcher 将镜像写入到 SD 卡上。
>
>
>

将 Micro SD 卡插入读卡器中，等待它挂载。选择“<ruby> 存储设备 <rt>  Storage </rt></ruby>”下的 “<ruby> 选择存储设备 <rt>  CHOOSE STORAGE </rt></ruby>”：

你应该可以根据存储空间大小，识别你的 Micro SD 卡。这里，我使用的是 32GB 的卡：

现在点击“<ruby> 写入 <rt>  WRITE </rt></ruby>”：

如果你已经备份了 SD 卡上的内容或是一张新卡，你可以直接进行：

由于这需要 [sudo](https://itsfoss.com/add-sudo-user-ubuntu/) 的权限，你必须输入密码。如果你从终端运行 `sudo rpi-imager`，就不会出现这种情况：

如果你的 SD 卡有点旧，这将需要一些时间。如果它是一个新的高速 SD 卡，就无需很长时间：

为确保镜像写入成功，我不建议跳过验证：

写入结束后，会有以下确认提示：

现在，从你的系统中安全移除 SD 卡。

### 在树莓派上使用装有 Ubuntu 的 MicroSD 卡

已经成功了一半了。与常规的 Ubuntu 安装不同，无需创建一个临场安装环境。Ubuntu 已经安装在 SD 卡上了，而且几乎可以直接使用了。让我们来看看这里还剩下什么。

#### 第 1 步：将 SD 卡插入树莓派中

对于第一次使用的用户来说，有时会有点困惑，不知道那个卡槽到底在哪里？不用担心。它位于电路板背面的左手边。下面是一个插入卡后的倒置视图。

按照这个方向将卡慢慢插入板子下面的卡槽，轻轻地插，直到它不再往前移动。你可能还会听到一点咔嚓声来确认。这意味着它已经完美地插入了。

当你把它插进去的时候，你可能会注意到在插槽中有两个小针脚调整了自己的位置（如上图所示），但这没关系。一旦插入，卡看起来会有一点突出。这就是它应该有的样子。

#### 第 2 步：设置树莓派

我无需在这里详细介绍。

保证电源线接头、微型 HDMI 线接头、键盘和鼠标接头（有线/无线）都牢固地连接到树莓派板的相关端口。

确保显示器和电源插头也已正确连接，然后再去打开电源插座。我不建议把适配器插到带电的插座上。参考 [电弧](https://www.electricianatlanta.net/what-is-electrical-arcing-and-why-is-it-dangerous/)。

确认了以上两个步骤后，你就可以 [打开树莓派设备的电源](https://itsfoss.com/turn-on-raspberry-pi/)。

#### 第 3 步：在树莓派上 Ubuntu 桌面的首次运行

当你打开树莓派的电源，你需要在初次运行时进行一些基本配置。你只需按照屏幕上的指示操作即可。

选择你的语言、键盘布局、连接到 WiFi 等：

你可以根据需求选择时区：

然后创建用户和密码：

之后的步骤将配置一些东西，这个过程需要一些时间：

系统会重新启动之前需要一些时间，最终，你将会来到 Ubuntu 的登录界面：

现在，你可以开始享受树莓派上的 Ubuntu 桌面了：

### 总结

我注意到**一个暂时的异常情况**。在进行安装时，我的显示器左侧有一个红色的闪烁边界。这种闪烁（也有不同的颜色）在屏幕的随机部分也能注意到。但在重启和第一次启动后，它就消失了。

很高兴能够看到它在树莓派上运行，我非常需要 Ubuntu 开始为树莓派等流行的 ARM 设备提供支持。

希望这个教程对你有所帮助。如果你有问题或建议，请在评论中告诉我。

---

via: <https://itsfoss.com/install-ubuntu-desktop-raspberry-pi/>

作者：[Avimanyu Bandyopadhyay](https://itsfoss.com/author/avimanyu/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[wxy](https://github.com/wxy) 校对：[turbokernel](https://github.com/turbokernel)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #405 让照片形成点头、眨眼等动作，两人破解人脸识别技术牟利获刑

Summary: 更多：• Twitter 提供比特币小费功能 • Chrome 安全团队希望将指针错误消灭在编译阶段

比特币早点灭亡吧，只想着割韭菜，没想着怎么落地。

你有多想, 就会有多失望.

那您赶紧掏空8个钱包上啊，all in.

来自湖北武汉武汉大学测绘学院的 Chrome 93.0|Windows 10 用户

# 硬核观察 #405 让照片形成点头、眨眼等动作，两人破解人脸识别技术牟利获刑

### 让照片形成点头、眨眼等动作，两人破解人脸识别技术牟利获刑

据澎湃新闻[报道](https://tech.ifeng.com/c/89nJjZzIFTE)，上海虹口区检察院通报了一起从特大虚开增值税普通发票案中牵出的非法人脸识别案。由于在注册“皮包公司”用于虚开发票的过程中，人脸识别是关键环节，犯罪分子为注册工商营业执照，联系上了吴某和周某二人。之后，二人通过破解人脸识别技术等方式，将从别处购买的他人高清头像和身份证信息利用“活照片”App 进行处理，让照片“动起来”，形成包括点头、摇头、眨眼、张嘴等动作视频，然后利用特殊处理的手机“劫持”摄像头，使得在人脸认证环节手机系统获取的是之前做好的视频。经查，二人以此方式致使犯罪分子虚开发票超过 5 亿元。虹口区法院以侵犯公民个人信息罪，判决两人分别获刑三年和二年，并处以罚款。

>
> 这真是用到了邪处的技术，但是另外一方面，AI 技术也应该不断迭代以抵御这些恶意欺骗。
>
>
>

### Twitter 提供比特币小费功能

几个月以来，Twitter 一直在提供小费功能，但之前只处于受限测试阶段。周四 Twitter 公司[表示](https://www.bloomberg.com/news/articles/2021-09-23/twitter-adds-bitcoin-tipping-pushes-further-into-nfts)将在全球范围内推出小费选项，此举是作为帮助用户赚钱的更广泛努力的一部分，并为部分创作者提供名为“超级粉丝”的订阅工具、用于向观看者收取独家内容阅览费。Twitter 还表示正在研究验证用户在 Twitter 使用的非同质化代币（NFT）。

>
> 利用闪电网络和 Twitter 广泛的用户群体，对比特币的推广应用很有意义。
>
>
>

### Chrome 安全团队希望将指针错误消灭在编译阶段

谷歌已经为 Chrome 打造了基于沙箱和站点隔离的多进程架构，但 Chrome 安全团队称，模糊测试的结果表明，这些措施的防护效果已达到极限，意味着浏览器开发商无法再单纯依靠单纯的策略来抵御野外攻击。数据表明，去年的时候，有超过 70% 的严重安全漏洞都与内存相关，尤其是 C / C++ 编程语言中的指针错误会导致内存误解。Chrome 安全团队将在 C++ 安全解决方案上[倾注心力](https://security.googleblog.com/2021/09/an-update-on-memory-safety-in-chrome.html)，希望消除相当一部分可被利用的安全漏洞，但预计也会造成一些性能损失。同时，Chrome 安全团队将探索未来是否能够把 Chrome 的某些部分用“内存安全语言”进行重构，比如 Rust。

>
> 确实，从根本上抓住问题的根源是一个解决方案。
>
>
>


的确是喜讯，期待后续的发展

然而 Epic 自家客服端都不支持 Linux，有些游戏原生支持 Linux，但 Epic 中也没有提供下载选项。

2022-03-09 日，能在 Linux 上玩《Apex Legends》了。

消息来源：news.itsfoss.com/apex-legends-steam-deck-verified/

# Linux 玩家终于可以玩《Apex Legends》、《Fortnite》等游戏了

>
> 如果你是一个狂热的多人游戏玩家，你将能够玩到《Apex Legends》和《Fortnite》这样的热门游戏。但是，你可能需要等待一段时间。
>
>
>

<img src="content_image/album_202109_25_164557unaqpwqxua7q8sha.png" alt="" title="">

Linux 玩家们，这可是个大新闻啊！

Epic Games 为其“简易反作弊”服务增加了完整的 Linux 支持，官方提供了兼容 [SteamPlay](https://itsfoss.com/steam-play/)（或 Proton）和 Wine 兼容性。

尽管我们预计这将在未来的某个时候发生，但 Steam Deck 的引入改变了 [在 Linux 上玩游戏](https://itsfoss.com/linux-gaming-guide/) 的场景。

你可能知道，Steam Deck 是由 Linux 驱动的，这就是为什么 Epic Games 有兴趣扩大对 Linux 平台的支持。

因此，可以说，如果不是 Valve 在 Steam Deck 上的努力，在 Linux 上获得“简易反作弊”支持的机会并不乐观。

### 多人游戏玩家可以考虑转到 Linux 上了

有了 [简易反作弊](https://www.easy.ac/en-us/) 的支持，许多流行的多人游戏，如《Apex Legends》、《Fortnite》、《Tom Clancy's Division 2》、《Rust》 和其他许多游戏应该可以在 Linux 上完美地运行了。

根据 Epic Games 的公告：

>
> 从最新的 SDK 版本开始，开发者只需在 Epic 在线服务开发者门户点击几下，就可以通过 Wine 或 Proton 激活对 Linux 的反作弊支持。
>
>
>

因此，开发人员可能需要一段时间来激活对各种游戏的反作弊支持。但是，对于大多数带有简易反作弊功能的游戏来说，这应该是一个绿色信号。

少了一个 [Windows 与 Linux 双启动](https://itsfoss.com/install-ubuntu-1404-dual-boot-mode-windows-8-81-uefi/) 的理由。

《Apex Legends》 是我喜欢的多人游戏之一。而且，我不得不使用 Windows 来玩这个游戏。希望这种情况很快就会改变，在未来几周内，我可以在 Linux 上试一试!

同样，如果你几乎就要转到 Linux 了，但因为它与游戏的兼容性问题而迟疑，我想说问题已经解决了一半了！

当然，我们仍然需要对 BattleEye、其他反作弊服务和游戏客户端的官方支持。但是，这是个开端。

### Steam Deck 现在是一个令人信服的游戏选择

虽然许多人不确定 Steam Deck 是否支持所有的 AAA 级游戏，但这应该会有所改善！

[Steam Deck](https://www.steamdeck.com/en/) 现在应该是多人游戏玩家的一个简单选择。

### 总结

如果 Steam Deck 作为一个成功的掌上游戏机而成为了焦点，那么正如我们所知，在 Linux 上玩游戏也将发生改变。

而且，我认为 Epic Games 在其反作弊服务中加入 Linux 支持仅仅只是一个开始。

也许，我们永远都不用借助 [ProtonDB](https://www.protondb.com) 来在 Linux 上玩一个只有 Windows 支持的游戏；谁知道呢？但是，在这之后，Linux 游戏的未来似乎充满希望。

如果你是一个开发者，你可能想阅读 [该公告](https://dev.epicgames.com/en-US/news/epic-online-services-launches-anti-cheat-support-for-linux-mac-and-steam-deck) 来获得最新的 SDK。

你对 Epic Games 将简易反作弊引入 Linux 有何看法？欢迎在下面的评论中分享你的想法。

---

via: <https://news.itsfoss.com/easy-anti-cheat-linux/>

作者：[Ankush Das](https://news.itsfoss.com/author/ankush/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


使用 Linux 命令行工具来了解你的 NVMe 驱动器

Summary: nvme-cli 命令拥有诸多实用的选项，且它是控制和管理数据一种很好的方式。

nvme-cli 命令拥有诸多实用的选项，且它是控制和管理数据一种很好的方式。

# 使用 Linux 命令行工具来了解你的 NVMe 驱动器

>
> nvme-cli 命令拥有诸多实用的选项，且它是控制和管理数据一种很好的方式。
>
>
>

<img src="content_image/album_202109_26_102441ux8cy36gy1vggykz.jpg" alt="" title="Command line prompt">

NVMe 是指<ruby> 非易失性内存规范 <rt>  Non-Volatile Memory Express </rt></ruby>，它规范了软件和存储通过 PCIe 和其他协议（包括 TCP）进行通信的方式。它是由非营利组织领导的 [开放规范](https://nvmexpress.org/)，并定义了几种形式的固态存储。

我的笔记本电脑有一个 NVMe 驱动器，我的台式机也有。而且它们的速度很快。我喜欢我的电脑启动的速度，以及它们读写数据的速度。几乎没有延迟。

没过多久，我就对驱动这种超高速存储的技术产生了好奇，所以我做了一些调查。我了解到，NVMe 驱动器消耗的电力更少，而提供的数据访问速度甚至比 SATA 的 SSD 驱动器快得多。这很有趣，但我想知道更多关于我的特定 NVMe 驱动器的信息，我想知道它们与其他驱动器有何区别。我可以安全地擦除驱动器吗？我怎样才能检查它的完整性？

带着这些问题我在互联网上搜索，发现了一个开源项目，其中有一系列管理 NVMe 驱动器的工具。它被称为 [nvme-cli](https://github.com/linux-nvme/nvme-cli)。

### 安装 nvme-cli

你可以从你的发行版的包管理器中安装 `nvme-cli`。例如，在 Fedora、CentOS 或类似系统上：

```
$ sudo dnf install nvme-cli

```

在 Debian、Mint、Elementary 和类似系统上:

```
$ sudo apt install nvme-cli

```

### 探索 NVMe 驱动器

在安装 `nvme-cli` 后，我想探索我的驱动器。`nvme-cli` 没有手册页，但你可以通过输入 `nvme help` 获得很多帮助：

```
$ nvme help
nvme-1.14
usage: nvme <command> [<device>] [<args>]

The '<device>' may be either an NVMe character device (ex: /dev/nvme0) or an
nvme block device (ex: /dev/nvme0n1).

The following are all implemented sub-commands:
 list List all NVMe devices and namespaces on machine
 list-subsys List nvme subsystems
 id-ctrl Send NVMe Identify Controller
 id-ns Send NVMe Identify Namespace, display structure
 id-ns-granularity Send NVMe Identify Namespace Granularity List, display structure
 list-ns Send NVMe Identify List, display structure
 list-ctrl Send NVMe Identify Controller List, display structure
 nvm-id-ctrl Send NVMe Identify Controller NVM Command Set, display structure
 primary-ctrl-caps Send NVMe Identify Primary Controller Capabilities
[...]

```

### 列出所有的 NVMe 驱动器

`sudo nvme list` 命令列出你机器上所有的 NVMe 设备和命名空间。我用它在 `/dev/nvme0n1` 找到了一个 NVMe 驱动器。下面是命令输出结果：

```
$ sudo nvme list

Node SN Model Namespace Usage Format FW Rev

--------------------- -------------------- ---------------------------------------- --------- -------------------------- ---------------- --------

/dev/nvme0n1    S42GMY9M141281 SAMSUNG MZVLB256HAHQ-000L7 1

214.68 GB / 256.06 GB 512  B + 0 B 0L2QEXD7

```

我有一个名为 `nvme0n1` 的驱动器。它列出了序列号、品牌、容量、固件版本等等。

通过使用 `id-ctrl` 子命令，你可以得到更多关于该硬盘和它所支持的特性的信息：

```
$ sudo nvme id-ctrl /dev/nvme0n1
NVME Identify Controller:
vid : 0x144d
ssvid : 0x144d
sn : S42GMY9M141281
mn : SAMSUNG MZVLB256HAHQ-000L7
fr : 0L2QEXD7
rab : 2
ieee : 002538
cmic : 0
mdts : 9
cntlid : 0x4
ver : 0x10200
rtd3r : 0x186a0
rtd3e : 0x7a1200
[...]

```

### 驱动器健康

你可以通过 `smart-log` 子命令来了解硬盘的整体健康状况：

```
$ sudo nvme smart-log /dev/nvme0n1
Smart Log for NVME device:nvme0n1 namespace-id:ffffffff
critical_warning : 0
temperature : 21 C
available_spare : 100%
available_spare_threshold : 10%
percentage_used : 2%
endurance group critical warning summary: 0
data_units_read : 5,749,452
data_units_written : 10,602,948
host_read_commands : 77,809,121
host_write_commands : 153,405,213
controller_busy_time : 756
power_cycles : 1,719
power_on_hours : 1,311
unsafe_shutdowns : 129
media_errors : 0
num_err_log_entries : 1,243
Warning Temperature Time : 0
Critical Composite Temperature Time : 0
Temperature Sensor 1 : 21 C
Temperature Sensor 2 : 22 C
Thermal Management T1 Trans Count : 0
Thermal Management T2 Trans Count : 0
Thermal Management T1 Total Time : 0
Thermal Management T2 Total Time : 0

```

这为你提供了硬盘的当前温度、到目前为止的使用时间、不安全的关机次数等等。

### 格式化一个 NVMe 驱动器

你可以用 `nvme-cli` 格式化一个 NVMe 驱动器，但要注意。这将删除驱动器上的所有数据！如果你的硬盘上有重要的数据，你必须在这样做之前将其备份，否则你**将会**丢失数据。子命令是 `format`：

```
$ sudo nvme format /dev/nvme0nX

```

（为了安全起见，我用 `X` 替换了驱动器的实际位置，以防止复制粘贴的错误。将 `X` 改为 `1` 或 `nvme list` 结果中列出的实际位置。）

### 安全地擦除 NVMe 驱动器

当你准备出售或处理你的 NVMe 电脑时，你可能想安全地擦除驱动器。这里的警告与格式化过程中的警告相同。首先要备份重要的数据，因为这个命令会删除这些数据！

```
$ sudo nvme sanitize /dev/nvme0nX

```

### 尝试 nvme-cli

`nvme-cli` 命令是在 [GPLv2](https://github.com/linux-nvme/nvme-cli/blob/master/LICENSE) 许可下发布的。它是一个强大的命令，有很多有用的选项，用来有效地控制和管理数据。

---

via: <https://opensource.com/article/21/9/nvme-cli>

作者：[Don Watkins](https://opensource.com/users/don-watkins) 选题：[lujun9972](https://github.com/lujun9972) 译者：[geekpi](https://github.com/geekpi) 校对：[turbokernel](https://github.com/turbokernel)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #406 曹子德和格雷等重新当选 Linux 基金会技术咨询委员会

Summary: 更多：• 美国每周增加数百台比特币 ATM 机 • GNU Coreutils 9.0 发布

# 硬核观察 #406 曹子德和格雷等重新当选 Linux 基金会技术咨询委员会

### 曹子德和格雷等重新当选 Linux 基金会技术咨询委员会

2021 内核峰会期间，Linux 内核社区对基金会的技术咨询委员会（TAB）举行了年度选举，包括格雷和[曹子德](https://en.wikipedia.org/wiki/Theodore_Ts%27o)在内的五名现任成员[重新当选](https://lwn.net/Articles/870403/)，任期两年。[有资格投票](https://lore.kernel.org/lkml/fccbdadc-a57a-f6fe-68d2-0fbac2fd6b81@labbott.name/)的开发者需要有 3 个以上提交，其中至少一个是 2020 年或 2021 年内，超过 50 个提交的开发者将自动获得投票资格，3 到 49 个提交的开发者则需要通过电邮要求投票。共有 1,012 名开发者获得投票资格。

>
> 恭喜！这都是 Linux 大神。
>
>
>

### 美国每周增加数百台比特币 ATM 机

根据行业跟踪网站 Coin ATM Radar 的[数据](https://www.msn.com/en-us/money/other/from-atms-to-drug-stores-you-can-now-buy-bitcoin-almost-anywhere/ar-AAOtUCi)，美国已经有超过了 26000 台比特币 ATM 机，而去年同期大约有 6000 台。现在每周还在安装数百台。而这只计算了“纯”比特币 ATM 机，即只出售加密货币的 ATM 机。此外，数以千计的传统现金 ATM 也被修改为支持加密货币购买。另外，大约有 7500 台的美国超市里的硬币计数机也在出售比特币，预计到年底这个数字将达到 10,000。根据芝加哥大学的一项调查，13% 的美国成年人，即将近 3300 万人在过去一年中购买或出售过加密货币。

>
> 还是美国人会玩。
>
>
>

### GNU Coreutils 9.0 发布

Coreutils 9.0 现在可以[使用](https://lists.gnu.org/archive/html/info-gnu/2021-09/msg00010.html)了，它是对所有 Linux 系统上常见的开源实用程序集合的一次重大更新。广泛使用的用于复制文件/目录的 cp/mv 工具有一些明显的变化，默认启用了写时复制。此外，还有许多错误修复和对这些常用工具的其他改进。

>
> 这是 Linux 中最常用的命令了，它们也在一点点演进。
>
>
>


用 Lima 在你的 Mac 上运行容器

Summary: Lima 可以帮助克服在 Mac 上运行容器的挑战。

Lima 可以帮助克服在 Mac 上运行容器的挑战。

# 用 Lima 在你的 Mac 上运行容器

>
> Lima 可以帮助克服在 Mac 上运行容器的挑战。
>
>
>

<img src="content_image/album_202109_27_091509kx8u9uqdzcz8c6ud.jpg" alt="" title="Containers for shipping overseas">

在你的 Mac 上运行容器可能是一个挑战。毕竟，容器是基于 Linux 特有的技术，如控制组和命名空间。

幸运的是，macOS 拥有一个内置的<ruby> 虚拟机监控程序 <rt>  hypervisor </rt></ruby>，允许在 Mac 上运行虚拟机（VM）。虚拟机监控程序是一个底层的内核功能，而不是一个面向用户的功能。

hyperkit 是一个可以使用 macOS 虚拟机监控程序运行虚拟机的 [开源项目](https://www.docker.com/blog/docker-unikernels-open-source/)。hyperkit 被设计成一个“极简化”的虚拟机运行器。与 VirtualBox 不同，它没有花哨的 UI 功能来管理虚拟机。

你可以获取 hyperkit，这是一个运行容器管理器的极简 Linux 发行版，并将所有部分组合在一起。但这将有很多变动组件，且听起来像有很多工作。特别是如果你想通过使用 `vpnkit` （一个开源项目，用于创建感觉更像是主机网络一部分的虚拟机网络）使网络连接更加无缝。

### Lima

当 [lima 项目](https://github.com/lima-vm/lima) 已经解决了这些细节问题时，就没有理由再去做这些努力了。让 `lima` 运行的最简单方法之一是使用 [Homebrew](https://brew.sh/)。你可以用这个命令安装 `lima`：

```
$ brew install lima

```

安装后，可能需要一些时间，就享受一些乐趣了。为了让 `lima` 知道你已经准备好了，你需要启动它。下面是命令：

```
$ limactl start

```

如果这是你第一次运行，你会被问到是否喜欢默认值，或者是否要改变其中的任何一项。默认值是非常安全的，但我喜欢生活在疯狂的一面。这就是为什么我跳进一个编辑器，从以下地方进行修改：

```
- location: "~"
  # CAUTION: `writable` SHOULD be false for the home directory.
  # Setting `writable` to true is possible but untested and dangerous.
  writable: false

```

变成：

```
 - location: "~"
  # I *also* like to live dangerously -- Austin Powers
  writable: true

```

正如评论中所说，这可能是危险的。可悲的是，许多现有的工作流程都依赖于挂载是可读写的。

默认情况下，`lima` 运行 `containerd` 来管理容器。`containerd` 管理器也是一个非常简洁的管理器。虽然使用一个包装的守护程序，如 `dockerd`，来增加这些漂亮的工效是很常见的，但也有另一种方法。

### nerdctl 工具

`nerdctl` 工具是 Docker 客户端的直接替换，它将这些功能放在客户端，而不是服务器上。`lima` 工具允许无需在本地安装就可以直接从虚拟机内部运行 `nerdctl`。

做完这些后，可以运行一个容器了！这个容器将运行一个 HTTP 服务器。你可以在你的 Mac 上创建这些文件：

```
$ ls
index.html
$ cat index.html
hello

```

现在，挂载并转发端口：

```
$ lima nerdctl run --rm -it -p 8000:8000 -v $(pwd):/html --entrypoint bash python
root@9486145449ab:/#

```

在容器内，运行一个简单的 Web 服务器：

```
$ lima nerdctl run --rm -it -p 8000:8000 -v $(pwd):/html --entrypoint bash python
root@9486145449ab:/# cd /html/
root@9486145449ab:/html# python -m http.server 8000
Serving HTTP on 0.0.0.0 port 8000 (<http://0.0.0.0:8000/>) ...

```

在另一个终端，你可以检查一切看起来都很好：

```
$ curl localhost:8000
hello

```

回到容器上，有一条记录 HTTP 客户端连接的日志信息：

```
10.4.0.1 - - [09/Sep/2021 14:59:08] "GET / HTTP/1.1" 200 -

```

一个文件是不够的，所以还要做些优化。 在服务器上执行 `CTRL-C`，并添加另一个文件：

```
^C
Keyboard interrupt received, exiting.
root@9486145449ab:/html# echo goodbye > foo.html
root@9486145449ab:/html# python -m http.server 8000
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...

```

检查你是否能看到新的文件：

```
$ curl localhost:8000/foo.html
goodbye

```

### 总结

总结一下，安装 `lima` 需要一些时间，但完成后，你可以做以下事情：

* 运行容器。
* 将你的主目录中的任意子目录挂载到容器中。
* 编辑这些目录中的文件。
* 运行网络服务器，在 Mac 程序看来，它们是在 localhost 上运行的。

这些都是通过 `lima nerdctl` 实现的。

---

via: <https://opensource.com/article/21/9/run-containers-mac-lima>

作者：[Moshe Zadka](https://opensource.com/users/moshez) 选题：[lujun9972](https://github.com/lujun9972) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


2021 年了，我们能推荐使用 Linux 来玩游戏吗？

# 2021 年了，我们能推荐使用 Linux 来玩游戏吗？

>
> 每天，Linux 都在进行不断进步，以支持具有适当图形支持的现代游戏。但是，我们能推荐 Linux 用于游戏吗？
>
>
>

你经常会听到 Linux 爱好者称赞 Linux 上改进的游戏功能。是的，考虑到在 Linux 桌面上支持现代游戏所取得的进步，Linux 已经在游戏方面获得了很大的提升。

甚至 Lutris 的创造者在我们的采访中也提到 [Linux 在游戏方面取得的进步简直令人难以置信](https://news.itsfoss.com/lutris-creator-interview/)。

但是，这有什么值得大肆宣传的吗？我们能向游戏玩家推荐 Linux 吗？ Linux 适合玩游戏吗？

此文中，我想分享一些关于在 Linux 系统上玩游戏的的事情，并分享我对它的看法。

### 你可以在 Linux 上玩游戏吗？是的！

如果有人曾经告诉过你，不能在 Linux 上玩游戏，**那是不对的**。

你可以在 Linux 上玩各种游戏而不会出现任何大的障碍。而且，在大多数情况下，它是可玩的，并且会提供很好的游戏体验。

事实上，如果你不知道从哪里开始，我们有一份 [Linux 游戏终极指南](https://itsfoss.com/linux-gaming-guide/) 提供给你。

### 需要一个特定的 Linux 发行版才能玩游戏吗？

并非如此。这取决于你想获得多么方便的体验。

例如，如果你希望 Linux 发行版能够与你的图形驱动程序很好地配合，并获得最新的硬件支持，那么有一些发行版可以做到。同样，如果你只是想用集成的 GPU 玩原生的 Linux 独立游戏，任何发行版都可以。

因此，在你开启 Linux 游戏之旅的同时，会有一些因素影响你对发行版的选择。

不用担心，为了帮助你，我们提供了一份有用的 [最佳 Linux 游戏发行版列表](https://itsfoss.com/linux-gaming-distributions/)。

### Linux 上的虚拟现实游戏，唉……

我确信 VR 游戏还没有完全普及。但是，如果你想要在 VR 头盔上获得激动人心的体验，那么**选择 Linux 作为你的首选平台可能不是一个好主意**。

你没有在 Linux 上获得便利体验所需的驱动程序或应用程序。没有任何发行版可以帮助你解决此问题。

如果你想了解有关虚拟现实状态的详细信息，可以看看 [Boiling Steam](https://boilingsteam.com/the-state-of-virtual-reality-on-linux/) 上的博客文章和 [GamingOnLinux](https://www.gamingonlinux.com/2020/08/my-experiences-of-valves-vr-on-linux) 上的使用 Valve 的 VR 头盔的有趣体验。

我已经提供了这些博客文章的链接以供参考，但总而言之 —— 如果你想体验 VR 游戏，请避免使用 Linux（如果你实在太闲，请随意尝试）。

### 可以在 Linux 上玩 Windows 系统的游戏吗？

可以，也不可以。

你可以使用 [Steam Play 来玩 Windows 专属的游戏](https://itsfoss.com/steam-play/)，但是它也存在一些问题，并不是每个游戏都可以运行。

例如，我最终还是使用 Windows 来玩《[地平线 4](https://forzamotorsport.net/en-US/games/fh4)》。如果你喜欢汽车模拟或赛车游戏，这是一款你可能不想错过的杰作。

或许我们在不久的将来可以看到它通过 Steam Play 完美的运行，谁知道呢？

因此，可以肯定的是，你会遇到许多类似的游戏，可能根本无法运行。这是残酷的事实。

而且，要知道该游戏是否可以在 Linux 上运行，请前往 [ProtonDB](https://www.protondb.com/) 并搜索该游戏，看看它是否至少具有 “**黄金**” 状态。

### 带有反作弊引擎的多人游戏可以吗？

许多游戏玩家更喜欢玩多人游戏，如《[Apex Legends](https://www.ea.com/games/apex-legends)》、《[彩虹六号：围攻](https://www.ubisoft.com/en-us/game/rainbow-six/siege)》和《[堡垒之夜](https://www.epicgames.com/fortnite/en-US/home)》。

然而，一些依赖于反作弊引擎的流行游戏还不能在 Linux 上运行。它仍然是一项进行中的工作，可能在未来的 Linux 内核版本中实现 —— 但目前还没有。

请注意，像 《[反恐精英：全球攻势](https://store.steampowered.com/app/730/CounterStrike_Global_Offensive/)》、《Dota 2》、《军团要塞 2》、《[英灵神殿](https://store.steampowered.com/app/892970/Valheim/)》等多人游戏提供原生 Linux 支持并且运行良好！

### 我会推荐使用 Linux 来玩游戏吗？

考虑到你可以玩很多 Windows 专属的游戏、原生的独立游戏，以及 Linux 原生支持的各种 AAA 游戏，我能推荐初次使用者尝试在 Linux 上玩游戏。

但是，需要**注意**的是 —— 我建议你列出你想玩的游戏列表，以确保它在 Linux 上运行没有任何问题。否则，你最终都可能浪费大量时间进行故障排除而没有结果。

不要忘记，我相信 Linux 上的 VR 游戏是一个很大的问题。

而且，如果你想探索所有最新最好的游戏，我建议你坚持使用 Windows 的游戏电脑。

**虽然我应该鼓励更多的用户采用 Linux 作为游戏平台，但我不会忽视为什么普通消费者仍然喜欢使用 Windows 机器来玩游戏的客观事实。**

你怎么认为呢？你同意我的想法吗？欢迎在下方的评论区分享你的想法！

---

via: <https://news.itsfoss.com/linux-for-gaming-opinion/>

作者：[Ankush Das](https://news.itsfoss.com/author/ankush/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[perfiffer](https://github.com/perfiffer) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #407 HTTPS Everywhere 浏览器扩展即将功成身退

Summary: 更多：• 两年后，一个现代的 GNU Wget2 2.0 发布 • Google 因公开调查结果起诉印度竞争委员会

# 硬核观察 #407 HTTPS Everywhere 浏览器扩展即将功成身退

### HTTPS Everywhere 浏览器扩展即将功成身退

电子前沿基金会[表示](https://www.eff.org/deeplinks/2021/09/https-actually-everywhere)，在 HTTPS 采用率回升，以及一些浏览器推出 HTTPS-only 模式后，它正准备让著名的 HTTPS Everywhere 浏览器扩展退役，在 2022 年进入维护模式。HTTPS Everywhere 浏览器扩展于 2010 年 6 月推出，是有史以来最成功的浏览器扩展之一。该扩展的工作原理是，如果网站有 HTTPS 选项，则自动将网络连接从 HTTP 切换到 HTTPS。目前，大约有 [86.6%](https://w3techs.com/technologies/history_overview/ssl_certificate/all/y) 的网站支持 HTTPS 连接。Chrome 和 Mozilla 先前报告说，HTTPS 流量通常占其日常连接的 90% 至 95%。

>
> 老王点评：下一个目标，HTTPS-only！以后，就像 tftp 一样，http 或许就成了遗迹。
>
>
>

### 两年后，一个现代的 GNU Wget2 2.0 发布

[Wget2](https://gitlab.com/gnuwget/wget2) 是 Wget 的继任者，该项目开始于 3 年前，并在停滞了 2 年后，终于发布了第一个正式版本 2.0。它是从头开始设计和编写的，以多线程方式工作。在许多情况下，由于 HTTP2、HTTP 压缩，Wget2 的下载速度比 Wget1.x 快很多。它支持更多的协议，特别是 HTTP/2 和压缩，支持多线程连接、并行下载，增加了 HTTP2 上传，通过新的 -download-attr 选项支持 HTML5 下载属性 ，以及其他改进。

>
> 老王点评：从特性上来看，这是一个非常值得期待的版本。就是希望可以从此活跃维护起来。
>
>
>

### Google 因公开调查结果起诉印度竞争委员会

印度竞争委员会在一项反垄断调查中发现，Google 利用其“雄厚的财务实力”非法打击竞争对手。面对这一结论，Google 决定对该委员会发起[诉讼](https://techcrunch.com/2021/09/23/google-files-writ-with-indian-court-against-local-watchdog-following-report-leak/)，称对方不应将结果泄露给媒体。印度反垄断机构的这项调查启动于 2019 年，结果发现 Google 似在利用其市场支配地位削弱设备制造商灵活选择移动操作系统版本的空间，同时强迫他们预装 Google 应用。

>
> 老王点评：谷歌的意思是，虽然大家都知道我垄断，但是你们不能说你们知道。
>
>
>


欧拉：那个要统一数字基础设施的操作系统来了

Summary: 就如同欧拉公式揭示的那样，世界本是统一的，计算世界是否也已经引来了大一统的契机？

欧拉不如鸿蒙好听牛逼，估计元始和通天也要出来了

捡的redhat 的剩饭， 换皮centos。 不知道有什么好吹的…………。 ?

来自湖北武汉的 Chrome Mobile iOS 94.0|iOS 15.0 用户

还是要以产品和代码论英雄的！

来自江西南昌的 Chrome Mobile 77.0|Android 10 用户

好牛P的IOS用户，键盘是什么牌子的

好牛P的IOS用户，键盘是什么牌子的

每个字都认识，就是不知道在说什么。

炒苹果以前的冷饭。苹果曾经想用一个操作系统统一各种终端，结果失败。 现在还是mac os， ios， ipados分开搞。然后华为要捡起来？真的以为一个嵌入式设备和一个服务器能用同一个操作系统？

仓颉已经来了

也就是捡了centos7的便宜，往上面堆自家的产品。

# 欧拉：那个要统一数字基础设施的操作系统来了

一直以来，云、管、边、端操作系统领域的碎片化，都是切实存在但又不得不面对的问题。在服务器上使用一个系统，在云计算集群上使用另一个系统，而在边缘计算设备和嵌入式设备则又是一个新的系统。似乎天经地义的，不同场景的设备就该使用不同的操作系统。

但在计算机技术和计算基础设施以指数级发展的今天，是否还应该墨守成规？在消费者领域，我们已经看到越来越明显的系统融合趋势，比如，苹果公司希望全线都使用同一套系统，以提供给用户最好的体验；再比如华为的鸿蒙也通过将不同的操作系统融合，让普罗大众也能感受到万物互联互通的多彩生活。

此时我们不禁要问：“是否应该在更大、更宏观的场景，对更多的计算场景进行融合？”就如同欧拉公式揭示的那样，世界本是统一的，计算世界是否也已经迎来了大一统的契机？

### 欧拉：以开源主导的大一统技术社区

商业公司由于人力有限，往往只会选择在一个领域做深耕投入，以期获得更大的收益；而与之相比，开源社区则不同，大家会基于对于开放理念的追求，而不断迭代一款产品。开源社区近乎无限的开发者参与，以及它开放的模式，也让一款统一而一致的产品成为了可能。

Linux 内核便是一个十分典型的例证。最初的 Linux 内核只是一个用于个人电脑的小玩具，而随着全世界开源贡献者持续三十年的不懈投入，如今的 Linux 已经遍及了从超算、云计算、服务器、个人桌面、物联网、智能终端等各种大相径庭的不同使用场景，跨越了从 x86、ARM、RISC 等十数种计算架构，从某种意义上奠定了大一统的计算基础。

但是另外一方面，虽然 Linux 及其生态已经构筑了一个平实而广泛的基础，但是我们也看到，即便是在源出一门的内核之上，由于商业利益、计算能力限制、用户体验等因素，往往我们见到的是在操作系统层面的割裂。

而这一次，欧拉（openEuler）希望立足于开源社区，与社区共同建设一个“**数字基础设施的开源操作系统**”，从而，不仅仅是底层的内核，而在更高层面也达成大一统的融合和互联。

新的欧拉操作系统可广泛部署于服务器、云计算、边缘计算、嵌入式等各种形态设备，应用场景覆盖 IT（<ruby> 信息技术 <rp>  （ </rp> <rt>  Information Technology </rt> <rp>  ） </rp></ruby>）、CT（<ruby> 通信技术 <rp>  （ </rp> <rt>  Communication Technology </rt> <rp>  ） </rp></ruby>）和 OT（<ruby> 运营技术 <rp>  （ </rp> <rt>  Operational Technology </rt> <rp>  ） </rp></ruby>），实现统一操作系统支持多设备，应用一次开发覆盖全场景。

和过去归属于公司的操作系统不同，欧拉是一个开发者的操作系统。虽然欧拉发轫于华为公司，但其成长得益于开发者的参与和投入，也反过来促进了开发者的发展。目前已有 100 多家企业、机构等组织加入，汇聚了超过 6000 多名开发者，10 多家国内主流的 OSV 基于欧拉发布了商业发行版。对于开发者来说，云、管、边、端的融合，有助于开发者降低开发成本。开发者可以基于同一个技术底座，开发出一个能够应用在不同场景下的应用程序，从而获得更多的用户和可能。

### 欧拉：由工具主导的发行版变化

过去的 openEuler 重点关注在鲲鹏生态，而现在的欧拉将涵盖从 x86、ARM、RISC 等不同架构，以支持更广泛的计算场景。

过去的 openEuler 着重于服务器操作系统，主要应用于服务器场景，而随着新欧拉的发布，openEuler 将会扩展其场景，覆盖服务器、云计算、边缘计算和嵌入式设备。从只处理服务器的问题，延展到可以解决更多场景、更全设备的新操作系统。

这样的升级，是为了更好的利用不同的设备和不同场景下的算力，通过操作系统层面的统一，让计算能力可以更加容易调度，实现计算能力利用的最大化。

不仅如此，为了更好更快的抵达这个目标，欧拉社区还提供了一系列的工具和能力，让开发者可以根据自己的需要，裁剪配置自己需要的系统。诸如，可以通过配置和设置来打包操作系统的全栈原子化的能力，更加简单地完成系统的裁剪，以应对面向边缘计算、嵌入式设备等计算和存储资源都较少的场景，更好的服务这些设备。

当然，也不止于此。

对于开发者来说，操作系统的融合固然是好事，但对于开发者来说，感知不大，因为操作系统层面的变动往往是底层工具的变化，落实到开发者层面，还需要很多的时间。但欧拉社区这次的发布除了操作系统的升级，还提供了北冥技术架构 —— 北冥架构是为多样性计算硬件及集群打造的使能软件栈，简化多样性计算环境下的开发和部署，充分释放算力性能。通过北冥，开发者想要在安装了欧拉的多个设备中去开发应用程序，也变得更加简单。

### 欧拉：与鸿蒙共享技术结晶

本次欧拉的升级，除了架构和计算场景的升级，还有一个很大的升级便是******欧拉将与鸿蒙共享底层技术，共建用户生态**。

鸿蒙作为一个面向智能终端的设备，可以通过海量的设备覆盖和丰富的操作体验，为开发者提供更多的机会。而欧拉作为一个专注于服务器端场景，追求安全性和稳定性的操作系统，可以通过与鸿蒙的结合，更好的为用户场景提供服务。

鸿蒙和欧拉的结合一个更大的好处在于，随着底层基础的打通，我们身边的智能设备，和云端的服务器、边缘计算设备，可以拥有更好的交互方式，从过去的通过 API 实现数据的同步，变成可以借助于分布式软总线，让智能设备可以从身边的设备去借用计算能力、进行管控，这将更加的简单和直接。

而这种云、管、边、端融合，将服务器、网络设备、物联网设备、智能终端等互相连接的方式，也必将带来一波新的应用开发浪潮，大家可能会发现，过去难以实现的场景，现在可以通过一个更简单的方式来实现。随着技术的进步，带来使用体验、操作体验、管理体验的进一步提升。

我们可以畅想一下，在未来，当鸿蒙与欧拉结合，我们拿着鸿蒙的手机走进机房，马上就可以看到不同的服务器之间的信息，而且这些信息可以通过分布式软总线来传递，我们可以更加简单、直接的操作服务器上的数据和功能。

可以想象，欧拉+鸿蒙将渗透到我们身边的每一个应用，所以，我认为，欧拉社区也许是朝着“元”操作系统在发展，从底层，到数据，从 API 到 AI，在更大的层面进行了统一、融合。

### 那个要统一数字基础设施的操作系统

完美的欧拉公式，呈现了数学的统一之美，欧拉操作系统，能否统一数字基础设施？我想这个问题，应该由开源社区来揭示。


使用 Vagrant 在不同的操作系统上测试你的脚本

部署上了但是作用还是没太搞明白

docker不是更方便吗

docker不是更方便吗

docker不是更方便吗

docker不是更方便吗

# 使用 Vagrant 在不同的操作系统上测试你的脚本

>
> Vagrant 可以帮助你在你的电脑上运行其他操作系统，这意味着你可以构建、测试、疯狂折腾而不毁坏你的系统。
>
>
>

<img src="content_image/album_202109_28_115827gv75kkrhnnhvkhcf.jpg" alt="" title="Woman using laptop concentrating">

我使用 Vagrant 已经很长时间了。我使用几种 DevOps 工具，把它们全安装在一个系统上会搞得很乱。Vagrant 可以让你在不破坏系统的情况下随意折腾，因为你根本不需要在生产系统上做实验。

如果你熟悉 [VirtualBox](https://opensource.com/article/21/6/try-linux-virtualbox) 或 [GNOME Boxes](https://opensource.com/article/19/5/getting-started-gnome-boxes-virtualization)，那么学习 Vagrant 很容易。Vagrant 有一个简单而干净的界面用于管理虚拟机。一个名为 `Vagrantfile` 的配置文件，允许你定制你的虚拟机（称为 “Vagrant <ruby> 盒子 <rt>  box </rt></ruby>”）。一个简单的命令行界面让你启动、停止、暂停或销毁你的“盒子”。

考虑一下这个简单的例子。

假设你想写 Ansible 或 shell 脚本，在一个新的服务器上安装 Nginx。你不能在你自己的系统上这样做，因为你运行的可能不是你想测试的操作系统，或者没有所有的依赖项。启动新的云服务器进行测试可能会很费时和昂贵。这就是 Vagrant 派上用处的地方。你可以用它来启动一个虚拟机，用你的脚本来<ruby> 配备 <rt>  provision </rt></ruby>它，并证明一切按预期工作。然后，你可以删除这个“盒子”，重新配备它，并重新运行你的脚本来验证它。你可以多次重复这个过程，直到你确信你的脚本在所有条件下都能工作。你可以将你的 Vagrantfile 提交给 Git，以确保你的团队正在测试完全相同的环境（因为他们将使用完全相同的测试机）。不会再有“但它在我的机器上运行良好！”这事了。

### 开始使用

首先，[在你的系统上安装 Vagrant](https://www.vagrantup.com/docs/installation)，然后创建一个新的文件夹进行实验。在这个新文件夹中，创建一个名为 `Vagrantfile` 的新文件，内容如下：

```
Vagrant.configure("2") do |config|

 config.vm.box = "ubuntu/hirsute64"

end

```

你也可以运行 `vagrant init ubuntu/hirsute64`，它将为你生成一个新的 Vagrant 文件。现在运行 `vagrant up`。这个命令将从 Vagrant 仓库中下载 `ubuntu/hirsuite64` 镜像。

```
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'ubuntu/hirsute64'...
==> default: Matching MAC address for NAT networking...
==> default: Checking if box 'ubuntu/hirsute64' version '20210820.0.0' is up to date...
==> default: Setting the name of the VM: a_default_1630204214778_76885
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
    default: Adapter 2: hostonly
==> default: Forwarding ports...
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Warning: Remote connection disconnect. Retrying...
    default: Warning: Connection reset. Retrying...
    default:
    default: Vagrant insecure key detected. Vagrant will automatically replace
    default: this with a newly generated keypair for better security.
    default:
    default: Inserting generated public key within guest...
    default: Removing insecure key from the guest if it's present...
    default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!

```

此时，如果你打开你的 Vagrant 后端（如 VirtualBox 或 virt-manager），你会看到你的“盒子”已经有了。接下来，运行 `vagrant ssh` 登录到“盒子”。如果你能看到 Vagrant 的提示符，那么你就进入了！

```
~ vagrant ssh
Welcome to Ubuntu 21.04 (GNU/Linux 5.11.0-31-generic x86_64)

* Documentation: <https://help.ubuntu.com>
* Management:   <https://landscape.canonical.com>
* Support:    <https://ubuntu.com/advantage>

 System information as of Sun Aug 29 02:33:51 UTC 2021

 System load: 0.01       Processes:        110
 Usage of /:  4.1% of 38.71GB  Users logged in:     0
 Memory usage: 17%        IPv4 address for enp0s3: 10.0.2.15
 Swap usage:  0%        IPv4 address for enp0s8: 192.168.1.20

0 updates can be applied immediately.

vagrant@ubuntu-hirsute:~$

```

Vagrant 使用“基础盒子”来建立你的本地机器。在我们的例子中，Vagrant 从 [Hashicorp 的 Vagrant 目录](https://app.vagrantup.com/boxes/search)下载 `ubuntu/hirsuite64` 镜像，并插入 VirtualBox 来创建实际的“盒子”。

### 共享文件夹

Vagrant 将你的当前文件夹映射到 Vagrant “盒子”中的 `/vagrant`。这允许你在你的系统和“盒子”里保持文件同步。这很适合测试 Nginx 网站，通过将你的文件根目录指向 `/vagrant`。你可以使用 IDE 进行修改，“盒子”里的 Nginx 会提供这些修改。

### Vagrant 命令

有几个 Vagrant 命令，你可以用它们来控制你的“盒子”。

其中一些重要的命令是：

* `vagrant up`：启动一个“盒子”。
* `vagrant status`：显示当前“盒子”的状态。
* `vagrant suspend`：暂停当前的“盒子”。
* `vagrant resume`：恢复当前的“盒子”。
* `vagrant halt`：关闭当前的“盒子”。
* `vagrant destroy`：销毁当前的“盒子”。通过运行此命令，你将失去存储在“盒子”上的任何数据。
* `vagrant snapshot`：对当前的“盒子”进行快照。

### 试试 Vagrant

Vagrant 是一个使用 DevOps 原则进行虚拟机管理的工具，久经时间考验。配置你的测试机，与你的团队分享配置，并在一个可预测和可重复的环境中测试你的项目。如果你正在开发软件，那么通过使用 Vagrant 进行测试，你将为你的用户提供良好的服务。如果你不开发软件，但你喜欢尝试新版本的操作系统，那么没有比这更简单的方法了。今天就试试 Vagrant 吧！

这篇文章最初发表在 [作者的个人博客](https://notes.ayushsharma.in/2021/08/introduction-to-vagrant) 上，经许可后被改编。

---

via: <https://opensource.com/article/21/9/test-vagrant>

作者：[Ayush Sharma](https://opensource.com/users/ayushsharma) 选题：[lujun9972](https://github.com/lujun9972) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #408 年轻人已经没有了计算机文件夹的概念

Summary: 更多：• 美国将开启替换美国网络中的华为设备的计划 • Cloudflare 正在着手解决电子邮件安全

所有的钱都是印出来的吧。

我不用登录就能评论，这是www史上最友好的网站

我不用登录就能评论，这是www史上最友好的网站

真的不登陆就能发表评论？

来自北京的 Yandex Browser 21.2|Android 8.0 用户

试下不登陆评论

直接搜索文件是因为懒吧

来自223.104.189.211的 Chrome Mobile 93.0|Android 11 用户

直接搜索文件是因为懒吧

记着文件名当然可以直接搜索

靠脑子

硬币不是

可真行

只记得分类当然可以去文件夹, 只记得文件名当然只能搜索.

不登陆评论，娃哈哈。。。。。

没有文件夹归类，只能靠记忆了，脑子不好使就惨了

这不挺好的吗，总要向前看

我也来试试能不能评论

打开app听听歌、看看图片视频的，当然不需要找什么文件夹了。上班工作用电脑的试试

我也来试试能不能评论

我也是firefox 91

识别错了，我不是windows10,我是linux 哈哈

我也来试试

# 硬核观察 #408 年轻人已经没有了计算机文件夹的概念

### 年轻人已经没有了计算机文件夹的概念

现在使用计算机的年轻人们已经习惯了用操作系统的搜索来找到文件，而不是按照文件系统路径找到文件夹和文件了。老一辈使用计算机的人习惯于“认为一个项目住在一个特定的文件夹里，我必须去那个文件夹里找它”，而年轻人“把它看作是一个桶，所有东西都在这个桶里”，从而在桌面上堆了上千个文件。在老一辈的计算机用户看来，[这可能很奇怪](https://www.theverge.com/22684730/students-file-folder-directory-structure-education-gen-z)，他们从小就维护着一个精心设计的嵌套子文件夹的集合。但由于 21 世纪初诞生的操作系统的搜索功能现在已经成为默认功能，以及手机和平板电脑掩盖其文件结构的方式，还有云存储的普及，年轻人们并不以同样的方式看待他们的硬盘。

>
> 老王点评：这未必是一件坏事，但是这种潜移默化的变化，还是让人挺吃惊的。你是如何找你的文件的？
>
>
>

### 美国将开启替换美国网络中的华为设备的计划

美国联邦通信委员会（FCC）周一[表示](https://www.reuters.com/business/media-telecom/us-open-program-replace-huawei-equipment-us-networks-2021-09-27/)，它将开启一项 19 亿美元的计划，以补偿主要是农村的美国电信运营商拆除被视为国家安全威胁的中国公司如华为和中兴制造的网络设备。去年，FCC 指定华为和中兴为通信网络的国家安全威胁，要求拥有中兴或华为设备的运营商“销毁并更换”这些设备。但这对农村运营商来说是一个大问题，因为他们面临着高成本和难以找到工人来拆除和更换设备，因此，FCC 将为这些运营商提供补贴。

>
> 老王点评：反正补偿的钱也是印出来的，FCC 花起来一点也不心疼。
>
>
>

### Cloudflare 正在着手解决电子邮件安全

周一，Cloudflare [宣布](https://www.wired.com/story/cloudflare-taking-a-shot-at-email-security/)了两个电子邮件安全和安保产品，以捕捉更有针对性的网络钓鱼攻击、降低地址欺骗的有效性以及减轻用户点击恶意链接的后果。该公司将免费提供这些功能，无论客户使用的是由 Gmail、微软 365、雅虎，甚至是像 AOL 这样的老式邮件服务。Cloudflare 首席执行官说，该公司一直没有涉足电子邮件安全领域，是因为觉得“像谷歌、微软和雅虎这样的托管供应商会解决这个问题”，但在几年过去了，这仍然不是一个已经解决的问题。他补充说，这并不是因为谷歌它们缺乏进展，而是有太多的电子邮件威胁需要处理，因此，Cloudflare 决定建立额外的防御工具，让公司本身和客户都能使用。

>
> 老王点评：作为中国反垃圾邮件联盟的创始人，我对电子邮件安全有一定的了解。确实，谷歌在这方面做了一些有效的工作，但是这些年，其实电子邮件安全的进展乏善可陈，现在看起来需要更多人下场了。
>
>
>


不是 Windows，也不是 Linux，Shrine 才是“神之操作系统”

"不幸的是，几年后的 2018 年 8 月，Terry 被火车撞死了。当时他无家可归。"  看到这段内心一整酸楚，如法融入社会，即使是天才下场也这样悲凉。

正是有这些有趣的人，计算机的世界才多姿多彩。

然而我在成都，用的宽带上网，看来这个地理识别不太准确

# 不是 Windows，也不是 Linux，Shrine 才是“神之操作系统”

在生活中，我们都曾使用过多种操作系统。有些好，有些坏。但你能说你使用过由“神”设计的操作系统吗？今天，我想向你介绍 Shrine（圣殿）。

### 什么是 Shrine？

从介绍里，你可能想知道这到底是怎么回事。嗯，这一切都始于一个叫 Terry Davis 的人。在我们进一步介绍之前，我最好提醒你，Terry 在生前患有精神分裂症，而且经常不吃药。正因为如此，他在生活中说过或做过一些不被社会接受的事情。

总之，让我们回到故事的主线。在 21 世纪初，Terry 发布了一个简单的操作系统。多年来，它不停地换了几个名字，有 J Operating System、LoseThos 和 SparrowOS 等等。他最终确定了 [TempleOS](https://templeos.org/)（神庙系统）这个名字。他选择这个名字是因为这个操作系统将成为“神的圣殿”。因此，“神”给 Terry 的操作系统规定了以下 [规格](https://web.archive.org/web/20170508181026/http://www.templeos.org:80/Wb/Doc/Charter.html)：

* 它将有 640×480 的 16 色图形显示
* 它将使用 “单声道 8 位带符号的类似 MIDI 的声音采样”
* 它将追随 Commodore 64，即“一个非网络化的简单机器，编程是目标，而不仅仅是达到目的的手段”
* 它将只支持一个文件系统（名为 “Red Sea”）
* 它将被限制在 10 万行代码内，以使它 “整体易于学习”
* “只支持 Ring-0 级，一切都在内核模式下运行，包括用户应用程序”
* 字体将被限制为 “一种 8×8 等宽字体”
* “对一切都可以完全访问。所有的内存、I/O 端口、指令和类似的东西都绝无限制。所有的函数、变量和类成员都是可访问的”
* 它将只支持一个平台，即 64 位 PC

Terry 用一种他称之为 HolyC（神圣 C 语言）的编程语言编写了这个操作系统。TechRepublic 称其为一种 “C++ 的修改版（‘比 C 多，比 C++ 少’）”。如果你有兴趣了解 HolyC，我推荐 [这篇文章](https://harrisontotty.github.io/p/a-lang-design-analysis-of-holyc) 和 [RosettaCode](https://rosettacode.org/wiki/Category:HolyC) 上的 HolyC 条目。

2013 年，Terry 在他的网站上宣布，TempleOS 已经完成。不幸的是，几年后的 2018 年 8 月，Terry 被火车撞死了。当时他无家可归。多年来，许多人通过他在该操作系统上的工作关注着他。大多数人对他在如此小的体积中编写操作系统的能力印象深刻。

现在，你可能想知道这些关于 TempleOS 的讨论与 Shrine 有什么关系。好吧，正如 Shrine 的 [GitHub 页面](https://github.com/minexew/Shrine) 所说，它是 “一个为异教徒设计的 TempleOS 发行版”。GitHub 用户 [minexew](https://github.com/minexew) 创建了 Shrine，为 TempleOS 添加 Terry 忽略的功能。这些功能包括：

* 与 TempleOS 程序 99% 的兼容性
* 带有 Lambda Shell，感觉有点像经典的 Unix 命令解释器
* TCP/IP 协议栈和开机即可上网
* 包括一个软件包下载器

minexew 正计划在未来增加更多的功能，但还没有宣布具体会包括什么。他有计划为 Linux 制作一个完整的 TempleOS 环境。

### 体验

让 Shrine 在虚拟机中运行是相当容易的。你所需要做的就是安装你选择的虚拟化软件。（我的是 VirtualBox）当你为 Shrine 创建一个虚拟机时，确保它是 64 位的，并且至少有 512MB 的内存。

一旦你启动到 Shrine，会询问你是否要安装到你的（虚拟）硬盘上。一旦安装完成（你也可以选择不安装），你会看到一个该操作系统的导览，你可以由此探索。

### 总结

TempleOS （和 Shrine）显然不是为了取代 Windows 或 Linux。即使 Terry 把它称为 “神之圣殿”，我相信在他比较清醒的时候，他也会承认这更像是一个业余的作业系统。考虑到这一点，已完成的产品相当 [令人印象深刻](http://www.codersnotes.com/notes/a-constructive-look-at-templeos/)。在 12 年的时间里，Terry 用他自己创造的语言创造了一个稍稍超过 10 万行代码的操作系统。他还编写了自己的编译器、图形库和几个游戏。所有这些都是在与他自己的个人心魔作斗争的时候进行的。

---

via: <https://itsfoss.com/shrine-os/>

作者：[John Paul](https://itsfoss.com/author/john/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


浅谈配置文件格式

Summary: 流行的配置文件格式有若干种，每种都有其自身优势。从中找到最适合你的格式吧！

流行的配置文件格式有若干种，每种都有其自身优势。从中找到最适合你的格式吧！

# 浅谈配置文件格式

>
> 流行的配置文件格式有若干种，每种都有其自身优势。从中找到最适合你的格式吧！
>
>
>

<img src="content_image/album_202109_29_134955py5ypl58dgplyx4x.jpg" alt="" title="Computer screen with files or windows open">

计算机上有数以千计的配置文件。你可能永远不会直接与其中的大部分文件打交道，但它们确实散落在你的 `/etc` 以及 `~/.config`、`~/.local`、`/usr` 文件夹中。还有一些可能在 `/var`，甚至 `/opt` 文件夹中。如果无意中打开过或更改过它们，你就可能会有疑问：为什么有些配置文件看起来是某一种格式，而另一些则是看起来完全不同的格式？

存储配置是一项很灵活的任务，因为只要开发人员知道他们的代码是如何将数据存入文件的，他们就可以轻松编写代码来根据需要提取数据。然而，科技行业非常青睐有详细文档的标准化事物，因此多年来出现了几种比较普遍的格式用来简化配置任务。

### 为什么我们需要配置文件

配置文件对于现代计算来说很重要。它们使你能够自定义与应用程序交互的方式，或自定义应用程序与系统内其他程序的交互方式。有了配置文件，每当你启动某个应用程序时，它都会有“记忆”，记录了你喜欢如何去使用该程序。

配置文件的结构可以很简单，而且通常确实也很简单。例如，如果你要编写一个应用程序，程序唯一需要知道的是其用户的偏好名字，那么它的唯一配置文件就可以只包含一个词：用户名。就像下面这样：

```
Tux

```

但通常应用程序需要追踪的不仅仅是一条信息，因此配置文件通常会有一个键和一个值：

```
NAME='Tux'
SPECIES='Penguin'

```

即使没有编程经验，你也可以想象出代码如何解析这些数据。这里有两个简单的例子，一个使用 [awk 命令](https://opensource.com/article/20/9/awk-ebook)，另一个使用 [grep 命令](https://opensource.com/downloads/grep-cheat-sheet)。两个例子都是只关注包含 `NAME` “键”的行，并返回出现在等号 (`=`) 之后的“值”：

```
$ awk -F'=' '/NAME/ { print $2; }' myconfig.ini
'Tux'
$ grep NAME fake.txt | cut -d'=' -f2
'Tux'

```

同样的原则适用于任何编程语言和任何配置文件。只要你有统一的数据结构，就可以在需要的时候编写简单的代码来提取和解析它。

### 选择格式

为了保证普遍有效性，配置文件最重要的一点是它们是一致的和可预测的。你绝对不会想做这样的事：以保存用户首选项的名义，将信息随意存储到文件中，然后花好几天时间逆向工程，来找到最终出现在文件中的随机信息。

流行的配置文件格式有若干种，每种格式都有自己的优势。

#### INI

INI 文件采用了键值对的格式：

```
[example]
name=Tux
style=widgety,fidgety
enabled=1

```

这种简单的配置风格很直观，只要你别选择使用糟糕的键名（比如用 `unampref` 这样的神秘键名来代替 `name`）就好。这些键值对很容易解析和编辑。

除了键和值之外，INI 格式还可以分 <ruby> 节 <rt>  section </rt></ruby>。在下列示例代码中，`[example]` 和 `[demo]` 就是配置文件中的两个节：

```
[example]
name=Tux
style=widgety,fidgety
enabled=1

[demo]
name=Beastie
fullscreen=1

```

这几个配置语句解析起来有点复杂，因为有两个 `name` 键。想象一下，一个粗心的程序员在这个配置文件中查询 `name`，结果总是返回 `Beastie`，因为这是文件中对 `name` 的最后一个定义值。在解析这样的文件时，开发人员必须加倍小心地在各节中搜索键，这可能会很棘手，具体取决于用来解析该文件的语言。然而，它仍然是一种很流行的格式，大多数语言都会有一个现成的库来帮助程序员解析 INI 文件。

#### YAML

[YAML 文件](https://www.redhat.com/sysadmin/yaml-beginners) 是结构化列表，可以包含值或者键值对：

```
---
Example:
  Name: 'Tux'
  Style:
   - 'widgety'
    - 'fidgety'
  Enabled: 1

```

YAML 格式很流行，部分原因是它看起来很整洁。数据要放置到相对其上层数据的特定位置，除此之外没有太多其他语法。然而，对于某些人来说的这种特色，在其他人眼中可能就是一个问题。许多开发人员不愿使用 YAML，正是因为它很看重本质上 *不存在* 的东西。如果你在 YAML 中缩进错误，YAML 解析器可能会将你的文件视为无效文件，即使不视为无效，返回的数据也可能是错误的。

大多数语言都有 YAML 解析器，并且有很好的开源 YAML linters（验证语法的应用程序）来帮你确保 YAML 文件的完整性。

#### JSON

JSON 文件在技术上来说是 YAML 的子集，因此其数据结构是相同的，尽管其语法完全不同：

```
{
  "Example": {
    "Name": [
      "Tux"
    ],
    "Style": [
      "widgety",
      "fidgety"
    ],
    "Enabled": 1
  }
}

```

JSON 在 JavaScript 程序员中很流行，这并不奇怪，因为 JSON 全称为<ruby> JavaScript 对象符号 <rt>  JavaScript Object Notation </rt></ruby>。由于与 Web 开发密切相关，JSON 是 Web API 的常见输出格式。大多数编程语言都有解析 JSON 的库。

#### XML

XML 使用标签作为键，将配置值围绕起来：

```
<example>
  <name>Tux</name>
  <style priority="user">widgety</style>
  <style priority="fallback">fidgety</style>
  <enabled>1</enabled>
</example>

```

XML 经常被 Java 程序员使用，Java 有一套丰富的 XML 解析器。虽然 XML 以非常严格而著称，但同时也非常灵活。与有一系列特定标签的 HTML 不同，XML 中可以随意发明自己的标签。只要始终坚持相同的构建规则，并有一个良好的库来解析它，你就可以准确而轻松地提取数据。

有一些很好的开源 linter 可以帮你验证 XML 文件，并且大多数编程语言都提供用于解析 XML 的库。

#### 二进制格式

Linux 以纯文本配置为傲。这样做的优点是可以使用 [cat](https://opensource.com/article/19/2/getting-started-cat-command) 等基本工具查看配置数据，甚至可以使用你 [最喜欢的文本编辑器](https://opensource.com/article/21/2/open-source-text-editors) 来编辑配置。

但是，某些应用程序使用二进制格式配置，就意味着数据以某种非自然语言的格式进行编码。这些文件通常需要一个特殊的应用程序（通常是它们要配置的应用程序）来解释它们的数据。你无法查看这些文件，至少无法以任何有意义的方式查看，并且无法在其宿主应用程序之外编辑它们。选用二进制格式的一些原因如下：

* **速度：** 程序员可以使用自定义符号在二进制配置文件中的某些点注册特定的信息位。提取数据时不涉及搜索，因为所有内容都已标注了索引。
* **大小：** 文本文件可能会变大，如果选择压缩文本文件，实际上是在将其转换为二进制格式。二进制文件可以通过编码技巧变得更小（文本文件也是如此，但在某些时候，你的优化会使数据变得晦涩，以至于文件也成了二进制文件）。
* **晦涩：** 一些程序员甚至不希望人们查看他们的配置文件，因此将它们编码为二进制数据。这通常只会让用户感到沮丧，并不是使用二进制格式的好理由。

如果必须使用二进制格式进行配置，请使用已作为开放标准存在的格式，例如 [NetCDF](https://www.unidata.ucar.edu/software/netcdf/)。

### 找到有效的配置格式

配置格式帮助开发人员存储应用程序所需的数据，并帮助用户存储他们希望应用程序如何操作的偏好项。对于应该使用什么格式的问题，可能没有错误的答案，只要你觉得所使用的语言能很好地支持就可以。在开发应用程序时，查看可用格式，用一些样例数据建模，查看和评估你的编程语言提供的库和实用程序，然后选择你觉得最合适的一种格式吧。

---

via: <https://opensource.com/article/21/6/what-config-files>

作者：[Seth Kenlon](https://opensource.com/users/seth) 选题：[lujun9972](https://github.com/lujun9972) 译者：[unigeorge](https://github.com/unigeorge) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


微软 Exchange 的一个开源替代方案

Summary: 开源用户现在有了一个强大的、功能齐全的群件选择。

开源用户现在有了一个强大的、功能齐全的群件选择。

# 微软 Exchange 的一个开源替代方案

>
> 开源用户现在有了一个强大的、功能齐全的群件选择。
>
>
>

多年来，微软 Exchange 作为一个平台牢牢统治着群件环境。然而，在 2020 年末，一个奥地利的开源软件开发商推出了 [grommunio](https://grommunio.com/en/)，这是一个群件服务器和客户端，其外观和感觉让 Exchange 和 Outlook 用户感到很熟悉。

grmmunio 项目可以很好地替代 Exchange。开发者以与微软相同的方式将组件连接到平台上，它们支持 RPC （远程过程调用）与 HTTP 协议。据开发者介绍，grommunio 还包括许多常见的群件接口，如 IMAP、POP3、SMTP、EAS（Exchange ActiveSync）、EWS（Exchange Web Services）、CalDAV 和 CardDAV。有了这样广泛的支持，grommunio 可以顺利地整合到现有的基础设施中。

用户会注意到对 Outlook、Android 和 iOS 客户端来说几乎没有区别。当然，作为开源软件，它也支持其他客户端。由于集成了原生的 Exchange 协议，Outlook 和智能手机与 grommunio 的通信就像与微软 Exchange 服务器一样。日常的企业用户可以继续使用他们现有的客户端，而 grommunio 服务器则在后台安静地运行。

### 不仅仅是邮件

除了邮件功能外，grommunio 界面还提供了日历系统。可以直接在日历显示中或在一个新标签中点击创建约会。这很直观，正如你对现代工具的期望。用户可以创建、管理和分享日历以及地址簿。私人联系人或普通联系人都支持，而且你可以与同事分享一切。

任务管理在左边的下拉菜单中显示任务列表，它们可以有一个所有者和多个合作者。你可以为每个任务指定截止日期、类别、附件和其他属性。笔记可以以同样的方式被管理并与其他团队成员共享。

### 聊天、视频会议和文件同步

除了现代群件的所有标准功能外，grommunio 还提供聊天、视频会议和文件同步功能。它为企业实现了大规模的全面整合，具有极高的性能。对于开源的推动者来说，这是一个简单的选择，对于系统管理员来说，这是一个强大的选择。因为 grommunio 的目标是整合而不是重新发明，所以所有的组件都是标准的开源工具。

*用于高级视频会议的 Jitsi 集成（Markus Feilner, [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/)）*

在 grommunio 会议功能的背后是 [Jitsi](https://opensource.com/article/20/5/open-source-video-conferencing)，它以熟悉的用户界面顺利地集成到 grommunio 的用户界面中。完全集成和集中管理的聊天功能是基于 [Mattermost](https://opensource.com/education/16/3/mattermost-open-source-chat)。

*用于聊天的 Mattermost（Markus Feilner，[CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/)）*

[ownCloud](https://owncloud.com/) 承诺提供企业级的文件共享和同步，在点击“文件”按钮后开始。

*用于文件同步和交换的 ownCloud（Markus Feilner，[CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/)）*

grommunio 项目有一个强大的管理界面，包括角色、域和组织管理、预测性监测和自助服务门户。基于 shell 的向导指导管理员完成安装和从微软 Exchange 迁移数据。开发团队正在不断努力，以实现更好的整合和更集中的管理，并随之为管理员提供更好的工作流程。

*grommunio 的管理界面（Markus Feilner, [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/)）*

### 探索 grommunio

grommunio 项目的目标很高，但它的开发者已经付出了努力，这一点很明显。一家专门从事税务咨询的德国托管服务机构最近宣布，他们的客户可以使用 grommunio，这是一个德国数据保护法特别严厉的行业。grommunio 项目做得很好：将现有的、成功的概念干净地结合在一起，实现了开放、安全和符合隐私的通信。

---

via: <https://opensource.com/article/21/9/open-source-groupware-grommunio>

作者：[Markus Feilner](https://opensource.com/users/mfeilner) 选题：[lujun9972](https://github.com/lujun9972) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #409 Stack Overflow 的“复制粘贴键盘”

Summary: 更多：• 广告主投诉 Chrome 取消 Cookie 影响行业营收 • AI 判断一副价值 660 万英镑的名画是赝品

但也要防范该AI模型是否被植入了后门，毕竟后门攻击可以让模型在特定的输入时输出开发者选择的结果

艺术作品也需要打码吗? 貌似知乎是可以发的?

表情符号被过滤掉了。。。

emmmmmmm

emmmmmmm

# 硬核观察 #409 Stack Overflow 的“复制粘贴键盘”

### Stack Overflow 的“复制粘贴键盘”

Stack Overflow 今年的愚人节的[恶作剧](https://stackoverflow.blog/2021/03/31/the-key-copy-paste/)说，它将限制对其网站的免费访问，除非人们购买“钥匙”，一个带有打开 Stack Overflow、复制和粘贴的按钮的设备。但是大家似乎对这个键盘很感兴趣，于是在一位键盘爱好者和定制键盘制造商 Drop 的帮助下，Stack Overflow 设计了一把真正的键盘，并开始以 [29 美元](https://drop.com/buy/stack-overflow-the-key-macropad)的价格出售。

>
> 老王点评：这样的键盘，你想不想要一块？你值得拥有~
>
>
>

### 广告主投诉 Chrome 取消 Cookie 影响行业营收

代表广告主、出版商和科技公司的行业组织“开放网络运动”今日向欧盟投诉谷歌，称谷歌 Chrome 浏览器取消 Cookie 的计划是一种反垄断行为，将严重影响广告主和出版商的营收。谷歌去年年初宣布，未来两年内将逐步淘汰对第三方 Cookie 的支持，并计划推广其“隐私沙箱”技术。但出版商和广告技术公司纷纷抱怨称，谷歌所谓的“隐私沙箱”将限制他们收集网络用户信息的能力，从而影响他们提供更具价值广告的能力。

>
> 老王点评：套用一句俗话，“和尚摸得，我也摸得”。各位广告商在想，凭啥你谷歌一个人可以摸，不让我们摸。
>
>
>

### AI 判断一副价值 660 万英镑的名画是赝品

英国国家美术馆最重要的藏品之一鲁本斯的画《参孙与大利拉》，是 40 年前在佳士得拍卖会上以当时创纪录的价格 250 万英镑购买的，相当于今天的 660 万英镑。批评家们长期以来一直认为这幅画并非真正出自鲁本斯之手。而现在，一系列采用突破性人工智能技术的科学测试得出了[结论](https://www.theguardian.com/artanddesign/2021/sep/26/was-famed-samson-and-delilah-really-painted-by-rubens-no-says-ai)。在与 148 幅无争议的鲁本斯画作进行比较后，它不是鲁本斯的原创作品的概率为 91.78%，而与之对比的是，另外一幅英国国家美术馆收藏的画作则有 98.76% 的概率是真品。

>
> 老王点评：AI 技术的进步，往往能做到很多人类做不到和做不好的事情，我认为这才是 AI 真正该发挥作用的领域。
>
>
>


5 个可以替代 Zoom 的开源软件

Summary: 试试这些开源视频会议服务之一。

试试这些开源视频会议服务之一。

# 5 个可以替代 Zoom 的开源软件

>
> 试试这些开源视频会议服务之一。
>
>
>

<img src="content_image/album_202109_30_114413ylalu7dcl5au575v.jpg" alt="" title="Two people chatting via a video conference app">

我最近参加了 [实用开源信息（POSI）](https://opensource.org/posicfp) 会议，它是在一个自由开源的视频会议平台上举行的。当我参加了一系列关于开源软件的实际用途的精彩讲座时，我意识到视频会议在过去几年里已经变得非常普遍。

如果说开源做了什么，那就是提供了选择，现在越来越多的工人有了远程工作的自由，在你的连接方式上有一个选择是非常有意义的。

有时，你需要一个全功能的视频会议应用，其中包括审核、演示模式和分组讨论室，而其他时候，你想做的只是给朋友打一个快速电话，以便看到对方的脸。

### Jitsi

[Jitsi](http://jitsi.org) 是一个简单、随意、但强大的视频通话平台。你可以自己托管它，也可以在 [meet.jit.si](http://meet.jit.si) 的公共实例上使用它。它有可定制的 URL，可以很容易地与你想见面的朋友分享链接、通话中的聊天、管理控制，和通话录音。它的开发非常活跃，每年都会测试和发布一大批新功能。它是 [Opensource.com](http://Opensource.com) 用于我们每周会议的平台。

### Signal

[Signal](https://signal.org) 已经是一个流行的以安全为重点的聊天应用，最近它又增加了 [团体视频通话](https://support.signal.org/hc/en-us/articles/360052977792-Group-Calling-Voice-or-Video-with-Screen-Sharing) 的功能。视频通话非常适合简单的会议，而且因为你只能与你的 Signal 联系人列表中的其他人见面，所以不用担心你的视频通话会议上有不速之客。当你尝试定位你应该参与开会的虚拟房间时，也没有来回的“电话标签”。这一切都发生在 Signal 中，因此无需猜测。

Signal 本身是非常直观的，视频功能非常适合其现有惯例。简而言之，只要你的联系人在使用 Signal，这就是一个不费力的视频通话平台。这是我用于个人联系的应用，我经常使用其视频通话功能与朋友和家人联系。

### P2p.chat

[P2p.chat](https://p2p.chat/) 是这些中最简单的一个，无论是设计还是实现。通过 WebRTC 工作，p2p.chat 是一个 Web 应用，允许你直接连接到你正在呼叫的人，而不需要托管服务器。p2p.chat 的界面并不多，但这也是其吸引力的另一部分。没有管理控制或演示模式，因为 p2p.chat 在很大程度上是科幻片中承诺的“视频电话”：与远方的人进行轻松的人对人（或人们对人们）视频通话。

你可以使用自定义的 URL 来动态地创建一个会议空间，所以它们相对容易记忆（除了小的随机部分）和输入。我和不在 Signal 上的朋友使用 p2p.chat，它从未让我失望过。

### BigBlueButton

如果你需要严格的管理控制和极端的灵活性，[BigBlueButton](https://bigbluebutton.org/) 是你正在寻找的解决方案，它专为教室、会议和演讲而设计。有了 BigBlueButton，你可以让所有与会者静音，阻止和踢走一个与会者，创建分组讨论室，创建协作式白板，共享屏幕，进行演讲，以及记录会议。与会者可以“举起手”表示注意，并将他们的状态设定为非语言交流方式。它很容易使用，但它是一个严肃的平台，适用于重点和非常大的群体。我参加过一些使用 BigBlueButton 的技术会议，包括 [实用开源信息（POSI）](https://opensource.org/posicfp)会议。

### Wire

[Wire](https://wire.com/en/) 是寻找托管视频聊天和群件客户端的企业客户的绝佳选择。它是 [AGPL](https://opensource.org/licenses/AGPL-3.0) 许可，这个开源项目可用于桌面和服务器、安卓和 iOS。它具有视频通话、发信和文件共享的功能，因此，即使是远程会议，基本上也有亲自开会的所有便利。你可以在有限的时间内免费试用 Wire，然后为你的公司购买一份支持合同。另外，你也可以自己托管它。

### 开源视频聊天

没有理由满足于由你可能不完全信任的公司托管的专有视频通话。今天可用的开源选项对于与你的职业和个人生活中的所有人保持联系是非常好的。下次你想和朋友见面时，不妨试试这些解决方案之一。

---

via: <https://opensource.com/article/21/9/alternatives-zoom>

作者：[Seth Kenlon](https://opensource.com/users/seth) 选题：[lujun9972](https://github.com/lujun9972) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出