Merge pull request #3 from LCTT/master

update from lctt
This commit is contained in:
Qian.Sun 2021-03-24 09:36:51 +08:00 committed by GitHub
commit ee005d3704
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 166 additions and 165 deletions

View File

@ -3,56 +3,57 @@
[#]: author: (Stephan Avenwedde https://opensource.com/users/hansic99)
[#]: collector: (lujun9972)
[#]: translator: (geekpi)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: reviewer: (wxy)
[#]: publisher: (wxy)
[#]: url: (https://linux.cn/article-13230-1.html)
关于在 Firefox 上使用 WebAssembly 要了解的 6 件事
在 Firefox 上使用 WebAssembly 要了解的 6 件事
======
了解在 Firefox 上运行 WebAssembly 的机会和局限性。
![Business woman on laptop sitting in front of window][1]
> 了解在 Firefox 上运行 WebAssembly 的机会和局限性。
![](https://img.linux.net.cn/data/attachment/album/202103/23/223901pi6tcg7ybsyxos7x.jpg)
WebAssembly 是一种可移植的执行格式由于它能够以近乎原生的速度在浏览器中执行应用而引起了人们的极大兴趣。WebAssembly 本质上有一些特殊的属性和局限性。但是,通过将其与其他技术结合,将出现全新的可能性,尤其是与浏览器中的游戏有关的可能性。
本文介绍了在 Firefox 上运行 WebAssembly 的概念可能性和局限性。
本文介绍了在 Firefox 上运行 WebAssembly 的概念可能性和局限性。
### 沙盒
WebAssembly 有[严格的安全策略][2]。 WebAssembly 中的程序或功能单元称为_模块_。每个模块实例都运行在自己的隔离内存空间中。因此同一个网页加载了多个模块它们也无法访问另一个模块的虚拟地址空间。设计上WebAssembly 还考虑了内存安全性和控制流完整性,这(几乎)使得确定性的执行成为可能。
WebAssembly 有 [严格的安全策略][2]。 WebAssembly 中的程序或功能单元称为*模块*。每个模块实例都运行在自己的隔离内存空间中。因此,即使同一个网页加载了多个模块它们也无法访问另一个模块的虚拟地址空间。设计上WebAssembly 还考虑了内存安全性和控制流完整性,这使得(几乎)确定性的执行成为可能。
### Web API
通过 JavaScript [Web API][3] 可以访问多种输入和输出设备。根据这个[提案][4],将来可以不用绕道到 JavaScript 来访问 Web API。C++ 程序员可以在 [Emscripten.org][5] 上找到有关访问 Web API 的信息。Rust 程序员可以使用 [rustwasm.github.io][7] 中写的 [wasm-bindgen][6] 库。
通过 JavaScript [Web API][3] 可以访问多种输入和输出设备。根据这个 [提案][4],将来可以不用绕道到 JavaScript 来访问 Web API。C++ 程序员可以在 [Emscripten.org][5] 上找到有关访问 Web API 的信息。Rust 程序员可以使用 [rustwasm.github.io][7] 中写的 [wasm-bindgen][6] 库。
### 文件输入/输出
因为 WebAssembly 是在沙盒环境中执行的所以当它在浏览器中执行时它无法访问主机的文件系统。但是Emscripten 提供了虚拟文件系统形式的解决方案。
Emscripten 使在编译时将文件预加载到内存文件系统成为可能。然后可以像在普通文件系统上一样从 WebAssembly 应用中读取这些文件。这个[教程][8]提供了更多信息。
Emscripten 使在编译时将文件预加载到内存文件系统成为可能。然后可以像在普通文件系统上一样从 WebAssembly 应用中读取这些文件。这个 [教程][8] 提供了更多信息。
### 持久化数据
如果你需要在客户端存储持久化数据,那么必须通过 JavaScript Web API 来完成。参考Mozilla开发者网络关于[浏览器存储限制和过期标准][9]的文档,了解不同方法的详细信息。
如果你需要在客户端存储持久化数据,那么必须通过 JavaScript Web API 来完成。参考 Mozilla 开发者网络MDN关于 [浏览器存储限制和过期标准][9] 的文档,了解不同方法的详细信息。
### 内存管理
WebAssembly 模块作为[堆栈机][10]在线性内存上运行。这意味着堆内存分配等概念是没有的。然而,如果你在 C++ 中使用 `new` 或者在 Rust 中使用 `Box::new`,你会期望它会堆内存分配。堆内存分配请求被翻译成 WebAssembly 的方式在很大程度上依赖于工具链。你可以在 Frank Rehberger 关于[_WebAssembly 和动态内存_][11]的帖子中找到关于不同工具链如何处理堆内存分配的详细分析。
WebAssembly 模块作为 [堆栈机][10] 在线性内存上运行。这意味着堆内存分配等概念是没有的。然而,如果你在 C++ 中使用 `new` 或者在 Rust 中使用 `Box::new`,你会期望它会进行堆内存分配。将堆内存分配请求转换成 WebAssembly 的方式在很大程度上依赖于工具链。你可以在 Frank Rehberger 关于 [WebAssembly 和动态内存][11] 的文章中找到关于不同工具链如何处理堆内存分配的详细分析。
### 游戏!
与 [WebGL][12] 结合使用时WebAssembly 的执行速度很高,因此可以在浏览器中运行原生游戏。大型专有游戏引擎 [Unity][13] 和[虚幻 4][14] 展示了 WebGL 可以实现的功能。也有使用 WebAssembly 和 WebGL 接口的开源游戏引擎。这里有些例子:
* 自 2011 年 11 月起,[id Tech 4][15] 引擎(更著名的是 Doom 3 引擎)可在 [GitHub][16] 上以 GPL 许可的形式获得。此外,还有一个 [Doom 3 的 WebAssembly 移植版][17]。
* Urho3D 引擎提供了一些[令人印象深刻的例子][18],它们可以在浏览器中运行。
* 自 2011 年 11 月起,[id Tech 4][15] 引擎(更常称之为 Doom 3 引擎)可在 [GitHub][16] 上以 GPL 许可的形式获得。此外,还有一个 [Doom 3 的 WebAssembly 移植版][17]。
* Urho3D 引擎提供了一些 [令人印象深刻的例子][18],它们可以在浏览器中运行。
* 如果你喜欢复古游戏,可以试试这个 [Game Boy 模拟器][19]。
* [Godot 引擎也能生成 WebAssembly][20]。我找不到演示,但 [Godot 编辑器][21]已经被移植到 WebAssembly 上。
* [Godot 引擎也能生成 WebAssembly][20]。我找不到演示,但 [Godot 编辑器][21] 已经被移植到 WebAssembly 上。
### 有关 WebAssembly 的更多信息
WebAssembly 是一项很有前途的技术我相信我们将来会越来越多地看到它。除了在浏览器中执行之外WebAssembly 还可以用作可移植的执行格式。[Wasmer][22] 容器托管使你可以在各种平台上执行 WebAssembly 代码。
WebAssembly 是一项很有前途的技术我相信我们将来会越来越多地看到它。除了在浏览器中执行之外WebAssembly 还可以用作可移植的执行格式。[Wasmer][22] 容器主机使你可以在各种平台上执行 WebAssembly 代码。
如果你需要更多的演示、示例和教程,请看一下这个 [WebAssembly 主题集合][23]。Mozilla 的[游戏和示例合集][24]并非 WebAssembly 独有,但仍然值得一看。
如果你需要更多的演示、示例和教程,请看一下这个 [WebAssembly 主题集合][23]。Mozilla 的 [游戏和示例合集][24] 并非全是 WebAssembly但仍然值得一看。
--------------------------------------------------------------------------------
@ -61,7 +62,7 @@ via: https://opensource.com/article/21/3/webassembly-firefox
作者:[Stephan Avenwedde][a]
选题:[lujun9972][b]
译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -1,145 +0,0 @@
[#]: subject: (4 cool new projects to try in Copr for March 2021)
[#]: via: (https://fedoramagazine.org/4-cool-new-projects-to-try-in-copr-for-march-2021/)
[#]: author: (Jakub Kadlčík https://fedoramagazine.org/author/frostyx/)
[#]: collector: (lujun9972)
[#]: translator: (geekpi)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
4 cool new projects to try in Copr for March 2021
======
![][1]
Copr is a [collection][2] of personal repositories for software that isnt carried in Fedora Linux. Some software doesnt conform to standards that allow easy packaging. Or it may not meet other Fedora standards, despite being free and open-source. Copr can offer these projects outside the Fedora set of packages. Software in Copr isnt supported by Fedora infrastructure or signed by the project. However, it can be a neat way to try new or experimental software.
This article presents a few new and interesting projects in Copr. If youre new to using Copr, see the [Copr User Documentation][3] for how to get started.
### [][4]
### Ytfzf
[Ytfzf][5] is a simple command-line tool for searching and watching YouTube videos. It provides a fast and intuitive interface built around fuzzy find utility [fzf][6]. It uses [youtube-dl][7] to download selected videos and opens an external video player to watch them. Because of this approach, _ytfzf_ is significantly less resource-heavy than a web browser with YouTube. It supports thumbnails (via [ueberzug][8]), history saving, queueing multiple videos or downloading them for later, channel subscriptions, and other handy features. Thanks to tools like [dmenu][9] or [rofi][10], it can even be used outside the terminal.
![][11]
#### [][12] Installation instructions
The [repo][13] currently provides Ytfzf for Fedora 33 and 34. To install it, use these commands:
```
sudo dnf copr enable bhoman/ytfzf
sudo dnf install ytfzf
```
### [][14] Gemini clients
Have you ever wondered what your internet browsing experience would be if the World Wide Web went an entirely different route and didnt adopt CSS and client-side scripting? [Gemini][15] is a modern alternative to the HTTPS protocol, although it doesnt intend to replace it. The [stenstorp/gemini][16] Copr project provides various clients for browsing Gemini _websites_, namely [Castor][17], [Dragonstone][18], [Kristall][19], and [Lagrange][20].
The [Gemini][21] site provides a list of some hosts that use this protocol. Using Castor to visit this site is shown here:
![][22]
#### [][23] Installation instructions
The [repo][16] currently provides Gemini clients for Fedora 32, 33, 34, and Fedora Rawhide. Also available for EPEL 7 and 8, and CentOS Stream. To install a browser, chose from the install commands shown here:
```
sudo dnf copr enable stenstorp/gemini
sudo dnf install castor
sudo dnf install dragonstone
sudo dnf install kristall
sudo dnf install lagrange
```
### [][24] Ly
[Ly][25] is a lightweight login manager for Linux and BSD. It features a ncurses-like text-based user interface. Theoretically, it should support all X desktop environments and window managers (many of them [were tested][26]). Ly also provides basic Wayland support (Sway works very well). Somewhere in the configuration, there is an easter egg option to enable the famous [PSX DOOM fire][27] animation in the background, which on its own, is worth checking out.
![][28]
#### [][29] Installation instructions
The [repo][30] currently provides Ly for Fedora 32, 33, and Fedora Rawhide. To install it, use these commands:
```
sudo dnf copr enable dhalucario/ly
sudo dnf install ly
```
Before setting up Ly to be your system login screen, run _ly_ command in the terminal to make sure it works properly. Then proceed with disabling your current login manager and enabling Ly instead.
```
sudo systemctl disable gdm
sudo systemctl enable ly
```
Finally, restart your computer for the changes to take an effect.
### [][31] AWS CLI v2
[AWS CLI v2][32] brings a steady and methodical evolution based on the community feedback, rather than a massive redesign of the original client. It introduces new mechanisms for configuring credentials and now allows the user to import credentials from the _.csv_ files generated in the AWS Console. It also provides support for AWS SSO. Other big improvements are server-side auto-completion, and interactive parameters generation. A fresh new feature is interactive wizards, which provide a higher level of abstraction and combines multiple AWS API calls to create, update, or delete AWS resources.
![][33]
#### [][34] Installation instructions
The [repo][35] currently provides AWS CLI v2 for Fedora Linux 32, 33, 34, and Fedora Rawhide. To install it, use these commands:
```
sudo dnf copr enable spot/aws-cli-2
sudo dnf install aws-cli-2
```
Naturally, access to an AWS account is necessary.
--------------------------------------------------------------------------------
via: https://fedoramagazine.org/4-cool-new-projects-to-try-in-copr-for-march-2021/
作者:[Jakub Kadlčík][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://fedoramagazine.org/author/frostyx/
[b]: https://github.com/lujun9972
[1]: https://fedoramagazine.org/wp-content/uploads/2020/10/4-copr-945x400-1-816x345.jpg
[2]: https://copr.fedorainfracloud.org/
[3]: https://docs.pagure.org/copr.copr/user_documentation.html
[4]: https://github.com/FrostyX/fedora-magazine/blob/main/2021-march.md#droidcam
[5]: https://github.com/pystardust/ytfzf
[6]: https://github.com/junegunn/fzf
[7]: http://ytdl-org.github.io/youtube-dl/
[8]: https://github.com/seebye/ueberzug
[9]: https://tools.suckless.org/dmenu/
[10]: https://github.com/davatorium/rofi
[11]: https://fedoramagazine.org/wp-content/uploads/2021/03/ytfzf.png
[12]: https://github.com/FrostyX/fedora-magazine/blob/main/2021-march.md#installation-instructions
[13]: https://copr.fedorainfracloud.org/coprs/bhoman/ytfzf/
[14]: https://github.com/FrostyX/fedora-magazine/blob/main/2021-march.md#gemini-clients
[15]: https://gemini.circumlunar.space/
[16]: https://copr.fedorainfracloud.org/coprs/stenstorp/gemini/
[17]: https://git.sr.ht/~julienxx/castor
[18]: https://gitlab.com/baschdel/dragonstone
[19]: https://kristall.random-projects.net/
[20]: https://github.com/skyjake/lagrange
[21]: https://gemini.circumlunar.space/servers/
[22]: https://fedoramagazine.org/wp-content/uploads/2021/03/gemini.png
[23]: https://github.com/FrostyX/fedora-magazine/blob/main/2021-march.md#installation-instructions-1
[24]: https://github.com/FrostyX/fedora-magazine/blob/main/2021-march.md#ly
[25]: https://github.com/nullgemm/ly
[26]: https://github.com/nullgemm/ly#support
[27]: https://fabiensanglard.net/doom_fire_psx/index.html
[28]: https://fedoramagazine.org/wp-content/uploads/2021/03/ly.png
[29]: https://github.com/FrostyX/fedora-magazine/blob/main/2021-march.md#installation-instructions-2
[30]: https://copr.fedorainfracloud.org/coprs/dhalucario/ly/
[31]: https://github.com/FrostyX/fedora-magazine/blob/main/2021-march.md#aws-cli-v2
[32]: https://aws.amazon.com/blogs/developer/aws-cli-v2-is-now-generally-available/
[33]: https://fedoramagazine.org/wp-content/uploads/2021/03/aws-cli-2.png
[34]: https://github.com/FrostyX/fedora-magazine/blob/main/2021-march.md#installation-instructions-3
[35]: https://copr.fedorainfracloud.org/coprs/spot/aws-cli-2/

View File

@ -2,7 +2,7 @@
[#]: via: (https://opensource.com/article/21/3/replace-ls-exa)
[#]: author: (Sudeshna Sur https://opensource.com/users/sudeshna-sur)
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: translator: (geekpi)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )

View File

@ -0,0 +1,145 @@
[#]: subject: (4 cool new projects to try in Copr for March 2021)
[#]: via: (https://fedoramagazine.org/4-cool-new-projects-to-try-in-copr-for-march-2021/)
[#]: author: (Jakub Kadlčík https://fedoramagazine.org/author/frostyx/)
[#]: collector: (lujun9972)
[#]: translator: (geekpi)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
COPR 仓库中 4 个很酷的新项目2021.03
======
![][1]
COPR 是个人软件仓库[集合][2],它不在 Fedora 中。这是因为某些软件不符合轻松打包的标准;或者它可能不符合其他 Fedora 标准尽管它是自由而开源的。COPR 可以在 Fedora 套件之外提供这些项目。COPR 中的软件不受 Fedora 基础设施的支持,或者是由项目自己背书的。但是,这是一种尝试新的或实验性的软件的一种巧妙的方式。
本文介绍了 COPR 中一些有趣的新项目。如果你第一次使用 COPR请参阅 [COPR 用户文档][3]。
### [][4]
### Ytfzf
[Ytfzf][5] 是一个简单的命令行工具,用于搜索和观看 YouTube 视频。它提供了围绕模糊查找程序 [fzf][6] 构建的快速直观的界面。它使用 [youtube-dl][7] 来下载选定的视频并打开外部视频播放器来观看。由于这种方式_ytfzf_ 比使用浏览器观看 YouTube 资源占用要少得多。它支持缩略图(通过 [ueberzug][8])、历史记录保存、多个视频排队或下载它们以供以后使用、频道订阅以及其他方便的功能。多亏了像 [dmenu][9] 或 [rofi][10] 这样的工具,它甚至可以在终端之外使用。
![][11]
#### [][12] 安装说明
目前[仓库][13]为 Fedora 33 和 34 提供 Ytfzf。要安装它请使用以下命令
```
sudo dnf copr enable bhoman/ytfzf
sudo dnf install ytfzf
```
### [][14] Gemini 客户端
你有没有想过,如果万维网走的是一条完全不同的路线,不采用 CSS 和客户端脚本,你的互联网浏览体验会如何?[Gemini][15] 是 HTTPS 协议的现代替代品,尽管它并不打算取代 HTTPS 协议。[stenstorp/gemini][16] COPR 项目提供了各种客户端来浏览 Gemini _网站_,有 [Castor][17]、[Dragonstone][18]、[Kristall][19] 和 [Lagrange][20]。
[Gemini][21] 站点提供了一些使用该协议的主机列表。以下显示了使用 Castor 访问这个站点的情况:
![][22]
#### [][23] 安装说明
该[仓库][16]目前为 Fedora 32、33、34 和 Fedora Rawhide 提供 Gemini 客户端。EPEL 7 和 8以及 CentOS Stream 也可使用。要安装浏览器,请从这里显示的安装命令中选择:
```
sudo dnf copr enable stenstorp/gemini
sudo dnf install castor
sudo dnf install dragonstone
sudo dnf install kristall
sudo dnf install lagrange
```
### [][24] Ly
[Ly][25] 是一个 Linux 和 BSD 的轻量级登录管理器。它有一个类似于 ncurses 的基于文本的用户界面。理论上,它应该支持所有的 X 桌面环境和窗口管理器(其中很多都[经过测试][26]。Ly 还提供了基本的 Wayland 支持Sway 也工作良好)。在配置的某个地方,有一个复活节彩蛋选项,可以在背景中启用著名的 [PSX DOOM fire][27] 动画,就其本身而言,值得一试。
![][28]
#### [][29] 安装说明
该[仓库][30]目前为 Fedora 32、33 和 Fedora Rawhide 提供 Ly。要安装它请使用以下命令
```
sudo dnf copr enable dhalucario/ly
sudo dnf install ly
```
在将 Ly 设置为系统登录界面之前,请在终端中运行 _ly_ 命令以确保其正常工作。然后关闭当前的登录管理器,启用 Ly。
```
sudo systemctl disable gdm
sudo systemctl enable ly
```
最后,重启计算机,使其更改生效。
### [][31] AWS CLI v2
[AWS CLI v2][32] 带来基于社区反馈进行的稳健而有条理的演变,而不是对原有客户端的大规模重新设计。它引入了配置凭证的新机制,现在允许用户从 AWS 控制台中生成的 _.csv_ 文件导入凭证。它还提供了对 AWS SSO 的支持。其他大的改进是服务端自动补全,以及交互式参数生成。一个新功能是交互式向导,它提供了更高层次的抽象,并结合多个 AWS API 调用来创建、更新或删除 AWS 资源。
![][33]
#### [][34] 安装说明
该[仓库][35]目前为 Fedora Linux 32、33、34 和 Fedora Rawhide 提供 AWS CLI v2。要安装它请使用以下命令
```
sudo dnf copr enable spot/aws-cli-2
sudo dnf install aws-cli-2
```
自然地,访问 AWS 账户是必要的。
--------------------------------------------------------------------------------
via: https://fedoramagazine.org/4-cool-new-projects-to-try-in-copr-for-march-2021/
作者:[Jakub Kadlčík][a]
选题:[lujun9972][b]
译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://fedoramagazine.org/author/frostyx/
[b]: https://github.com/lujun9972
[1]: https://fedoramagazine.org/wp-content/uploads/2020/10/4-copr-945x400-1-816x345.jpg
[2]: https://copr.fedorainfracloud.org/
[3]: https://docs.pagure.org/copr.copr/user_documentation.html
[4]: https://github.com/FrostyX/fedora-magazine/blob/main/2021-march.md#droidcam
[5]: https://github.com/pystardust/ytfzf
[6]: https://github.com/junegunn/fzf
[7]: http://ytdl-org.github.io/youtube-dl/
[8]: https://github.com/seebye/ueberzug
[9]: https://tools.suckless.org/dmenu/
[10]: https://github.com/davatorium/rofi
[11]: https://fedoramagazine.org/wp-content/uploads/2021/03/ytfzf.png
[12]: https://github.com/FrostyX/fedora-magazine/blob/main/2021-march.md#installation-instructions
[13]: https://copr.fedorainfracloud.org/coprs/bhoman/ytfzf/
[14]: https://github.com/FrostyX/fedora-magazine/blob/main/2021-march.md#gemini-clients
[15]: https://gemini.circumlunar.space/
[16]: https://copr.fedorainfracloud.org/coprs/stenstorp/gemini/
[17]: https://git.sr.ht/~julienxx/castor
[18]: https://gitlab.com/baschdel/dragonstone
[19]: https://kristall.random-projects.net/
[20]: https://github.com/skyjake/lagrange
[21]: https://gemini.circumlunar.space/servers/
[22]: https://fedoramagazine.org/wp-content/uploads/2021/03/gemini.png
[23]: https://github.com/FrostyX/fedora-magazine/blob/main/2021-march.md#installation-instructions-1
[24]: https://github.com/FrostyX/fedora-magazine/blob/main/2021-march.md#ly
[25]: https://github.com/nullgemm/ly
[26]: https://github.com/nullgemm/ly#support
[27]: https://fabiensanglard.net/doom_fire_psx/index.html
[28]: https://fedoramagazine.org/wp-content/uploads/2021/03/ly.png
[29]: https://github.com/FrostyX/fedora-magazine/blob/main/2021-march.md#installation-instructions-2
[30]: https://copr.fedorainfracloud.org/coprs/dhalucario/ly/
[31]: https://github.com/FrostyX/fedora-magazine/blob/main/2021-march.md#aws-cli-v2
[32]: https://aws.amazon.com/blogs/developer/aws-cli-v2-is-now-generally-available/
[33]: https://fedoramagazine.org/wp-content/uploads/2021/03/aws-cli-2.png
[34]: https://github.com/FrostyX/fedora-magazine/blob/main/2021-march.md#installation-instructions-3
[35]: https://copr.fedorainfracloud.org/coprs/spot/aws-cli-2/