mirror of
https://github.com/LCTT/TranslateProject.git
synced 2024-12-26 21:30:55 +08:00
commit
7679270203
@ -1,27 +1,32 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (Starryi)
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
[#]: reviewer: (wxy)
|
||||
[#]: publisher: (wxy)
|
||||
[#]: url: (https://linux.cn/article-14557-1.html)
|
||||
[#]: subject: (Watching activity on Linux with watch and tail commands)
|
||||
[#]: via: (https://www.networkworld.com/article/3529891/watching-activity-on-linux-with-watch-and-tail-commands.html)
|
||||
[#]: author: (Sandra Henry-Stocker https://www.networkworld.com/author/Sandra-Henry_Stocker/)
|
||||
|
||||
使用 watch 和 tail 命令监视 Linux 上的活动
|
||||
======
|
||||
watch 和 tail 命令可以帮助监视 Linux 系统上的活动。本文介绍了这两个命令的一些有用的使用方法。
|
||||
|
||||
**watch** 和 **tail** 命令为持续监视 Linux 系统上的活动提供了一些有趣的选项。
|
||||
![](https://img.linux.net.cn/data/attachment/album/202205/07/091736ja5yt2yottef0kl4.jpg)
|
||||
|
||||
也就是说,你可以通过 **watch** 来显示谁已登录,并随着用户登陆和注销,更新显示内容,而不是仅仅提出问题并获得答案(例如询问 **who** 并获取当前登录用户的列表)。
|
||||
> watch 和 tail 命令可以帮助监视 Linux 系统上的活动。本文介绍了这两个命令的一些有用的使用方法。
|
||||
|
||||
使用 **tail**,您可以显示文件的底部并在添加内容时查看内容。这种监控一般非常有用,并且比定期运行命令所需的工作更少。
|
||||
`watch` 和 `tail` 命令为持续监视 Linux 系统上的活动提供了一些有趣的选项。
|
||||
|
||||
也就是说,你可以通过 `watch` 来显示谁已登录,并随着用户登录和注销不断更新,而不是仅仅提出问题并获得答案(例如询问 `who` 并获取当前登录用户的列表)。
|
||||
|
||||
使用 `tail`,你可以显示文件的底部并在添加内容时查看内容。这种监控一般非常有用,并且比定期运行命令所需的工作更少。
|
||||
|
||||
### 使用 watch 命令
|
||||
|
||||
使用 **watch** 的最简单示例之一是使用命令 **watch who**。你会看到一个列表,其中显示了谁登录了,以及他们登录的时间和登录位置。请注意,默认设置是每两秒更新一次显示(左上角),日期和时间(右上角)将按该间隔自行更新。用户列表将随着用户登录和注销而增长和缩小。
|
||||
使用 `watch` 的最简单示例之一是使用命令 `watch who`。你会看到一个列表,其中显示了谁登录了,以及他们登录的时间和登录位置。请注意,默认设置是每两秒更新一次显示(左上角),日期和时间(右上角)将按该间隔自行更新。用户列表将随着用户登录和注销而增长和缩小。
|
||||
|
||||
### $ watch who
|
||||
```
|
||||
$ watch who
|
||||
```
|
||||
|
||||
此命令将显示如下所示的登录列表:
|
||||
|
||||
@ -32,14 +37,14 @@ nemo pts/0 2020-02-27 08:07 (192.168.0.11)
|
||||
shs pts/1 2020-02-27 10:58 (192.168.0.5)
|
||||
```
|
||||
|
||||
你可以通过添加 **-n** 选项(例如 -n 10)来修改更新间的不同秒数,以修改更新间隔,从而获取较少的更新频率。
|
||||
你可以通过添加 `-n` 选项(例如 `-n 10`)来修改更新间的不同秒数,以修改更新间隔,从而获取较少的更新频率。
|
||||
|
||||
### $ watch -n 10 who
|
||||
```
|
||||
$ watch -n 10 who
|
||||
```
|
||||
|
||||
上述命令将以新的间隔显示,并且显示的时间更新频率较低,从而使显示时间与所选间隔保持一致。
|
||||
|
||||
[][2]
|
||||
|
||||
```
|
||||
Every 10.0s: who dragonfly: Thu Feb 27 11:05:47 2020
|
||||
|
||||
@ -47,9 +52,11 @@ nemo pts/0 2020-02-27 08:07 (192.168.0.11)
|
||||
shs pts/1 2020-02-27 10:58 (192.168.0.5)
|
||||
```
|
||||
|
||||
如果你希望仅查看命令的输出,而不是标题(前 2 行),则可以通过添加 **-t**(无标题)选项来省略这些行。
|
||||
如果你希望仅查看命令的输出,而不是标题(前 2 行),则可以通过添加 `-t`(无标题)选项来省略这些行。
|
||||
|
||||
### $ watch -t who
|
||||
```
|
||||
$ watch -t who
|
||||
```
|
||||
|
||||
然后,你的屏幕将显示如下所示:
|
||||
|
||||
@ -60,21 +67,21 @@ shs pts/1 2020-02-27 10:58 (192.168.0.5)
|
||||
|
||||
如果每次运行监视的命令时,输出都是相同的,则只有标题行(如果未省略)会更改。其余显示的信息将保持不变。
|
||||
|
||||
如果你希望 **watch** 命令在它正在监视的命令的输出发生更新后立即退出,则可以使用 **-g**(将其视为“离开”)选项。例如,如果你只是在等待其他人开始登录系统,则可以选择执行此操作。
|
||||
如果你希望 `watch` 命令在它正在监视的命令的输出发生更新后立即退出,则可以使用 `-g`(将其视为“<ruby>离开<rt>go away</rt></ruby>”)选项。例如,如果你只是在等待其他人开始登录系统,则可以选择执行此操作。
|
||||
|
||||
你还可以使用 **-d**(差异)选项突出显示显示输出中的更改。突出显示只会持续一个间隔(默认为 2 秒),但有助于引起你对更新的注意。
|
||||
你还可以使用 `-d`(<ruby>差异<rt>differences</rt></ruby>)选项突出显示显示输出中的更改。突出显示只会持续一个间隔(默认为 2 秒),但有助于引起你对更新的注意。
|
||||
|
||||
下面是一个更复杂的示例,该示例使用 **watch** 命令显示正在侦听连接的服务及其使用的端口。虽然输出不太可能更改,但它会提醒你任何新服务正在启动或关闭。
|
||||
下面是一个更复杂的示例,该示例使用 `watch` 命令显示正在侦听连接的服务及其使用的端口。虽然输出不太可能更改,但它会提醒你任何新服务正在启动或关闭。
|
||||
|
||||
```console
|
||||
```
|
||||
$ watch 'sudo lsof -i -P -n | grep LISTEN'
|
||||
```
|
||||
|
||||
值得注意的是,正在运行的命令需要用引号扩起来,以确保 **watch** 命令不会将其输出发送到 grep 命令。
|
||||
值得注意的是,正在运行的命令需要用引号扩起来,以确保不会将 `watch` 命令的输出发送到 `grep` 命令。
|
||||
|
||||
使用 **watch -h** 命令将为你提供命令选项的列表。
|
||||
使用 `watch -h` 命令将为你提供命令选项的列表。
|
||||
|
||||
```console
|
||||
```
|
||||
$ watch -h
|
||||
|
||||
Usage:
|
||||
@ -98,19 +105,19 @@ Options:
|
||||
|
||||
### 使用 tail -f
|
||||
|
||||
**tail -f** 命令与 **watch** 有一些相同之处。它也会在添加文件时显示文件的底部和其他内容。你不必一次又一次地运行 “tail” 命令,而是运行一个命令并获得可重复更新显示视图的结果。例如,你可以使用如下命令查看系统日志:
|
||||
`tail -f` 命令与 `watch` 有一些相同之处。它也会在添加文件时显示文件的底部和其他内容。你不必一次又一次地运行 `tail` 命令,而是运行一个命令并获得可重复更新显示视图的结果。例如,你可以使用如下命令查看系统日志:
|
||||
|
||||
```console
|
||||
```
|
||||
$ tail -f /var/log/syslog
|
||||
```
|
||||
|
||||
某些文件(如 **/var/log/wtmp**)不适合这种类型的处理,因为它们的格式不是普通文本文件,但是通过组合 **watch** 和 **tail**,你可以获得类似的结果,如下所示:
|
||||
某些文件(如 `/var/log/wtmp`)不适合这种类型的处理,因为它们的格式不是普通文本文件,但是通过组合 `watch` 和 `tail`,你可以获得类似的结果,如下所示:
|
||||
|
||||
```bash
|
||||
```
|
||||
watch 'who /var/log/wtmp | tail -20'
|
||||
```
|
||||
|
||||
无论有多少用户仍处于登录状态, 此命令都将只显示最近的 5 次登录。如果发生其他登录,显示结果将添加一行记录并删除顶行记录。
|
||||
无论有多少用户仍处于登录状态,此命令都将只显示最近的 5 次登录。如果发生其他登录,显示结果将添加一行记录并删除顶行记录。
|
||||
|
||||
```
|
||||
Every 60.0s: who /var/log/wtmp | tail -5 dragonfly: Thu Feb 27 12:46:07 2020
|
||||
@ -122,9 +129,7 @@ nemo pts/1 2020-02-27 11:34 (192.168.0.5)
|
||||
dory pts/1 2020-02-27 12:14 (192.168.0.5)
|
||||
```
|
||||
|
||||
对你有时可能想要监视的信息,无论监视进程、登录名还是系统资源,**watch** 和 **tail -f** 命令都可以提供自动更新视图,从而使监视任务变得更加容易。
|
||||
|
||||
加入 [Facebook][3] 和 [LinkedIn][4] 上的网络世界社区,对最重要的话题发表评论。
|
||||
对你有时可能想要监视的信息,无论监视进程、登录名还是系统资源,`watch` 和 `tail -f` 命令都可以提供自动更新视图,从而使监视任务变得更加容易。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
@ -133,7 +138,7 @@ via: https://www.networkworld.com/article/3529891/watching-activity-on-linux-wit
|
||||
作者:[Sandra Henry-Stocker][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[Starryi](https://github.com/Starryi)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
@ -0,0 +1,91 @@
|
||||
[#]: subject: (A new open source operating system for embedded systems)
|
||||
[#]: via: (https://opensource.com/article/21/7/rt-thread-smart)
|
||||
[#]: author: (Zhu Tianlong https://opensource.com/users/zhu-tianlong)
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (tendertime)
|
||||
[#]: reviewer: (wxy)
|
||||
[#]: publisher: (wxy)
|
||||
[#]: url: (https://linux.cn/article-14552-1.html)
|
||||
|
||||
一种新的开源嵌入式操作系统
|
||||
======
|
||||
|
||||
> RT-Thread Smart 致力于物联网和边缘计算领域的开源。
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202205/06/131909kdb7f966j22qf7o9.jpg)
|
||||
|
||||
目前对 [嵌入式操作系统][2] 有巨大的需求,你建立的操作系统最好是开源的。[RT-Thread][3] 项目的研发团队花了两年时间,研发出了该项目的最新成果:RT-Thread Smart。这是一款微内核的操作系统,主要针对中高端的处理器,如具有内存管理单元(MMU)的 RISC-V 或 Arm Cortex-A,为嵌入式领域的所有行业提供了一个具有竞争力的、基于 POSIX 的软件平台。
|
||||
|
||||
### 谁需要 RT-Thread Smart?
|
||||
|
||||
RT-Thread Smart 是一款专业的、高性能的微内核操作系统,用于实时应用。它为所有市场的嵌入式设备提供了开源基础,如安全(IP 摄像头)、工业控制、车载设备、消费电子及其他嵌入式科技应用,可谓一切场景。它的意义在于:不像传统的物联网操作系统,一个微内核的操作系统可以填补传统实时操作系统 RTOS 和相对大型的操作系统如 Linux 之间的空白,实现实时性能、成本、安全、启动速度等等各方面之间的最佳平衡。
|
||||
|
||||
### RT-Thread Smart 的架构
|
||||
|
||||
RT-Thread Smart 通过 MMU 和系统调用将系统分割为内核模式和用户模式,并为每种模式区分了地址空间(一个 32 位系统可以提供 4G 地址空间)。
|
||||
|
||||
![RT-Thread Smart 架构][4]
|
||||
|
||||
(RT-Thread, [CC BY-SA 4.0][5])
|
||||
|
||||
RT-Thread Smart 内核包括平台的基础功能,并支持定制化。RT-Thread Smart 的用户应用环境使用 [musl libc][6] 来提供 [POSIX][7] 接口调用和 C 语言的运行时支持。它也继承了原始的 RT-Thread 生态系统,使用 [SCons][8] 或者其他编译工具如 [Autotools][9]、Makefile、[CMake][10] 等等来支持开发,以及 RT-Thread 开箱即用的在线软件包(撰写本文时超过 342 个)。你甚至可以将 Linux 应用程序(如 wget/cURL、BusyBox、OpenSSL 和 Simple DirectMedia Layer)移植到你的平台。
|
||||
|
||||
压缩的 RT-Thread Smart 内核仅 217 KB,搭配一个 127 KB 的根文件系统。大约 2 MB的存储占用。包括了对文件系统、网络协议栈、多媒体的完整支持。RT-Thread 只需要 3 到 5 秒完成启动,而在不运行其他功能组件时,RT-Thread Smart 需要的启动及准备时间不到 500ms。
|
||||
|
||||
通过其集成的 Persimmon 用户界面(UI)组件,RT-Thread Smart 从上电到运行 UI 需要大约 1 秒。换句话说,这是一个非常轻巧快速的系统。当然,“实时”不是指启动,而是指系统随着时间推进而表现出的一致性。对于 RT-Thread ,实时性能需要优先考虑,中断时延小于 1μs,满足大部分实时性要求严格的场景需求。
|
||||
|
||||
### RT-Thread Smart 和 RT-Thread
|
||||
|
||||
你可能想知道 RT-Thread Smart 和 RT-Thread 之间的不同。简单来说, RT-Thread Smart 是一个基于 RT-Thread RTOS 的操作系统,但它整合了用户态的处理过程。RT-Smart 的内核部分本质上是 RT-Thread RTOS,它在虚拟地址上运行,增加了进程管理,使用进程间通信机制(IPC)、虚拟内存/地址空间管理、ELF 加载器等等,以上特性全部在 RT-Thread RTOS 内实现,当这些组件被禁用时,RT-Smart 会回归 RT-Thread RTOS。
|
||||
|
||||
以下是对比:
|
||||
|
||||
| | RT-Thread | RT-Thread Smart
|
||||
:-----| :----: | :----:
|
||||
支持芯片 | Cortex-M/R、RISC-V RV32IMAC(以及类似)、Cortex-A MPU | Cortex-A 等具有 MMU 的 MPU
|
||||
编译 | 内核和应用都编译到一个镜像 | 内核和应用可以被分开编译和运行
|
||||
存储 | 使用线性地址空间(即使有 MMU),使用物理地址的虚拟寻址 | 运行在内核占用超过 1GB 的 32 位操作系统,拥有完整 4G 地址空间的用户态进程彼此隔离,外设驱动程序必须通过虚拟地址访问外设
|
||||
运行错误 | 当一个应用程序失败时,整个系统就会崩溃 | 当应用程序失败时,它不会影响内核和其他进程的执行
|
||||
运行模式 | 多线程模型 | 多进程模型(进程内支持多线程,内核线程由内核支持)
|
||||
用户模型 | 单用户模型 | 单用户模型
|
||||
API | RT-Thread API、POSIX PSE52 | RT-Thread API(内核态和用户态),以及完整的 POSIX API
|
||||
实时性 | 抢占式硬实时系统 | 抢占式硬实时系统
|
||||
资源使用 | 非常小 | 相对小
|
||||
调试 | 通常需要模拟器调试 | 支持 GDB 调试,不需要模拟器
|
||||
|
||||
RT-Thread RTOS 非常紧凑,它的所有应用和子系统都编译到镜像中,多线程应用运行并分享相同的地址空间。
|
||||
|
||||
RT-Thread Smart 是独立的。系统和应用是分别编译和运行的。应用拥有完整且互相隔离的地址空间。它也继承了 RT-Thread 优秀的实时性,同时也具有 POSIX 环境的特性。
|
||||
|
||||
类似地,它们都与 RT-Thread API 兼容。RT-Thread RTOS 的应用可以被平滑移植到 RT-Thread Smart。
|
||||
|
||||
### 嵌入式开源
|
||||
|
||||
RT-Thread Smart 是一个开源项目,项目地址:[GitHub][11]。你可以下载代码和文档,尝试一下,并提交评论和反馈,将该项目传播给更多开源倡导者。嵌入式系统属于它们的用户,有太多的嵌入式开发人员没有找到太多可用的嵌入式系统。
|
||||
|
||||
如果你是开发人员,请帮助改进 RT-Thread Smart。随着 RT-Thread 项目的不断推进,我们希望创建物联网和边缘计算的令人激动的开源世界。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/21/7/rt-thread-smart
|
||||
|
||||
作者:[Zhu Tianlong][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[tendertime](https://github.com/tendertime)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/zhu-tianlong
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/LAW-Internet_construction_9401467_520x292_0512_dc.png?itok=RPkPPtDe (An intersection of pipes.)
|
||||
[2]: https://opensource.com/article/20/6/open-source-rtos
|
||||
[3]: https://www.rt-thread.io/
|
||||
[4]: https://opensource.com/sites/default/files/uploads/rt-thread-smart.png (RT-Thread Smart architecture)
|
||||
[5]: https://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
[6]: https://musl.libc.org/
|
||||
[7]: https://opensource.com/article/19/7/what-posix-richard-stallman-explains
|
||||
[8]: https://scons.org/
|
||||
[9]: https://opensource.com/article/19/7/introduction-gnu-autotools
|
||||
[10]: https://opensource.com/article/21/5/cmake
|
||||
[11]: https://github.com/RT-Thread/rt-thread/tree/rt-smart
|
@ -0,0 +1,111 @@
|
||||
[#]: subject: "How I use open source to design my own card games"
|
||||
[#]: via: "https://opensource.com/article/21/12/open-source-card-game"
|
||||
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "hadisi1993"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14551-1.html"
|
||||
|
||||
我如何利用开源设计自己的卡牌游戏
|
||||
======
|
||||
|
||||
> 开源并不仅仅指的是软件。开源是一种文化现象,自然也适合桌面游戏。
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202205/06/094320k8uug3i84pg8u0w2.jpg)
|
||||
|
||||
我喜欢优秀的游戏,尤其是桌游,因为桌游的很多特性都和开源相同。在现实生活中,当你和朋友围坐在桌旁一起玩卡牌游戏时,作为一个团队,你们可以一起决定小丑牌是不是万能的。还有,你们可以随意地决定当出了小丑牌后,手上有 Ace 牌的人的要不要舍弃 Ace 牌,或者出了方块皇后以后,每个人是不是都要把手上的牌传给右手边的人。换句话说,你们可以随心所欲地重新制定规则,因为游戏不过是参与者们一致认同的条件集合罢了。对我来说,更棒的是你可以发明自己的游戏,而不用破坏别人的游戏规则。有时候,我会作为一个业余爱好者来开发桌游。因为我喜欢把自己的爱好结合起来,所以我倾向于只使用开源和开放的文化资源来设计游戏。
|
||||
|
||||
首先,游戏有大致有两个关键特征,风格和机制,理解这一点非常重要。游戏风格指的是游戏的故事或者主题,游戏机制指的是游戏的规则和条件。这两者并不总是完全脱离的,举个例子,在设计一款以赛车为主题的游戏时,自然而然就会要求玩家迅速完成动作。然而,风格和机制通常是被分开对待的,所以我们完全可以为了好玩就去创造一款使用标准扑克牌,却以太空羊驼为主题的游戏。
|
||||
|
||||
### 开源美术
|
||||
|
||||
如果你去过现代艺术博物馆,你可能会发现自己站在一幅纯蓝色的画布前,无意中听到有人说起老话:“见鬼,这我也能做!”。但事实是,艺术是一项艰巨的工作。创作赏心悦目的艺术品需要付出大量的思考、时间、信心和技巧。这也意味着艺术是你在设计游戏时中最难采购的部分之一。
|
||||
|
||||
我有一些“技巧”来解决这个典型难题。
|
||||
|
||||
#### 1、寻找同类素材
|
||||
|
||||
现在有很多免费、开放的艺术作品,而且大部分质量上佳。问题在于,游戏通常需要不止一件作品。如果你正在设计一款纸牌游戏,你大概至少需要四到六个不同的元素(假设你的纸牌遵循塔罗牌风格),有可能还需要更多。如果你花足够多的时间在这上面,你可以在 [OpenGameArt.org][3]、[FreeSVG.org][4]、[ArtStation.com][5]、[DeviantArt.com][6] 等网站上找到<ruby>[知识共享和公共领域][2]<rt>Creative Commons and Public Domain</rt></ruby>的艺术作品。
|
||||
|
||||
如果你使用的网站没有专门搜索<ruby>知识共享<rt>Creative Commons</rt></ruby>的功能,输入以下文字到任何搜索引擎当中,`"This work is licensed under a Creative Commons"` 或 `"本工作处于知识共享许可协议之下"`(引号很重要,不要把它们漏了),并用搜索引擎要求的语法,以便将搜索限制到一个具体的站点当中(举个例子,`site:deviantart.com`)。
|
||||
|
||||
一旦你有了一个可供挑选素材的艺术库,那就去辨别这些作品的主题,并根据主题分类。两个不同的人拍摄的机器人的照片可能看起来一点都不像,但它们的主题都是机器人。如果提供给你足够多机器人相关的美术素材,你可以围绕机器人这个主题构建你的游戏风格。
|
||||
|
||||
#### 2、委托创作知识共享艺术
|
||||
|
||||
你可以雇艺术家来为你定制艺术作品。我与使用开源绘画程序(如 [Krita][7] 和 Mypaint)的艺术家一起合作。同时,作为合同的一部分,我规定艺术作品必须在<ruby>知识共享署名-相同方式许可证<rt>Creative Commons Attribution-ShareAlike</rt></ruby>(CC BY-SA)下授权。迄今为止,只有一位艺术家因为许可证的限制拒绝了我的提议,并且大多数人都很高兴自己的美术作品有可能有更大的生命力,而不仅仅是作为业余爱好者自己发行的游戏的一部分。
|
||||
|
||||
#### 3、创作自己的艺术
|
||||
|
||||
就像现代艺术馆之旅展示的那样,艺术是一个非常灵活的词。我发现只要我给自己设定一个目标,也就是我需要为一款游戏创造多少纸牌或令牌,我便能够从 Linux 上的丰富图像创造工具中选择一种去创作。这并不需要什么高难度的东西。就像现代艺术一样,你可以用蓝色和黄色的条纹,或者红色和白色的圆点花纹,或者绿色和紫色的锯齿线来涂一张卡片,只要你能把它们画出来,那么除了你以外,其他人永远不会知道你暗地里把它们当做仙宫里的贵族和小姐。想想看,通过运用图形应用程序,描摹日常物品的照片,重组经典的扑克花色和塔罗牌主题等一系列方式,你可以创造出的简单作品吧。
|
||||
|
||||
### 版面设计
|
||||
|
||||
我用 [Inkscape][8]、Scribus 或者 [GIMP][9] 来进行版面设计,这取决与我有什么素材以及我追求的设计方式是什么。
|
||||
|
||||
对于卡牌,我发现简单的版面设计很容易实现,看上去也更好,纯色比渐变色更容易印刷,还有,直观的图像是最棒的。
|
||||
|
||||
![layout in Inkscape][10]
|
||||
|
||||
(Seth Kenlon, CC BY-SA 4.0)
|
||||
|
||||
我在一个单独的 Inkscape 文件中为我最新的游戏做了版面设计,这个游戏只使用了来自 OpenGameArt.com 上三四个不同艺术家的九张图片。在有着更大的美工集,更好的卡牌多样性的游戏中,我会在游戏中的每一种卡片的文件中为它们设计版面。
|
||||
|
||||
在为你的游戏素材做任何版面设计之前,要先了解你的目标输出是什么。如果你打算在家里打印游戏,那就做一些计算,搞清楚默认的纸张大小(有些是 US Letter,或者是 A4)可以容纳多少卡牌、令牌或卡片。如果你使用 [TheGameCrafter][11] 之类的桌游打印机打印,请下载好模板文件。
|
||||
|
||||
![printed cards][12]
|
||||
|
||||
(Seth Kenlon, CC BY-SA 4.0)
|
||||
|
||||
### 游戏机制
|
||||
|
||||
游戏机制是游戏中最重要的部分。它们使一款游戏成为游戏。开发游戏规则并不一定是一个正式的过程。你可以一时兴起地创造了一款游戏,可以拿一个现有的游戏重组它的规则,直到它和原来不同,可以修改一款你不喜欢的游戏,也可以将两款不同的游戏组合在一起。从简单容易的地方做起,拿索引卡,标准扑克牌,或塔罗牌去试着模拟你的想象中游戏是如何工作的。你可以自己尝试早期的游戏创意,但最终,让朋友来帮忙是找出意外故障和进行优化的好方法。
|
||||
|
||||
经常测试游戏。与不同类型的玩家一起玩游戏,并听取他们的反馈。你的游戏可能会激发许多玩家去创造新的规则和想法,因此要将关于 _哪些搞砸了_ 的反馈与关于 _哪些可以做修改_ 的反馈分开。你不一定要去真的实施这些反馈意见,只需迭代你的想法,但还是要仔细考虑错误报告。
|
||||
|
||||
一旦确定了你想要让你的规则如何运作,就把它们写下来,让它们 [简短且容易解析][13]。你定的规则不必说服玩家去玩这款游戏,不必向他们解释策略,你也不必允许玩家重新设置规则,只要告诉玩家为了让游戏玩起来,他们应该采取的步骤就可以了。
|
||||
|
||||
最重要的是,考虑一下,将你的规则开源。分享经验是游戏的一切,这其中也应该包括规则。知识共享或<ruby>开放游戏许可证<rt>Open Gaming License</rt></ruby>的规则集合允许其他玩家在你的作品上进行迭代、混合和构建。你永远不会知道,有人可能会因此想出一个你更喜欢的游戏变体!
|
||||
|
||||
### 开源游戏
|
||||
|
||||
开源不仅仅指的是软件。开源是一种文化现象,自然也适合桌面游戏。花几个晚上的时间来尝试制作游戏。如果你是新手,那就从一些简单的开始,比如下面的这个空白卡牌游戏:
|
||||
|
||||
1. 找来一些朋友。
|
||||
2. 给每个人几张空白的索引卡,告诉他们在每张卡片上写一条规则。规则可以是任何东西(“如果你穿着红色衣服,你就赢了”或“第一个站起来的人赢”等等)。
|
||||
3. 在你自己的索引卡片上,写上 “和”、“但是”、“但是不要”、“而且不要”、“除了”,以及其他的条件短语。
|
||||
4. 洗牌并将牌发给所有玩家。
|
||||
5. 每个玩家轮到的时候出一张牌。
|
||||
6. 最终目标是获胜,但是玩家可以通过出 “和”、“但是”、“或者” 卡片来修改决定胜负的条件。
|
||||
|
||||
这是一个有趣的聚会游戏,同时是一份很好的介绍,告诉你如何像游戏设计者一样思考,它帮助你认识到什么适合作为游戏机制,什么不适合。
|
||||
|
||||
还有,当然的,这是开源的。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/21/12/open-source-card-game
|
||||
|
||||
作者:[Seth Kenlon][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[hadisi1993](https://github.com/hadisi1993)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/seth
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/rich-smith-unsplash.jpg?itok=uzzS0gRa (Deck of playing cards)
|
||||
[2]: https://opensource.com/article/20/1/what-creative-commons
|
||||
[3]: https://opensource.com/article/21/12/opengameart.org/
|
||||
[4]: http://freesvg.org
|
||||
[5]: http://artstation.com
|
||||
[6]: http://deviantart.com
|
||||
[7]: https://opensource.com/article/21/12/krita-digital-paint
|
||||
[8]: https://opensource.com/article/21/12/linux-draw-inkscape
|
||||
[9]: https://opensource.com/content/cheat-sheet-gimp
|
||||
[10]: https://opensource.com/sites/default/files/inkscape-layout.jpg (Layout in Inkscape)
|
||||
[11]: https://www.thegamecrafter.com/
|
||||
[12]: https://opensource.com/sites/default/files/cards-printed_0.jpg (Printed cards)
|
||||
[13]: https://opensource.com/life/16/11/software-documentation-tabletop-gaming
|
@ -0,0 +1,120 @@
|
||||
[#]: subject: "Crop and resize photos on Linux with Gwenview"
|
||||
[#]: via: "https://opensource.com/article/22/2/crop-resize-photos-gwenview-kde"
|
||||
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14550-1.html"
|
||||
|
||||
用 Gwenview 在 Linux 上裁剪和调整照片大小
|
||||
======
|
||||
|
||||
> Gwenview 是一个优秀的照片编辑器,适合业余摄影师在 Linux KDE 桌面上使用。
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202205/05/221207dtkjbbe1jets7n3u.jpg)
|
||||
|
||||
一张好的照片可以蕴含很多信息。表面上它表达了你所看到的,但它也讲述了你所经历的。细微之处也能说明很多问题:你在拍照时选择的角度、取景中隐约可见的的东西有多大,以及,相比之下,那些有意识选择忽略的部分。
|
||||
|
||||
照片通常并不意味着记录真实发生的事情,相反,它们会成为你(摄影师)如何看待发生的事情的洞察力。
|
||||
|
||||
这就是照片编辑如此普遍的原因之一。当你把照片发布到你的在线图片库或社交网络时,你不应该发布一张不能准确表达照片所包含的感受的照片。但同样的道理,你也不应该成为一个专业的照片合成师,而只是为了剪掉在最后时刻将头伸进你的家庭快照的路人。如果你使用的是 KDE,你可以使用 Gwenview 这种休闲照片编辑器。
|
||||
|
||||
### 在 Linux 上安装 Gwenview
|
||||
|
||||
如果你正在运行 KDE Plasma 桌面,你可能已经安装了 Gwenview。如果你没有安装,或者你正在使用一个不同的桌面,而你想尝试 Gwenview,那么你可以用你的软件包管理器安装它。
|
||||
|
||||
我建议同时安装 Gwenview 和 Kipi 插件集,它可以将 Gwenview 与几个在线照片服务连接起来,这样你就可以轻松上传照片。在 Fedora、Mageia 和类似发行版上:
|
||||
|
||||
```
|
||||
$ sudo dnf install gwenview kipi-plugins
|
||||
```
|
||||
|
||||
在 Debian、Elementary 和类似版本上:
|
||||
|
||||
```
|
||||
$ sudo apt install gwenview kipi-plugins
|
||||
```
|
||||
|
||||
### 使用 Gwenview
|
||||
|
||||
Gwenview 通常有两种启动方式。你可以在 Dolphin 中点击图片文件,并选择在 Gwenview 中打开它;或者你可以启动 Gwenview,并在文件夹中寻找照片,Gwenview 或多或少可以充当你的文件管理器。第一种方法是直接的方法,很适合快速方便地预览图片文件。第二种方法是当你浏览大量照片,不确定哪一个版本的照片是“正确的”时,你可能会使用。
|
||||
|
||||
无论你如何启动 Gwenview,界面和功能都是一样的:右边有一个工作区,左边有一个面板。
|
||||
|
||||
![Gwenview][2]
|
||||
|
||||
(Seth Kenlon [CC BY-SA 4.0][3], Photo courtesy [Andrea De Santis][4])
|
||||
|
||||
在左边的面板下面,有三个标签:
|
||||
|
||||
* <ruby>文件夹<rt>Folders</rt></ruby>:显示你电脑上的文件夹的树状视图,以便你可以浏览你的文件,寻找更多的照片。
|
||||
* <ruby>信息<rt>Information</rt></ruby>:提供关于你目前正在查看的照片的元数据。
|
||||
* <ruby>操作<rt>Operations</rt></ruby>:允许你对当前的照片进行小的修改,如在横向和纵向之间旋转、调整大小和裁剪等。
|
||||
|
||||
Gwenview 能理解文件系统,所以你可以按键盘上的**右**或**左**箭头,查看文件夹中的上一张或下一张照片。
|
||||
|
||||
要离开单张照片视图并查看一个文件夹中的所有图片,请点击顶部工具栏中的“<ruby>浏览<rt>Browse</rt></ruby>”按钮。
|
||||
|
||||
![Browsing photos in a folder][5]
|
||||
|
||||
(Seth Kenlon,[CC BY-SA 4.0][3])
|
||||
|
||||
你也可以同时拥有两种视图。点击 Gwenview 底部的“<ruby>缩略图栏<rt>Thumbnail Bar</rt></ruby>”按钮,可以以电影胶片的形式看到当前文件夹中的其他图片,而当前选择的照片则在主面板中。
|
||||
|
||||
![Thumbnail view][6]
|
||||
|
||||
(Seth Kenlon,[CC BY-SA 4.0][3])
|
||||
|
||||
### 用 Gwenview 编辑照片
|
||||
|
||||
数码照片是很常见的,因此在网上发布或与朋友分享之前,需要对照片进行细微的调整也是同样常见。有非常好的应用可以编辑照片,事实上,其中最好的一个是另一个 KDE 应用,叫做 Krita(你可以在我的 [给摄影者的 Krita][7] 文章中阅读我如何使用它来处理照片),但是小的调整不应该需要艺术学位。这正是 Gwenview 所确保的:用一个休闲但功能强大的应用进行简单而快速的照片调整,并与你的 Plasma 桌面的其他部分整合。
|
||||
|
||||
我们大多数人对照片进行的最常见的调整是:
|
||||
|
||||
* **旋转**:当你的相机没有提供正确的元数据让你的电脑知道一张照片是要以横向还是纵向观看时,你可以手动修复它。
|
||||
* **镜像**:许多笔记本电脑或面部摄像头模仿镜子,这很有用,因为这是我们习惯于看到自己的方式。但是,它会使文字逆转。**镜像**功能可以从右到左翻转图像。
|
||||
* **翻转**:在数码相机和笔记本电脑上不太常见,但在手机上,无论你怎么拿手机,使用倒置设备拍照的现象在屏幕翻转的手机中并不少见。**翻转**功能可将图像旋转 180 度。
|
||||
* **调整大小**:数字图像现在通常具有超高清尺寸,有时这比你需要的要多得多。如果你通过电子邮件发送照片或将其发布在你想要优化加载时间的网页上,你可以将尺寸(和相应的文件大小)缩小到更小的尺寸。
|
||||
* **裁剪**:你有一张很棒的自己的照片,但不小心偶然发现了一个你认为不合适的人。用裁剪工具剪掉你不想要的所有东西。
|
||||
* **红眼**:当你的视网膜将相机的闪光灯反射回相机时,会得到红眼效果。Gwenview 可以通过在可调节区域中对红色通道进行去饱和和变暗来减少这种情况。
|
||||
|
||||
所有这些工具都在“<ruby>操作<rt>Operations</rt></ruby>”侧面板或“<ruby>编辑<rt>Edit</rt></ruby>”菜单中可用。这些操作具有破坏性,因此在你进行更改后,单击“<ruby>另存为<rt>Save As</rt></ruby>”以保存图像的 _副本_。
|
||||
|
||||
![Cropping a photo in Gwenview][8]
|
||||
|
||||
(Seth Kenlon,[CC BY-SA 4.0][3],照片由 [Elise Wilcox][9] 提供)
|
||||
|
||||
### 分享照片
|
||||
|
||||
当你准备好分享照片时,单击顶部工具栏中的“<ruby>分享<rt>Share</rt></ruby>”按钮,或转到“<ruby>插件<rt>Plugins</rt></ruby>”菜单并选择“<ruby>导出<rt>Export</rt></ruby>”。Gwenview 与 Kipi 插件集成在一起,可以在 [Nextcloud][10]、[Piwigo][11]、普通旧电子邮件以及 Google Drive、Flickr、Dropbox 等服务共享照片。
|
||||
|
||||
### Linux 上的照片编辑要点
|
||||
|
||||
Gwenview 拥有桌面照片管理器的所有必需功能。如果你需要的不仅仅是基本功能,你可以在 Krita 或 [Digikam][12] 中打开一张照片,并根据需要进行重大修改。对于其他一切,从浏览、排名、标记和小调整,Gwenview 都很方便。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/22/2/crop-resize-photos-gwenview-kde
|
||||
|
||||
作者:[Seth Kenlon][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[geekpi](https://github.com/geekpi)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/seth
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/design_photo_art_polaroids.png?itok=SqPLgWxJ (Polaroids and palm trees)
|
||||
[2]: https://opensource.com/sites/default/files/kde-gwenview-ui.jpg (Gwenview)
|
||||
[3]: https://creativecommons.org/licenses/by-sa/4.0/
|
||||
[4]: http://unsplash.com/@santesson89
|
||||
[5]: https://opensource.com/sites/default/files/kde-gwenview-browse.jpg (Browsing photos in a folder)
|
||||
[6]: https://opensource.com/sites/default/files/kde-gwenview-thumbnail.jpg (Thumbnail view)
|
||||
[7]: https://opensource.com/article/21/12/open-source-photo-editing-krita
|
||||
[8]: https://opensource.com/sites/default/files/kde-gwenview-crop.jpg (Cropping a photo in Gwenview)
|
||||
[9]: http://unsplash.com/@elise_outside
|
||||
[10]: https://opensource.com/article/20/7/nextcloud
|
||||
[11]: https://opensource.com/alternatives/google-photos
|
||||
[12]: https://opensource.com/life/16/5/how-use-digikam-photo-management
|
@ -3,42 +3,43 @@
|
||||
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "aREversez"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14547-1.html"
|
||||
|
||||
2022 最适合程序员的 10 款 Linux 发行版 [精选]
|
||||
最适合程序员的 10 款 Linux 发行版
|
||||
======
|
||||
我们为程序员和开发人员总结了 2022 年最好用的 10 款 Linux 发行版,以便他们开展日常工作和个人项目。由于工作和项目需要,程序员和开发人员会用到各种工具和应用,包括代码编辑器、编译器、插件以及数据库等等。若对现代开发人员的工作流程做一番整理,一般流程如下:
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202205/05/143612dml7eizi0vh170v7.jpg)
|
||||
|
||||
> 我们为程序员和开发人员总结了 2022 年最好用的 10 款 Linux 发行版,以便他们开展日常工作和个人项目。
|
||||
|
||||
由于工作和项目需要,程序员和开发人员会用到各种工具和应用,包括代码编辑器、编译器、插件以及数据库等等。若对现代开发人员的工作流程做一番整理,一般流程如下:
|
||||
|
||||
- 创建代码仓库
|
||||
- 编程
|
||||
- 调试
|
||||
- 测试
|
||||
- 配置
|
||||
|
||||
|
||||
- 部署
|
||||
|
||||
上述工作流程需要用到各种各样的工具,一份标准的工具清单如下:
|
||||
|
||||
- 代码编辑器
|
||||
- 简单的文本编辑器
|
||||
- 网络浏览器(包括 web 开发人员使用的各种浏览器)
|
||||
- 网页浏览器(包括 Web 开发人员使用的各种浏览器)
|
||||
- 数据库引擎
|
||||
- 本地服务器
|
||||
- 各类编程语言的编译器
|
||||
- 调试程序
|
||||
- 调试器
|
||||
- 监视或分析工具(客户端或者网页端)
|
||||
|
||||
|
||||
|
||||
与 Windows 相比,Linux 可以说是编程的最佳平台。之所以这样说,主要是因为 Linux 发行版与 Windows 不同,预装了许多功能强大的包和软件,自行安装也比较容易。在本文中,考虑到一些原因,我不会将 macOS 纳入对比范围之内。
|
||||
|
||||
综上,本文将整理出 2022 年最适合程序员的 10 款 Linux 发行版。
|
||||
|
||||
### 2022 最适合程序员的 10 款 Linux 发行版
|
||||
|
||||
#### 1、Fedora Workstation
|
||||
#### 1、Fedora 工作站
|
||||
|
||||
![Fedora 35 Workstation][1]
|
||||
|
||||
@ -46,29 +47,29 @@
|
||||
|
||||
Fedora Linux 默认安装了开箱即用的主流开发软件包,包括 PHP、OpenJDK、PostgreSQL、Django、Ruby on Rails 以及 Ansible 等等。
|
||||
|
||||
dnf 是 Fedora Linux 的包管理器,有了它,安装代码编辑器以及其他软件就相当容易了。此外,你还可以使用应用商店 Software 一键搜索、安装软件。
|
||||
dnf 是 Fedora Linux 的包管理器,有了它,安装代码编辑器以及其他软件就相当容易了。此外,你还可以使用“软件”应用商店一键搜索、安装软件。
|
||||
|
||||
Fedora Linux 支持 Snap 和 Flatpak,使用起来会更加灵活方便。你还可以使用 RPM Fusion 仓库,获取大量免费或收费的软件。因为许可证等一些原因, Fedora Linux 不希望一些包储存在其主仓库内,于是就有了 RPM Fusion。
|
||||
Fedora Linux 支持 Snap 和 Flatpak,使用起来会更加灵活方便。你还可以使用 RPM Fusion 仓库,获取大量自由或非自由的软件。因为许可证等一些原因,Fedora Linux 不希望在其主仓库内包括这些包,于是就有了 RPM Fusion。
|
||||
|
||||
点击下方链接,了解 Fedora Linux 最新版本。
|
||||
|
||||
[下载 Fedora][2]
|
||||
> **[下载 Fedora][2]**
|
||||
|
||||
#### 2、Ubuntu Linux
|
||||
|
||||
![Ubuntu Desktop is a perfect Linux Distribution for Programmers.][3]
|
||||
|
||||
在今天,无论是服务器还是个人电脑,使用最为广泛的发行版当属 Ubuntu Linux。Ubuntu 提供长期支持版本,每个长期支持版本的官方支持年限为五年(外加五年的维护支持),每年为高级用户提供两个短期版本。
|
||||
在今天,无论是服务器还是个人电脑,使用最为广泛的发行版当属 Ubuntu Linux。Ubuntu 提供长期支持版本,每个长期支持版本官方提供五年的支持(外加五年的维护支持),并且每年为高级用户提供两个短期版本。
|
||||
|
||||
由于 Ubuntu 非常流行,各种包与软件的供应商都会提供适用于 Ubuntu 的版本(.deb)。此外,得益于广泛的知名度,Ubuntu 有着更为庞大的论坛群体和更为丰富的帮助文档。所以说,Ubuntu 是开发人员的最佳之选,尤其是在开发过程中陷入难题的时候,Ubuntu 更能发挥其作用。点击下方链接,了解更多。
|
||||
|
||||
[下载 Ubuntu][4]
|
||||
> **[下载 Ubuntu][4]**
|
||||
|
||||
#### 3、openSUSE
|
||||
|
||||
openSUSE 是最稳定、最专业的 Linux 发行版之一,是企业界(包括个人电脑、服务器以及瘦客户机)的首选解决方案。openSUSE 作为关键系统,在世界范围内得到了广泛应用。
|
||||
openSUSE 是用在全球关键系统中最稳定、最专业的 Linux 发行版之一,是企业界(包括个人电脑、服务器以及瘦客户机)的首选解决方案。
|
||||
|
||||
相较于 Ubuntu 和 Fedora,openSUSE 具有一些独特的优势。首先,openSUSE 有两个版本:Leap 和 Tumbleweed。其中,openSUSE Leap 属于长期支持版,为用户带来稳定的升级体验。openSUSE Tumbleweed 属于滚动发行版,有着最新、最强大的软件包。
|
||||
相较于 Ubuntu 和 Fedora,openSUSE 具有一些独特的优势。首先,openSUSE 有两个版本:Leap 和 Tumbleweed。其中,openSUSE Leap 属于长期支持版,为用户带来稳定的升级体验。openSUSE Tumbleweed 属于滚动发行版,有着最新、最尖端的软件包。
|
||||
|
||||
如果你想获得最新的包和硬件支持,助力开发工作,你可以选择 openSUSE Tumbleweed;如果你想要的是稳定性,无需频繁维护即可长期运行,openSUSE Leap 会更适合你。
|
||||
|
||||
@ -78,7 +79,7 @@ openSUSE 是最稳定、最专业的 Linux 发行版之一,是企业界(包
|
||||
|
||||
如果你有一些 Linux 发行版的使用经验,推荐选择 openSUSE 进行开发工作。
|
||||
|
||||
[下载 openSUSE][5]
|
||||
> **[下载 openSUSE][5]**
|
||||
|
||||
#### 4、Manjaro Linux
|
||||
|
||||
@ -86,25 +87,21 @@ Manjaro Linux 基于 Arch Linux,不过安装起来更容易一些。Manjaro Li
|
||||
|
||||
如果你想使用 Arch Linux 及其滚动发行的软件包来满足开发需求,但又不想在安装原版 Arch 上来回折腾,Manjaro 绝对是你的最佳选择。
|
||||
|
||||
[下载 Manjaro][6]
|
||||
> **[下载 Manjaro][6]**
|
||||
|
||||
#### 5、Arch Linux
|
||||
|
||||
尽管有 Manjaro 以及其他基于 Arch Linux 的发行版,而且安装操作非常简单,你可能还是想在自己的定制电脑上折腾一番,亲自动手[安装原版 Arch][7]。
|
||||
尽管有 Manjaro 以及其他基于 Arch Linux 的发行版,而且安装操作非常简单,你可能还是想在自己的定制电脑上折腾一番,亲自动手 [安装原版 Arch][7]。
|
||||
|
||||
不过这种选择更适合程序员和开发人员,因为他们想得到更多的掌控权,或者想要定制一个 Linux 操作系统,用于开发项目或满足开发需求。这样一来,他们可能就会安装 Arch Linux,选择自己最喜欢的桌面,设置专用于开发工作的操作系统。
|
||||
|
||||
[][8]
|
||||
|
||||
推荐阅读:[Nitrux 最佳 Maui 应用程序][24]
|
||||
|
||||
假设你对 Arch Linux 和普通的电脑都比较熟悉,那么 Arch Linux 就是你的最佳选择,因为在自己定制的 Linux 操作系统上,你可以完全控制每一个软件包。
|
||||
|
||||
[下载 Arch Linux][9]
|
||||
> **[下载 Arch Linux][9]**
|
||||
|
||||
#### 6、Pop OS
|
||||
|
||||
Pop OS(即 Pop!_OS)由电脑制造商 System76 针对其系列硬件开发,是一款基于 Ubuntu 的免费开源发行版。发行周期与 Ubuntu 保持同步,并为用户提供了额外的调整工具和软件包。
|
||||
Pop OS(即 Pop!_OS)由电脑制造商 System76 针对其系列硬件开发,是一款基于 Ubuntu 的自由开源的发行版。发行周期与 Ubuntu 保持同步,并为用户提供了额外的调整工具和软件包。
|
||||
|
||||
![Pop OS 21.10 Desktop][10]
|
||||
|
||||
@ -114,7 +111,7 @@ Pop OS 基于 Ubuntu,默认支持多种程序语言,所以非常适合程序
|
||||
|
||||
如果你既想要基于 Ubuntu,又想要适合程序员的稳定 Linux 发行版,推荐选择 Pop OS。
|
||||
|
||||
[下载 POP OS][11]
|
||||
> **[下载 POP OS][11]**
|
||||
|
||||
#### 7、KDE Neon
|
||||
|
||||
@ -124,17 +121,17 @@ KDE Neon 基于 Ubuntu 长期支持版本,兼具最新的 KDE Plasma 桌面和
|
||||
|
||||
运行速度快,程序开箱即用,用户界面友好,广泛的社区支持,如你所愿,完美如斯。
|
||||
|
||||
[下载 KDE Neon][12]
|
||||
> **[下载 KDE Neon][12]**
|
||||
|
||||
#### 8、Debian
|
||||
|
||||
Debian GUN/Linux 就无需过多介绍了。Debian 的稳定分支是 Ubuntu 及其衍生系统的基础。换句话说,Debian 是最基本、最稳定的 Linux 发行版。优秀的稳定性和较长的支持时间使得 Debian 非常适合用做开发环境。
|
||||
Debian GUN/Linux 就无需过多介绍了。Debian 的稳定分支是 Ubuntu 及其衍生系统的基础。换句话说,Debian 是最主要、最稳定的 Linux 发行版之一。优秀的稳定性和较长的支持时间使得 Debian 非常适合用做开发环境。
|
||||
|
||||
不过,Debian 的稳定分支比较保守,很少使用最新的软件包。毕竟全世界都依赖 Debian 的稳定运行,所以维护者在检查、合并软件包时必须十分谨慎。
|
||||
不过,Debian 的稳定分支比较保守,很少使用最新的软件包。毕竟全世界(几乎)都依赖 Debian 的稳定运行,所以维护者在检查、合并软件包时必须十分谨慎。
|
||||
|
||||
Debian 不仅能够长期稳定运行,而且维护成本较低,是高级用户和系统管理员绝佳的编程环境。
|
||||
|
||||
[下载 Debian Linux][13]
|
||||
> **[下载 Debian Linux][13]**
|
||||
|
||||
#### 9、Kali Linux
|
||||
|
||||
@ -142,7 +139,7 @@ Kali Linux 由 Offensive Security 开发,服务对象为道德黑客和查找
|
||||
|
||||
对技术娴熟的程序员和开发人员来说,Kali Linux 堪称最佳之选。如果你精通 Linux,具备解决错误和依赖问题的经验,推荐选择 Kali Linux。
|
||||
|
||||
[下载 Kali Linux][14]
|
||||
> **[下载 Kali Linux][14]**
|
||||
|
||||
#### 10、Fedora Labs
|
||||
|
||||
@ -150,7 +147,9 @@ Kali Linux 由 Offensive Security 开发,服务对象为道德黑客和查找
|
||||
|
||||
Fedora Labs 为程序员、科学家、学生等各类人群提供各类专业化的 Linux 发行版,内置各类专业软件、包和工具。很多人并没有意识到 Fedora Labs 的优势,只要经过适当的配置,这些版本都是非常优秀的发行版。
|
||||
|
||||
我们来总结一下这些 Fedora Labs。
|
||||
我们来总结一下这些 Fedora Labs:
|
||||
|
||||
Fedora Scientific:
|
||||
|
||||
* 采用 KDE Plasma 桌面,集成科学和数学领域的各种开源工具
|
||||
* 软件清单如下:
|
||||
@ -161,16 +160,20 @@ Fedora Labs 为程序员、科学家、学生等各类人群提供各类专业
|
||||
* Pandas:用于数据处理的 Python 库
|
||||
* IPython
|
||||
* Java 和 R 程序语言相关包
|
||||
* 了解更多,请点击 [下载 Fedora Scientific][15]
|
||||
|
||||
> **[下载 Fedora Scientific][15]**
|
||||
|
||||
* 采用 GNOME 桌面环境,预装神经科学领域的各种开源包和应用。了解更多,请点击 [下载 Comp Neuro][25]
|
||||
Fedora COMP NEURO:
|
||||
|
||||
* 采用 GNOME 桌面环境,预装神经科学领域的各种开源包和应用。
|
||||
|
||||
> **[下载 Comp Neuro][25]**
|
||||
|
||||
Fedora Robotics Suite:
|
||||
|
||||
* 集成各种开源机器人技术包和软件,适合初学者、资深计算机科学家和编程人员。
|
||||
* 了解更多,[下载 Fedora Robotics][16].
|
||||
|
||||
|
||||
> **[下载 Fedora Robotics][16]**
|
||||
|
||||
除了上述版本,还有 [Fedora Security Labs][17]、[Fedora Astronomy][18] 和 [Fedora Python Classroom][19] 可供选择。
|
||||
|
||||
@ -180,9 +183,7 @@ Fedora Labs 为程序员、科学家、学生等各类人群提供各类专业
|
||||
|
||||
那么,怎样才能从以上 10 款 最适合程序员的 Linux 发行版中选出自己最喜欢的呢?
|
||||
|
||||
如果你想要一款开发系统,但又不想耗费太多精力,拿不定主意的话,推荐使用 Fedora Workstation 或者 Ubuntu。
|
||||
|
||||
If you have spare time or want more control in your system, like experimenting and being comfortable with occasional errors, then go for Arch Linux based systems.
|
||||
如果你想要一款开发系统,但又不想耗费太多精力,拿不定主意的话,推荐使用 Fedora 工作站或者 Ubuntu。
|
||||
|
||||
如果你的空闲时间比较多或者想要进一步掌控自己的系统,乐于尝试并且能够忍受偶尔发生的错误,推荐选择基于 Arch Linux 的系统。
|
||||
|
||||
@ -192,10 +193,6 @@ If you have spare time or want more control in your system, like experimenting a
|
||||
|
||||
祝你好运!
|
||||
|
||||
* * *
|
||||
|
||||
我们分享最新的技术、软件等重要新闻资讯,关注我们的 [Telegram][20]、[Twitter][21]、[YouTube][22] 和 [Facebook][23],不要错过最新内容!
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.debugpoint.com/2022/03/top-linux-distributions-programmers-2022/
|
||||
@ -203,7 +200,7 @@ via: https://www.debugpoint.com/2022/03/top-linux-distributions-programmers-2022
|
||||
作者:[Arindam][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[aREversez](https://github.com/aREversez)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
@ -3,21 +3,24 @@
|
||||
[#]: author: "Jayashree Huttanagoudar https://opensource.com/users/jayashree-huttanagoudar"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "Veryzzj"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14553-1.html"
|
||||
|
||||
面向 Java 开发人员的 JVM 参数指南
|
||||
======
|
||||
|
||||
通过理解和使用 JVM 以及 JVM 参数,开发人员和终端用户都可以诊断故障并且提高 Java 应用程序的性能。
|
||||
![](https://img.linux.net.cn/data/attachment/album/202205/06/134624iiubdjkqmxaaqhmx.jpg)
|
||||
|
||||
当你在编写源代码时,你是在编写人类可以阅读的代码。在将代码编译成机器语言之前,计算机无法执行它。机器语言是一个通用术语,指的是特定机器所需的任意数量的语言。通常,如果你在 Linux 上编译代码,它只能 Linux 上运行;如果你在 Windows 上编译代码,它就只在 Windows 上运行。但是,Java 是不同的,它并不以真实的机器为目标,而是面向 Java 虚拟机(JVM)。因此,它可以在任何机器上运行。
|
||||
> 通过理解和使用 JVM 以及 JVM 参数,开发人员和最终用户都可以诊断故障并且提高 Java 应用程序的性能。
|
||||
|
||||
Java 源代码被编译成字节码,然后由安装在计算机上的 JVM 运行。JVM 是一个执行引擎,但我们通常不会直接与它交互。它在后台静默运行,替我们处理 Java 字节码。大多数人不需要考虑,甚至也不需要知道 JVM。但是,了解它的工作原理是对我们来说是非常有用的,因为这会有助于我们调试和优化 Java 代码。例如:
|
||||
当你在编写源代码时,你是在编写人类可以阅读的代码。在将代码编译成机器语言之前,计算机无法执行它。机器语言是一个通用术语,指的是特定机器所需的任意数量的语言。通常,如果你在 Linux 上编译代码,它只能 Linux 上运行;如果你在 Windows 上编译代码,它就只在 Windows 上运行。但是,Java 是不同的,它并不以真实的机器为目标,而是面向 <ruby>Java 虚拟机<rt>Java Virtual Machine</rt></ruby>(JVM)。因此,它可以在任何机器上运行。
|
||||
|
||||
Java 源代码被编译成<ruby>字节码<rt>bytecode</rt></ruby>,然后由安装在计算机上的 JVM 运行。JVM 是一个执行引擎,但我们通常不会直接与它交互。它在后台静默运行,替我们处理 Java 字节码。大多数人不需要考虑,甚至也不需要知道 JVM。但是,了解它的工作原理是对我们来说是非常有用的,因为这会有助于我们调试和优化 Java 代码。例如:
|
||||
|
||||
* 在生产环境中,你发现已经部署的应用程序可能需要提升性能。
|
||||
* 如果你写的应用程序出错了,开发人员和终端用户都可以选择进行问题调试。
|
||||
* 如果你想了解关于 JDK(即 Java 开发工具包,用于开发/运行 Java 应用程序)的详细信息,你可以通过查询 JVM 来获取它们。
|
||||
* 如果你写的应用程序出错了,开发人员和最终用户都可以选择对问题进行调试。
|
||||
* 如果你想了解关于 JDK(即 <ruby>Java 开发工具包<rt>Java Development Kit</rt></ruby>,用于开发/运行 Java 应用程序)的详细信息,你可以通过查询 JVM 来获取。
|
||||
|
||||
本文介绍了一些基础的 JVM 参数,希望在这些场景中可以提供帮助。
|
||||
|
||||
@ -29,9 +32,9 @@ Java 源代码被编译成字节码,然后由安装在计算机上的 JVM 运
|
||||
|
||||
Java 有许多 J 开头的缩略词,包括 JVM、JDK 和 JRE。
|
||||
|
||||
* Java 开发工具包(JDK)可供需要在代码中使用开发库的程序员使用。
|
||||
* Java 运行时环境(JRE)可供想运行 Java 应用程序的人使用。
|
||||
* Java 虚拟机(JVM)是运行 Java 字节码的组件。
|
||||
* <ruby>Java 开发工具包<rt>Java Development Kit</rt></ruby>(JDK)可供需要在代码中使用开发库的程序员使用。
|
||||
* <ruby>Java 运行时环境<rt>Java Runtime Environment</rt></ruby>(JRE)可供想运行 Java 应用程序的人使用。
|
||||
* <ruby>Java 虚拟机<rt>Java Virtual Machine</rt></ruby>(JVM)是运行 Java 字节码的组件。
|
||||
|
||||
JDK 同时包含 JRE 和 JVM,但有些 Java 发行版提供了包含 JRE(包括 JVM)的替代下载。
|
||||
|
||||
@ -39,11 +42,11 @@ JDK 同时包含 JRE 和 JVM,但有些 Java 发行版提供了包含 JR
|
||||
|
||||
(图源:Jayashree Huttanagoudar,CC BY-SA 4.0)
|
||||
|
||||
Java 是开源的,因此,许多不同的公司都会建立和发布他们自己的 JDK。你可以在系统上安装多个 JDK,这会对你参与或者运行不同的 Java 项目时很有帮助,因为其中一些项目可能使用旧版本的 JDK。
|
||||
Java 是开源的,因此,许多不同的公司都会构建和发行他们自己的 JDK 发行版。你可以在系统上安装多个 JDK,这会对你参与或者运行不同的 Java 项目时很有帮助,因为其中一些项目可能使用旧版本的 JDK。
|
||||
|
||||
你可以使用 `alternatives` 命令,来查看 Linux 系统上的 JDK 列表:
|
||||
|
||||
```shell
|
||||
```
|
||||
$ alternatives --config java
|
||||
There are 2 programs that provide java.
|
||||
Selection Command
|
||||
@ -56,7 +59,7 @@ Enter to keep the current selection[+], or type selection number:
|
||||
|
||||
如果想要在可用的 JDK 之间进行切换,请再次执行该命令:
|
||||
|
||||
```shell
|
||||
```
|
||||
$ sudo alternatives --config java
|
||||
```
|
||||
|
||||
@ -68,20 +71,20 @@ JVM 调优指的是,通过调整 JVM 参数,来提高 Java 应用程序
|
||||
|
||||
通常情况下,在调试之前需要考虑以下几点:
|
||||
|
||||
* 成本:有时改进运行代码的硬件可以提高应用程序的性能。这可能看起来像是在“作弊”,但请考虑你愿意花多少时间调整 JVM 参数。有时应用程序需要更多的内存来执行所需的功能,而这点是任何软件技术都无法改变的。
|
||||
* 期望结果:长期来看,稳定性比性能更重要。如果你的调优对稳定性产生了影响,那么谨慎地选择你的调优参数可能会更好。
|
||||
* 潜在问题:有时,这个问题可能是主机操作系统的潜在问题。那么,在调整 JVM 之前,请确保 JVM 平台按预期工作。
|
||||
* 内存泄漏:如果你在使用垃圾回收(GC)调优参数,那么,应用程序代码中很可能会存在需要修复的内存泄漏。
|
||||
* **成本**:有时改进运行代码的硬件可以提高应用程序的性能。这可能看起来像是在“作弊”,但请考虑你愿意花多少时间调整 JVM 参数。有时应用程序需要更多的内存来执行所需的功能,而这点是任何软件技术都无法改变的。
|
||||
* **期望结果**:长期来看,稳定性比性能更重要。如果你的调优对稳定性产生了影响,那么谨慎地选择你的调优参数可能会更好。
|
||||
* **底层问题**:有时,问题可能是主机操作系统的底层问题。那么,在调整 JVM 之前,请确保 JVM 平台按预期工作。
|
||||
* **内存泄漏**:如果你在使用垃圾回收(GC)调优参数,那么,应用程序代码中很可能会存在需要修复的内存泄漏。
|
||||
|
||||
### 参数类型
|
||||
|
||||
JVM 参数可以分为以下三类:标准参数、非标准参数和高级选项.
|
||||
JVM 参数可以分为以下三类:标准参数、非标准参数和高级选项。
|
||||
|
||||
#### 标准参数
|
||||
|
||||
所有的 JVM 实现都支持标准参数,在终端执行 `java` 命令来查看标准参数列表。
|
||||
所有的 JVM 实现都支持标准参数,在终端执行 `java` 命令来查看标准参数列表:
|
||||
|
||||
```shell
|
||||
```
|
||||
$ java
|
||||
Usage: java [options] <mainclass> [args...]
|
||||
(to execute a class)
|
||||
@ -104,7 +107,7 @@ To specify an argument for a long option, you can use --<name>=<value> or
|
||||
|
||||
这些是所有 JVM 都会包含的标准参数,你可以像使用任何 [命令行选项][5] 一样安全地使用它们。例如,要验证配置的命令选项,创建 VM 并加载主类而不执行主类,请使用:
|
||||
|
||||
```shell
|
||||
```
|
||||
$ java --dry-run <classfile>
|
||||
```
|
||||
|
||||
@ -112,7 +115,7 @@ $ java --dry-run <classfile>
|
||||
|
||||
非标准选项以 `-X` 开头。这些是通用的,并且特定于 JVM 的特定实现。要列出这些参数,请输入:
|
||||
|
||||
```shell
|
||||
```
|
||||
$ java -X
|
||||
-Xbatch disable background compilation
|
||||
-Xbootclasspath/a:<directories and zip/jar files separated by :>
|
||||
@ -124,20 +127,20 @@ displays more detailed JVM version information than the
|
||||
[...]
|
||||
```
|
||||
|
||||
在这些参数发生变化时,你可能不会收到通知。而且,并非所有 JVM 实现都支持这些参数。
|
||||
在这些参数可能会不经通知就发生变化。而且,并非所有 JVM 实现都支持这些参数。
|
||||
|
||||
Microsoft 构建的 JVM 可能与 RedHat 构建的 JVM 有不同的参数,诸如此类。
|
||||
微软构建的 JVM 可能与 RedHat 构建的 JVM 有不同的参数,诸如此类。
|
||||
|
||||
要获取详细的 JVM 版本信息,请使用如下命令:
|
||||
|
||||
```shell
|
||||
```
|
||||
$ java -Xinternalversion --version
|
||||
OpenJDK 64-Bit Server VM (11.0.13+8) for linux-amd64 JRE (11.0.13+8), built on Nov 8 2021 00:00:00 by "mockbuild" with gcc 11.2.1 20210728 (Red Hat 11.2.1-1)
|
||||
```
|
||||
|
||||
要获取属性设置,请使用:
|
||||
要获取这些属性设置,请使用:
|
||||
|
||||
```shell
|
||||
```
|
||||
$ java -XshowSettings:properties --version
|
||||
```
|
||||
|
||||
@ -147,19 +150,19 @@ $ java -XshowSettings:properties --version
|
||||
|
||||
这些参数以 `-XX` 开头。如需列出参数列表,使用如下命令:
|
||||
|
||||
```shell
|
||||
```
|
||||
$ java -XX:+UnlockDiagnosticVMOptions -XX:+PrintFlagsFinal -version
|
||||
```
|
||||
|
||||
例如,需要跟踪类的加载,那么使用下面的命令:
|
||||
|
||||
```shell
|
||||
```
|
||||
$ java -XX:+TraceClassLoading Hello
|
||||
```
|
||||
|
||||
在 `Hello.java` 中:
|
||||
|
||||
```java
|
||||
```
|
||||
public class Hello {
|
||||
public static void main(String[] args) {
|
||||
System.out.println("Inside Hello World!");
|
||||
@ -167,9 +170,9 @@ public class Hello {
|
||||
}
|
||||
```
|
||||
|
||||
另一个可能会面临的问题是 OOM(Out Of Memory)错误,它发生的时候可能没有太多的调试信息。为了解决这个问题,使用调试参数 `-XX:+HeapDumpOnOutOfMemoryError`,它可以创建一个带有调试信息的 `.hprof` 文件。
|
||||
另一个可能会面临的问题是 OOM(<ruby>内存超出<rt>Out Of Memory</rt></ruby>)错误,它发生的时候可能没有太多的调试信息。为了解决这个问题,使用调试参数 `-XX:+HeapDumpOnOutOfMemoryError`,它可以创建一个带有调试信息的 `.hprof` 文件。
|
||||
|
||||
```java
|
||||
```
|
||||
// TestClass.java
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@ -184,7 +187,7 @@ public class TestClass {
|
||||
}
|
||||
```
|
||||
|
||||
```shell
|
||||
```
|
||||
$ Javac TestClass.java
|
||||
$ java -XX:+HeapDumpOnOutOfMemoryError -Xms10m -Xmx1g TestClass
|
||||
java.lang.OutOfMemoryError: java heap space
|
||||
@ -207,7 +210,7 @@ via: https://opensource.com/article/22/4/jvm-parameters-java-developers
|
||||
作者:[Jayashree Huttanagoudar][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[Veryzzj](https://github.com/Veryzzj)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
@ -0,0 +1,123 @@
|
||||
[#]: subject: "5 Less Popular Features that Make Ubuntu 22.04 LTS an Epic Release"
|
||||
[#]: via: "https://www.debugpoint.com/2022/04/ubuntu-22-04-release-unique-feature/"
|
||||
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14546-1.html"
|
||||
|
||||
使 Ubuntu 22.04 LTS 成为史诗版本的 5 个不太流行的功能
|
||||
======
|
||||
|
||||
> 这是一份关于 Ubuntu 22.04 LTS 的次要特点的列表,这些特点使它成为迄今为止最好的 LTS 版本之一。
|
||||
|
||||
Canonical 的最新 LTS 版本 [Ubuntu 的代号为 “Jammy Jellyfish”][1] 受到了全球用户的好评。但是有数百个新的微小功能,以及一些不太流行的功能,没有引起人们的注意。因此,这里有五个 Ubuntu 22.04 的独特功能,我们认为这些功能可以使它成为一个史诗般的版本。
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202205/05/112722nabll6gs7s6sgzdr.jpg)
|
||||
|
||||
### Ubuntu 22.04 发布 – 五个独特的功能
|
||||
|
||||
#### 为数据驱动的方案进行了优化
|
||||
|
||||
数据分析和处理是当今每个企业的核心。而要做到这一点,你需要巨大的计算能力。Ubuntu 22.04 LTS 带来了开箱即用的 [英伟达虚拟 GPU(vGPU)][3] 驱动支持。这意味着你可以利用英伟达虚拟 GPU 软件,使你能够在虚拟机中使用从物理 GPU 服务器共享的 GPU 计算能力。
|
||||
|
||||
不仅如此,如果你的业务依赖于 SQL Server,Ubuntu LTS for Azure 带来了 Ubuntu 中的 SQL Server,它由 “Micro$oft” 支持,提供优化的性能和可扩展性。
|
||||
|
||||
#### 改进的活动目录集成
|
||||
|
||||
此外,许多企业在多个工作站中为整个企业用户部署 Ubuntu。而且,部署工作站策略以监测和控制用户访问和各种关键业务控制非常重要。
|
||||
|
||||
活动目录实现了基于策略的工作站管理(在 Ubuntu 20.04 中引入),在这个版本中得到了进一步改善。除此之外,这个版本还带来了 [ADsys][4] 客户端,它有助于通过命令行远程管理组策略、权限升级和远程脚本执行。从这个版本开始,活动目录现在也支持与高级组策略对象的安装程序集成。
|
||||
|
||||
#### 实时内核支持
|
||||
|
||||
此外,在 Ubuntu 22.04 LTS 发布期间,Canonical 宣布的一个有趣的消息是,提供“实时”内核选项,现在是测试版。对于电信和其他行业来说,一个低延迟的操作系统对于时间敏感的工作是必需的。因此,考虑到这一点和渗透到这些领域的愿景,Ubuntu 22.04 LTS 带来了一个应用了 PREEMPT_RT 补丁的实时内核构建。它可用于 x86_64 和 AArch64 架构。
|
||||
|
||||
然而,该 [补丁][5] 还没有在主线内核中出现,希望它能很快能出现。
|
||||
|
||||
#### 最新的应用、软件包和驱动程序
|
||||
|
||||
除了上述变化之外,这个版本还带来了大量的软件包和工具链的升级。例如,这个版本带来了基于各种用途的多种 Linux 内核类型,如 Ubuntu 桌面可以选择使用 [内核 5.17][6],而硬件启用内核仍然是 5.15。
|
||||
|
||||
不仅如此,Ubuntu Server 采用长期支持版的 [内核 5.15][8],而 Ubuntu Cloud 镜像可以选择使用与云供应商合作的更优化的内核。
|
||||
|
||||
此外,如果你是英伟达用户,值得一提的是,ARM64 上的英伟达驱动的 Linux 限制模块现在已经可用(在 x86_64 中已经可用)。你可以使用 [ubuntu-drivers][9] 程序来安装和配置英伟达驱动。
|
||||
|
||||
核心模块和子系统构成的完整的操作系统可以完美无缺地工作。因此,考虑到这一点,Ubuntu 22.04 LTS 对它们都进行了仔细的升级,以迎合这个很好的版本。以下是简介:
|
||||
|
||||
GNU/Linux 核心:
|
||||
|
||||
* GCC 11.2.0
|
||||
* binutils 2.38
|
||||
* glibc 2.35
|
||||
|
||||
编程工具链:
|
||||
|
||||
* Python 3.10.4
|
||||
* Perl 5.34.0
|
||||
* LLVM 14
|
||||
* golang 1.18
|
||||
* rustc 1.58
|
||||
* OpenJDK 11(可选使用 OpenJDK 18)
|
||||
* Ruby 3.0
|
||||
* PHP 8.1.2
|
||||
* Apache 2.4.52
|
||||
* PostgreSQL 14.2
|
||||
* Django 3.2.12
|
||||
* MySQL 8.0
|
||||
* 更新的 NFS 以及 Samba Server
|
||||
* Systemd 249.11
|
||||
* OpenSSL 3.0
|
||||
|
||||
虚拟化:
|
||||
|
||||
* qemu 6.2.0
|
||||
* libvirt 8.0.0
|
||||
* virt-manager 4.0.0
|
||||
|
||||
#### 性能提升
|
||||
|
||||
但这还不是全部。由于一些长期等待的更新,你应该体验到更快的 Ubuntu 22.04 Jammy Jellyfish,这些体验最终会在这个版本中出现。
|
||||
|
||||
首先,长期等待的 GNOME 桌面的 [三重缓冲代码] 已经来到。当先前的帧缓冲落后时,三重缓冲会自动启用,它在英特尔和树莓派驱动中产生了更快的桌面性能。不仅如此,代码还监控最后一帧,以便系统不会遇到过量缓冲的情况。
|
||||
|
||||
其次,改进的电源管理,在运行时对 AMD 和英伟达的 GPU 起作用,将帮助笔记本电脑用户。
|
||||
|
||||
此外,Wayland 现在是大多数系统的默认显示服务器,除了英伟达 GPU 硬件默认为 X11。Wayland 为你提供了更快的跨应用的桌面体验,包括网页浏览器。
|
||||
|
||||
最后,定制的 GNOME 42 及其 [独特功能][11](例如平衡和省电电源配置文件)为重度笔记本电脑用户提供了更多优势。此外,带有浅色/深色外观的新强调色和将选定的 GNOME 模块移植到 GTK4/libadwaita 只是这个史诗般的 Ubuntu 22.04 LTS 版本的一个补充。
|
||||
|
||||
### 结论
|
||||
|
||||
总而言之,就上述所有内容的变化和许多其他方面而言,我相信这是 Canonical 发布的最好的 LTS 版本之一。
|
||||
|
||||
我们希望它得到好评,并在未来能保持稳定。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.debugpoint.com/2022/04/ubuntu-22-04-release-unique-feature/
|
||||
|
||||
作者:[Arindam][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[geekpi](https://github.com/geekpi)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.debugpoint.com/author/admin1/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://www.debugpoint.com/2022/01/ubuntu-22-04-lts/
|
||||
[2]: https://www.debugpoint.com/wp-content/uploads/2022/04/Ubuntu-22.04-LTS-Desktop-GNOME-1024x580.jpg
|
||||
[3]: https://docs.英伟达.com/grid/latest/grid-vgpu-release-notes-ubuntu/index.html
|
||||
[4]: https://github.com/ubuntu/adsys
|
||||
[5]: https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-stable-rt.git/
|
||||
[6]: https://www.debugpoint.com/2022/03/linux-kernel-5-17/
|
||||
[8]: https://www.debugpoint.com/2021/11/linux-kernel-5-15/
|
||||
[9]: https://launchpad.net/ubuntu/+source/ubuntu-drivers-common
|
||||
[10]: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1441
|
||||
[11]: https://www.debugpoint.com/2022/03/gnome-42-release/
|
||||
[12]: https://t.me/debugpoint
|
||||
[13]: https://twitter.com/DebugPoint
|
||||
[14]: https://www.youtube.com/c/debugpoint?sub_confirmation=1
|
||||
[15]: https://facebook.com/DebugPoint
|
@ -0,0 +1,112 @@
|
||||
[#]: subject: "Firefox 100 Marks 17 Years of Development with Interesting Upgrades"
|
||||
[#]: via: "https://news.itsfoss.com/firefox-100-release/"
|
||||
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "lkxed"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14555-1.html"
|
||||
|
||||
Firefox 100 发布:带来诸多有趣更新,纪念 17 年的发展历程
|
||||
======
|
||||
|
||||
> Mozilla Firefox 100 是一个重要的版本,它标志着这个浏览器 17 年的发展,以及多年来所有令人兴奋的功能。
|
||||
|
||||
![Firefox 100][1]
|
||||
|
||||
Firefox 可以说是最受欢迎的不基于 Chrome 的开源浏览器,它可用于 Linux、Windows 和 Mac。
|
||||
|
||||
众所周知,目前,基于 Chrome 的浏览器在市场份额中占主导地位。但你可能不知道的是,Firefox 早在谷歌 Chrome 出现之前就已经问世了。
|
||||
|
||||
准确地说,Firefox 100 的发布标志着,它自 2004 年的发展历程已经有 17 年了。
|
||||
|
||||
时间过得好快,一切仿佛就发生在昨天。
|
||||
|
||||
### Firefox 100:更新内容
|
||||
|
||||
![Firefox 100][2]
|
||||
|
||||
不管你是否喜欢 Firefox 新的发展计划,你都不得不承认,它多年来引入了众多行业领先的功能/技术,这一点令人印象深刻。
|
||||
|
||||
Firefox 100 的发布是一个重要的里程碑。但是,这并不是一次大规模升级。
|
||||
|
||||
本文中,我将介绍这个版本的主要改进。
|
||||
|
||||
#### “画中画”模式改进
|
||||
|
||||
![Firefox 100][3]
|
||||
|
||||
现在,在“画中画”模式下观看 YouTube、Prime Video 和 Netflix 上的任何内容,Firefox 都支持视频字幕。
|
||||
|
||||
你只需要在相应的平台上启用视频字幕,它就会继续出现在“画中画”中。
|
||||
|
||||
“画中画”字幕不仅支持主流平台,还支持 Coursera 等使用 WebVTT 格式的网站。
|
||||
|
||||
#### 语言检测
|
||||
|
||||
为了改善用户体验,Firefox 现在可以检测到语言与操作系统偏好不符的情况。
|
||||
|
||||
这只会在你安装浏览器后,第一次运行时触发。你可以在系统语言和浏览器默认语言之间进行选择。
|
||||
|
||||
#### 滚动条默认不占用屏幕空间
|
||||
|
||||
Linux 和 Windows 11 的滚动条默认不会占用你宝贵的屏幕空间。换句话说,当你进行滚动或导航时,滚动条才会做出反应。
|
||||
|
||||
![Firefox 100][4]
|
||||
|
||||
你可以在设置中改变这一点(针对 Linux 用户)。如果你是在 Windows 上,Firefox 的视觉效果会跟随你的系统设置。因此,你需要对 Firefox 浏览器进行调整,以符合你自己的偏好。
|
||||
|
||||
#### 控制网站外观
|
||||
|
||||
![Firefox 100][5]
|
||||
|
||||
对于某些网站,你的浏览器偏好会影响网页的颜色/外观。
|
||||
|
||||
为了调整这类网站的体验,你现在可以在设置中设置网站外观偏好,选择浅色/深色、系统或 Firefox 主题。
|
||||
|
||||
#### HDR 视频 & 硬件加速的 AV1 视频解码
|
||||
|
||||
尽管,对一些用户来说,支持 HDR 视频可能不是什么大事。但我还是要指出,现在 Mac 上的 Firefox 也支持 HDR 了。
|
||||
|
||||
截至目前,官方支持仅限于在 macOS 11+ 上浏览 YouTube 网站。当然,你还需要一个支持 HDR 的屏幕。
|
||||
|
||||
硬件加速的 AV1 视频解码终于在 Windows 上得到支持,当然,你还得有与之兼容的 GPU(包括英特尔 11 代、AMD RDNA 2 和 GeForce 30 系列)。除此之外,Firefox 在 Windows 上还启用了视频叠加功能,以减少电量使用。
|
||||
|
||||
不幸的是,这些并不是针对 Linux 的更新,但应该能帮助跨平台的 Firefox 用户。
|
||||
|
||||
#### 其他改进
|
||||
|
||||
除了主要的亮点之外,它还包括了以下改进:
|
||||
|
||||
* 增加了对多个 Java 线程的分析支持。
|
||||
* 软重载一个网页将不再导致所有资源的重新验证。
|
||||
* 有了一个新的链接焦点指示器,它用一个实心的蓝色轮廓取代了旧的点状轮廓。
|
||||
|
||||
你可以在 [官方发布说明][6] 中了解更多技术变化。
|
||||
|
||||
### 获取 Firefox 100
|
||||
|
||||
你可以从它的官网上下载,也可以寻找可用的更新,应该很快就能下载完成。
|
||||
|
||||
> **[Mozilla Firefox 100][7]**
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://news.itsfoss.com/firefox-100-release/
|
||||
|
||||
作者:[Ankush Das][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[lkxed](https://github.com/lkxed)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://news.itsfoss.com/author/ankush/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://news.itsfoss.com/wp-content/uploads/2022/05/firefox-100-release.jpg
|
||||
[2]: https://news.itsfoss.com/wp-content/uploads/2022/05/firefox-100-about.jpg
|
||||
[3]: https://news.itsfoss.com/wp-content/uploads/2022/05/firefox-captions-100.jpg
|
||||
[4]: https://news.itsfoss.com/wp-content/uploads/2022/05/scrollbars.jpg
|
||||
[5]: https://news.itsfoss.com/wp-content/uploads/2022/05/firefox-appearance-tweak.jpg
|
||||
[6]: https://www.mozilla.org/en-US/firefox/100.0/releasenotes/
|
||||
[7]: https://www.mozilla.org/en-US/firefox/download/
|
@ -0,0 +1,43 @@
|
||||
[#]: subject: "Microsoft’s 3D Movie Maker, First Released In 1995, Is Now Open Source"
|
||||
[#]: via: "https://www.opensourceforu.com/2022/05/microsofts-3d-movie-maker-first-released-in-1995-is-now-open-source/"
|
||||
[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "lkxed"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14549-1.html"
|
||||
|
||||
微软 1995 年首次发布的 3D Movie Maker 现已开源
|
||||
======
|
||||
|
||||
![Windows Movie Maker 标志][1]
|
||||
|
||||
这些年来,微软发布了许多开源工具。今天,它正在翻箱底,让 3D Movie Maker 也对所有人开放。3D Movie Maker 于 1995 年首次推出,它允许你用 3D 人物、道具、背景、文字、声音和特殊效果来创建动画场景。这个版本还包括一个 Argonaut 软件公司构建的 BRender。虽然这是一个积极的举措,但请先别太激动,事情可没那么容易。
|
||||
|
||||
> “这个项目不太可能在现代硬件/软件下构建成功,但你可以先开始编译,并获得部分完整的二进制文件。”
|
||||
|
||||
以下是它的部分构建说明:
|
||||
|
||||
- 确保本仓库检出到一个名字简短的目录中,最好是靠近驱动器的根路径(即 `C:\3d` 这样)。
|
||||
- 在构建过程中,你需要 Visual C++ 2.0 的开发工具(可以在安装盘的 `MSVC20BIN` 目录下找到)。有一些源码遵循的是 C++98 之前的规范,因此现代编译器可能不会喜欢它们。
|
||||
- 从本仓库的根目录下运行 `setvars.bat`。你可以改变这个脚本中的值来改变你的构建目标。
|
||||
- 查找并安装字体文件(详见 `FONTS.md`)。
|
||||
- 运行 `nmake` 以开始使用 3D Movie Maker。
|
||||
|
||||
这些代码是从微软公司的档案中恢复的,涉及到的第三方软件(如 BRender)已获得授权。同时,它删除了开发者的身份和别名,以便使该软件开源(从事原始发布工作的微软现任员工除外,他们同意保留自己的名字)。你可以在 [这里][2] 下载它。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.opensourceforu.com/2022/05/microsofts-3d-movie-maker-first-released-in-1995-is-now-open-source/
|
||||
|
||||
作者:[Laveesh Kocher][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[lkxed](https://github.com/lkxed)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.opensourceforu.com/author/laveesh-kocher/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://www.opensourceforu.com/wp-content/uploads/2022/05/windows-movie-maker-logo-696x392.png
|
||||
[2]: https://github.com/microsoft/Microsoft-3D-Movie-Maker
|
@ -0,0 +1,57 @@
|
||||
[#]: subject: "elementary OS 7 Code Name Revealed. Here are the Details"
|
||||
[#]: via: "https://www.debugpoint.com/2022/05/elementary-os-7-announcement/"
|
||||
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "lkxed"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14556-1.html"
|
||||
|
||||
elementary OS 7 公布了它的代号
|
||||
======
|
||||
|
||||
> 在今天早些时候的一篇博文中,创始人兼首席执行官 Daniella Fore 公布了 elementary OS 7 的发行说明和计划更新。
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202205/07/085713izkxhbarixtkdryg.jpg)
|
||||
|
||||
### elementary OS 7 公告
|
||||
|
||||
elementary OS 7 的代号是 “Horus”,它将基于 [Ubuntu 22.04 LTS][2]。这个版本的开发已经接近尾声,团队正在修复一些涉及窗口管理器和其他领域的关键回归测试问题。
|
||||
|
||||
首先,功能方面,elementary OS 7 得到了来自 **Ubuntu 22.04 LTS 的最新软件包和升级**。此外,**Flatpak 运行时更新、Granite 7、样式表和图标更新** 预计将在这个发行版的第 7 个版本中出现。它将会基于 [Linux 5.15.x 内核][3]。
|
||||
|
||||
其次,应用商店中的软件将会获得 **软件自动更新功能** 和新的 **笔记本电脑的电源配置文件选项**。预计电源配置文件将遵循传统的“<ruby>平衡<rt>Balanced</rt></ruby>”、“<ruby>性能<rt>Performance</rt></ruby>”和“<ruby>节能<rt>Power Saver</rt></ruby>”选项,就像其他 Linux 发行版一样。
|
||||
|
||||
此外,一个 **新的漂亮的音乐应用程序** 将在这个版本中首次亮相,它重新设计了一些图标,在桌面上的视觉效果也有提升。一些原生的应用商店中的软件已经使用了 GTK4 技术,在 Elementory OS 7 中,它们将会给用户带来流畅的性能体验。
|
||||
|
||||
#### 新的升级工具
|
||||
|
||||
但这还不是全部。团队还兴奋地宣布,一个 elementary **版本升级工具** 的可用原型已经准备就绪,目前正在测试。因此,在 elementary OS 7 发布后,它将正式亮相,以帮助用户实现从 elementary OS 6 到 7 的迁移。
|
||||
|
||||
目前,elementary OS 的版本升级是最大的挑战,因为它没有任何官方的升级途径。“版本升级工具” 是一个令人兴奋的消息,它将吸引更多的用户使用这个漂亮的 Linux 发行版。
|
||||
|
||||
不过,Wayland 迁移仍在计划之中,还没有被优先考虑。当 Wayland 被完整支持后,elementary OS 用户将会获得令人兴奋的体验。
|
||||
|
||||
### 发布日期?
|
||||
|
||||
对于任何一个 elementary OS 发行版,用户最关心的问题都是发布日期。嗯,发布日期还没有最终确定。elementary OS 7 “Horus” 将在准备好后发布。我乐观的猜测是在今年年底,在 Ubuntu 22.04 的第一个点发布(预计在 2022 年 7 月)之后。
|
||||
|
||||
最后,请阅读 elementary OS 7 [官方公告][4],了解更多关于这个版本的信息,以及 elementary OS 6 “Odin”(6.1 版本)的许多更新。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.debugpoint.com/2022/05/elementary-os-7-announcement/
|
||||
|
||||
作者:[Arindam][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[lkxed](https://github.com/lkxed)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.debugpoint.com/author/admin1/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://www.debugpoint.com/wp-content/uploads/2021/08/elementary-OS-6-ODIN-Desktop-1024x576.jpeg
|
||||
[2]: https://www.debugpoint.com/2022/01/ubuntu-22-04-lts/
|
||||
[3]: https://www.debugpoint.com/2021/11/linux-kernel-5-15/
|
||||
[4]: https://blog.elementary.io/updates-for-april-2022/
|
@ -1,3 +1,5 @@
|
||||
zxcv545 is translating
|
||||
|
||||
[#]: subject: "Nvidia Begins To Set The Foundation For Future Open And Parallel Coding"
|
||||
[#]: via: "https://www.opensourceforu.com/2022/05/nvidia-begins-to-set-the-foundation-for-future-open-and-parallel-coding/"
|
||||
[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/"
|
||||
|
@ -2,7 +2,7 @@
|
||||
[#]: via: "https://www.opensourceforu.com/2022/05/esi-group-collaborates-with-ensam-open-sources-its-inspector-software/"
|
||||
[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: translator: "Veryzzj"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
@ -1,108 +0,0 @@
|
||||
[#]: subject: "Firefox 100 Marks 17 Years of Development with Interesting Upgrades"
|
||||
[#]: via: "https://news.itsfoss.com/firefox-100-release/"
|
||||
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Firefox 100 Marks 17 Years of Development with Interesting Upgrades
|
||||
======
|
||||
Mozilla Firefox 100 is a significant release, marking 17 years of development, and all the exciting feature additions over the years.
|
||||
|
||||
![firefox 100][1]
|
||||
|
||||
Firefox is arguably the most popular open-source browser that’s not based on Chrome, available for Linux, Windows, and Mac.
|
||||
|
||||
While we know that Chrome-based browsers dominate the market share, Firefox was introduced way before Google Chrome came into existence.
|
||||
|
||||
To be accurate, Firefox 100 release marks 17 years of development effort since 2004.
|
||||
|
||||
It still feels like yesterday, right?
|
||||
|
||||
### Firefox 100: What’s New?
|
||||
|
||||
![firefox 100][2]
|
||||
|
||||
It does not matter whether you love/hate Firefox’s new development plans, the fact that it introduced numerous industry-leading features/technology over the years is impressive.
|
||||
|
||||
Firefox 100 release hits an important milestone. But, it is not a massive upgrade.
|
||||
|
||||
Here, I shall highlight the key improvements with this release:
|
||||
|
||||
#### Improvements to Picture-in-Picture Mode
|
||||
|
||||
![firefox 100][3]
|
||||
|
||||
Whenever you watch anything on YouTube, Prime Video, and Netflix in Picture-in-Picture mode, Firefox now supports captions/subtitles for it.
|
||||
|
||||
You just need to enable the captions/subtitles for the video in the respective platform and it will continue to appear in PiP.
|
||||
|
||||
The support for captions in PiP is not limited to mainstream platforms but also on websites like Coursera that use WebVTT format.
|
||||
|
||||
#### Language Detection
|
||||
|
||||
To improve the user experience, Firefox now detects when the language does not match the operating system preferences.
|
||||
|
||||
This only happens when you first run the browser after installation. So, you can choose between the system’s language or the browser’s default.
|
||||
|
||||
#### Scrollbars Don’t Take Space by Default
|
||||
|
||||
The scrollbars on Linux and Windows 11 won’t take your precious screen space by default. In other words, they will be responsive and collapse when you’re focused on scrolling or navigating.
|
||||
|
||||
![firefox 100][4]
|
||||
|
||||
You can change this in the Settings (for Linux users). Firefox follows your system setting for visual effects if you are on Windows. So, you would need to tweak that for Firefox to honor your preferences.
|
||||
|
||||
#### Control Website Appearance
|
||||
|
||||
![firefox 100][5]
|
||||
|
||||
For some websites, your browser preferences influence the color/appearance of the web page.
|
||||
|
||||
To tweak the experience for such websites, you now can set a website appearance preference in the Settings to choose light/dark, system, or Firefox theme.
|
||||
|
||||
#### HDR Video and Hardware Accelerated AV1 Video Decoding
|
||||
|
||||
HDR Video support may not be a big deal for everyone. But, it is now supported in Firefox on Mac.
|
||||
|
||||
The official support exists for YouTube as of now with macOS 11+. Of course, you need an HDR-compatible screen as well.
|
||||
|
||||
The hardware-accelerated AV1 video decoding is finally supported on Windows with compatible GPUs (including Intel’s 11th Gen, AMD RDNA 2, and GeForce 30 series). In addition to this, video overlay is also enabled on Windows, reducing power usage.
|
||||
|
||||
Unfortunately, these aren’t Linux-specific updates but should help the Firefox users across multiple platforms.
|
||||
|
||||
#### Other Improvements
|
||||
|
||||
In addition to the major highlights, the changes include:
|
||||
|
||||
* Support for profiling multiple java threads has been added.
|
||||
* Soft-reloading a web page will no longer cause revalidation for all resources.
|
||||
* Firefox has a new focus indicator for links, which replaces the old dotted outline with a solid blue outline.
|
||||
|
||||
You can learn more about the technical changes in the [official release notes][6].
|
||||
|
||||
### Get Firefox 100
|
||||
|
||||
You can download it from its official website or look for an update available, it should be a quick download.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://news.itsfoss.com/firefox-100-release/
|
||||
|
||||
作者:[Ankush Das][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://news.itsfoss.com/author/ankush/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://news.itsfoss.com/wp-content/uploads/2022/05/firefox-100-release.jpg
|
||||
[2]: https://news.itsfoss.com/wp-content/uploads/2022/05/firefox-100-about.jpg
|
||||
[3]: https://news.itsfoss.com/wp-content/uploads/2022/05/firefox-captions-100.jpg
|
||||
[4]: https://news.itsfoss.com/wp-content/uploads/2022/05/scrollbars.jpg
|
||||
[5]: https://news.itsfoss.com/wp-content/uploads/2022/05/firefox-appearance-tweak.jpg
|
||||
[6]: https://www.mozilla.org/en-US/firefox/100.0/releasenotes/
|
@ -1,46 +0,0 @@
|
||||
[#]: subject: "Microsoft’s 3D Movie Maker, First Released In 1995, Is Now Open Source"
|
||||
[#]: via: "https://www.opensourceforu.com/2022/05/microsofts-3d-movie-maker-first-released-in-1995-is-now-open-source/"
|
||||
[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Microsoft’s 3D Movie Maker, First Released In 1995, Is Now Open Source
|
||||
======
|
||||
![windows movie maker logo][1]
|
||||
|
||||
Microsoft has released a number of open source tools over the years, and today it is digging deep into its archives to make 3D Movie Maker available to everyone. 3D Movie Maker, which was first launched in 1995, allows you to create animated scenarios with 3D characters, props, backgrounds, text, sound, and special effects. This version also includes an Argonaut software build of BRender. While this is a positive step, you shouldn’t get too enthusiastic because there is a catch.
|
||||
|
||||
“This project is unlikely to build successfully under modern hardware/software, but you can get started with compilation and get partial completed binaries.”
|
||||
|
||||
It includes the following construction instructions.
|
||||
|
||||
– Make sure this repository is checked out to a folder with a brief name, preferably near the drive’s root (i.e. C:\3d).
|
||||
|
||||
– On your route, you’ll need the dev tools for Visual C++ 2.0 (found under MSVC20BIN on the installer disc). Some pre-C++98 norms are disliked by modern compilers.
|
||||
|
||||
– Run setvars.bat from the root of this repository. You can alter the values in this script to change the target of your build.
|
||||
|
||||
– Find and install font files (see FONTS.md)
|
||||
|
||||
– Run nmake to get started with 3D Movie Maker.
|
||||
|
||||
The code was recovered from the Microsoft corporate archives, third-party authorization (for products like BRender) was gained, and developer identities and aliases were deleted in order to make the software open source (with the exception of current Microsoft employees who worked on the original release and agreed to keep their names in place). It can be downloaded from [here][2].
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.opensourceforu.com/2022/05/microsofts-3d-movie-maker-first-released-in-1995-is-now-open-source/
|
||||
|
||||
作者:[Laveesh Kocher][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.opensourceforu.com/author/laveesh-kocher/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://www.opensourceforu.com/wp-content/uploads/2022/05/windows-movie-maker-logo-696x392.png
|
||||
[2]: https://github.com/microsoft/Microsoft-3D-Movie-Maker
|
@ -1,58 +0,0 @@
|
||||
[#]: subject: "elementary OS 7 Code Name Revealed. Here are the Details"
|
||||
[#]: via: "https://www.debugpoint.com/2022/05/elementary-os-7-announcement/"
|
||||
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
elementary OS 7 Code Name Revealed. Here are the Details
|
||||
======
|
||||
In a blog post earlier today, Daniella Fore (Founder & CEO) announced the elementary OS 7 release details and its expected features.
|
||||
|
||||
**In a blog post earlier today, Daniella Fore (Founder & CEO) announced the elementary OS 7 release details and its expected features.**
|
||||
|
||||
![elementary OS 6 ODIN Desktop][1]
|
||||
|
||||
### elementary OS 7 Announcement
|
||||
|
||||
The elementary OS 7 code name is “**Horus**“, and it will be based on [Ubuntu 22.04 LTS][2]. The development is near the finishing line of this release while the team is fixing some critical regression test problems dealing with the window manager and other areas.
|
||||
|
||||
Firstly, features wise, elementary OS 7 gets the latest packages and upgrades from **Ubuntu 22.04 LTS**. In addition, the **Flatpak runtime updates, Granite 7, stylesheet and icon updates** are expected in version 7 of this release. The Linux Kernel should be [Kernel 5.15.x][3].
|
||||
|
||||
Secondly, the App Store applications should get the **automatic application update feature** and new **power profile options** for laptops. The power profile is expected to follow the traditional “Balanced”, “Performance”, and “Power Saver” options like other Linux distros out there.
|
||||
|
||||
Moreover, a **new sleek Music application** is ready to debut in this release with a few redesigned icons and visual uplift across the desktop. The native App Store applications that have already migrated to Gtk4 tech should give a smooth performant experience to the users while using elementary OS 7.
|
||||
|
||||
#### A New Upgrade tool
|
||||
|
||||
But that’s not all. The team is also excited to announce that a working prototype for the elementary **version upgrade tool** is ready and being tested at the moment. So, post the eOS 7 release, it should debut officially to enable eOS 6 to 7 migration.
|
||||
|
||||
The elementary version upgrades are the biggest challenges today without any official upgrade path. And it is exciting news and attracts more users to this beautiful Linux distribution.
|
||||
|
||||
However, the Wayland migration is still on the cards and has not been prioritised yet. It would be an exciting experience with the elementary OS when Wayland support is fully developed.
|
||||
|
||||
### Release Date?
|
||||
|
||||
Perhaps the most frequently asked question of any elementary OS release is the release date. Well, the release date is not final yet. The elementary OS 7 “Horus” will be released when ready. My optimistic guess is by the end of this year, after the first point release of Ubuntu 22.04 (due in July 2022).
|
||||
|
||||
Finally, read the official elementary OS 7 [announcement][4] for more about this release and many updates on elementary OS 6 “Odin” (point release 6.1).
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.debugpoint.com/2022/05/elementary-os-7-announcement/
|
||||
|
||||
作者:[Arindam][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.debugpoint.com/author/admin1/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://www.debugpoint.com/wp-content/uploads/2021/08/elementary-OS-6-ODIN-Desktop-1024x576.jpeg
|
||||
[2]: https://www.debugpoint.com/2022/01/ubuntu-22-04-lts/
|
||||
[3]: https://www.debugpoint.com/2021/11/linux-kernel-5-15/
|
||||
[4]: https://blog.elementary.io/updates-for-april-2022/
|
@ -0,0 +1,40 @@
|
||||
[#]: subject: "Open Source Developer Creates First-of-its-Kind Fund To Support Maintainers"
|
||||
[#]: via: "https://www.opensourceforu.com/2022/05/open-source-developer-creates-first-of-its-kind-fund-to-support-maintainers/"
|
||||
[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "lkxed"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Open Source Developer Creates First-of-its-Kind Fund To Support Maintainers
|
||||
======
|
||||
![opensourceBETTERimage][1]
|
||||
|
||||
Appwrite, an open source Backend-as-a-Service (BaaS) platform for web, mobile, and flutter developers, today announced the Open Source Software Fund (OSS Fund), which will award $50,000 in its first year to open source maintainers whose projects lay the groundwork for today’s digital infrastructure but aren’t being compensated for it.
|
||||
|
||||
Appwrite’s yearly OSS Fund will help meet the industry’s need to assist open source maintainers, promote technology innovation, and create awareness for a variety of open source development solutions. Each year, the fund amount will be reviewed to ensure that it continues to meet the community’s needs. The application period is currently open, and applications will be accepted on an annual basis. The Appwrite Developer Relations team will choose the recipients: [https://appwrite.io/oss-fund][2]
|
||||
|
||||
“I know what it’s like to spend long hours in front of your computer, putting your blood, sweat and tears into something you love and that is also benefiting thousands or even millions of people around the world,” said Eldad Fux, founder & CEO of Appwrite. “I’ve known all along that we would use some of Appwrite’s success and investment to support other developers and maintainers just like me, to give back in order to look forward. We hope our contribution can make a difference.”
|
||||
|
||||
One of the most pressing challenges in today’s technological environment is the long-term viability of open source developers and maintainers. Despite the fact that open source software accounts for 70-90 percent of all software and is the foundation of our digital civilization, many developers and maintainers working on the most vital projects integrated across networks and products go unpaid or underpaid. How to help these people has become a contentious issue, with a range of solutions being presented. Appwrite is taking action on behalf of maintainers, elevating their work and providing financial support in exchange for their contributions to the industry and digital society.
|
||||
|
||||
Eldad Fux, the founder of Appwrite, began his career as a developer by contributing to open source software projects and participating in open source communities. Appwrite began as a side project, and he built it from the ground up as a BaaS product. Fux currently supports the open source philosophy by focusing on a completely open source platform and giving back to the community in a variety of ways, including the Appwrite OSS Fund.
|
||||
|
||||
“Open source powers most of the World’s modern day infrastructure, from mobile to web, cars and even missions beyond this planet. This is only sustainable by the generosity of the community, their time and efforts. However, this could be improved by the support of more companies and organizations, to prevent community members’ burnout,” said Eddie Jaoude, Developer and Creator of EddieHub.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.opensourceforu.com/2022/05/open-source-developer-creates-first-of-its-kind-fund-to-support-maintainers/
|
||||
|
||||
作者:[Laveesh Kocher][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.opensourceforu.com/author/laveesh-kocher/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://www.opensourceforu.com/wp-content/uploads/2022/04/opensourceBETTERimage-696x392.jpg
|
||||
[2]: https://appwrite.io/oss-fund
|
@ -0,0 +1,95 @@
|
||||
[#]: subject: "Tails 5.0 Release is Based on Debian 11 With a New “Kleopatra” Tool"
|
||||
[#]: via: "https://news.itsfoss.com/tails-5-0-release/"
|
||||
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Tails 5.0 Release is Based on Debian 11 With a New “Kleopatra” Tool
|
||||
======
|
||||
|
||||
Tails is a popular Linux distribution that focuses on protecting against censorship and surveillance. It is one of the [privacy-focused Linux distributions][1].
|
||||
|
||||
Without worrying about exposing your information, you can use it anywhere using a USB stick and get your work done.
|
||||
|
||||
Its latest release, Tails 5.0, utilizes Debian 11 (Bullseye) as its base. So, you should expect all the [improvements in Debian 11][2] in Tails 5.0.
|
||||
|
||||
### Tails 5.0: What’s New?
|
||||
|
||||
Here, we shall look at the new features and software upgrades introduced with the release.
|
||||
|
||||
Some highlights include:
|
||||
|
||||
#### Adding Kleopatra
|
||||
|
||||
![][3]
|
||||
|
||||
Kleopatra is a graphical interface to [GnuPG][4] to help encrypt text and files. With Tails 5.0, Kleopatra replaces _OpenPGP_ Applet and the _Seahorse_ utility.
|
||||
|
||||
Kleopatra does it all in a single package. In addition to that, Kleopatra is more actively maintained comparatively with minimal issues.
|
||||
|
||||
#### Additional Software Enabled by Default
|
||||
|
||||
When using the persistent storage, the additional software feature is enabled by default.
|
||||
|
||||
So, you can quickly configure what you want in no time.
|
||||
|
||||
#### Improvements to the Activities Overview
|
||||
|
||||
![][5]
|
||||
|
||||
With Tails 5.0, you can use the Activities overview to access your windows and applications. You can simply click on the Activities button in the top-left corner of the screen or press the Super key on your keyboard.
|
||||
|
||||
It is also possible to search applications, files, and folders from the same screen.
|
||||
|
||||
#### Updated Software
|
||||
|
||||
With Debian 11 as its base, all the essential software has been upgraded, including:
|
||||
|
||||
* Tor Browser to 11.0.11
|
||||
* GNOME 3.38
|
||||
* MAT to 0.12
|
||||
* Audacity 2.4.2
|
||||
* Disk Utility 3.38
|
||||
* GIMP 2.10.12
|
||||
* LibreOffice 7.0
|
||||
|
||||
|
||||
|
||||
#### Other Improvements
|
||||
|
||||
Along with all the software upgrades, hardware support for driverless printing and scanning has also been updated to support newer printers/scanners.
|
||||
|
||||
In addition to all this, you also get numerous fixes. You can explore more about it in its [official release announcement][6].
|
||||
|
||||
### Download Tails 5.0
|
||||
|
||||
You can download the latest Tails 5.0 ISO from the official website.
|
||||
|
||||
[Tails 5.0][7]
|
||||
|
||||
And, if you already use Tails, you cannot perform an automatic upgrade. You need to do a manual upgrade instead, following the [official instructions][8].
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://news.itsfoss.com/tails-5-0-release/
|
||||
|
||||
作者:[Ankush Das][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://news.itsfoss.com/author/ankush/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://itsfoss.com/privacy-focused-linux-distributions/
|
||||
[2]: https://news.itsfoss.com/debian-11-feature/
|
||||
[3]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjQxMSIgd2lkdGg9IjUzNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiLz4=
|
||||
[4]: https://www.gnupg.org/
|
||||
[5]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjUxMiIgd2lkdGg9IjY4MyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiLz4=
|
||||
[6]: https://tails.boum.org/news/version_5.0/index.en.html
|
||||
[7]: https://tails.boum.org/install/index.en.html
|
||||
[8]: https://tails.boum.org/doc/upgrade/index.en.html#manual
|
@ -0,0 +1,116 @@
|
||||
[#]: subject: "Ubuntu MATE’s Lead Creates a Nifty Tool to Help Install 3rd Party Deb Packages"
|
||||
[#]: via: "https://news.itsfoss.com/deb-get-ubuntu/"
|
||||
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Ubuntu MATE’s Lead Creates a Nifty Tool to Help Install 3rd Party Deb Packages
|
||||
======
|
||||
An interesting tool to replace apt-get for 3rd party .deb packages on Ubuntu. It should help you save time!
|
||||
|
||||
![deb get][1]
|
||||
|
||||
Ubuntu MATE’s lead,**Martin Wimpress,** has another fun project for Linux users.
|
||||
|
||||
In case you did not know, Martin regularly develops something interesting. Last year, we covered [Quickemu][2], which helps create virtual machines in Linux through a QEMU-based GUI tool making the process easy.
|
||||
|
||||
Now, he is back with an interesting “**deb-get**” tool that aims to imitate the functionality of “**apt-get**” for 3rd party .deb packages.
|
||||
|
||||
Let us take a closer look at it.
|
||||
|
||||
### Deb Get: Seamlessly Install 3rd Party Deb Packages Using the CLI
|
||||
|
||||
When it comes to software packages that aren’t available in the official repositories (like Google Chrome, Vivaldi), you will have to [add a PPA (unofficial/official)][3] or download the .deb file and [get it installed][4] manually.
|
||||
|
||||
What if you can simply install it using the terminal as if it is available in the official repositories?
|
||||
|
||||
That’s where the deb-get tool comes in.
|
||||
|
||||
Usually, when installing a package through the terminal, you utilize either of the following commands:
|
||||
|
||||
```
|
||||
sudo apt install packagename
|
||||
```
|
||||
|
||||
or
|
||||
|
||||
```
|
||||
sudo apt-get install packagename
|
||||
```
|
||||
|
||||
You get to keep the same format and simply replace apt-get with this tool, which should look like this:
|
||||
|
||||
```
|
||||
sudo deb-get install packagename
|
||||
```
|
||||
|
||||
As an example, usually, we needed to add the PPA or download the deb file when [installing Vivaldi on Linux][5].
|
||||
|
||||
Now, if you set up the deb-get tool on your system**(setup instructions at the end of this article**), you can easily install Vivaldi using the following command:
|
||||
|
||||
```
|
||||
sudo deb-get install vivaldi-stable
|
||||
```
|
||||
|
||||
![][6]
|
||||
|
||||
And, just like the apt-get upgrade process, you can upgrade packages using the following command:
|
||||
|
||||
```
|
||||
sudo deb-get upgrade
|
||||
```
|
||||
|
||||
**Note:** While it makes it easy to install third-party .deb packages, you will be limited to a verified list supported by the tool. You can expect the list of supported packages to expand soon, but it already supports many [essential applications.][7]
|
||||
|
||||
You can also check the list of available packages that you can install with deb-get using the following command:
|
||||
|
||||
```
|
||||
sudo deb-get list
|
||||
```
|
||||
|
||||
![deb-get][8]
|
||||
|
||||
### Setting Up Deb-Get on Ubuntu-based Distributions
|
||||
|
||||
The deb-get tool works with Ubuntu 22.04 LTS (I tested it) and should work with other Ubuntu-based distributions.
|
||||
|
||||
You can install it on your system using the command below:
|
||||
|
||||
```
|
||||
sudo apt install curl && curl -sL https://raw.githubusercontent.com/wimpysworld/deb-get/main/deb-get | sudo -E bash -s install deb-get
|
||||
```
|
||||
|
||||
Or, you can download the deb package for it manually from its [GitHub releases section][9].
|
||||
|
||||
To explore more about it, and the available commands/functionalities, you can head to its [GitHub page][10].
|
||||
|
||||
*What do you think of deb-get attempting to mimic apt-get functionality for third-party packages? Do you think it is useful? Let me know your thoughts in the comments.*
|
||||
|
||||
**Via: OMG!Ubuntu!**
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://news.itsfoss.com/deb-get-ubuntu/
|
||||
|
||||
作者:[Ankush Das][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://news.itsfoss.com/author/ankush/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://news.itsfoss.com/wp-content/uploads/2022/05/deb-get.jpg
|
||||
[2]: https://itsfoss.com/quickgui/
|
||||
[3]: https://itsfoss.com/ppa-guide/
|
||||
[4]: https://itsfoss.com/install-deb-files-ubuntu/
|
||||
[5]: https://itsfoss.com/install-vivaldi-ubuntu-linux/
|
||||
[6]: https://news.itsfoss.com/wp-content/uploads/2022/05/deb-get-vivaldi.jpg
|
||||
[7]: https://itsfoss.com/essential-linux-applications/
|
||||
[8]: https://news.itsfoss.com/wp-content/uploads/2022/05/deb-get-list.jpg
|
||||
[9]: https://github.com/wimpysworld/deb-get/releases
|
||||
[10]: https://github.com/wimpysworld/deb-get
|
@ -1,72 +0,0 @@
|
||||
[#]: subject: "How to make community recognition more inclusive"
|
||||
[#]: via: "https://opensource.com/article/22/5/inclusive-community-recognition"
|
||||
[#]: author: "Ray Paik https://opensource.com/users/rpaik"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "PeterPan0106"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
How to make community recognition more inclusive
|
||||
======
|
||||
Look beyond metrics to ensure that all contributions are valued. When everyone feels like they have a home where they're appreciated, community members will be encouraged to stay engaged.
|
||||
|
||||
![Global citizens unite to improve housing with open design and development][1]
|
||||
(Image by: Opensource.com)
|
||||
|
||||
Giving recognition to someone for a job well done is one of my favorite duties as a community manager. Not only do I get to thank someone, but I also have a chance to highlight a role model for the rest of the community. Recognition also provides an opportunity to celebrate an achievement, like someone helping new community members with onboarding, reducing technical debt, or contributing an exciting new feature.
|
||||
|
||||
However, the methods used to identify contributions and recognize them can have unintended consequences. For example, sometimes community managers use charts like the following during recognitions, emphasizing pull requests (PRs) and contributions to code repositories.
|
||||
|
||||
![A bar graph ranking 15 contributors according the the number of PRs merged in a year, ranging from 250 at the top to 50 at the bottom.][2]
|
||||
(Image by: Ray Paik, CC BY-SA 4.0)
|
||||
|
||||
![A bar graph ranking 10 contributing organizations by number of contributions, ranging from more than 15 to less than 5][3]
|
||||
(Image by: Ray Paik, CC BY-SA 4.0)
|
||||
|
||||
Three problems arise with using these types of data for recognition. First, there's too much focus on contributions in code repositories. In the early days, open source projects attracted mostly developers, so naturally a lot of collaboration was done around code. Now, an increasing number of nondevelopers are participating in communities (for example, through user groups, meetups, user-generated content), and they will be doing most of their work outside repositories. Those contributions don't register on a chart like *Annual Merged PRs*.
|
||||
|
||||
Second, with too much focus on metrics (that is, things that can be measured quantitatively), you may end up rewarding quantity over quality—or even impact. In the *Top Contributing Orgs* chart above, larger organizations have a clear advantage over smaller organizations, as they have more people available. By recognizing larger organizations for their volume of work or contributions, you may inadvertently make people from smaller organizations feel disenfranchised.
|
||||
|
||||
Finally, even though it's not the intent, some people may view these data as a ranking of the importance of individual community members or organizations.
|
||||
|
||||
For all these reasons, it's best to avoid relying solely on metrics for community recognition.
|
||||
|
||||
### Make recognition more meaningful
|
||||
|
||||
What are some more inclusive ways to approach community recognition and acknowledge a variety of contribution types? Communication channels like Discord, Internet Relay Chat (IRC), mailing lists, or Slack provide good clues as to which community members are active and what they're passionate about. For example, I'm always amazed to find members who are very generous in answering others' questions and helping newcomers. These contributions don't show up in community dashboards, but it's important to recognize this work and let everyone know that this contribution is valued.
|
||||
|
||||
Speaking of community dashboards, they're certainly important tools in open source communities. However, I caution against spending too much time building dashboards. Sooner or later, you will find that not everything is easily measurable, and even if you find a way to quantify something, it often lacks context.
|
||||
|
||||
One of the things I do to get more context around the contributions is to schedule coffee chats with community members. These conversations give me an opportunity to learn about why they decided to make the contribution, how much work was involved, others who were also involved, and so on.
|
||||
|
||||
When I talk to these members for the first time, I often hear that they feel it's important to find ways to give back to the community, and they're looking for ways to help. Some are even apologetic because they cannot contribute code, and I have to reassure them that code is no longer the only thing that matters in open source. Sometimes these conversations allow me to make connections among community members in the same city or industry, or to find other common interests. Fostering these connections helps strengthen a sense of belonging.
|
||||
|
||||
### Make recognition more impactful
|
||||
|
||||
In addition to finding more activities to recognize, you can also present recognition in ways that have a bigger effect. For example, be timely with kudos when you see a good contribution. A quick DM with a simple thank you can be more effective than something more formal a month or two later. Many people, myself included, tend to stress over sending the right merchandise with recognition, but it's important to remember that swag is not the main motivator for community members' contributions. Recognizing good work and making an effort to reach out goes a long way in making people feel appreciated.
|
||||
|
||||
It's also a good idea to give members an opportunity to participate in the recognition process. Once a community reaches a certain size, it's difficult to know everything that's happening. Having a simple nomination form that community members can submit will raise awareness of good contributions that others may not have been aware of. If your community has formal awards for members—for example, awards presented at an annual conference or meetups—involve members in the nomination and voting process. This not only provides an opportunity for more people to participate in the process, but the awards will also be more meaningful to recipients since they come from their peers.
|
||||
|
||||
Finally, giving recognition is a vital opportunity to get to know community members and build relationships. Sometimes the recognition process can feel almost transactional: "You did X, so we're going to award you with Y." Taking the time to do personal outreach along with the award will make community members feel more appreciated and strengthen their sense of belonging.
|
||||
|
||||
### Recognitions build community health
|
||||
|
||||
There's a lot of work to be done to improve diversity, inclusion, and belonging in open source communities. Better community recognitions play an essential role in these efforts. Ensuring that all contributions are valued and that everyone feels like they have a home where they're appreciated will encourage members to stay engaged in the community.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/22/5/inclusive-community-recognition
|
||||
|
||||
作者:[Ray Paik][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[PeterPan0106](https://github.com/PeterPan0106)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/rpaik
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://opensource.com/sites/default/files/lead-images/world_hands_diversity.png
|
||||
[2]: https://opensource.com/sites/default/files/2022-04/annual%20merged%20PRs.png
|
||||
[3]: https://opensource.com/sites/default/files/2022-04/top%20contributing%20orgs.png
|
@ -2,7 +2,7 @@
|
||||
[#]: via: (https://www.linux.com/news/webassembly-security-now-and-in-the-future/)
|
||||
[#]: author: (Dan Brown https://training.linuxfoundation.org/announcements/webassembly-security-now-and-in-the-future/)
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: ( )
|
||||
[#]: translator: (hanszhao80)
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
@ -66,7 +66,7 @@ via: https://www.linux.com/news/webassembly-security-now-and-in-the-future/
|
||||
|
||||
作者:[Dan Brown][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
译者:[hanszhao80](https://github.com/hanszhao80)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
@ -0,0 +1,152 @@
|
||||
[#]: subject: "Tails 5 Review: A Perfect Privacy-Focused Linux"
|
||||
[#]: via: "https://www.debugpoint.com/2022/05/tails-5-review/"
|
||||
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Tails 5 Review: A Perfect Privacy-Focused Linux
|
||||
======
|
||||
HERE’S A QUICK REVIEW OF DEBIAN-BASED TAILS 5, RELEASED A WHILE BACK,
|
||||
REFRESHING ITS CORE MODULES WITH DEBIAN 11 BULLSEYE.
|
||||
Before we jump into the review of Tails 5, it’s worth mentioning what Tails are about. Tails, aka The Amnesic Incognito Live System, is a [privacy-focussed Linux Distribution][1] which uses the Tor network to protect you while browsing the web. Tails are based on Debian stable branch and come with many goodies such as an IRC client, Tor browser, email clients, and messengers to help you roam around on the web anonymously.
|
||||
|
||||
![Tails 5 Desktop Running GNOME 3.38][2]
|
||||
|
||||
### Tails 5 Review
|
||||
|
||||
#### ISO, Installation
|
||||
|
||||
Tails are available as a complete installation ISO image with an additional image capable of running from the USB drive itself. If you plan to use Tails, you should first think about your primary purpose for using Tails. And choose the ISO you want.
|
||||
|
||||
I would recommend that everyone be ready with a Tails USB stick. It’s handy on many occasions. For example, if you want to be anonymous for a short time and travel with public Wi-Fi, you might want to create a bootable Thumb drive to carry.
|
||||
|
||||
Both images are around 1.2GB in size and are available for download from the official website.
|
||||
|
||||
Installation of Tails is a little different, and you can find the guide [here][3].
|
||||
|
||||
#### First Impression
|
||||
|
||||
The first-time boot of Tails asks you to confirm the keyboard layout and language and followed by connecting to the Tor network. If you are not familiar with the Tor network, it gives two easy options. The Easier option is recommended for all users as it takes care of connecting to the Tor network with bridge setup, etc. You can also choose the “safer” option if you know what the options mean.
|
||||
|
||||
Once you complete the setup, you get a nice and clean GNOME Desktop environment which comes as default with Tails with additional applications. The GNOME version for Tails 5 is GNOME 3.38.6 stable which is the pre-GNOME 40 desktop with the traditional application menu with a vertical dock and workspaces.
|
||||
|
||||
You don’t need anything fancy desktop while using Tails for some critical work. GNOME 3.38x does just fine and it’s fast.
|
||||
|
||||
![Tails Welcome Screen][2]
|
||||
|
||||
![Tails 5 – Initial Tor Setup][2]
|
||||
|
||||
#### Tor Network and Application Updates
|
||||
|
||||
At its core, Tails 5 is based on [Debian 11 Bullseye][4] (which is the current stable version) and [Linux Kernel 5.10][5].
|
||||
|
||||
The application list of Tails is mostly curated for privacy oriented work. The Tails application list includes the Tor Browser, Tor Connection Manager, and Onion Circuits Manager. During my test, the Tor network connected properly without any problem.
|
||||
|
||||
In addition to that, this release introduces Kleopatra (replaces Seahorse) which is a Certification manager to GnuPG and helps to manage OpenPGP certificates and keys.
|
||||
|
||||
One of the essential features of Tails is the persistance storage configuration which is required if you use Tails via a USB stick. Tails 5 imprves the Persistance Storage option to make it more faster and rubust in nature.
|
||||
|
||||
Furthermore, the application stack in Tails 5.0 refreshed with their respective stable version according to Debian Bullseye listed below.
|
||||
|
||||
* Tor Browser 11.0.11
|
||||
* GNOME 3.38.6
|
||||
* MAT 0.12
|
||||
* Audacity 2.4.2
|
||||
* GNOME Disks 3.38
|
||||
* GIMP 2.10.22
|
||||
* Inkscape 1.0
|
||||
* LibreOffice 7.0
|
||||
|
||||
|
||||
|
||||
Tails packages all necessary applications to help with your purpose of anonymity, and those are acihved by its specific applications as listed here.
|
||||
|
||||
* Password manager – KeePassXC
|
||||
* Pidgin Internet messenger
|
||||
* Thunderbird Email Client
|
||||
* Tor Browser and Connection Manager
|
||||
* Onion Circuit manager
|
||||
* Application for configuring Persistance Storage
|
||||
* GtkHash checks for files
|
||||
* Root Terminal
|
||||
|
||||
|
||||
|
||||
A tool called Additional Software that Tails includes; it helps run the different applications from the local media instead of downloading them after each boot.
|
||||
|
||||
#### Performance
|
||||
|
||||
The performance of Tails is stable and depends on GNOME Desktop. During my test, it behaved well, no major surprises of problems. Overall desktop feel is faster considering it is still GNOME 3.38 version.
|
||||
|
||||
So, during the performance test at idle, it was consuming around 4% CPU on average and memory is at 1.6 GB. It may be a little higher for an idle state, but being a privacy-focused distro, background processes, and daemon running contributed to this metric.
|
||||
|
||||
Also, the network histroy shows a continuous packaet traction at an idle state which I believe is due to some daemon running continuously.
|
||||
|
||||
![Tails 5 Performance shows continuous network ping][2]
|
||||
|
||||
### Closing Notes
|
||||
|
||||
Privacy is more important than ever today. And Tails is the best Linux distro for privacy-focused people out there. With the solid Debian stable base, GNOME desktop and [robust documentation,][6] Tails is a “go-to” distro for security researchers and advanced users. Moreover, the Tails team did an excellent job with its nicely crafted documentation which takes care of most of the problems you may face while using it. With that said, if you want to try out Tails 5, visit [this page for download][7] and read the installation [guide][3].
|
||||
|
||||
A word of caution: While using Tails, try not to visit banks or financial websites or make any transactions requiring 2FA authentication.
|
||||
|
||||
* * *
|
||||
|
||||
We bring the latest tech, software news and stuff that matters. Stay in touch via [Telegram][8], [Twitter][9], [YouTube][10], and [Facebook][11] and never miss an update!
|
||||
|
||||
#### Share this:
|
||||
|
||||
* [Twitter][12]
|
||||
|
||||
* [Facebook][13]
|
||||
|
||||
* [Print][14]
|
||||
|
||||
* [LinkedIn][15]
|
||||
|
||||
* [Reddit][16]
|
||||
|
||||
* [Telegram][17]
|
||||
|
||||
* [WhatsApp][18]
|
||||
|
||||
* [Email][19]
|
||||
|
||||
*
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.debugpoint.com/2022/05/tails-5-review/
|
||||
|
||||
作者:[Arindam][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://www.debugpoint.com/author/admin1/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://www.debugpoint.com/2022/04/privacy-linux-distributions-2022/
|
||||
[2]: data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7
|
||||
[3]: https://tails.boum.org/install/linux/index.en.html
|
||||
[4]: https://www.debugpoint.com/2021/05/debian-11-features/
|
||||
[5]: https://www.debugpoint.com/2020/12/linux-kernel-5-10-release-announcement/
|
||||
[6]: https://tails.boum.org/doc/index.en.html
|
||||
[7]: https://tails.boum.org/install/index.en.html
|
||||
[8]: https://t.me/debugpoint
|
||||
[9]: https://twitter.com/DebugPoint
|
||||
[10]: https://www.youtube.com/c/debugpoint?sub_confirmation=1
|
||||
[11]: https://facebook.com/DebugPoint
|
||||
[12]: https://www.debugpoint.com/2022/05/tails-5-review/?share=twitter (Click to share on Twitter)
|
||||
[13]: https://www.debugpoint.com/2022/05/tails-5-review/?share=facebook (Click to share on Facebook)
|
||||
[14]: tmp.L2cjWMplUd#print (Click to print)
|
||||
[15]: https://www.debugpoint.com/2022/05/tails-5-review/?share=linkedin (Click to share on LinkedIn)
|
||||
[16]: https://www.debugpoint.com/2022/05/tails-5-review/?share=reddit (Click to share on Reddit)
|
||||
[17]: https://www.debugpoint.com/2022/05/tails-5-review/?share=telegram (Click to share on Telegram)
|
||||
[18]: https://www.debugpoint.com/2022/05/tails-5-review/?share=jetpack-whatsapp (Click to share on WhatsApp)
|
||||
[19]: https://www.debugpoint.com/2022/05/tails-5-review/?share=email (Click to email this to a friend)
|
@ -1,42 +0,0 @@
|
||||
[#]: subject: "Bloomberg Open Sources Memray, A Python Memory Profiler"
|
||||
[#]: via: "https://www.opensourceforu.com/2022/04/bloomberg-open-sources-memray-a-python-memory-profiler/"
|
||||
[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Bloomberg Open Sources Memray, A Python Memory Profiler
|
||||
======
|
||||
![soft][1]
|
||||
|
||||
Memray is a memory profiler that was developed at Bloomberg and is now open source. It can track memory allocations in Python code, including native extensions and the Python interpreter itself. Memory profiling is a strong tool for understanding how a program utilises memory and, as a result, detecting memory leaks or determining which areas of the program consume the most memory.
|
||||
|
||||
In contrast to sampling memory profilers like py-spy, Memray can track every function call, including calls into C/C++ libraries, and display the call stack in detail. Bloomberg claims that this does not come at the sacrifice of performance, with profiling only slowing down interpreted code by a little amount. However, native code profiling is slower and must be enabled directly.
|
||||
|
||||
Memray may generate a variety of reports based on the acquired memory consumption data, including flame graphs, which are valuable for rapidly and precisely identifying the most common code-paths.
|
||||
|
||||
According to Yury Selivanov, co-founder and CEO of EgdeDB, the tool gives previously unavailable insights into Python applications. Memray can be used to execute and profile a Python application from the command line:
|
||||
|
||||
```python
|
||||
$ python3 -m memray run -o output.bin my_script.py
|
||||
$ python3 -m memray flamegraph output.bin
|
||||
```
|
||||
|
||||
Alternatively, you can use pytest-memray to integrate Memray into your test suite. You can also profile all C/C++ calls with the —native command line option, or analyse memory allocation in real time while a programme is executing with the —live command line option. Memray can be installed with python3 -m pip install memray on a Linux x86/64 system.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.opensourceforu.com/2022/04/bloomberg-open-sources-memray-a-python-memory-profiler/
|
||||
|
||||
作者:[Laveesh Kocher][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.opensourceforu.com/author/laveesh-kocher/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://www.opensourceforu.com/wp-content/uploads/2022/04/soft-1-696x363.jpg
|
@ -1,119 +0,0 @@
|
||||
[#]: subject: "Tools You Can Use for the Security Audit of IoT Devices"
|
||||
[#]: via: "https://www.opensourceforu.com/2022/05/tools-you-can-use-for-the-security-audit-of-iot-devices/"
|
||||
[#]: author: "Dr Kumar Gaurav https://www.opensourceforu.com/author/dr-gaurav-kumar/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Tools You Can Use for the Security Audit of IoT Devices
|
||||
======
|
||||
Digital transformation involves data-driven decision making with the integration of artificial intelligence (AI). Important data is broadcast through Internet of Things (IoT) devices and smart gadgets. These IoT devices are very often insecure and have vulnerabilities as they lack built-in security mechanisms that can protect them from potential cyber attacks. There are quite a few open source tools that can be used to carry out security audits, lowering the risk of such attacks.
|
||||
|
||||
![Screenshot 2022-05-02 154427][1]
|
||||
|
||||
cyber attackers and sniffers can access sensitive data from IoT devices and use that information to launch attacks on other linked systems. According to anti-virus and computer security service company Kaspersky, the number of IoT hacks more than quadrupled year-on-year in 2021.
|
||||
|
||||
For the most part, hackers gained access to Internet of Things (IoT) networks by using the Telnet protocol, which provides a command-line interface for communicating with devices or servers over the Internet. More than 58 per cent of IoT intrusions, as per research reports, used assorted protocols that aimed to mine cryptocurrencies, shut down systems via distributed denial-of-service (DDoS) attacks, or steal confidential data.
|
||||
|
||||
Because of the increased time spent using IoT devices at home during the pandemic, the security risks have increased. Many of these gadgets, whether used for personal or business purposes, lack basic security measures. New technologies like artificial intelligence and edge computing have also complicated the landscape of cyber and data security. As the popularity of smart gadgets grew, so did the number of attacks, according to Dan Demeter, a Kaspersky security analyst.
|
||||
|
||||
![Key components in PENIOT][2]
|
||||
|
||||
### The need for security audit in IoT gadgets
|
||||
|
||||
Cyber attacks are evolving all the time, and businesses and government agencies are employing ever more sophisticated cyber security measures to guard their applications and infrastructure from online attacks. The global penetration testing market is expected to grow from US$ 1.6 billion in 2021 to US$ 3.0 billion by 2026, at a CAGR of 13.8 per cent between 2021 and 2026.
|
||||
|
||||
Penetration testing on IoT devices is a hot topic and there is huge research in this segment. Even with a ‘security by design’ approach, pen testing is vital to identify true security dangers and take the appropriate precautions.
|
||||
|
||||
Key segments and protocols in IoT deployment where security and privacy is required are:
|
||||
|
||||
* Constraint application protocol (CoAP)
|
||||
* Bluetooth low energy (BLE)
|
||||
* Advanced message queuing protocol (AMQP)
|
||||
* Message queuing telemetry transport (MQTT)
|
||||
|
||||
For an attacker to get access to a connected device, there are several possible entry points. At the time of an IoT pen test (or security audit), the complete IoT scenario and ecosystem is tested. This encompasses everything from the individual layer and the embedded software, to the communication protocols and the server. Tests of servers, online interfaces, and mobile apps are not unique to IoT, but are crucial since they cover areas with a high potential for failure. Vulnerabilities in IoT are the focus of electrical, embedded software, and communication protocol testing.
|
||||
|
||||
The following tests are run during a connected device’s security assessment. These are done using different high performance penetration testing and security audit tools against vulnerabilities:
|
||||
|
||||
* Tests for exploitation and manipulation in the communication ports
|
||||
* IoT sniffing by capture and analysis of radio signals
|
||||
* Detection of interfaces or backdoors
|
||||
* Tests for buffer overflow
|
||||
* Tests for breaking of passwords
|
||||
* Debugging
|
||||
* Cryptographic analysis
|
||||
* Manipulation in firmware tests
|
||||
* Reverse engineering
|
||||
* Memory dumps
|
||||
|
||||
![][3]
|
||||
|
||||
### Open source tools for the security audit of IoT devices
|
||||
|
||||
IoT devices are becoming more and more commonplace in our daily lives. A few examples of such devices are smart bicycles, fitness trackers, medical sensors, smart locks, and linked factories. All of these devices and gadgets can be secured against cyber attacks using open source tools, some of which are briefly discussed here.
|
||||
|
||||
#### PENIOT
|
||||
|
||||
https://github.com/yakuza8/peniot
|
||||
|
||||
PENIOT is an IoT penetration testing tool that enables security audit teams to test and breach the devices with various security threats by exploiting their connectivity. There are both active and passive security threats that can be tested. It is possible to carry out active security attacks, such as altering system resources, replaying legitimate communication units and so on, after determining the target device and the relevant information (or parameters). Passive security threats, such as breaking the confidentiality of sensitive data or gaining access to network traffic analysis, can also be analysed.
|
||||
|
||||
#### Objection
|
||||
|
||||
https://github.com/sensepost/objection
|
||||
|
||||
Objection is a tool for the detailed analysis and security audit of the Android and iOS apps used in the IoT environment.
|
||||
|
||||
Nowadays, a number of smart gadgets and devices are using Android and iOS platforms which can be analysed with detailed logs and security audit reports, using this tool.
|
||||
|
||||
#### Routersploit
|
||||
|
||||
https://github.com/threat9/routersploit
|
||||
|
||||
This powerful open source exploitation framework for embedded devices has multiple features and modules for penetration testing and security audit:
|
||||
|
||||
* Exploits – vulnerabilities evaluation
|
||||
* Creds – testing of network services and credentials
|
||||
* Scanners – detailed security audit of target
|
||||
* Payloads – generation of payloads and injection key points
|
||||
* Generic – performing and testing of assaults
|
||||
|
||||
#### Wireshark
|
||||
|
||||
https://www.wireshark.org
|
||||
|
||||
Wireshark is a free network protocol analyser with a lot of features. Various protocols, including MQTT, are used by IoT devices to communicate and these can be analysed effectively. Security rules are configured according to the protocol and the traffic is examined in order to discover any weaknesses. A network packet analyser is accessible through the command line using tcpdump. Such tools are used to examine data packets exchanged between IoT devices and networks.
|
||||
|
||||
#### Binwalk
|
||||
|
||||
https://www.kali.org/tools/binwalk
|
||||
|
||||
Binwalk is a tool for reversing the design of hardware. It is one of the key components in Kali Linux that is used for penetration testing, server fingerprinting, security audit and forensic applications.
|
||||
|
||||
#### Firmwalker
|
||||
|
||||
https://github.com/craigz28/firmwalker
|
||||
|
||||
Firmwalker is a free and open source tool for searching and scanning the firmware file system, irrespective of whether it is extracted or mounted. A detailed security audit can be done using this tool.
|
||||
|
||||
In the era of Internet of Things (IoT) and Internet of Everything (IoE), there is a need to devise and use high performance toolkits for penetration testing and security audits. As the number of IoT devices grows, so do the security risks. Free and open source toolkits and software suites should be customised according to recent protocols and dynamic traffic so that higher levels of security and privacy can be enforced in IoT and IoE deployments.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.opensourceforu.com/2022/05/tools-you-can-use-for-the-security-audit-of-iot-devices/
|
||||
|
||||
作者:[Dr Kumar Gaurav][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.opensourceforu.com/author/dr-gaurav-kumar/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://www.opensourceforu.com/wp-content/uploads/2022/03/Screenshot-2022-05-02-154427-696x422.png
|
||||
[2]: https://www.opensourceforu.com/wp-content/uploads/2022/03/Figure-1-Key-components-in-PENIOT.jpg
|
||||
[3]: https://www.opensourceforu.com/wp-content/uploads/2022/03/Screenshot-2022-05-02-153653-590x282.png
|
@ -1,37 +0,0 @@
|
||||
[#]: subject: "Package Analysis Examines Packages In Open Source Repositories In Real Time"
|
||||
[#]: via: "https://www.opensourceforu.com/2022/05/package-analysis-examines-packages-in-open-source-repositories-in-real-time/"
|
||||
[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Package Analysis Examines Packages In Open Source Repositories In Real Time
|
||||
======
|
||||
![openssf-logo][1]
|
||||
|
||||
The Open Source Security Foundation (OpenSSF) has released a beta version of a new tool that can do dynamic analysis of all packages published to prominent open source repositories. The Package Analysis project attempts to safeguard open source packages by identifying and alerting users to any malicious behaviour, with the goal of enhancing trust in open source software and bolstering the security of the software supply chain.
|
||||
|
||||
“The Package Analysis project seeks to understand the behavior and capabilities of packages available on open source repositories: what files do they access, what addresses do they connect to, and what commands do they run?,” the OpenSSF said.
|
||||
|
||||
“The project also tracks changes in how packages behave over time, to identify when previously safe software begins acting suspiciously,” the foundation’s Caleb Brown and David A. Wheeler added.
|
||||
|
||||
The program discovered over 200 malicious packages published to PyPI and NPM during a month-long test run, with the majority of the rogue libraries relying on dependency confusion and typosquatting assaults. Google, an OpenSSF member, has thrown its support to the Package Analysis initiative, underlining the importance of “vetting packages before they are published in order to keep users secure.”
|
||||
|
||||
Last year, the company’s Open Source Security Team proposed the Supply Chain Levels for Software Artifacts (SLSA) architecture to verify the integrity of software packages and prevent unauthorised changes. The development comes as the open source ecosystem is increasingly being weaponized to attack developers with malware such as cryptocurrency miners and data thieves.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.opensourceforu.com/2022/05/package-analysis-examines-packages-in-open-source-repositories-in-real-time/
|
||||
|
||||
作者:[Laveesh Kocher][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.opensourceforu.com/author/laveesh-kocher/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://www.opensourceforu.com/wp-content/uploads/2022/05/openssf-logo-696x418.jpg
|
@ -1,89 +0,0 @@
|
||||
[#]: subject: "How I manage my own virtual network with ZeroTier"
|
||||
[#]: via: "https://opensource.com/article/22/5/zerotier-network"
|
||||
[#]: author: "Kevin Sonney https://opensource.com/users/ksonney"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
How I manage my own virtual network with ZeroTier
|
||||
======
|
||||
ZeroTier is an encrypted virtual network backbone, allowing multiple machines to communicate as if they were on a single network.
|
||||
|
||||
![Person drinking a hat drink at the computer][1]
|
||||
(Image by: [Jonas Leupe][2] on [Unsplash][3])
|
||||
|
||||
*Automation is a hot topic right now. In my day job as a site reliability engineer (SRE), part of my remit is to automate as many repeating tasks as possible. But how many of us do that in our daily, not-work, lives? This year, I am focused on automating away the toil so that we can focus on the things that are important.*
|
||||
|
||||
While automating everything, I ran into some difficulty with remote sites. I'm not a networking person so I started to look at my options. After researching the various virtual private networks (VPN), hardware endpoints, firewall rules, and everything that goes into supporting multiple remote sites, I was confused, grumpy, and frustrated with the complexity of it all.
|
||||
|
||||
Then I found [ZeroTier][4]. ZeroTier is an encrypted virtual network backbone, allowing multiple machines to communicate as if they were on a single network. The code is all open source, and you can self-host the controller or use the [ZeroTierOne][5] service with either free or paid plans. I'm using their free plan right now, and it is robust, solid, and very consistent.
|
||||
|
||||
Because I'm using the web service, I'm not going to go into detail about running the controller and root services. ZeroTier has a complete reference on how to do that in their [documentation][6], and it's very good.
|
||||
|
||||
After creating my own virtual network in the web user interface, the client installation is almost trivial. ZeroTier has packages for APT, RPM, FreeBSD, and many other platforms, so getting the first node online takes little effort.
|
||||
|
||||
Once installed, the client connects to the controller service and generates a unique ID for the node. On Linux, you use the `zerotier-cli` command to join a network, using the `zerotier-cli join NETWORKID` command.
|
||||
|
||||
```
|
||||
$ sudo zerotier-cli info
|
||||
200 info 469584783a 1.x.x ONLINE
|
||||
```
|
||||
|
||||
You can also use `zerotier-cli` to get a listing of connected and available nodes, change network settings, and leave networks.
|
||||
|
||||
![Image of Setting up a New Node][7]
|
||||
(Image by: Kevin Sonney, CC BY-SA 4.0)
|
||||
|
||||
After joining a network, you do have to approve access for the node, either through the web console or by making a call to the application programming interface (API). Both methods are documented on the ZeroTier site. After you have two nodes connected, connecting to each other — no matter where you are or what side of any firewalls you may be on — is exactly what you would expect if you were in the same building on the same network. One of my primary use cases is for [remote access to my Home Assistant setup][8] without needing to open up firewall ports or expose it to the internet (more on my Home Assistant setup and related services later).
|
||||
|
||||
One thing I did set up myself is a [Beta ZeroNDS Service][9] for internal DNS. This saved me a lot of complexity for managing my own name service or having to create public records for all my private hosts and IP addresses. I found the instructions to be very straight forward, and was able to have a DNS server for my private network up in about 5 minutes. Each client has to allow Zerotier to set the DNS, which is very simple in the GUI clients. To enable it for use on Linux clients, use:
|
||||
|
||||
```
|
||||
$ sudo zerotier-cli setNETWORKID allowDNS=1
|
||||
```
|
||||
|
||||
No other updates are needed as you add and remove hosts, and it "just works."
|
||||
|
||||
```
|
||||
$ sudo zerotier-cli info
|
||||
200 info 469584845a 1.x.y ONLINE
|
||||
$ sudo zerotier-cli join
|
||||
93afae596398153a 200 join OK
|
||||
$ sudo zerotier-cli peers
|
||||
200 peers
|
||||
<ztaddr> <ver> <role> <lat> <link> <TX> <RX> <path>
|
||||
61d294b9cb - PLANET 112 DIRECT 7946 2812 50.7.73.34/9993
|
||||
62f865ae71 - PLANET 264 DIRECT 7946 2681 50.7.76.38/9993
|
||||
778cde7190 - PLANET 61 DIRECT 2944 2901 103.195.13.66/9993
|
||||
93afae5963 1.x LEAF 77 DIRECT 2945 2886 35.188.31.177/41848
|
||||
992fcf1db7 - PLANET RECT 79124 DI47 2813 195. 181.173.159/9993
|
||||
```
|
||||
|
||||
I've barely scratched the surface of the features here. ZeroTier also allows for bridging between ZeroTier networks, advanced routing rules, and a whole lot more. They even have a [Terraform provider][10] and a listing of [Awesome Zerotier Things][11]. As of today, I'm using ZeroTier to connect machines across four physical sites, three of which are behind NAT firewalls. Zerotier is simple to set up, and almost completely painless to manage.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/22/5/zerotier-network
|
||||
|
||||
作者:[Kevin Sonney][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/ksonney
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://opensource.com/sites/default/files/lead-images/coffee_tea_laptop_computer_work_desk.png
|
||||
[2]: https://unsplash.com/@jonasleupe?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText
|
||||
[3]: https://unsplash.com/s/photos/tea-cup-computer?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText
|
||||
[4]: https://github.com/zerotier
|
||||
[5]: https://www.zerotier.com/pricing
|
||||
[6]: https://docs.zerotier.com
|
||||
[7]: https://opensource.com/sites/default/files/2022-04/SecondDay02-2.png
|
||||
[8]: https://opensource.com/article/22/5/remote-home-assistant
|
||||
[9]: https://github.com/zerotier/zeronsd
|
||||
[10]: https://github.com/zerotier/terraform-provider-zerotier
|
||||
[11]: https://github.com/zerotier/awesome-zerotier
|
@ -0,0 +1,321 @@
|
||||
[#]: subject: "Boost the power of C with these open source libraries"
|
||||
[#]: via: "https://opensource.com/article/22/5/libsoup-gobject-c"
|
||||
[#]: author: "Joël Krähemann https://opensource.com/users/joel2001k"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Boost the power of C with these open source libraries
|
||||
======
|
||||
GObject and libsoup do a lot of work for you, so you can turn your attention to inventing amazing applications in C.
|
||||
|
||||
![Why and how to handle exceptions in Python Flask][1]
|
||||
(Image by: Image from Unsplash.com, Creative Commons Zero)
|
||||
|
||||
The [GLib Object System (GObject)][2] is a library providing a flexible and extensible object-oriented framework for C. In this article, I demonstrate using the 2.4 version of the library.
|
||||
|
||||
The GObject libraries extend the ANSI C standard, with typedefs for common types such as:
|
||||
|
||||
* gchar: a character type
|
||||
* guchar: an unsigned character type
|
||||
* gunichar: a fixed 32 bit width unichar type
|
||||
* gboolean: a boolean type
|
||||
* gint8, gint16, gint32, gint64: 8, 16, 32, and 64 bit integers
|
||||
* guint8, guint16, guint32, guint64: unsigned 8, 16, 32, and 64 bit integers
|
||||
* gfloat: an IEEE Standard 754 single precision floating point number
|
||||
* gdouble: an IEEE Standard 754 double precision floating point number
|
||||
* gpointer: a generic pointer type
|
||||
|
||||
### Function pointers
|
||||
|
||||
GObject also introduces a type and object system with classes and interfaces. This is possible because the ANSI C language understands function pointers.
|
||||
|
||||
To declare a function pointer, you can do this:
|
||||
|
||||
```c
|
||||
void (*my_callback)(gpointer data);
|
||||
```
|
||||
|
||||
But first, you need to assign the `my_callback` variable:
|
||||
|
||||
```c
|
||||
void my_callback_func(gpointer data)
|
||||
{
|
||||
//do something
|
||||
}
|
||||
|
||||
my_callback = my_callback_func;
|
||||
```
|
||||
|
||||
The function pointer `my_callback` can be invoked like this:
|
||||
|
||||
```c
|
||||
gpointer data;
|
||||
data = g_malloc(512 * sizeof(gint16));
|
||||
my_callback(data);
|
||||
```
|
||||
|
||||
### Object classes
|
||||
|
||||
The GObject base class consists of 2 structs (`GObject` and `GObjectClass` ) which you inherit to implement your very own objects.
|
||||
|
||||
You embed GObject and GObjectClass as the first struct field:
|
||||
|
||||
```c
|
||||
struct _MyObject
|
||||
{
|
||||
GObject gobject;
|
||||
//your fields
|
||||
};
|
||||
|
||||
struct _MyObjectClass
|
||||
{
|
||||
GObjectClass gobject;
|
||||
//your class methods
|
||||
};
|
||||
|
||||
GType my_object_get_type(void);
|
||||
```
|
||||
|
||||
The object’s implementation contains fields, which might be exposed as properties. GObject provides a solution to private fields, too. This is actually a struct in the C source file, instead of the header file. The class usually contains function pointers only.
|
||||
|
||||
An interface can’t be derived from another interface and is implemented as following:
|
||||
|
||||
```c
|
||||
struct _MyInterface
|
||||
{
|
||||
GInterface ginterface;
|
||||
//your interface methods
|
||||
};
|
||||
```
|
||||
|
||||
Properties are accessed by `g_object_get()` and `g_object_set()` function calls. To get a property, you must provide the return location of the specific type. It’s recommended that you initialize the return location first:
|
||||
|
||||
```c
|
||||
gchar *str
|
||||
|
||||
str = NULL;
|
||||
|
||||
g_object_get(gobject,
|
||||
"my-name", &str,
|
||||
NULL);
|
||||
```
|
||||
|
||||
Or you might want to set the property:
|
||||
|
||||
```c
|
||||
g_object_set(gobject,
|
||||
"my-name", "Anderson",
|
||||
NULL);
|
||||
```
|
||||
|
||||
### The libsoup HTTP library
|
||||
|
||||
The `libsoup` project provides an HTTP client and server library for GNOME. It uses GObjects and the glib main loop to integrate with GNOME applications, and also has a synchronous API for use in command-line tools. First, create a `libsoup` session with an authentication callback specified. You can also make use of cookies.
|
||||
|
||||
```c
|
||||
SoupSession *soup_session;
|
||||
SoupCookieJar *jar;
|
||||
|
||||
soup_session = soup_session_new_with_options(SOUP_SESSION_ADD_FEATURE_BY_TYPE, SOUP_TYPE_AUTH_BASIC,
|
||||
SOUP_SESSION_ADD_FEATURE_BY_TYPE, SOUP_TYPE_AUTH_DIGEST,
|
||||
NULL);
|
||||
|
||||
jar = soup_cookie_jar_text_new("cookies.txt",
|
||||
FALSE);
|
||||
|
||||
soup_session_add_feature(soup_session, jar);
|
||||
g_signal_connect(soup_session, "authenticate",
|
||||
G_CALLBACK(my_authenticate_callback), NULL);
|
||||
```
|
||||
|
||||
Then you can create a HTTP GET request like the following:
|
||||
|
||||
```c
|
||||
SoupMessage *msg;
|
||||
SoupMessageHeaders *response_headers;
|
||||
SoupMessageBody *response_body;
|
||||
guint status;
|
||||
GError *error;
|
||||
|
||||
msg = soup_form_request_new("GET",
|
||||
"http://127.0.0.1:8080/my-xmlrpc",
|
||||
NULL);
|
||||
|
||||
status = soup_session_send_message(soup_session,
|
||||
msg);
|
||||
|
||||
response_headers = NULL;
|
||||
response_body = NULL;
|
||||
|
||||
g_object_get(msg,
|
||||
"response-headers", &response_headers,
|
||||
"response-body", &response_body,
|
||||
NULL);
|
||||
|
||||
g_message("status %d", status);
|
||||
cookie = NULL;
|
||||
soup_message_headers_iter_init(&iter,
|
||||
response_headers);
|
||||
|
||||
while(soup_message_headers_iter_next(&iter, &name, &value)){
|
||||
g_message("%s: %s", name, value);
|
||||
}
|
||||
|
||||
g_message("%s", response_body->data);
|
||||
if(status == 200){
|
||||
cookie = soup_cookies_from_response(msg);
|
||||
while(cookie != NULL){
|
||||
char *cookie_name;
|
||||
cookie_name = soup_cookie_get_name(cookie->data);
|
||||
//parse cookies
|
||||
cookie = cookie->next;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
The authentication callback is called as the web server asks for authentication.
|
||||
|
||||
Here’s a function signature:
|
||||
|
||||
```c
|
||||
#define MY_AUTHENTICATE_LOGIN "my-username"
|
||||
#define MY_AUTHENTICATE_PASSWORD "my-password"
|
||||
|
||||
void my_authenticate_callback(SoupSession *session,
|
||||
SoupMessage *msg,
|
||||
SoupAuth *auth,
|
||||
gboolean retrying,
|
||||
gpointer user_data)
|
||||
{
|
||||
g_message("authenticate: ****");
|
||||
soup_auth_authenticate(auth,
|
||||
MY_AUTHENTICATE_LOGIN,
|
||||
MY_AUTHENTICATE_PASSWORD);
|
||||
}
|
||||
```
|
||||
|
||||
### A libsoup server
|
||||
|
||||
For basic HTTP authentication to work, you must specify a callback and server context path. Then you add a handler with another callback.
|
||||
|
||||
This example listens to any IPv4 address on localhost port 8080:
|
||||
|
||||
```c
|
||||
SoupServer *soup_server;
|
||||
SoupAuthDomain *auth_domain;
|
||||
GSocket *ip4_socket;
|
||||
GSocketAddress *ip4_address;
|
||||
MyObject *my_object;
|
||||
GError *error;
|
||||
|
||||
soup_server = soup_server_new(NULL);
|
||||
auth_domain = soup_auth_domain_basic_new(SOUP_AUTH_DOMAIN_REALM, "my-realm",
|
||||
SOUP_AUTH_DOMAIN_BASIC_AUTH_CALLBACK, my_xmlrpc_server_auth_callback,
|
||||
SOUP_AUTH_DOMAIN_BASIC_AUTH_DATA, my_object,
|
||||
SOUP_AUTH_DOMAIN_ADD_PATH, "my-xmlrpc",
|
||||
NULL);
|
||||
|
||||
soup_server_add_auth_domain(soup_server, auth_domain);
|
||||
soup_server_add_handler(soup_server,
|
||||
"my-xmlrpc",
|
||||
my_xmlrpc_server_callback,
|
||||
my_object,
|
||||
NULL);
|
||||
|
||||
ip4_socket = g_socket_new(G_SOCKET_FAMILY_IPV4,
|
||||
G_SOCKET_TYPE_STREAM,
|
||||
G_SOCKET_PROTOCOL_TCP,
|
||||
&error);
|
||||
|
||||
ip4_address = g_inet_socket_address_new(g_inet_address_new_any(G_SOCKET_FAMILY_IPV4),
|
||||
8080);
|
||||
error = NULL;
|
||||
g_socket_bind(ip4_socket,
|
||||
ip4_address,
|
||||
TRUE,
|
||||
&error);
|
||||
error = NULL;
|
||||
g_socket_listen(ip4_socket, &error);
|
||||
|
||||
error = NULL;
|
||||
soup_server_listen_socket(soup_server,
|
||||
ip4_socket, 0, &error);
|
||||
```
|
||||
|
||||
In this example code, there are two callbacks. One handles authentication, and the other handles the request itself.
|
||||
|
||||
Suppose you want a web server to allow a login with the credentials username **my-username** and the password **my-password**, and to set a session cookie with a random unique user ID (UUID) string.
|
||||
|
||||
```c
|
||||
gboolean my_xmlrpc_server_auth_callback(SoupAuthDomain *domain,
|
||||
SoupMessage *msg,
|
||||
const char *username,
|
||||
const char *password,
|
||||
MyObject *my_object)
|
||||
{
|
||||
if(username == NULL || password == NULL){
|
||||
return(FALSE);
|
||||
}
|
||||
|
||||
if(!strcmp(username, "my-username") &&
|
||||
!strcmp(password, "my-password")){
|
||||
SoupCookie *session_cookie;
|
||||
GSList *cookie;
|
||||
gchar *security_token;
|
||||
cookie = NULL;
|
||||
|
||||
security_token = g_uuid_string_random();
|
||||
session_cookie = soup_cookie_new("my-srv-security-token",
|
||||
security_token,
|
||||
"localhost",
|
||||
"my-xmlrpc",
|
||||
-1);
|
||||
|
||||
cookie = g_slist_prepend(cookie,
|
||||
session_cookie);
|
||||
soup_cookies_to_request(cookie,
|
||||
msg);
|
||||
return(TRUE);
|
||||
}
|
||||
return(FALSE);
|
||||
}
|
||||
```
|
||||
|
||||
A handler for the context path **my-xmlrpc**:
|
||||
|
||||
```c
|
||||
void my_xmlrpc_server_callback(SoupServer *soup_server,
|
||||
SoupMessage *msg,
|
||||
const char *path,
|
||||
GHashTable *query,
|
||||
SoupClientContext *client,
|
||||
MyObject *my_object)
|
||||
{
|
||||
GSList *cookie;
|
||||
cookie = soup_cookies_from_request(msg);
|
||||
//check cookies
|
||||
}
|
||||
```
|
||||
|
||||
### A more powerful C
|
||||
|
||||
I hope my examples show how the GObject and libsoup projects give C a very real boost. Libraries like these extend C in a literal sense, and by doing so they make C more approachable. They do a lot of work for you, so you can turn your attention to inventing amazing applications in the simple, direct, and timeless C language.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/22/5/libsoup-gobject-c
|
||||
|
||||
作者:[Joël Krähemann][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/joel2001k
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://opensource.com/sites/default/files/lead-images/computer_code_programming_laptop.jpg
|
||||
[2]: https://docs.gtk.org/gobject/concepts.html
|
@ -0,0 +1,83 @@
|
||||
[#]: subject: "Experiment with containers and pods on your own computer"
|
||||
[#]: via: "https://opensource.com/article/22/5/containers-pods-101-ebook"
|
||||
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Experiment with containers and pods on your own computer
|
||||
======
|
||||
Start exploring the essentials of container technology with this new downloadable guide.
|
||||
|
||||
![Looking at a map][1]
|
||||
|
||||
(Image by: opensource.com)
|
||||
|
||||
In the TV show *Battlestar Galactica*, the titular mega-ship didn't actually do a whole lot. It served as a stalwart haven for its crew, a central point of contact for strategy and orchestration, and a safe place for resource management. However, the Caprican Vipers, one-person self-contained space vessels, went out to deal with evil Cylons and other space-borne dangers. They never just send one or two Vipers out, either. They sent lots of them. Many redundant ships with essentially the same capabilities and purpose, but thanks to their great agility and number, they always managed to handle whatever problem threatened the Battlestar each week.
|
||||
|
||||
If you think you're sensing a developing analogy, you're right. The modern "cloud" is big and hulking, an amalgamation of lots of infrastructure spread over a great distance. It has great power, but you'd be wasting much of its capability if you treated it like a regular computer. When you want to handle lots of data from millions of input sources, it's actually more efficient to bundle up your solution (whether that takes the form of an application, website, database, server, or something else) and send out tiny images of that solution to deal with clusters of data. These, of course, would be *containers*, and they're the workforce of the cloud. They're the little solution factories you send out to handle service requests, and because you can spawn as many as you need based on the requests coming in at any given time, they're theoretically inexhaustible.
|
||||
|
||||
### Containers at home
|
||||
|
||||
If you don't have a lot of incoming requests to deal with, you might wonder what benefit containers offer to you. Using containers on a personal computer does have its uses, though.
|
||||
|
||||
#### Containers as virtual environments
|
||||
|
||||
With tools like Podman, LXC, and Docker, you can run containers the same way you might have historically run virtual machines. Unlike a virtual machine, though, containers don't require the overhead of emulated firmware and hardware.
|
||||
|
||||
You can download container images from public repositories, launch a minimalist Linux environment, and use it as a testing ground for commands or development. For instance, say you want to try an application you're building on Slackware Linux. First, search for a suitable image in the repository:
|
||||
|
||||
```
|
||||
$ podman search slackware
|
||||
```
|
||||
|
||||
Then select an image to use as the basis for your container:
|
||||
|
||||
```
|
||||
$ podman run -it --name slackware vbatts/slackware
|
||||
sh-4.3# grep -i ^NAME\= /etc/os-release
|
||||
NAME=Slackware
|
||||
```
|
||||
|
||||
### Containers at work
|
||||
|
||||
Of course, containers aren't just minimal virtual machines. They can be highly specific solutions for very specific requirements. If you're new to containers, it might help to start with one of the most common rites of passage for any new sysadmin: Starting up your first web server but in a container.
|
||||
|
||||
First, obtain an image. You can search for your favorite distribution using the `podman search` command or just search for your favorite httpd server. When using containers, I tend to trust the same distributions I trust on bare metal.
|
||||
|
||||
Once you've found an image to base your container on, you can run your image. However, as the term suggests, a container is *contained*, so if you just launch a container, you won't be able to reach the standard HTTP port. You can use the `-p` option to map a container port to a standard networking port:
|
||||
|
||||
```
|
||||
$ podman run -it -p 8080:80 docker.io/fedora/apache:latest
|
||||
```
|
||||
|
||||
Now take a look at port 8080 on your localhost:
|
||||
|
||||
```
|
||||
$ curl localhost:8080
|
||||
Apache
|
||||
```
|
||||
|
||||
Success.
|
||||
|
||||
### Learn more
|
||||
|
||||
Containers hold much more potential than just mimicking virtual machines. You can group them in pods, construct automated deployments of complex applications, launch redundant services to account for high demand, and more. If you're just starting with containers, you can [download our latest eBook][2] to study up on the technology and even learn to create a pod so you can run WordPress and a database.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/22/5/containers-pods-101-ebook
|
||||
|
||||
作者:[Seth Kenlon][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/seth
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://opensource.com/sites/default/files/lead-images/tips_map_guide_ebook_help_troubleshooting_lightbulb_520.png
|
||||
[2]: https://opensource.com/downloads/containers-pods-101-ebook
|
@ -0,0 +1,95 @@
|
||||
[#]: subject: "Xebian – A Blend of Debian and Goodness of Xfce [Review]"
|
||||
[#]: via: "https://www.debugpoint.com/2022/05/xebian-review-2022/"
|
||||
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Xebian – A Blend of Debian and Goodness of Xfce [Review]
|
||||
======
|
||||
Here’s a quick review of the nice and sleek Xebian Linux Distribution.
|
||||
|
||||
Xebian is an Xfce desktop environment based Linux distribution based on Debian Unstable (sid) branch. This Linux Distribution brings a basic Xfce desktop with Debian without configuration changes and additional packages. Hence, you get a vanilla experience out of the box without worrying much about installing Debian and Xfce.
|
||||
|
||||
With that said, here’s a quick review of Xebian if you want to try it out.
|
||||
|
||||
### Xebian Review
|
||||
|
||||
#### Installation
|
||||
|
||||
Debian Installation can be tricky considering a variety of ISO available (mini, free, non-free and all that). After all, it is a truly “Universal Operating System”. But with Xebian, it’s effortless because it comes with only one 64-bit ISO file, which gives you Debian sid and Xfce. Xebian uses Debian’s native installer and is fairly straightforward to install this distribution in your physical system or a virtual machine.
|
||||
|
||||
During my test, the installation went fine, and no issues were reported. Installation took around 4 minutes.
|
||||
|
||||
#### Look and Feel
|
||||
|
||||
After installing, you get a nice login screen with Xebian default wallpaper when you first boot the system. The login screen is the standard default Xfce desktop login screen.
|
||||
|
||||
![Xebian Logn Screen][1]
|
||||
|
||||
First and foremost, the desktop is very lightweight and has a clean look with Xfce. Xebian gives exactly the stock version of Xfce with Debian. So, the only difference is the default wallpaper which looks nice and the default Numix theme (dark). The Adwaita and Gerybird themes are also present for those who like a more legacy look.
|
||||
|
||||
Second, the top panel has the Whisker Menu on the right and the standard system tray with volume controls, battery indication, network/Wi-Fi and date/time.
|
||||
|
||||
#### Applications
|
||||
|
||||
Xebian packages all the Xfce native applications and does not add anything extra. When you install it, you should already have a stable working desktop with the following applications pre-loaded.
|
||||
|
||||
* Thunar File Manager
|
||||
* Ristretto Image Viewer
|
||||
* Mousepad Text Editor
|
||||
* Catfish File Search
|
||||
* XFCE Terminal
|
||||
* Firefox
|
||||
* Synaptic Package Manager
|
||||
* GParted for partitioning
|
||||
* System Settings
|
||||
|
||||
Other than that, if you need any additional applications, you can easily install them using the Synaptic Package Manager. And tweaking the software source is easy with the built-in “Software and Sources” application.
|
||||
|
||||
The [Xfce 4.16][2] is the official version which the stable at the moment alongside its native applications. At its core, it is based on Debian Unstable “sid” which features Debian 12 “bookworm” release path as of writing this. And it is based on the latest [Linux Kernel 5.17][3] being a rolling release. The Xfce 4.18 is still far away from getting a final release.
|
||||
|
||||
Moreover, if you need a moderate image editor, graphics software and Office suite (such as LibreOffice) – you need to install them manually. They are not part of the ISO file.
|
||||
|
||||
Now, let’s take a look at the performance.
|
||||
|
||||
#### Performance of Xebian
|
||||
|
||||
Xebian is lightweight and perfect for older hardware, thanks to Debian. I tested the performance in two phases. The ideal phase where I kept the system idle for some time consumes about 710 MB of memory, and the CPU is at, on average 2%. Most of the idle state resources are consumed by the Xfce4-desktop and Xfce Window manager.
|
||||
|
||||
Second, I tested it in the heavy usage phase. I tried Xebian with one instance of File Manager, Text editor, terminal, and Firefox web browser in this workload.
|
||||
|
||||
With this workload, Xebian consumes 1.2 GB of memory, 2% to 3% CPU on average, depending on the respective application activity.
|
||||
|
||||
Moreover, most of the memory and CPU consumed by Firefox obviously, followed by an almost 50% jump in memory consumption of Xfce Window Manager.
|
||||
|
||||
Overall, I think it is stable and should work fine in mid-range hardware with a minimum of 4 GB ram.
|
||||
|
||||
### Closing Notes
|
||||
|
||||
There are very few [Linux distributions][4] that are based on Debian Unstable branch. If you are looking for a specific combination of Xfce and Debian sid, then Xebian is perfect because you get a super solid rolling release from Debian and with Xfce built-in.
|
||||
|
||||
Although it says “unstable”, in my experience, Debian “unstable” works well if you keep your system up to date weekly.
|
||||
|
||||
Finally, head over to the official website and [download the ISO file][5] if you want to try this distribution.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.debugpoint.com/2022/05/xebian-review-2022/
|
||||
|
||||
作者:[Arindam][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.debugpoint.com/author/admin1/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://www.debugpoint.com/wp-content/uploads/2022/05/Xebian-Logn-Screen-1024x578.jpg
|
||||
[2]: https://www.debugpoint.com/2021/02/xfce-4-16-review/
|
||||
[3]: https://www.debugpoint.com/2022/03/linux-kernel-5-17/
|
||||
[4]: https://www.debugpoint.com/category/distributions
|
||||
[5]: https://xebian.org/download/
|
@ -0,0 +1,78 @@
|
||||
[#]: subject: "My favorite open source tool for using crontab"
|
||||
[#]: via: "https://opensource.com/article/22/5/cron-crontab-ui"
|
||||
[#]: author: "Kevin Sonney https://opensource.com/users/ksonney"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
My favorite open source tool for using crontab
|
||||
======
|
||||
Crontab-ui is a web frontend written in Node.js that helps manage the crontab file.
|
||||
|
||||
![Woman using laptop concentrating][1]
|
||||
(Image by Mapbox Uncharted ERG, [CC-BY 3.0 US][2])
|
||||
|
||||
*Automation is a hot topic right now. In my day job as a site reliability engineer (SRE), part of my remit is to automate as many repeating tasks as possible. But how many of do that in our daily, not-work, lives? This year, I am focused on automating away the toil so that we can focus on the things that are important.*
|
||||
|
||||
One of the earliest things I learned about as a fledgling systems administrator was `cron`. Cron is used far and wide to do things like rotate logs, start and stop services, run utility jobs, and more. It is available on almost all Unix and Linux systems, and is something every sysadmin I know uses to help manage services and servers. Cron can run any console application or script automatically, which makes it very, very flexible.
|
||||
|
||||
![Image of a Crontab][3]
|
||||
(Image by: Kevin Sonney, CC BY-SA 4.0)
|
||||
|
||||
I have used cron to fetch email, run filtering programs, make sure a service is running, interact with online games like Habitica, and a lot more.
|
||||
|
||||
### Using cron the traditional way
|
||||
|
||||
To get started with cron, you can simply type `crontab -e` at the command line to open up an editor with the current `crontab` (or “cron table”) file for yourself (if you do this as root, you get the system crontab). This is where the job schedule is kept, along with when to run things. David Both has written [extensively][4] on the format of the file and how to use it, so I'm not going to cover that here. What I am going to say is that for new users, it can be a bit scary, and getting the timing set up is a bit of a pain.
|
||||
|
||||
### Introducing crontab-ui
|
||||
|
||||
There are some fantastic tools out there to help with this. My favorite is [crontab-ui][5], a web frontend written in Node.js that helps manage the crontab file. To install and start `crontab-ui` for personal use, I used the following commands.
|
||||
|
||||
```
|
||||
# Make a backup
|
||||
crontab -l > $HOME/crontab-backup
|
||||
# Install Crontab UI
|
||||
npm install -g crontab-ui
|
||||
# Make a local database directory
|
||||
mkdir $HOME/crontab-ui
|
||||
# Start crontab-ui
|
||||
CRON_DB_PATH=$HOME/crontab-ui crontab-ui
|
||||
```
|
||||
|
||||
Once this is done, simply point your web browser at`http://localhost:8000` and you'll get the crontab-ui web interface. The first thing to do is click “Get from Crontab” to load any existing jobs you may have. Then click **Backup** so that you can roll back any changes you make from here on out.
|
||||
|
||||
![Image of Crontab-UI][6]
|
||||
(Image by: Kevin Sonney, CC BY-SA 4.0)
|
||||
|
||||
Adding and editing cron jobs is very simple. Add a name, the full command you want to run, and the time (using cron syntax), and save. As a bonus, you can also capture logs, and set up the mailing of job status to your email of choice.
|
||||
|
||||
When you're finished, click**Save to Crontab**.
|
||||
|
||||
I personally really love the logging feature. With crontab-ui, you can view logs at the click of a button, which is useful when troubleshooting.
|
||||
|
||||
One thing I do recommend is to not run crontab-ui all the time, at least not publically. While it does have some basic authentication abilities, it really shouldn't be exposed outside your local machine. I don't need to edit my cron jobs frequently (anymore), so I start and stop it on demand.
|
||||
|
||||
Try crontab-ui the next time you need to edit your crontab!
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/22/5/cron-crontab-ui
|
||||
|
||||
作者:[Kevin Sonney][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/ksonney
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://opensource.com/sites/default/files/lead-images/lenovo-thinkpad-laptop-concentration-focus-windows-office.png
|
||||
[2]: https://creativecommons.org/licenses/by/3.0/us/
|
||||
[3]: https://opensource.com/sites/default/files/2022-04/Day01-1.png
|
||||
[4]: https://opensource.com/article/17/11/how-use-cron-linux
|
||||
[5]: https://opensource.com/%5Bhttps%3A//github.com/alseambusher/crontab-ui%5D%28https%3A//github.com/alseambusher/crontab-ui%29
|
||||
[6]: https://opensource.com/sites/default/files/2022-04/Day01-2.png
|
@ -1,107 +0,0 @@
|
||||
[#]: subject: "How I use open source to design my own card games"
|
||||
[#]: via: "https://opensource.com/article/21/12/open-source-card-game"
|
||||
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "hadisi1993"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
我如何利用开源设计自己的卡牌游戏
|
||||
======
|
||||
开源并不仅仅关于软件。开源是一种文化现象,天然适用于桌上游戏。
|
||||
![Deck of playing cards][1]
|
||||
|
||||
我喜欢优秀的游戏,尤其是桌游,因为桌游的很多特性都和开源相同。在现实生活中,当你和朋友坐在桌子旁一起玩卡牌游戏时,作为一个团队,你们可以一起决定小丑牌是不是万能的。还有,你们可以随意地决定当出了小丑牌后,手上有 Ace 牌的人的要不要舍弃 Ace 牌,或者出了方块皇后以后,每个人是不是都要把手上的牌传给右手边的人。换句话说,一心血来潮你们就可以重新制定规则,因为游戏不过是参与者们一致认同的条件集合罢了。对我来说,更棒的是你可以发明自己的游戏而不用破坏别人的游戏规则。有时候,我会作为一个业余爱好者来开发桌游。因为我喜欢结合自己的爱好,所以我倾向于只使用开源和公共的文化资源来设计游戏。
|
||||
首先,游戏有大致有两个关键特征,风格和机制,理解这一点非常重要。游戏风格指的是游戏的故事或者主题,游戏机制指的是游戏的规则和条件。这两者并不总是完全脱离的,举个例子,在设计一款以赛车为主题的游戏时,要求玩家迅速进行操作是非常巧妙的。然而,风格和机制通常是被分开对待的,所以我们完全可以为了好玩就去创造一款使用标准扑克牌,却以太空羊驼为主题的游戏。
|
||||
### 开源美术
|
||||
如果你去过现代艺术博物馆,你可能会发现自己站在一幅纯蓝色的画布前,无意中听到有人说起老话:“见鬼,这我也能做!”。但事实是,艺术是一项艰巨的工作。让艺术赏心悦目需要付出大量的思考,时间,自信和技巧。这也意味着艺术是你在设计游戏时中最困难的部分之一。
|
||||
|
||||
我有一些“技巧”来解决这个典型的麻烦。
|
||||
|
||||
#### 1\. 寻找共同点
|
||||
现在有很多免费开放的艺术作品,而且大部分质量上佳。问题在于,游戏通常需要不止一件作品。如果你正在设计一款纸牌游戏,你大概至少需要4或6个不同的元素(假设你的纸牌遵循塔罗牌),有可能还需要更多。如果你花足够多的时间在这上面,你可以在 [OpenGameArt.org][3] , [FreeSVG.org][4] , [ArtStation.com][5] , [DeviantArt.com][6]等网站上找到知识共享和公共领域([Creative Commons and Public Domain][2])的艺术作品。
|
||||
|
||||
如果你使用的网站没有知识共享(Creative Commons)搜索,输入以下文字到任何搜索引擎当中,“本工作处于知识共享许可协议之下”(引号很重要,所以不要把它们漏了),以及你常用的搜索引擎要求语法,以便将搜索限制到一个具体的站点当中(举个例子,**站点:deviantart.com**)。
|
||||
|
||||
一旦你有了一个美术库可供挑选素材,那就去辨别这些作品的主题,并根据主题分类。两个不同的人拍摄的机器人的照片可能看起来一点都不像,但它们的主题都是机器人。如果提供给你足够多机器人相关的美术素材,你可以围绕机器人这个主题构建你的游戏风格。
|
||||
|
||||
#### 2\. 委托他人定制共享艺术
|
||||
|
||||
你可以雇艺术家来为你定制艺术作品。我与使用开源绘画程序(如[Krita][7]和Mypaint)的艺术家一起合作。同时,我指定定制的艺术作品必须在知识共享署名份额许可证(Creative Commons Attribution - share - like,CC BY-SA)下授权,以作为合同的一部分。迄今为止,只有一位艺术家因为许可证的限制拒绝了我的提议,并且大多数人都很高兴自己的美术作品能够拥有更广阔的图景,而不仅仅是作为业余爱好者自己发行的游戏的一部分。
|
||||
|
||||
#### 3\. 创作自己的艺术
|
||||
|
||||
就像现代艺术馆之旅展示的那样,艺术是一个非常灵活的词。我发现只要我给自己设定一个目标,也就是我需要为一款游戏创造多少纸牌或令牌,我便能够从Linux上的丰富图像创造工具中选择一种去创作。这并不需要什么高难度的东西。就像现代艺术一样,你可以用蓝色和黄色的条纹,或者红色和白色的圆点花纹,或者绿色和紫色的锯齿线来涂一张卡片,只要你能把它们画出来,那么除了你以外,其他人永远不会知道你秘密地把它们当做仙宫里的贵族和小姐。想想通过运用图形应用程序,描摹日常物品的照片,重组经典的扑克花色和塔罗牌主题等一系列方式,你可以创造出的简单作品吧。
|
||||
|
||||
### 布局
|
||||
我用 [Inkscape][8] ,Scribus,或者 [GIMP][9] 来布局,这取决与我有什么素材以及我追求的设计方式是什么。
|
||||
|
||||
对于卡片,我发现简单的布局很容易实现,看上去也更轻松,纯色比渐变设打印的效果更好,还有,直观的图像是最棒的。
|
||||
|
||||
|
||||
![layout in Inkscape][10]
|
||||
|
||||
(Seth Kenlon, CC BY-SA 4.0)
|
||||
|
||||
我在一个单独的Inkscape文件中为我最新的游戏做了布局,这个游戏只使用了来自OpenGameArt.com上三四个不同艺术家的九张图片。在有着更大的美工集,更好的卡牌多样性的游戏中,我会为游戏中的每一种卡片在它们自己的文件中设计布局。
|
||||
|
||||
在为你的游戏素材做任何布局之前,要先了解你的目标输出是什么。如果你打算在家里打印游戏,那就做一些计算,搞清楚默认的纸张大小(有些是US Letter,或者是A4)可以容纳多少卡片、令牌或卡牌。如果你使用 [TheGameCrafter][11] 之类的桌游打印机打印,请下载好模板文件。
|
||||
|
||||
![printed cards][12]
|
||||
|
||||
(Seth Kenlon, CC BY-SA 4.0)
|
||||
|
||||
### 机制
|
||||
|
||||
游戏机制是游戏中最重要的部分。它们使一款游戏成为游戏。开发游戏规则并不一定是一个正式的过程。你可以一时兴起地创造了一款游戏,可以拿一块现有的游戏重组它的规则,直到它和原来不同,可以修改一款你不喜欢的游戏,也可以将两款不同的游戏组合在一起。从简单容易的地方做起,拿索引卡,标准扑克牌,或塔罗牌去试着模拟你的想象中游戏是如何工作的。你可以自己尝试早期的游戏想法,但最终,让朋友来帮忙是找出意外故障和进行优化的好方法。
|
||||
|
||||
经常测试游戏。与不同类型的玩家一起玩游戏,并听取他们的反馈。你的游戏可能会激发许多玩家去创造新的规则和想法,因此要将关于 _哪些内容搞砸了_ 的反馈与关于 _哪些内容可以做修改_ 的反馈分开。你不一定要去真的实践这些反馈意见,只需迭代你的想法,但还是要仔细考虑错误报告。
|
||||
|
||||
一旦确定了你想要让你的规则如何运作,就把它们写下来,使它们简短且容易分析( [short and easy to parse][13] )。你定的规则不必说服玩家去玩这款游戏,不必向他们解释策略,你也不必允许玩家重新设置规则,只要告诉玩家为了让游戏玩起来,他们应该采取的步骤就可以了。
|
||||
|
||||
最重要的是,考虑一下,将您的规则开源。分享经验是游戏的一切,这其中也应该包括规则。知识共享(Creative Commons)或打开游戏许可证(Open Gaming License)的规则集合允许其他玩家在你的作品上进行迭代、混合和创建。你永远不会知道,有人可能会因此想出一个变种游戏,让你喜欢它更胜过原来的版本!
|
||||
|
||||
|
||||
### 开源游戏
|
||||
|
||||
开源不仅仅关于软件。开源是一种文化现象,天然适用于桌游。花几个晚上的时间实验制作游戏。如果你刚刚入门,那就从一些简单的开始,比如下面的这个空白卡牌游戏:
|
||||
1. 找来一些朋友。
|
||||
2. 给每个人几张空白的索引卡,告诉他们在每张卡片上写一条规则。规则可以是任何的(“如果你穿着红色衣服,你就赢了”或“第一个站起来的人赢”等等)。
|
||||
3. 在你自己的索引卡片上,写上 _和_, _但是_,_但是不要_, _而且不要_, _除了_ ,以及其他的条件短语。
|
||||
4. 洗牌并将牌发给所有玩家。
|
||||
5. 每个玩家轮到的时候出一张牌。
|
||||
6. 最终目标是赢,但是玩家可以通过出 _和_, _但是_, _或者_ 卡片来修改决定赢家的条件。
|
||||
|
||||
|
||||
这是一个有趣的聚会游戏,同时是一份很好的介绍,告诉你如何像游戏设计者一样思考,它帮助你认识到什么适合作为游戏机制,什么不适合。
|
||||
|
||||
|
||||
还有,当然的,这是开源的。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/21/12/open-source-card-game
|
||||
|
||||
作者:[Seth Kenlon][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://opensource.com/users/seth
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/rich-smith-unsplash.jpg?itok=uzzS0gRa (Deck of playing cards)
|
||||
[2]: https://opensource.com/article/20/1/what-creative-commons
|
||||
[3]: https://opensource.com/article/21/12/opengameart.org/
|
||||
[4]: http://freesvg.org
|
||||
[5]: http://artstation.com
|
||||
[6]: http://deviantart.com
|
||||
[7]: https://opensource.com/article/21/12/krita-digital-paint
|
||||
[8]: https://opensource.com/article/21/12/linux-draw-inkscape
|
||||
[9]: https://opensource.com/content/cheat-sheet-gimp
|
||||
[10]: https://opensource.com/sites/default/files/inkscape-layout.jpg (Layout in Inkscape)
|
||||
[11]: https://www.thegamecrafter.com/
|
||||
[12]: https://opensource.com/sites/default/files/cards-printed_0.jpg (Printed cards)
|
||||
[13]: https://opensource.com/life/16/11/software-documentation-tabletop-gaming
|
@ -0,0 +1,72 @@
|
||||
[#]: subject: "How to make community recognition more inclusive"
|
||||
[#]: via: "https://opensource.com/article/22/5/inclusive-community-recognition"
|
||||
[#]: author: "Ray Paik https://opensource.com/users/rpaik"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "PeterPan0106"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
如何使社区认可更加包容
|
||||
======
|
||||
抛开具体的工作量,我们认为所有的贡献都弥足珍贵。当所有社区贡献者都能获得家庭般的赞赏时,他们会更倾向于继续为社区添砖加瓦。
|
||||
|
||||
![Global citizens unite to improve housing with open design and development][1]
|
||||
(图源: Opensource.com)
|
||||
|
||||
给予一个优秀的工作足够的认同和赞赏是我作为一个社区管理员最喜欢的事。我不但有机会能够对贡献者表示感激,同时还能为社区设立一个优秀的榜样。认同和赞赏可以是为了庆祝一个成就,例如有人帮助其他成员加入社区、减少技术债务或者贡献了激动人心的新功能。
|
||||
|
||||
但是,用来确定贡献量的规则可能会有难以预料的后果。例如某些社区管理员利用如下图所示的图表来表彰贡献,过度地强调了pull requests以及对代码库的贡献量。
|
||||
|
||||
![A bar graph ranking 15 contributors according the the number of PRs merged in a year, ranging from 250 at the top to 50 at the bottom.][2]
|
||||
(图源: Ray Paik, CC BY-SA 4.0)
|
||||
|
||||
![A bar graph ranking 10 contributing organizations by number of contributions, ranging from more than 15 to less than 5][3]
|
||||
(图源: Ray Paik, CC BY-SA 4.0)
|
||||
|
||||
使用这样的方法进行表彰会产生三个问题。首先,这样过度聚焦了对代码库的贡献。早年间,开源项目主要吸引开发者参与,所以自然而然许多贡献是围绕代码的。现在,越来越多的非开发者正在积极参与社区项目(例如通过用户组、会议和用户本身生产的内容),他们的大多数贡献在代码库以外的地方。这些贡献将不会出现在诸如*年度合并PR数量*这样的表格上。
|
||||
|
||||
其次,过度聚焦贡献指标(指那些易于用数字统计的),最终会演变为更大的数量甚至超越了更好的质量甚至是影响力。在上图的*贡献组织排行榜*中,大型组织因为具有更多的可用人力,相对于小型组织就会有更为显著的优势。通过对大型组织在数量上的表彰将可能导致小型组织感到权利被剥夺了。
|
||||
|
||||
最终,尽管本意并非如此,但许多人都会把这些数据看做对个人或组织影响力的排名。
|
||||
|
||||
基于此,我们最好避免仅仅通过指标数量来表彰对社区的贡献。
|
||||
|
||||
### 令社区表彰更有意义
|
||||
|
||||
如何让社区表彰更为包容并且能够覆盖不同的贡献形式呢?一些通信频道例如Discord、IRC、mailing list和Slack可以很好的表明一个成员的活跃度及其感兴趣的领域。例如每当我看到一些人热衷于解答问题或者帮助新用户时,我会十分开心。这些贡献并不会出现在社区的数据板上,但是让这些贡献得到应有的认同和感谢并广为人知是十分重要的。
|
||||
|
||||
社区数据板显然是开源社区重要的工具。但对于花费在建设数据板的时间上,我锱铢必较。迟早你会发现,不是所有的东西都可以有清晰的标准进行度量,即便你能够想出规则量化一件事,你也依然会发现这些规则具有局限性。
|
||||
|
||||
为了获取更多的关于贡献的信息,我经常会安排社区成员茶话会。这些对话经常能够告诉我他们做出贡献的原因、有多少工作量以及谁同时也参与进来了等等。
|
||||
|
||||
当我第一次与他们对话时,我经常听到他们提及找到回馈社区的方法十分重要,而他们也在寻找方法来提供力所能及的帮助。许多人甚至因不能在代码方面做出贡献而感到内疚,而我会向他们强调代码不再是开源唯一重要的东西。有时这些对话能让我有机会接触到同一城市或同一行业的社区成员,或者发现更多共同的兴趣点。维护这些关系将有助于提升归属感。
|
||||
|
||||
### 令社区表彰更具影响力
|
||||
|
||||
除了寻找更多的活动形式,我们也可以让这些活动以更具影响力的形式呈现。例如在看到优质贡献时及时赞美。一个快速的感谢回复会比一两个月之后的正式感谢更有效。许多人包括我自己,都会强调给予更为正式而合理的表彰和奖励,但我们应当谨记,奖励并非社区成员贡献的主要动力。认可好的工作并努力去接触贡献者会令贡献者感到受重视。
|
||||
|
||||
让其他成员参与到认可的过程中也是一个很好的主意。一旦社区达到了一定的规模,便很难事无巨细地知晓一切细节。如果引入一个成员提名机制则会很好地让大家注意到优秀的贡献。如果你的社区拥有十分正式的奖项,例如在年度会议或聚会上颁发的奖项,请让社区成员参与提名和投票。这不仅提供了成员参与进来的平台,也令这些来自成员投票的奖项更有意义。
|
||||
|
||||
最后给予认同和感谢也是一个认识成员并加深了解的重要机会。有时候颁奖仿佛在进行交易:“你做了X,所以我们给你颁发了Y”。多在介绍成员上花些时间,将令成员感到更受重视并加强归属感。
|
||||
|
||||
### 社区认可令社区更为健康
|
||||
|
||||
在提高开源社区的多样性、包容性和归属感方面,我们仍有许多工作亟待改善。更好的社区认可将在其中起着不可或缺的作用。确保所有的贡献都受到重视,让每一位贡献者都感到家庭般氛围和赞赏,将鼓励他们继续为社区贡献。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/22/5/inclusive-community-recognition
|
||||
|
||||
作者:[Ray Paik][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[PeterPan0106](https://github.com/PeterPan0106)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/rpaik
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://opensource.com/sites/default/files/lead-images/world_hands_diversity.png
|
||||
[2]: https://opensource.com/sites/default/files/2022-04/annual%20merged%20PRs.png
|
||||
[3]: https://opensource.com/sites/default/files/2022-04/top%20contributing%20orgs.png
|
@ -1,91 +0,0 @@
|
||||
[#]: subject: (A new open source operating system for embedded systems)
|
||||
[#]: via: (https://opensource.com/article/21/7/rt-thread-smart)
|
||||
[#]: author: (Zhu Tianlong https://opensource.com/users/zhu-tianlong)
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (tendertime)
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
|
||||
一种新的开源嵌入式操作系统
|
||||
======
|
||||
RT-Thread Smart 致力于物联网和边缘计算领域的开源。
|
||||
|
||||
![An intersection of pipes.][1]
|
||||
|
||||
目前[嵌入式操作系统][2]有巨大的需求,最好能够开源。 [RT-Thread][3]项目的研发团队花了三年时间,研究出了该项目的最新成果:RT-Thread Smart。 这是一款微内核的操作系统,主要针对中高端的处理器如具有内存管理单元(MMU)的 RISC-V,为嵌入式领域的所有行业提供了具有竞争力的软件平台。
|
||||
|
||||
### 谁需要 RT-Thread Smart?
|
||||
|
||||
RT-Thread Smart 是一款专业的、高性能的微内核操作系统,用于实时应用。它为所有市场的嵌入式设备(如安全(互联网协议摄像头)、工业控制、车载设备、消费电子及其他嵌入式科技应用,可谓一切)提供了开源基础。这一点十分重要:不像传统的物联网操作系统,一个微内核的操作系统可以填补传统实时操作系统 RTOS 和相对大型的操作系统如 Linux之间的不足,实现实时性、成本、启动速度等等各方面之间最好的取舍。
|
||||
|
||||
### RT-Thread Smart 的架构
|
||||
|
||||
RT-Thread Smart 通过 MMU 和系统调用将系统分割为内核模式和用户模式,并为每种模式区分了地址空间(一个 32 位系统可以提供 4 G 的地址空间)。
|
||||
|
||||
![RT-Thread Smart 架构][4]
|
||||
|
||||
(RT-Thread, [CC BY-SA 4.0)][5]
|
||||
|
||||
RT-Thread Smart 内核包括平台的基础功能,并支持定制化。RT-Thread Smart的用户应用环境使用[musl libc][6] 提供[POSIX][7] 接口调用和 C 语言的运行支持。 它也继承了原始的 RT-Thread 生态系统, 使用[SCons][8] 或者其他编译工具如 [Autotools][9], Makefiles, [CMake][10] 等等来支持开发,以及 RT-Thread 的现成在线软件包(撰写本文时超过342个)。您甚至可以将Linux应用程序(如 wget/cURL、BusyBox、OpenSSL和Simple DirectMedia Layer)移植到您的平台。
|
||||
|
||||
压缩的 RT-Thread Smart 内核仅 217 KB,搭配一个 127 KB 的根文件系统和大约 2 MB的存储占用,包括了对文件系统、网络协议栈、多媒体的完整支持。 RT-Thread 需要 3 到 5 秒完成启动,而在不运行其他功能组件时, RT-Thread Smart 需要的启动及准备时间不到 500 ms 。
|
||||
|
||||
通过整合用户权限接口组件,RT-Thread Smart 从上电到运行 UI 需要大约 1 秒。换句话说,这是一个非常小而且快的系统。当然,实时不是指启动,而是指系统随着时间推进而表现出的一致性。 对于 RT-Thread ,实时性能需要优先考虑,中断时延小于 1 μs, 满足大部分实时性要求严格的场景需求。
|
||||
|
||||
### RT-Thread Smart 和 RT-Thread
|
||||
|
||||
你可能想知道 RT-Thread Smart 和 RT-Thread 之间的不同。简单来说, RT-Thread Smart 是一个基于 RT-Thread RTOS的操作系统,但它整合了用户态的处理过程。RT-Smart 的内核部分本质上是 RT-Thread RTOS,它在虚拟地址上运行,加入了进程管理,使用进程间通信机制,虚拟内存/地址空间管理, ELF 加载器等等,以上特性全部在 RT-Thread RTOS 内实现,当 IwP 组件被禁用时, RT-Smart 会回归 RT-Thread RTOS。
|
||||
|
||||
以下是对比:
|
||||
|
||||
| | RT-Thread | RT-Thread Smart
|
||||
:-----| :----: | :----:
|
||||
支持芯片 | Cortex-M/R, RISC-V RV32IMAC (以及类似), Cortex-A MPU | Cortex-A等具有 MMU 的 MPU
|
||||
编译 | 内核和应用都编译到映像程序. | 内核和应用可以被分开编译和运行
|
||||
存储 | 使用线性地址空间(即使有 MMU),使用虚拟地址和物理地址 | 运行在内核占用超过 1GB 的32位操作系统, 用户态进程拥有彼此独立的地址空间,外设驱动程序必须通过虚拟地址访问外设
|
||||
运行错误 | 当一个应用程序失败时,整个系统就会崩溃 | 当应用程序失败时,它不会影响内核和其他进程的执行
|
||||
运行模式 | 多进程模型 | 多进程模型 (进程内支持多线程,内核支持内核线程)
|
||||
用户模型 | 单用户模型 | 单用户模型
|
||||
API | RT-Thread API, POSIX PSE52 | RT-Thread API (内核态和用户态), 额外有一个 POSIX API
|
||||
实时性 | 抢占式硬实时系统 | 抢占式硬实时系统
|
||||
资源使用 | 非常小 | 相对小
|
||||
调试 | 通常需要模拟器调试 | 根据软件调试,不需要模拟器
|
||||
|
||||
RT-Thread RTOS 非常紧凑,它的所有应用和子系统都编译到映像中,多任务运行并分享相同的地址空间。
|
||||
|
||||
RT-Thread Smart 是独立的。系统和应用被分别编译和运行。应用拥有完整且互相独立的地址空间。它也继承了 RT-Thread 优秀的实时性,同时也具有 POSIX 环境的特性。
|
||||
|
||||
|
||||
类似地,他们都与 RT-Thread API 兼容。RT-Thread RTOS 的应用可以被平滑移植到 RT-Thread Smart。
|
||||
|
||||
### 嵌入式开源
|
||||
|
||||
RT-Thread Smart 是一个开源项目,项目地址: [GitHub][11]. 您可以下载代码和文档,尝试提交评论和反馈,将该项目传播给更多开源倡导者。 嵌入式系统属于他们的用户,太多嵌入式开发人员没有认识到什么是可用的。
|
||||
|
||||
如果您是开发人员,请破解 RT-Thread Smart。随着 RT-Thread 项目的不断推进,我们希望创建物联网和边缘计算的令人激动的开源世界。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/21/7/rt-thread-smart
|
||||
|
||||
作者:[Zhu Tianlong][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[tendertime](https://github.com/tendertime)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/zhu-tianlong
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/LAW-Internet_construction_9401467_520x292_0512_dc.png?itok=RPkPPtDe (An intersection of pipes.)
|
||||
[2]: https://opensource.com/article/20/6/open-source-rtos
|
||||
[3]: https://www.rt-thread.io/
|
||||
[4]: https://opensource.com/sites/default/files/uploads/rt-thread-smart.png (RT-Thread Smart architecture)
|
||||
[5]: https://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
[6]: https://musl.libc.org/
|
||||
[7]: https://opensource.com/article/19/7/what-posix-richard-stallman-explains
|
||||
[8]: https://scons.org/
|
||||
[9]: https://opensource.com/article/19/7/introduction-gnu-autotools
|
||||
[10]: https://opensource.com/article/21/5/cmake
|
||||
[11]: https://github.com/RT-Thread/rt-thread/tree/rt-smart
|
@ -1,122 +0,0 @@
|
||||
[#]: subject: "Crop and resize photos on Linux with Gwenview"
|
||||
[#]: via: "https://opensource.com/article/22/2/crop-resize-photos-gwenview-kde"
|
||||
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
用 Gwenview 在 Linux 上裁剪和调整照片大小
|
||||
======
|
||||
Gwenview 是一个优秀的照片编辑器,适合业余摄影师在 Linux KDE 桌面上使用。
|
||||
![Polaroids and palm trees][1]
|
||||
|
||||
一张好的照片可以是一个强大的东西。它从字面意义上表达了你所看到的,但它也讲述了你所经历的。小事也能说明很多问题:你在拍照时选择的角度,某样东西在画面中显得多么大,以及相比之下,那些有意识的选择的缺失。
|
||||
|
||||
照片通常并不意味着记录真实发生的事情,相反,它们会成为你(摄影师)如何看待发生的事情的洞察力。
|
||||
|
||||
这就是照片编辑如此普遍的原因之一。当你把照片发布到你的在线图片库或社交网络时,你不应该发布一张不能准确表达照片所囊括的感受的照片。但同样的道理,你也不应该为了剪掉在最后时刻将头伸进你的家庭快照的随机人物而成为一个专业的照片合成师。如果你使用的是 KDE,你可以使用 Gwenview 这个休闲照片编辑器。
|
||||
|
||||
### 在 Linux 上安装 Gwenview
|
||||
|
||||
如果你正在运行 KDE Plasma 桌面,你可能已经安装了 Gwenview。如果你没有安装,或者你正在使用一个不同的桌面而你想尝试 Gwenview,那么你可以用你的软件包管理器安装它。
|
||||
|
||||
我建议同时安装 Gwenview 和 Kipi 插件集,它可以将 Gwenview 与几个在线照片服务连接起来,这样你就可以轻松上传照片。在 Fedora、Mageia 和类似发行版上:
|
||||
|
||||
|
||||
```
|
||||
`$ sudo dnf install gwenview kipi-plugins`
|
||||
```
|
||||
|
||||
在 Debian、Elementary 和类似版本上:
|
||||
|
||||
|
||||
```
|
||||
`$ sudo apt install gwenview kipi-plugins`
|
||||
```
|
||||
|
||||
### 使用 Gwenview
|
||||
|
||||
Gwenview 通常以两种方式之一启动。你可以在 Dolphin 中点击图片文件,并选择在 Gwenview 中打开它,或者你可以启动 Gwenview,在文件夹中寻找照片,Gwenview 或多或少地充当你的文件管理器。第一种方法是直接的方法,很适合快速方便地预览图片文件。第二种方法是当你浏览大量照片,不确定哪一个版本的照片是“正确的”时,你可能会使用。
|
||||
|
||||
无论你如何启动 Gwenview,界面和功能都是一样的:右边有一个工作区,左边有一个面板。
|
||||
|
||||
![Gwenview][2]
|
||||
|
||||
(Seth Kenlon [CC BY-SA 4.0][3], Photo courtesy [Andrea De Santis][4])
|
||||
|
||||
在左边的面板下面,有三个标签。
|
||||
|
||||
* 文件夹:显示你电脑上的文件夹的树状视图,以便你可以浏览你的文件,寻找更多的照片。
|
||||
* 信息:提供关于你目前正在查看的照片的元数据。
|
||||
* 操作:允许你对当前的照片进行小的修改,如在横向和纵向之间旋转,调整大小,和裁剪。
|
||||
|
||||
|
||||
|
||||
Gwenview 能察觉文件系统,所以你可以按键盘上的**右**或**左***箭头,查看文件夹中的上一张或下一张照片。
|
||||
|
||||
要离开单张照片视图并查看一个文件夹中的所有图片,请点击顶部工具栏中的**浏览**按钮。
|
||||
|
||||
![Browsing photos in a folder][5]
|
||||
|
||||
(Seth Kenlon,[CC BY-SA 4.0][3])
|
||||
|
||||
你也可以同时拥有两种视图。点击 Gwenview 底部的**缩略图栏**按钮,可以将当前文件夹中的其他图片以电影胶片的形式看到,而当前选择的照片则在主面板中。
|
||||
|
||||
![Thumbnail view][6]
|
||||
|
||||
(Seth Kenlon,[CC BY-SA 4.0][3])
|
||||
|
||||
### 用 Gwenview 编辑照片
|
||||
|
||||
数码照片是很常见的,因此在网上发布或与朋友分享之前,需要对照片进行细微的调整也是同样常见。有非常好的应用可以编辑照片,事实上,其中最好的一个是另一个 KDE 应用,叫做 Krita(你可以在我的[给摄影者的 Krita][7] 文章中阅读我如何使用它来处理照片),但是小的调整不应该需要艺术学位。这正是 Gwenview 所确保的:用一个随意但功能强大的应用进行简单而快速的照片调整,并与你的 Plasma 桌面的其他部分整合。
|
||||
|
||||
我们大多数人对照片进行的最常见的调整是:
|
||||
|
||||
**旋转**:当你的相机没有提供正确的元数据让你的电脑知道一张照片是要以横向还是纵向观看时,你可以手动修复它。
|
||||
**镜像**:许多笔记本电脑或面部摄像头模仿镜子,这很有用,因为这是我们习惯于看到自己的方式。但是,它会使写入倒退。**镜像**功能从右到左翻转图像。
|
||||
**翻转**:在数码相机和笔记本电脑上不太常见,但在手机上,无论你怎么拿手机,屏幕都会翻转,这种用颠倒的设备拍照的现象并不少见。**翻转**功能可将图像旋转 180 度。
|
||||
**调整大小**:数字图像现在通常具有超高清尺寸,有时这比你需要的要多得多。如果你通过电子邮件发送照片或将其发布在你想要优化加载时间的网页上,你可以将尺寸(和相应的文件大小)缩小到更小的尺寸。
|
||||
|
||||
|
||||
|
||||
所有这些工具都在**操作**侧面板或**编辑**菜单中可用。 这些操作具有破坏性,因此在你进行更改后,单击**另存为**以保存图像的_副本_。
|
||||
|
||||
![Cropping a photo in Gwenview][8]
|
||||
|
||||
(Seth Kenlon,[CC BY-SA 4.0][3],照片由 [Elise Wilcox][9] 提供)
|
||||
|
||||
### 分享照片
|
||||
|
||||
当你准备好分享照片时,单击顶部工具栏中的**分享**按钮,或转到**插件**菜单并选择**导出**。Gwenview 与 Kipi 插件集成在一起,可以在 [Nextcloud][10]、[Piwigo][11]、普通旧电子邮件以及 Google Drive、Flickr、Dropbox 等服务共享照片。
|
||||
|
||||
### Linux 上的照片编辑要点
|
||||
|
||||
Gwenview 拥有桌面照片管理器的所有必需品。如果你需要的不仅仅是基本功能,你可以在 Krita 或 [Digikam][12] 中打开一张照片,并根据需要进行重大修改。对于其他一切,从浏览、排名、标记和小调整,Gwenview 都很方便。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/22/2/crop-resize-photos-gwenview-kde
|
||||
|
||||
作者:[Seth Kenlon][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://opensource.com/users/seth
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/design_photo_art_polaroids.png?itok=SqPLgWxJ (Polaroids and palm trees)
|
||||
[2]: https://opensource.com/sites/default/files/kde-gwenview-ui.jpg (Gwenview)
|
||||
[3]: https://creativecommons.org/licenses/by-sa/4.0/
|
||||
[4]: http://unsplash.com/@santesson89
|
||||
[5]: https://opensource.com/sites/default/files/kde-gwenview-browse.jpg (Browsing photos in a folder)
|
||||
[6]: https://opensource.com/sites/default/files/kde-gwenview-thumbnail.jpg (Thumbnail view)
|
||||
[7]: https://opensource.com/article/21/12/open-source-photo-editing-krita
|
||||
[8]: https://opensource.com/sites/default/files/kde-gwenview-crop.jpg (Cropping a photo in Gwenview)
|
||||
[9]: http://unsplash.com/@elise_outside
|
||||
[10]: https://opensource.com/article/20/7/nextcloud
|
||||
[11]: https://opensource.com/alternatives/google-photos
|
||||
[12]: https://opensource.com/life/16/5/how-use-digikam-photo-management
|
@ -1,123 +0,0 @@
|
||||
[#]: subject: "5 Less Popular Features that Make Ubuntu 22.04 LTS an Epic Release"
|
||||
[#]: via: "https://www.debugpoint.com/2022/04/ubuntu-22-04-release-unique-feature/"
|
||||
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
使 Ubuntu 22.04 LTS 成为史诗版本的 5 个不太流行的功能
|
||||
======
|
||||
一份关于 Ubuntu 22.04 LTS 的次要特点的列表,这些特点使它成为迄今为止最好的 LTS 版本之一。
|
||||
|
||||
Canonical 的最新 LTS 版本 [Ubuntu 代号为 “Jammy Jellyfish”][1] 受到了全球用户的好评。有数百个新的微小功能,也有一些不太流行的功能,没有引起人们的注意。因此,这里有五个独特的 Ubuntu 22.04 版本功能,我们认为这些功能使它成为一个史诗般的版本。
|
||||
|
||||
![Ubuntu 22.04 LTS Desktop \(GNOME\)][2]
|
||||
|
||||
### Ubuntu 22.04 发布 – 五个独特的功能
|
||||
|
||||
#### 为数据驱动的方案进行了优化
|
||||
|
||||
数据分析和处理是当今每个企业的核心。而要做到这一点,你需要巨大的计算能力。Ubuntu 22.04 LTS 带来了开箱即用的 [NVIDIA 虚拟 GPU(vGPU)][3] 驱动支持。这意味着你可以利用 NVIDIA 虚拟 GPU 软件,使你能够在从物理 GPU 服务器共享的虚拟机中使用 GPU 计算能力。
|
||||
|
||||
不仅如此,如果你的业务依赖于 SQL Server,Ubuntu LTS for Azure 带来了 Ubuntu 中的 SQL Server,它由 “Micro$oft” 支持,提供优化的性能和可扩展性。
|
||||
|
||||
#### 改进的活动目录集成
|
||||
|
||||
此外,许多企业在多个工作站中为整个企业用户部署 Ubuntu。而且,部署工作站策略以监测和控制用户访问和各种关键业务控制非常重要。
|
||||
|
||||
活动目录实现了基于策略的工作站管理(在 Ubuntu 20.04 中引入),在这个版本中得到了进一步改善。除此之外,这个版本还带来了 [ADsys][4] 客户端,它有助于通过命令行远程管理组策略、权限升级和远程脚本执行。活动目录现在也支持从这个版本开始与高级组策略对象的安装程序集成。
|
||||
|
||||
#### 实时内核支持
|
||||
|
||||
此外,在 Ubuntu 22.04 LTS 发布期间,Canonical 宣布的一个有趣的消息是提供“实时”内核选项,现在是测试版。对于电信和其他行业来说,一个低延迟的操作系统对于时间敏感的工作是必需的。因此,考虑到这一点和渗透到这些领域的愿景,Ubuntu 22.04 LTS 带来了一个应用了 PREEMPT_RT 补丁的实时内核构建。它可用于 x86_64 和 AArch64 架构。
|
||||
|
||||
然而,[补丁][5]还没有在主线内核中出现,希望它能很快能出现。
|
||||
|
||||
#### 最新的应用、软件包和驱动程序
|
||||
|
||||
除了上述变化之外,这个版本还带来了大量的软件包和工具链的升级。例如,这个版本带来了基于用途的多种 Linux 内核类型,如 Ubuntu 桌面可以选择使用 [Kernel 5.17][6],而硬件启用的内核仍然是 5.15。
|
||||
|
||||
不仅如此,Ubuntu Server 的特点是长期支持 [Kernel 5.15][8],而 Ubuntu Cloud 镜像可以选择使用与云供应商合作的更优化的内核。
|
||||
|
||||
此外,如果你是 NVIDIA 用户,值得一提的是,ARM64 上的 NVIDIA 驱动的 Linux 限制模块现在已经可用(在 x86_64 中已经可用)。你可以使用 [ubuntu-drivers][9] 程序来安装和配置 NVIDIA 驱动。
|
||||
|
||||
由于核心模块和子系统的存在,一个完整的操作系统可以完美无缺地工作。因此,考虑到这一点,Ubuntu 22.04 LTS 对它们都进行了仔细的升级,以迎合这个很好的版本。以下是简介。
|
||||
|
||||
* GCC 11.2.0
|
||||
* binutils 2.38
|
||||
* glibc 2.35
|
||||
|
||||
|
||||
* Python 3.10.4
|
||||
* Perl 5.34.0
|
||||
* LLVM 14
|
||||
* golang 1.18
|
||||
* rustc 1.58
|
||||
* OpenJDK 11(可选使用 OpenJDK 18)
|
||||
* Ruby 3.0
|
||||
* PHP 8.1.2Apache 2.4.52
|
||||
* PostgreSQL 14.2
|
||||
* Django 3.2.12
|
||||
* MySQL 8.0
|
||||
* 更新的 NFS 以及 Samba Server
|
||||
* Systemd 249.11
|
||||
* OpenSSL 3.0
|
||||
|
||||
|
||||
* qemu 6.2.0
|
||||
* libvirt 8.0.0
|
||||
* virt-manager 4.0.0
|
||||
|
||||
|
||||
|
||||
#### 性能提升
|
||||
|
||||
但这还不是全部。由于一些长期等待的更新,你应该体验到更快的 Ubuntu 22.04 Jammy Jellyfish 体验,这些体验最终会在这个版本中出现。
|
||||
|
||||
首先,GNOME 桌面的[三重缓冲代码]长期悬而未决。当先前的帧缓冲落后时,三重缓冲会自动启用,它在 Intel 和树莓派驱动中产生了更快的桌面性能。不仅如此,代码还监控最后一帧,以便系统不会遇到过量缓冲的情况。
|
||||
|
||||
其次,改进的电源管理,在运行时对 AMD 和 NVIDIA 的 GPU 起作用,将帮助笔记本电脑用户。
|
||||
|
||||
此外,Wayland 现在是大多数系统的默认显示服务器,除了 NVIDIA GPU 硬件默认为 X11。Wayland 为你提供了更快的跨应用的桌面体验,包括网络浏览器。
|
||||
|
||||
最后,定制的 GNOME 42 及其[独特功能][11](例如平衡和省电电源配置文件)为重度笔记本电脑用户提供了更多优势。 此外,带有浅色/深色外观的新强调色和选定 GNOME 模块的 GTK4/libadwaita 端口只是这个史诗般的 Ubuntu 22.04 LTS 版本的一个插件。
|
||||
|
||||
### 结论
|
||||
|
||||
总而言之,我相信这是 Canonical 发布的最好的 LTS 版本之一,就上述所有内容的变化和许多其他方面而言。
|
||||
|
||||
我们希望它受到好评并在未来几天保持稳定。
|
||||
|
||||
* * *
|
||||
|
||||
我们带来最新的技术、软件新闻和重要的东西。通过 [Telegram][12]、[Twitter][13]、[YouTube][14] 和 [Facebook][15] 保持联系,不错过任何更新!
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.debugpoint.com/2022/04/ubuntu-22-04-release-unique-feature/
|
||||
|
||||
作者:[Arindam][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://www.debugpoint.com/author/admin1/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://www.debugpoint.com/2022/01/ubuntu-22-04-lts/
|
||||
[2]: https://www.debugpoint.com/wp-content/uploads/2022/04/Ubuntu-22.04-LTS-Desktop-GNOME-1024x580.jpg
|
||||
[3]: https://docs.nvidia.com/grid/latest/grid-vgpu-release-notes-ubuntu/index.html
|
||||
[4]: https://github.com/ubuntu/adsys
|
||||
[5]: https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-stable-rt.git/
|
||||
[6]: https://www.debugpoint.com/2022/03/linux-kernel-5-17/
|
||||
[8]: https://www.debugpoint.com/2021/11/linux-kernel-5-15/
|
||||
[9]: https://launchpad.net/ubuntu/+source/ubuntu-drivers-common
|
||||
[10]: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1441
|
||||
[11]: https://www.debugpoint.com/2022/03/gnome-42-release/
|
||||
[12]: https://t.me/debugpoint
|
||||
[13]: https://twitter.com/DebugPoint
|
||||
[14]: https://www.youtube.com/c/debugpoint?sub_confirmation=1
|
||||
[15]: https://facebook.com/DebugPoint
|
@ -0,0 +1,42 @@
|
||||
[#]: subject: "Bloomberg Open Sources Memray, A Python Memory Profiler"
|
||||
[#]: via: "https://www.opensourceforu.com/2022/04/bloomberg-open-sources-memray-a-python-memory-profiler/"
|
||||
[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
彭博社开源 Memray,一个 Python 内存分析器
|
||||
======
|
||||
![soft][1]
|
||||
|
||||
Memray 是一个内存分析器,由彭博社发,现在已经开源。它可以跟踪 Python 代码中的内存分配,包括本地扩展和 Python 解释器本身。内存剖析是了解程序如何利用内存的有力工具,因此可以检测内存泄漏或确定程序中哪些区域消耗的内存最多。
|
||||
|
||||
与 py-spy 等抽样内存剖析器相比,Memray 可以跟踪每个函数调用,包括对 C/C++ 库的调用,并详细显示调用栈。彭博社称,这并不以牺牲性能为代价,剖析只使解释代码的速度变慢一点。然而,原生代码剖析的速度较慢,因此需要直接启用。
|
||||
|
||||
Memray 可以根据获得的内存消耗数据生成各种报告,包括火焰图,这对快速、准确地识别最常见的代码路径很有价值。
|
||||
|
||||
据 EgdeDB 的联合创始人兼 CEO Yury Selivanov 称,该工具提供了以前无法获得的对 Python 应用的洞察力。Memray 可以用来从命令行中执行和分析 Python 应用。
|
||||
|
||||
```python
|
||||
$ python3 -m memray run -o output.bin my_script.py
|
||||
$ python3 -m memray flamegraph output.bin
|
||||
```
|
||||
|
||||
另外,你可以使用 pytest-memray 将 Memray 集成到你的测试套件中。你也可以用 -native 命令行选项对所有的 C/C++ 调用进行剖析,或者用 -live 命令行选项在程序执行过程中实时分析内存分配。Memray 可以在 Linux x86/64 系统上用 python3 -m pip install memray 来安装。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.opensourceforu.com/2022/04/bloomberg-open-sources-memray-a-python-memory-profiler/
|
||||
|
||||
作者:[Laveesh Kocher][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[geekpi](https://github.com/geekpi)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.opensourceforu.com/author/laveesh-kocher/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://www.opensourceforu.com/wp-content/uploads/2022/04/soft-1-696x363.jpg
|
@ -0,0 +1,115 @@
|
||||
[#]: subject: "Tools You Can Use for the Security Audit of IoT Devices"
|
||||
[#]: via: "https://www.opensourceforu.com/2022/05/tools-you-can-use-for-the-security-audit-of-iot-devices/"
|
||||
[#]: author: "Dr Kumar Gaurav https://www.opensourceforu.com/author/dr-gaurav-kumar/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "tendertime "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
物联网安全认证工具集锦
|
||||
======
|
||||
|
||||
数字化转型涉及数据驱动的决策与人工智能(AI)的结合。物联网(IoT)设备和小工具传播了重要的数据。由于物联网设备常常处于不安全的环境,而且由于缺乏内生安全机制的脆弱性,很难免于潜在的网络攻击。以下是一些用于实现安全认证的开源工具,可以降低此类攻击风险。
|
||||
|
||||
![Screenshot 2022-05-02 154427][1]
|
||||
|
||||
网络攻击者和嗅探器可以访问物联网设备的敏感数据,并利用这些信息对其他相关系统发起攻击。反病毒和计算机安全服务公司卡巴斯基(Kaspersky)表示,在 2021,物联网黑客数量同比增长了两倍多。
|
||||
|
||||
在很大程度上,黑客通过使用 Telnet 协议访问物联网网络,该协议为通过互联网与设备或服务器进行通信提供了命令行接口。根据研究报告,超过 58% 的物联网入侵使用各种协议以求实现挖掘加密货币、通过分布式拒绝服务(DDoS)攻击关闭系统、窃取机密数据的目的。
|
||||
由于人们在疫情期间居家使用物联网设备的时间增加,安全风险也随之上升。这些物联网小工具中的大部分无论是个人用还是商用,都缺乏基本的安全措施。人工智能和边缘计算等新技术也使网络和数据安全形势复杂化。卡巴斯基的一位安全专家 Dan Kaspersky 表示:智能小工具变得流行,攻击的数量也随之上升了。
|
||||
|
||||
![Key components in PENIOT][2]
|
||||
|
||||
### 物联网小工具的安全需要
|
||||
|
||||
网络攻击一直在进化,商业公司和政府部门都在采用越来越复杂的网络安全设施以防止他们的应用和架构免于在线攻击。全球渗透测试市场预计将从 2021 的 16 亿美元增长到 2026 年的 30 亿美元,2021 至 2026 年的复合年增长率为 13.8%。
|
||||
物联网设备的渗透测试是一个热门话题,在这一领域有大量研究。即使采用“设计安全”的方法,渗透对于识别真正的安全危险并采取适当的预防措施也是至关重要的。
|
||||
物联网部署中需要安全和隐私的关键部分和协议包括:
|
||||
|
||||
* 受限应用协议 (Constraint application protocol,CoAP)
|
||||
* 蓝牙低功耗(Bluetooth low energy,BLE)
|
||||
* 高级消息队列协议(Advanced message queuing protocol,AMQP)
|
||||
* 消息队列遥测传输(Message queuing telemetry transport,MQTT)
|
||||
|
||||
攻击者有多种可能的入口访问到联网设备。在物联网渗透测试(或安全审计)时,测试完整的物联网场景和生态。测试内容包括从单个层和嵌入式软件到通信协议和服务器的所有内容。服务器、在线接口和移动应用的测试并非物联网独有,但至关重要,因为它们涵盖了故障可能性很高的领域。物联网漏洞是电气、嵌入式软件和通信协议测试的重点。
|
||||
以下测试在评估联网设备的安全性时使用。这些测试都是使用不同的针对漏洞的高性能渗透测试和安全审计工具完成的:
|
||||
|
||||
* 通信端口中的攻击和操纵测试
|
||||
* 基于无线电信号捕获和分析的 IoT 嗅探
|
||||
* 接口和后门测试
|
||||
* 缓存溢出测试
|
||||
* 密码破解测试
|
||||
* 调试
|
||||
* 密码学分析
|
||||
* 固件操纵测试
|
||||
* 逆向工程
|
||||
* 内存泄漏
|
||||
|
||||
![][3]
|
||||
|
||||
### 物联网安全认证使用的开源工具
|
||||
|
||||
物联网设备在我们的日常生活中变得越来越普遍。智能自行车、健身跟踪器、医疗传感器、智能锁和相关工厂就是此类设备的几个例子。所有这些设备和小工具都可以使用开源工具来抵御网络攻击,本文将简要介绍其中一些工具。
|
||||
|
||||
#### PENIOT
|
||||
|
||||
https://github.com/yakuza8/peniot
|
||||
|
||||
PENIOT 是一种物联网渗透测试工具,使安全审计团队能够通过利用设备的连接来测试和破坏具有各种安全威胁的设备。测试主动和被动安全威胁都可以被测试。在确定目标设备和相关信息(或参数)后,可以进行主动安全攻击,例如改变系统资源、重放合法通信单元等。还可以分析被动安全威胁,例如破坏敏感数据的机密性或访问网络流量分析。
|
||||
|
||||
#### Objection
|
||||
|
||||
https://github.com/sensepost/objection
|
||||
Objective 是一个对物联网环境中使用的Android和iOS应用程序进行详细分析和安全审计的工具。目前许多智能小工具和设备都在使用安卓和 iOS 平台,使用该工具可以通过详细的日志和安全审计报告对这些平台进行分析。
|
||||
|
||||
#### Routersploit
|
||||
|
||||
https://github.com/threat9/routersploit
|
||||
|
||||
这个针对嵌入式设备的开源开发框架具有多个用于渗透测试和安全审计的功能和模块:
|
||||
* Exploits——漏洞评估
|
||||
* Creds–网络服务和证书的测试
|
||||
* Scanners——对目标进行详细的安全审计
|
||||
* Payloads–有效载荷和注入关键点的生成
|
||||
* Generic-执行和测试攻击
|
||||
|
||||
#### Wireshark
|
||||
|
||||
https://www.wireshark.org
|
||||
|
||||
Wireshark 是一款功能丰富的、免费的网络协议分析器。MQTT 等多种物联网协议可通过该工具实现有效分析。为了发现弱点,可以根据协议配置安全规则并检查流量。可以使用 tcpdump 通过命令行访问网络数据包分析器。此类工具用于检查物联网设备和网络之间交换的数据包。
|
||||
|
||||
#### Binwalk
|
||||
|
||||
https://www.kali.org/tools/binwalk
|
||||
|
||||
Binwalk是一种逆向硬件设计的工具。它是Kali Linux的关键组件之一,用于渗透测试、服务器指纹识别、安全审计和取证应用。
|
||||
|
||||
|
||||
#### Firmwalker
|
||||
|
||||
https://github.com/craigz28/firmwalker
|
||||
|
||||
Firmwalker是一款免费的开源工具,用于搜索和扫描固件文件系统,无论是解压缩还是挂载。可以使用此工具进行详细的安全审计。
|
||||
|
||||
在物联网和万物互联的时代,有必要设计并使用高性能工具包进行渗透测试和安全审计。随着物联网设备数量的增加,安全风险也在增加。
|
||||
|
||||
为了物联网和万物互联部署有更高级别的安全和隐私,有必要根据最新的协议和动态的流量定制化免费、开源的工具箱和软件包。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.opensourceforu.com/2022/05/tools-you-can-use-for-the-security-audit-of-iot-devices/
|
||||
|
||||
作者:[Dr Kumar Gaurav][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[tendertime](https://github.com/tendertime)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.opensourceforu.com/author/dr-gaurav-kumar/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://www.opensourceforu.com/wp-content/uploads/2022/03/Screenshot-2022-05-02-154427-696x422.png
|
||||
[2]: https://www.opensourceforu.com/wp-content/uploads/2022/03/Figure-1-Key-components-in-PENIOT.jpg
|
||||
[3]: https://www.opensourceforu.com/wp-content/uploads/2022/03/Screenshot-2022-05-02-153653-590x282.png
|
@ -0,0 +1,37 @@
|
||||
[#]: subject: "Package Analysis Examines Packages In Open Source Repositories In Real Time"
|
||||
[#]: via: "https://www.opensourceforu.com/2022/05/package-analysis-examines-packages-in-open-source-repositories-in-real-time/"
|
||||
[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
包分析实时检查开源仓库中的包
|
||||
======
|
||||
![openssf-logo][1]
|
||||
|
||||
开源安全基金会 (OpenSSF) 发布了一个新工具的测试版,它可以对发布到著名开源仓库的所有包进行动态分析。包分析项目试图通过识别和警告用户任何恶意行为来保护开源包,目的是增强对开源软件的信任并加强软件供应链的安全性。
|
||||
|
||||
OpenSSF 说:“包分析项目旨在了解开源仓库上可用包的行为和功能:它们访问哪些文件,它们连接到哪些地址,以及它们运行哪些命令?”
|
||||
|
||||
该基金会的 Caleb Brown 和 David A. Wheeler 补充说:“该项目还跟踪软件包随时间的行为变化,以确定以前安全的软件何时开始出现可疑行为。”
|
||||
|
||||
该程序在为期一个月的测试运行中发现了 200 多个发布到 PyPI 和 NPM 的恶意程序包,其中大多数流氓库依赖于依赖混淆和仿冒攻击。谷歌是 OpenSSF 的成员,它支持包分析计划,强调“在发布包之前审查包以确保用户安全”的重要性。
|
||||
|
||||
去年,该公司的开源安全团队提出了软件工件的供应链级别(SLSA)架构,以验证软件包的完整性并防止未经授权的更改。这一发展是在开源生态系统越来越多地被武器化,用加密货币矿工和数据窃贼等恶意软件攻击开发者的情况下进行的。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.opensourceforu.com/2022/05/package-analysis-examines-packages-in-open-source-repositories-in-real-time/
|
||||
|
||||
作者:[Laveesh Kocher][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[geekpi](https://github.com/geekpi)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.opensourceforu.com/author/laveesh-kocher/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://www.opensourceforu.com/wp-content/uploads/2022/05/openssf-logo-696x418.jpg
|
@ -0,0 +1,89 @@
|
||||
[#]: subject: "How I manage my own virtual network with ZeroTier"
|
||||
[#]: via: "https://opensource.com/article/22/5/zerotier-network"
|
||||
[#]: author: "Kevin Sonney https://opensource.com/users/ksonney"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
我如何用 ZeroTier 管理自己的虚拟网络
|
||||
======
|
||||
ZeroTier 是一个加密的虚拟网络主干,允许多台机器像在一个网络上一样通信。
|
||||
|
||||
![Person drinking a hat drink at the computer][1]
|
||||
(图片由: [Jonas Leupe][2] 发布于 [Unsplash][3])
|
||||
|
||||
*自动化是现在的一个热门话题。在我作为网站可靠性工程师(SRE)的日常工作中,我的部分职责是将尽可能多的重复性任务自动化。但是我们当中有多少人在日常生活、非工作生活中这样做呢? 今年,我专注于自动化工作,以便我们可以专注于重要的事情。*
|
||||
|
||||
在实现一切自动化的同时,我遇到了一些远程站点的困难。我不是一个网络专家,所以我开始研究我的选择。在研究了各种虚拟专用网络(VPN)、硬件端点、防火墙规则以及支持多个远程站点的所有东西后,我感到困惑、暴躁,并对这一切的复杂性感到沮丧。
|
||||
|
||||
然后我发现了 [ZeroTier][4]。ZeroTier 是一个加密的虚拟网络主干,允许多台机器像在一个网络上一样通信。代码全部是开源的,你可以自行托管控制器,或者使用 [ZeroTierOne][5] 服务,有免费或付费计划。我现在使用的是它们的免费计划,它很强大、稳固,而且非常稳定.
|
||||
|
||||
因为我使用的是网络服务,所以我不打算详细介绍运行控制器和根服务。ZeroTier 在他们的[文档][6]中对如何做到这一点有完整的参考,而且非常好。
|
||||
|
||||
在 Web 用户界面中创建了我自己的虚拟网络之后,客户端的安装几乎是微不足道的。ZeroTier 有 APT、RPM、FreeBSD 和许多其他平台的软件包,所以让第一个节点上线不需要什么努力。
|
||||
|
||||
安装完毕后,客户端就会连接到控制器服务,并为节点生成一个唯一的 ID。在 Linux 上,你使用 `zerotier-cli` 命令来加入一个网络,使用 `zerotier-cli join NETWORKID` 命令:
|
||||
|
||||
```
|
||||
$ sudo zerotier-cli info
|
||||
200 info 469584783a 1.x.x ONLINE
|
||||
```
|
||||
|
||||
你也可以使用 `zerotier-cli` 来获得连接和可用节点的列表,改变网络设置,并离开网络。
|
||||
|
||||
![Image of Setting up a New Node][7]
|
||||
(图片由:Kevin Sonney,CC BY-SA 4.0)
|
||||
|
||||
在加入一个网络后,你必须批准该节点的访问,可以通过网络控制台或调用应用程序编程接口(API)。这两种方法在 ZeroTier 网站上都有记录。连接两个节点后,无论你身在何处或位于防火墙的哪一侧,你都可以相互连接,就像你们在同一个建筑的同一个网络中。我的主要用例之一是[远程访问我的家庭助理设置][8],而不需要打开防火墙端口或将其暴露在互联网上(关于我的家庭助理设置和相关服务的更多信息,见后文)。
|
||||
|
||||
我自己做的一件事是为内部 DNS 设置了一个 [Beta ZeroNDS 服务][9]。这为我管理自己的名称服务或为我所有的私人主机和 IP 地址创建公共记录节省了很多复杂性。我发现说明是非常直接的,并且能够在大约 5 分钟内为我的私人网络建立一个 DNS 服务器。每个客户必须允许 Zerotier 设置 DNS,这在 GUI 客户中非常简单。要使它在 Linux 客户端上使用,请使用:
|
||||
|
||||
```
|
||||
$ sudo zerotier-cli setNETWORKID allowDNS=1
|
||||
```
|
||||
|
||||
在你添加和删除主机时,不需要其他更新,它“就能工作”。
|
||||
|
||||
```
|
||||
$ sudo zerotier-cli info
|
||||
200 info 469584845a 1.x.y ONLINE
|
||||
$ sudo zerotier-cli join
|
||||
93afae596398153a 200 join OK
|
||||
$ sudo zerotier-cli peers
|
||||
200 peers
|
||||
<ztaddr> <ver> <role> <lat> <link> <TX> <RX> <path>
|
||||
61d294b9cb - PLANET 112 DIRECT 7946 2812 50.7.73.34/9993
|
||||
62f865ae71 - PLANET 264 DIRECT 7946 2681 50.7.76.38/9993
|
||||
778cde7190 - PLANET 61 DIRECT 2944 2901 103.195.13.66/9993
|
||||
93afae5963 1.x LEAF 77 DIRECT 2945 2886 35.188.31.177/41848
|
||||
992fcf1db7 - PLANET RECT 79124 DI47 2813 195. 181.173.159/9993
|
||||
```
|
||||
|
||||
我只提到了它所有功能的表面。ZeroTier 还允许在 ZeroTier 网络之间建立桥接,高级路由规则等。它们甚至有一个 [Terraform provider][10] 和一个[很棒的 Zerotier 文章][11]清单。到今天为止,我正在使用 ZeroTier 连接四个物理站点的机器,其中三个在 NAT 防火墙后面。Zerotier 的设置很简单,而且管理起来几乎完全不费力。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/22/5/zerotier-network
|
||||
|
||||
作者:[Kevin Sonney][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[geekpi](https://github.com/geekpi)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/ksonney
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://opensource.com/sites/default/files/lead-images/coffee_tea_laptop_computer_work_desk.png
|
||||
[2]: https://unsplash.com/@jonasleupe?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText
|
||||
[3]: https://unsplash.com/s/photos/tea-cup-computer?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText
|
||||
[4]: https://github.com/zerotier
|
||||
[5]: https://www.zerotier.com/pricing
|
||||
[6]: https://docs.zerotier.com
|
||||
[7]: https://opensource.com/sites/default/files/2022-04/SecondDay02-2.png
|
||||
[8]: https://opensource.com/article/22/5/remote-home-assistant
|
||||
[9]: https://github.com/zerotier/zeronsd
|
||||
[10]: https://github.com/zerotier/terraform-provider-zerotier
|
||||
[11]: https://github.com/zerotier/awesome-zerotier
|
Loading…
Reference in New Issue
Block a user