Merge branch 'master' of https://github.com/LCTT/TranslateProject into translating

This commit is contained in:
geekpi
2022-12-14 08:57:49 +08:00
16 changed files with 1693 additions and 193 deletions

View File

@@ -0,0 +1,90 @@
[#]: collector: (lujun9972)
[#]: translator: (CanYellow)
[#]: reviewer: (wxy)
[#]: publisher: (wxy)
[#]: url: (https://linux.cn/article-15344-1.html)
[#]: subject: (Understanding Linus's Law for open source security)
[#]: via: (https://opensource.com/article/21/2/open-source-security)
[#]: author: (Seth Kenlon https://opensource.com/users/seth)
理解开源安全中的林纳斯定律
======
<ruby>林纳斯定律<rt>Linus's Law</rt></ruby>即“<ruby>只要有足够多的眼睛关注,任何漏洞都无处隐藏<rt>given enough eyeballs, all bugs are shallow</rt></ruby>”。那么林纳斯定律是如何应用于开源软件安全的呢?
![][0]
这篇文章讨论 Linux 对开源软件安全的影响。
开源软件的一个常被赞扬的优点是它的代码能够被任何人审查(安全专家通常称之为“代码审计”)。然而,如果你真的去问很多开源软件用户他们上一次检查代码是什么时候。你大概只能收获他们茫然的眼神或者是喃喃的低语。此外,对于一些相当大型的开源应用,有效地审查每一行代码也是困难的。
根据上述这些稍显不安的事实,我们不得不思考:如果没有人察看这些代码,它是开源还是闭源真的有关系吗?
### 你应该相信开源吗?
计算机爱好者倾向于作出认为开源软件比其他软件更加安全的传统假设。我们通常不会讨论这意味者什么:比较的基础是什么(比什么“更”安全?),或者上述结论是如何得到的。这是一个危险的陈述,因为它表明只要你将一些东西称之为“开源”,它就自动如魔法般地继承了更高的安全性。这不是开源,事实上,这正是开源安全非常反对的。
除非你已经亲自审计并理解了软件代码,否则就不应该假定一个应用程序是安全的。一但你做到了这一点,就可以给予它 <ruby>终极信任<rt>ultimate trust</rt></ruby>。_终极信任_ 不是对计算机而言的,而是对你本人而言的,至少在这一应用程序被渗透攻击之前,你信任它是因为你选择了相信它是安全的。
使用者本人是唯一可以对软件代码给予终极信任的人,因此任何人想要获得这样的享受都必须亲自审查代码。相信其他人的话是不管用的。
在你已经亲自审计并理解了软件代码之前,你对一个应用程序给予的最大信任度是一个范围,可以是从 _根本不信任__相当信任_ 之间。然而我们并没有一个关于信任程度的标准对照表,这是一个你必须亲自做出的个人选择。如果你已经从非常信任的人那里听说了一款应用程序是安全的,那么你可能会更信任这个软件,而不是信任那些你没有得到信任建议的东西。
然而,因为无法审计专有(闭源)软件代码,你不可能给予它 _终极信任_
### 林纳斯定律
现实很骨感,并不是每个人都是程序员,同时也不是每个程序员都有时间检查数以万计的代码行。因此如果你没有亲自审查代码,你就只能选择(一定程度上)相信那些 _亲自_ 审查了代码的人。
那么,有哪些人会审查代码呢?
林纳斯定律声称 _只要有足够的眼睛关注,任何漏洞都无处隐藏_,然而我们并不知道多少双眼睛是“足够”的。请不要低估这一数量,应用程序往往经过了远超你想象数量的人员审查。原始开发人员以及后续开发人员显然清楚他们自己写下的代码,不过开源软件往往都是团队成果,开源时间越长,阅读了代码的开发人员越多。新加入的开发人员也必须回顾项目代码的核心部分,因为他们必须学习基础代码以加入新的功能。
同时,为了使开源软件能够在 Linux 发行版上可用,负责开源软件打包分发的开发人员会加入多个项目。有时一个应用程序可能会在不熟悉项目代码的情况下打包,但是大多数时候,开源软件打包人员都是熟悉所打包的项目代码的。这不仅仅是因为他们不想在他们不信任的软件上签名,还由于他们可能不得不修改代码来使得程序能够正确编译。漏洞报告人员和漏洞修复人员一般也是熟悉代码库的,因为他们需要尝试解决小到运行异常,大到程序崩溃的问题。当然,一些漏洞报告人员不是通过亲自审查项目代码,而是通过关注明显未按预期工作的现象,无意中揭示了代码漏洞。系统管理员通常都是通晓用户依赖的重要应用软件的代码的。最后,还有一些安全研究人员,他们专门深入代码内部以揭露潜在的漏洞。
### 信任与透明
很多人先入为主的认为大型软件的审计是基本不可能的,因为它由数以万计的代码行组成。不要被软件运行所需的代码量欺骗了。我们不需要真的阅读数以万计的代码行。代码是高度结构化的,可被利用的代码漏洞仅仅只是其中的一行,不过它通常影响软件的全部功能。
当然,也有例外。有时仅仅一个系统调用或者链接一个有缺陷的库文件就可能引入一系列漏洞。幸运的是,多亏安全研究人员以及漏洞数据库所扮演的积极角色,这些错误相对而言是容易发现的。
一些人指着错误追踪系统,比如 <ruby>[通用漏洞披露][2]<rt>Common Vulnerabilities and Exposures</rt></ruby>CVE网站并推断开源软件显而易见是不安全的。毕竟已经向公众公开了大量的安全风险涉及许多开源项目。但是不要被数据欺骗了。只是因为我们看不到现闭源软件的漏洞并不意味着闭源软件中不存在漏洞。事实上已经有很多针对闭源软件的漏洞攻击提出了闭源软件也是存在漏洞的。区别在于开发者以及用户可以查看开源软件的 _所有的漏洞_ 从而降低漏洞的影响。这是扩大对开源软件信任的系统机制的一部分,却正是闭源软件软件所缺少的。
对于任何代码而言,可能永远没有“足够的眼睛”来发现漏洞,但是开发社区越壮大、越多样化,越有机会发现和修复代码中的缺陷。
### 信任与人
在开源社区中,参与同一项目的众多开发者已经发现“不安全”的漏洞,却保持沉默的的可能性是微乎其微的,因为人们很少同意以这样的方式合谋。我们已经看到了在应对 COVID-19 的过程中,人类的行为是如何不一致了,在这里也一样:
* 我们都发现了漏洞(病毒)。
* 我们知晓如何避免它传播(待在家里)。
* 然而病毒还是在持续传播,因为总是有一个或者多个人偏离了消减疫情的计划。
开源软件中的漏洞也一样,如果有人发现了漏洞总会公之于众(当然,我们说的是“假如”能够发现)。
然而就专有软件而言,有很大可能参与项目的众多开发者即使注意到不安全的漏洞却仍然保持沉默,因为专有模式依赖于薪水。如果一个开发者将漏洞泄漏出来,他可能只是伤害了该专有软件的声誉,进而降低软件的销售额;或者,在更糟糕的情况下,他可能因此而丢了工作。开发人员拿着薪水秘密地研究软件,往往不会谈论其缺陷。如果你曾经是一名开发者,你可能曾经签署过 NDA LCTT 译注:<ruby>保密协议<rt>Non-Disclosure Agreement</rt></ruby>),也被培训过商业秘密的重要性,等等不一而足。专有软件鼓励在面对严重的秘密缺陷时保持沉默,更多时候甚至是强制要求沉默。
### 信任与软件
不要信任未经你审计的软件。
如果你必须相信未经你审计的软件,那么选择相信已经面向那些更有可能将软件缺陷公之于众的开发者公开代码的软件。
开源软件并没有比专有软件继承更高的安全性,但是修复它的系统得到了更好的规划、实施和人员配置。
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/2/open-source-security
作者:[Seth Kenlon][a]
选题:[lujun9972][b]
译者:[CanYellow](https://github.com/CanYellow)
校对:[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/yearbook-haff-rx-linux-file-lead_0.png?itok=-i0NNfDC (Hand putting a Linux file folder into a drawer)
[2]: https://cve.mitre.org
[0]: https://img.linux.net.cn/data/attachment/album/202212/13/114637dg6w34suucuupucv.jpg

View File

@@ -0,0 +1,146 @@
[#]: subject: "Linux Kernel 6.1 Released With Initial Rust Code"
[#]: via: "https://news.itsfoss.com/linux-kernel-6-1-release/"
[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
[#]: collector: "lkxed"
[#]: translator: "wxy"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-15343-1.html"
Linux 内核 6.1 发布,包含初始 Rust 支持
======
> Linux 内核 6.1 现在可以使用了!考虑到这是今年最后一个稳定版本,它有可能是 LTS 版本。
![Linux 内核 6.1 发布,包含初始 Rust 支持][1]
Linux 内核 6.1 终于来了,它以改进和支持新硬件的形式为我们提前带来了节日礼物。🎄
它是在 Linux 内核 6.0 发布的几个月后出现的,当时的命名方案从 5.x.x 改为 6.x以减少小版本号太多带来的混乱。
像往常一样,今年的最后一个内核版本 **可能被作为一个长期发布的版本**,从而得到几年的支持。
Linux 内核 6.1 如约带来了许多改进,并初步支持了 AMD 和英特尔尚未发布的硬件。
在发布公告中Linus Torvalds 提到:
> 所以到现在,我们晚了一个星期,不过上周已经没那么紧迫了,而且很顺利,我对 6.1 的状态要比几个星期前感到放心多了,当时似乎还比较紧迫。当然,这意味着现在我们有一个可怕的合并窗口,就在节日假期之前,而且我也有一些节前的旅行要安排。因此,虽然推迟一周是正确的做法,但它确实使 6.2 合并窗口的时间变得很尴尬。
他进一步补充说,考虑到每个人都应该过一个平静的假日季,他将会更严格的对合并窗口的规则进行要求。
### 🆕 Linux 内核 6.1 有什么新内容?
在这个版本中,我们看到了各种变化,例如改进了对 ARM SoC 的支持,初步支持英特尔即将推出的 Meteor Lake CPU以及 AMD 的 RDNA 3 GPU。
你可以在其 [公告][2] 中找到更多技术细节。
#### 对 Rust 的实验性支持
![linux 6.1 rust][3]
虽然我们预计这将发生在 Linux 内核 6.0,但它在 Linux 内核 6.1 中才出现,这将允许开发者用 Rust 编写内核代码。
#### 英特尔 Meteor Lake 的启用
![英特尔][4]
英特尔的开源开发者一直在努力工作,为即将到来的 Meteor Lake 芯片提供初步支持。
它被称为英特尔的第一个 7 纳米微架构,开发人员已经向 DRM-next 推送了各种提交。
这些包括各种固件提交,对 Meteor Lake CPU 及其集成 GPU 的初步支持。
#### 对 AMD RDNA 3 图形的初始支持
![AMD][5]
这段时间AMD 一直在为 Linux 内核 6.1 添加 RDNA 3 图形架构的代码。
这包括对他们即将推出的 GPU 的支持和对他们之前的 GPU 产品的各种修复。
你可以通过 [这里][6] 查看完整的补丁列表。
#### 对 AMD 电脑的优化
![优化 AMD][7]
AMD PMFAMD 平台管理框架)已经被引入这个内核版本。
该驱动旨在为 AMD PC 更安静、更高效的运行提供支持。
它利用板载传感器与 AMD 的各种热能和功率内核驱动来实现这一目标。
#### 改进的 ARM SoC 支持
![arm soc][8]
Linux 内核 6.1 带来了对 ARM SoC 的更多支持,例如:
- 联发科 MT8186
- 德州仪器 AM62A
- 恩智浦 i.MX8DXL
- 高通 IPQ8064 的各种变体
该内核还对一些智能手机提供了支持,如 PINE64 PinePhone Pro、索尼 Xperia 1 IV 和三星 Galaxy E5/E7/Grand Max。
#### 存储的改进
内核在存储方面有很多改进。
例如Btrfs 在这次更新中带来了异步缓冲写入,提供了超过 2 倍的吞吐量。
然后是对 EXT4 的改进,包括性能优化和一些错误修复。
与此同时,[EROFS][9] 为 Linux 内核 6.1 引入了基于 FSCache 的共享域支持。
#### 🛠️ 其他改进措施
这些并不是 Linux 内核 6.1 提供的唯一改进,以下是其他一些值得注意的改进:
- 对微软 Surface Pro 9 和 Surface Laptop 5 的支持。
- 启用 AMD Zen 4 LbrExtV2。
- AMD CPU “缓存到缓存”和内存报告功能。
- 引入 AMD IOMMU v2。
- 为 Wi-Fi 802.11be/Wi-Fi 7 做准备。
### 如何安装 Linux 内核 6.1
如果你使用基于 Arch 的发行版或 Fedora你可以轻松升级。
不幸的是,如果你使用其他 Linux 发行版Pop!_OS 和 Linux Lite 在某种程度上可以是个例外),你可能无法直接从发行版中获得升级。
然而,几乎所有的 Linux 发行版都明确地允许你安装最新的内核。这里有一个关于 Ubuntu 的指南👇
> **[如何在 Ubuntu 中安装最新的主线 Linux 内核版本](https://itsfoss.com/upgrade-linux-kernel-ubuntu/)**
所以,如果你乐于冒险(并且知道自己在做什么),你可以在 [Linux 内核档案][10] 上找到列出的较新的内核。你可以下载 [tarball][11] 来测试它。
然而,像往常一样,如果你不想冒任何风险,我们建议等待你的 Linux 发行版推送更新。最好是坚持使用你的 Linux 发行版默认提供的东西。
> **[下载 Linux 6.1][12]**
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/linux-kernel-6-1-release/
作者:[Sourav Rudra][a]
选题:[lkxed][b]
译者:[wxy](https://github.com/wxy)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://news.itsfoss.com/author/sourav/
[b]: https://github.com/lkxed
[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/linux-kernel-6-1-release.png
[2]: https://lore.kernel.org/lkml/CAHk-=wj_HcgFZNyZHTLJ7qC2613zphKDtLh6ndciwopZRfH0aQ@mail.gmail.com/T/#u
[3]: https://news.itsfoss.com/content/images/2022/12/linux-6-1-rust.png
[4]: https://news.itsfoss.com/content/images/2022/12/intel-meteor.png
[5]: https://news.itsfoss.com/content/images/2022/12/amd-rdna-3.png
[6]: https://lists.freedesktop.org/archives/dri-devel/2022-September/373430.html
[7]: https://news.itsfoss.com/content/images/2022/12/amd-rdna-3--1-.png
[8]: https://news.itsfoss.com/content/images/2022/12/amd-rdna-3--2-.png
[9]: https://en.wikipedia.org/wiki/EROFS
[10]: https://www.kernel.org/
[11]: https://git.kernel.org/torvalds/t/linux-6.1.tar.gz
[12]: https://www.kernel.org

View File

@@ -0,0 +1,89 @@
[#]: subject: "Unfortunately, Komodo IDE is now Open Source!"
[#]: via: "https://news.itsfoss.com/komodo-ide-open-source/"
[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Unfortunately, Komodo IDE is now Open Source!
======
Komodo IDE is now open-source and not at a great time. Curious to take a peek at the source code? Learn more here.
![Unfortunately, Komodo IDE is now Open Source!][1]
Komodo IDE is a popular integrated development environment for dynamic programming languages that was introduced back in May 2000.
Used by many programmers around the world, it has proved to be quite helpful over the years.
Unfortunately, all good things end.
This is the case with Komodo IDE, it has now been retired, and all development has ceased.
But there's a silver lining to this 😃
The company behind it, called '[ActiveState][2]', has now made the code openly available for anyone to use and modify.
> 💡 Similar to "Komodo Edit" application, which was made open-source in 2008.
They have cited numerous factors for their decision, which I will explain.
### So, Why Open-Source it Now?
![komodo ide][3]
ActiveState felt that it was becoming difficult to maintain Komodo IDE without encountering various compatibility issues on newer systems.
**What were the contributing factors?:** There were many factors that led to this. Take, for instance, the frameworks on which Komodo was built, '_XUL and XULRunner_'; they were retired by Mozilla back in 2016.
Then there was the amount of effort needed to make Komodo compatible with newer systems. They would have to completely rewrite Komodo using a newer framework they felt was not feasible.
And the final nail in the coffin was the fact that there are already a lot of free code editors available on the market right now doing better. They feel that '_its not a good business to be in anymore_'.
**What now?:** ActiveState have made the whole Komodo IDE codebase available on their [GitHub repo][4] without the revision history.
They have provided 3.2 million lines of code that consist of various programming languages such as Python, JavaScript, XUL, HTML, C++, and more.
Anyone can copy, change, and use the code as they see fit.
The forums for Komodo will be kept open for a year from their [original announcement][5], as it contains a treasure trove of information relating to Komodo.
They are also open to moving the content to a different platform if anyone is willing to take on the task of managing it.
On this topic, one of the employees from the Komodo dev team, Carey Hoffman, had this to add:
> The extensive existing help information in the forums can act as a significant knowledge base for users and continue to be a central place to ask questions of the community and receive answers. Ill very likely be there periodically on my own time to help where I can, such as when people are trying to build Komodo at home, or having difficulty making any kind of code edits.
### Community Gets a Chance
This can come in pretty handy for the community in general, as people can now try their hand at creating something truly special out of the code for Komodo.
A Reddit user, [yvrelna][6] mentions:
> I never used Komodo, but it's great to hear that Komodo is now freed from its cage. Companies should do this more often. If they're unwilling to support a software anymore, they should just release it as open source.It would've been better if the software is open source to begin with of course, but there's really no reason for a company to retain their codebase closed if they have no interest in maintaining it.Only thing is that they should've done it sooner, when there are still enough people that still cares about the software to possibly pick it up to maintain it.
Indeed, the user is not wrong here; companies should go the extra mile by making code for their deprecated software open so that the community has a chance to create something out of it or even maintain it for the long term.
ActiveState seems to have understood this sentiment and has thanked its users by open-sourcing Komodo.
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/komodo-ide-open-source/
作者:[Sourav Rudra][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/sourav/
[b]: https://github.com/lkxed
[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/komodo-ide-goes-open-source.png
[2]: https://www.activestate.com/
[3]: https://news.itsfoss.com/content/images/2022/12/Komodo_IDE.png
[4]: https://github.com/ActiveState/OpenKomodoIDE
[5]: https://www.activestate.com/blog/activestate-komodo-ide-now-open-source/
[6]: https://www.reddit.com/user/yvrelna/

View File

@@ -0,0 +1,88 @@
[#]: subject: "Get ready to upgrade your video creation with Kdenlive 22.12"
[#]: via: "https://debugpointnews.com/kdenlive-22-12/"
[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Get ready to upgrade your video creation with Kdenlive 22.12
======
![][1]
**Kdenlive 22.12: the free and open-source video editor scores another sizable update.**
The best free and [open-source video editor][2] Kdenlive 22.12, released with new filters, UI improvements, user-requested features and bug fixes. This release improves Kdenlive on top of its [already existing features][3] and gives you a platform to create professional-quality videos.
Heres whats new.
![Kdenlive 22.12 Running in Linux Mint][4]
### Kdenlive 22.12: New Features
A new “Timelines Guides” dock now lists all the timeline markers in your video project. Click on the timeline video clip to view the markers in this new dock. This is an imp[rovement in the marker features introduced in the past release.
In addition to that, three new audio graph filters were introduced. They are audio level visualization filter, spectrum filter and waveform filter. These can be used in keyframe animations for more granular controls. Talking about keyframes, you can now use the standard CTRL+C and CTRL+V to copy/paste keyframes.
Furthermore, if you are working in a complex timeline, you can now remove all the spaces between clips with two new options remove spaces after playhead and all after playhead.
![Two new UI improvements on timeline][5]
Kdenlive also started work to move to Qt6 from Qt5 build for the upcoming releases. A continuous integration build pipeline is added for Qt6 to check the current build. However, the current version is not yet complete per the transition timeline. However, it is expected that Kdenline will be built with Qt6 as stable by mid of 2023.
On top of the above changes, here are some key updates on this release:
- More custom colour codes for categories
- Improved marker management with edit, add/remove multiple markers and import/export.
- Kdenlive now sends the content of the timeline to Glaxnimate (version >= 0.5.1), which then shows it as background.
- Set maximum cache with custom data storage size
- Option to hide the menu bar, replacing it with a hamburger menu
- The settings panel is cleaned up with better visibility and removed obsolete entries
- Work underway for Qt6 and KDE Frameworks 6 migration
- Improved Track composition
### Download and upgrade
If you are already running Kdenlive via the official distro repo, you should get this update within a couple of days. Simply update your system to get this version.
Those of you running the Flatpak version, run the following command to get the update.
```
flatpak update org.kde.kdenlive
```
For fresh download and installation, visit the following page.
[Download Kdenlive][6]
If you prefer Flatpak, you can install this version from Flathub using the following command, after [setting up your system as Flatpak][7].
```
flatpak install flathub org.kde.kdenlive
```
Via [release announcement][8]
--------------------------------------------------------------------------------
via: https://debugpointnews.com/kdenlive-22-12/
作者:[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://debugpointnews.com/author/dpicubegmail-com/
[b]: https://github.com/lkxed
[1]: https://debugpointnews.com/wp-content/uploads/2022/12/kdenlive-head.jpg
[2]: https://www.debugpoint.com/best-free-video-editors-linux-ubuntu/
[3]: https://www.debugpoint.com/kdenlive-features/
[4]: https://debugpointnews.com/wp-content/uploads/2022/12/Kdenlive-22.12-Running-in-Linux-Mint.jpg
[5]: https://debugpointnews.com/wp-content/uploads/2022/12/Two-new-UI-improvements-on-timeline.jpg
[6]: https://kdenlive.org/en/download/
[7]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/
[8]: https://kdenlive.org/en/2022/12/kdenlive-22-12-released/

View File

@@ -0,0 +1,73 @@
[#]: subject: "Firefox 108 unlocks the power of music on the web with new WebMIDI API support"
[#]: via: "https://debugpointnews.com/firefox-108/"
[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Firefox 108 unlocks the power of music on the web with new WebMIDI API support
======
![][1]
**Firefox 108 is now available to download, bringing the following new features.**
The final Firefox release of this year is here Firefox 108, closing an eventful year of this free and open-source web browser from Mozilla.
![Firefox 108 Running in Ubuntu][2]
### Firefox 108: Best new features
If you are a music enthusiast, then some good news for you. Firefox now supports the [WebMIDI API][3] inside your browser with proper access controls. When you try to access MIDI devices via Firefox, then you get a prompt for installing a “[site permission add-on][4]” to enable this API.
In addition, Firefox 108 enabled import maps by default, which means web pages can now control the behaviour of JavaScript imports more easily. And if you use Firefox, youll be happy to hear that it now supports proper colour correction for images tagged with ICCv4 profiles.
Furthermore, developers added a handy keyboard shortcut press SHIFT+ESC to open the Process Manager and quickly identify any processes using too many resources. And on Windows 11, Firefox added efficiency mode for processes used in background tabs to help save on resources.
Elsewhere, your browsers bookmark toolbar gets an option “Only show on New Tab” state, which now works correctly for blank new tabs. Also improved in this release is the handling of non-ASCII characters while exporting PDF forms from web pages.
If you are a web developer, Firefox 108 also arrives with a handful of Math function updates which are summarised alongside other vital changes:
- The `source` element supports `height` & `width` attributes when it is a child of a `picture` element.
- Trigonometric functions are now enabled with the `layout.css.trig.enabled` preference set to true by default. This allows the use of sin(), cos(), tan(), asin(), acos(), atan(), and atan2() functions
- CSS `calc-constant`type is implemented to allow for well-known constants such as pi and e within math functions
- Container query length units are now supported via the the `layout.css.container-queries.enabled` preference, which is set to false by default
### Download and update
For Linux distributions, if you used Firefox via your distributions official repository, then you should get this update within a couple of days from today.
However, you can also download the compressed version of this release from the below page. For other download options, do visit our [Firefox download guide][5].
[Download Firefox 108][6]
Happy browsing!
- [Official release notes][7]
- [Beta108 release notes][8]
- [Developer release notes][9]
--------------------------------------------------------------------------------
via: https://debugpointnews.com/firefox-108/
作者:[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://debugpointnews.com/author/dpicubegmail-com/
[b]: https://github.com/lkxed
[1]: https://debugpointnews.com/wp-content/uploads/2022/04/firefox-head.jpg
[2]: https://debugpointnews.com/wp-content/uploads/2022/12/Firefox-108-Running-in-Ubuntu.jpg
[3]: https://developer.mozilla.org/en-US/docs/Web/API/Web_MIDI_API
[4]: https://support.mozilla.org/en-US/kb/site-permission-addons
[5]: https://www.debugpoint.com/download-firefox/
[6]: https://ftp.mozilla.org/pub/firefox/releases/108.0/
[7]: https://www.mozilla.org/en-US/firefox/108.0/releasenotes/
[8]: https://www.mozilla.org/en-US/firefox/108.0beta/releasenotes/
[9]: https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/108

View File

@@ -0,0 +1,106 @@
[#]: subject: "Kdenlive 22.12 Release Adds Useful New Features"
[#]: via: "https://news.itsfoss.com/kdenlive-22-12-released/"
[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Kdenlive 22.12 Release Adds Useful New Features
======
Kdenlive 22.12 upgrade is here with nice enhancements across the board.
![Kdenlive 22.12 Release Adds Useful New Features][1]
Kdenlive is an open-source cross-platform video editing software built by the KDE community, which has been around since 2003.
Built using Qt and KDE Frameworks, it has been the editor of choice for many users out there.
Recently, the latest upgrade to it i.e Kdenlive 22.12 has been made available, let me take you through the release.
### 🆕 Kdenlive 22.12: What's New?
![kdenlive 22.12][2]
Kdenlive 22.12 features numerous improvements, with over 350 commits made. It brings in many new features, bug fixes, and prepares the code base for future releases.
Let me take you through some of the notable improvements with this release.
#### Revamped Guide and Marker System
![kdenlive 22.12 guides dock][3]
The guide and marker system on Kdenlive has received a major overhaul, with the key changes being:
- All marker and guide features are now made available in the new 'Guides' dock.
- The 'Guides' dock also lets you easily seek, search, sort, and filter through the various markers and guides. It also allows for navigation with keyboard.
- You can now create many categories to suit your needs, compared to the nine categories limit previously.
- It is now also possible to edit, add, or remove multiple markers at a time, and the import/export of markers has been improved.
#### Improved Glaxnimate Integration
![kdenlive 22.12 glaxnimate integration][4]
Kdenlive already had support for Glaxnimate with its previous release, but now the developers have taken it a step further.
The editor now lets you send the content of your Kdenlive timeline to [Glaxnimate][5] (version >= 0.5.1), which will then show up in the background.
> 💡 Glaxnimate is an open-source 2D vector drawing and animation program.
This allows you to create animations that play together with your videos in a much easier fashion than was possible before.
#### Various UX Improvements
Kdenlive includes a variety of usability improvements, such as:
- A new hamburger menu in the toolbar that can be used instead of the menu bar.
- 'What's This?' Text has been added in several places to show what a specific element does.
- You can now define a maximum size for the cached data stored by Kdenlive in the environment settings.
- The 'Settings' page has received a cleanup, and now features a reordered list of all the important options.
#### Keyframeable Audio Graph Filters
Existing audio graph filters like the audio level visualization filter, audio spectrum filter and audio wave form filter are now keyframeable with Kdenlive 22.12.
They also fixed several effects that were affected due to syntax errors in the XML code and added automated tests to the build system to avoid such an issue in the future.
#### 🛠️ Other Changes
Besides the changes listed above, here are some of the other notable ones:
- Improved track composition.
- PipeWire as SDL output.
- The Color Picker has been fixed on Wayland.
- Pixabay as the new video provider.
- Improved search performance.
If you want to dive deep into the release notes, refer to the [official announcement][6].
### 📥 Download Kdenlive 22.12
For Linux, the latest release is available as an AppImage, on Flathub, and as an Ubuntu PPA.
Head over to the [official website][7] to download those.
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/kdenlive-22-12-released/
作者:[Sourav Rudra][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/sourav/
[b]: https://github.com/lkxed
[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/kdenlive-22-12-release.png
[2]: https://news.itsfoss.com/content/images/2022/12/Kdenlive_22.12.png
[3]: https://news.itsfoss.com/content/images/2022/12/Kdenlive_22.12_Guides_Dock.png
[4]: https://news.itsfoss.com/content/images/2022/12/Kdenlive_22.12_Glaxnimate.png
[5]: https://glaxnimate.mattbas.org
[6]: https://kdenlive.org/en/2022/12/kdenlive-22-12-released/
[7]: https://kdenlive.org/en/download/

View File

@@ -2,7 +2,7 @@
[#]: via: "https://www.opensourceforu.com/2022/06/wifi-6-promises-much-more-than-faster-speeds/"
[#]: author: "Sharon Katta https://www.opensourceforu.com/author/sharon-katta/"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: translator: "cool-summer-021"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
@@ -84,7 +84,7 @@ via: https://www.opensourceforu.com/2022/06/wifi-6-promises-much-more-than-faste
作者:[Sharon Katta][a]
选题:[lkxed][b]
译者:[译者ID](https://github.com/译者ID)
译者:[cool-summer-021](https://github.com/cool-summer-021)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@@ -1,100 +0,0 @@
[#]: subject: "Learn the OSI model in 5 minutes"
[#]: via: "https://opensource.com/article/22/10/osi-model-network-communications"
[#]: author: "Anamika https://opensource.com/users/anamika"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Learn the OSI model in 5 minutes
======
Get the basics of the Open Systems Interconnection (OSI) framework for conceptualizing communication within a computer system.
The Open Systems Interconnection (OSI) model is a standard for how computers, servers, and people communicate within a system. It was the first standard model for network communications and was adopted in the early 1980s by all major computer and telecommunications companies.
The OSI model provides a universal language for describing networks and thinking about them in discrete chunks, or layers.
### Layers of the OSI model
The model describes the seven layers through which computer systems communicate over a network.
1. [Application layer][2]
2. [Presentation layer][3]
3. [Session layer][4]
4. [Transport layer][5]
5. [Network layer][6]
6. [Data link layer][7]
7. [Physical layer][8]
Each of these layers has its own way of working, with its own set of protocols that distinguish it from the others. This article provides a breakdown of the layers one by one.
### Application layer
The application layer is implemented in software. It is the layer used to interact with applications.
Consider the example of sending a message. The sender will interact with the application layer and send the message. The application layer sends the message to the next layer in the OSI Model, the presentation layer.
### Presentation layer
The data from the application layer is forwarded to the presentation layer. The presentation layer receives the data in the form of words, characters, letters, numbers, and so on, and converts them into machine representable binary format. This process is known as translation.
At this stage, ASCII characters (American Standard Code for Information Interchange) are converted into Extended Binary Coded Decimal Interchange Code (EBCDIC). Before the converted data goes further, it also undergoes encoding and encryption processes, using the SSL protocol for encryption and decryption.
The presentation layer provides abstraction and assumes that the layers following it will take care of the data forwarded to them from this layer. It also plays a role in compression of the data. The compression can be lossy or lossless, depending on various factors beyond this article's scope.
### Session layer
The session layer helps in setting up and managing connections. The main work of this layer is to establish a session. For example, on an online shopping site, a session is created between your computer and the site's server.
The session layer enables the sending and receiving of data, followed by the termination of connected sessions. Authentication is done before a session is established, followed by authorization. Like the previous layers, the session layer also assumes that, after its work is done, the data will be correctly handled by the subsequent layers.
### Transport layer
The transport layer manages data transportation and its own set of protocols for how data will be transferred. The data received here from the session layer is divided into smaller data units called segments. This process is known as segmentation. Every segment contains the source's and destination's port numbers and a sequence number. Port numbers identify the application on which the data needs to be sent. Note that the data is transferred in chunks. The sequence numbers are used to reassemble the segments in the correct order.
The transport layer takes care of the flow control, or the amount of data transferred at a given time. It also accounts for error control, such as data loss, data corruption, and so on. It makes use of an error-detecting value known as a checksum. The transport layer adds a checksum to every data segment to check whether the sent data is received correctly. Data is then transferred to the network layer.
### Network layer
The network layer helps communicate with other networks. It works to transmit received data segments from one computer to another located in a different network. The router lives in the network layer.
The function of the network layer is logical addressing (IP Addressing). It assigns the sender's and receiver's IP addresses to each data packet to ensure it is received at the correct destination. The network layer then routes the data packets. Load balancing also happens in the network layer to make sure that no overloading takes place. Next, the data is transported to the data link layer.
### Data link layer
The data link layer allows direct communication with other devices, such as computers and hosts.
It receives data packets containing the IP addresses of the sender and receiver from the network layer and does the physical addressing, assigning the media access control (MAC) addresses of the sender and receiver to a data packet to form a frame.
### Physical layer
This layer consists of all the hardware and mechanical elements of a system, including the configuration of wires, pins, adapters, and so forth. The data received here by the preceding layers is in the form of 0s and 1s. The physical layer converts this data and transports it to local media via various means, including wires, electrical signals, light signals (as in optical fiber cables), and radio signals (as in WiFi).
Note that the physical layer works at the receiver's end and transports the received signal to the data link as a frame (by converting it back to bits). The frame is moved to the higher layers, and ultimately the required data is received at the application layer, which is the software.
### Conclusion
The OSI model is helpful when you need to describe network architecture or troubleshoot network problems. I hope this article gave you a clearer understanding of the elements this model.
--------------------------------------------------------------------------------
via: https://opensource.com/article/22/10/osi-model-network-communications
作者:[Anamika][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/anamika
[b]: https://github.com/lkxed
[1]: https://opensource.com/sites/default/files/lead-images/code_computer_development_programming.png
[2]: https://opensource.com/article/22/10/osi-model-network-communications#application-layer
[3]: https://opensource.com/article/22/10/osi-model-network-communications#presentation-layer
[4]: https://opensource.com/article/22/10/osi-model-network-communications#session-layer
[5]: https://opensource.com/article/22/10/osi-model-network-communications#transport-layer
[6]: https://opensource.com/article/22/10/osi-model-network-communications#network-layer
[7]: https://opensource.com/article/22/10/osi-model-network-communications#data-link-layer
[8]: https://opensource.com/article/22/10/osi-model-network-communications#physical-layer

View File

@@ -0,0 +1,301 @@
[#]: subject: "How to Install the Minimalist ArchBang Linux Distro"
[#]: via: "https://itsfoss.com/install-archbang/"
[#]: author: "Sreenath https://itsfoss.com/author/sreenath/"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
How to Install the Minimalist ArchBang Linux Distro
======
ArchBang is a minimal and lightweight [Arch Linux based distribution][1]. It uses the i3 window manager. With its minimal nature, ArchBang can help you revive your old computer or low-end devices.
There are two ways to install Arch Bang:
- Using the guided installer script
- Following Arch wiki
No prizes for guessing that using the guided installer script will be easier to follow.
In this tutorial, Ill show you the steps for installing ArchBang with its text-based installer script.
Please [check if your computer has UEFI or the legacy BIOS system][2]. Some steps are different for them.
I have performed the demo in a virtual machine. And hence the wifi configuration part is not there. Internet connection is not mandatory here; you can also install it offline. You can connect to wifi from within the system after successfully installing ArchBang.
Also, this method will remove any other operating system installed on your disk. Please be mindful of that.
### Download ArchBang Live ISO
To install ArchBang, you need the live ISO first.
You can go to their [official website and download the required ISO][3], as shown in the below screenshot.
![go to archbang iso images to download the iso file from sourceforge][4]
It brings you to their Sourceforge page. Download the ISO, which is approximately 1.2 GiB in size.
### Create the Live USB of ArchBang
Once downloaded, you should make a bootable USB of ArchBang. You can [use software like Balena Etcher][5] to create it. Its quite simple to use.
Plug in your USB, browse to the downloaded ISO file and then hit the Flash button.
![etcher flash][6]
### Using text-based ArchBang installer
ArchBang live ISO will bring you to the default i3 desktop with conky running.
![archbang live iso home screen][7]
You have two methods to start the installation process:
- Press **Super + I** (as per desktop conky) to start installation directly.
- Press **Super + T** to enter the terminal and use the command: `sudo abinstall`
A terminal with several options will appear when you do the above step:
![archbang installer][8]
The above screenshot shows the main menu of ArchBang installer. You can select each section with the associated number.
When you complete each category of the above installer, it will return to this menu and you can select the next category by pressing the corresponding number and Enter key.
Also, the completed sections will be checked with an “x” mark.
#### Step 1: Select / Set Partition
On the new installer screen, enter “1” to start [partitioning the disk][9].
Inside this, select the **Default** option. The installer has several tools to partition the disk, like cfdisk, fdisk, parted, etc. I used fdisk to do the job.
##### Partitioning for Non-UEFI system
Once the tool is selected, it will ask to choose the storage device. In my case, it was `/dev/sda` . Select the appropriate choice in your context.
To start partitioning, enter “n” for a new partition. After that, select **Primary Partition.**
![creating partition for non uefi system][10]
For [non-UEFI systems][2], you can create one single root partition for all purposes. So, accept all the default values for “First Sector” and “Last Sector”. Then, press “w” to write the changes.
On the next screen, you have to choose your filesystem and swap method. In this tutorial, I am using the EXT4 file system and Swap to File as the swap method.
So set those according to the screenshot.
![format the disk and select ext4 partition][11]
##### Partitioning for UEFI system
For UEFI users, you need to have two partitions, one EFI, with a 550 MB space, and another main root partition with the rest of the space (Swap as a file setting).
Press n and select **Primary Partition.** Then select the Partition number as 1.
Accept the default value for “First sector”. Now enter “+550M” as the value for “Last Sector”.
Once again, press “n” and select **Primary Partition**. Accept the default value for the first and last sectors.
![create two partitions for efi system][12]
Press “t” to change the type and select the partition number “1” or `/dev/sda1`, whose type is to be changed from “Linux” to “EFI”.
Select the partition type as EFI, as shown below:
![change type of smaller partition to efi][13]
Press “w” to write the changes. Then it will ask for filesystem selection. Here, you need to select the larger partition as the root partition (/dev/sda2, that is option 2 in the below screenshot).
![select larger partition for root partition in efi system][14]
Select EXT4 filesystem. This will again ask for mounting EFI partition.
![select efi partition][15]
In this step, you need to select the EFI partition at `/dev/sda1` and choose the mount point as `/boot/efi` . This will ask for format. Give consent by pressing “y”.
Also, dont forget to choose the swap to file option.
#### Step 2: Start ArchBang installation
This is pretty simple. Select the Install ArchBang option from the main menu by pressing the corresponding number (2 in this case). It will start the installation process.
![installing archbang progress bar][16]
You should wait for some time to complete the installation.
#### Step 3: Set Hostname
Once installation is completed, Select the 3rd option on the main menu, which is for setting the hostname. You need to enter a hostname.
![provide hostname and press enter][17]
#### Step 4: Set Location
Location/Time Zone is typically mentioned in Zone/City format. I used Asia/Kolkata as the time zone.
The installer provides the list of available zones and cities; you need to enter the number corresponding to your choice.
![set time zone info][18]
Also, set your location the same way.
#### Step 5: Set Hardware Clock
You have two options; Set Hardware Clock to UTC or Local Time.
![set hardware clock time][19]
There are two time standards:** localtime** and Coordinated Universal Time (UTC). The localtime standard depends on the current time zone, while UTC is the global time standard and is independent of time zone values.
Enter your choice and press Enter key.
#### Step 6: Set Locale
Usually, you set the locale to en_US, if you are unsure what to do. That should be fine for most English-speaking users.
If you want to use the operating system in some other language like French, Spanish, Dutch etc, you can choose the appropriate locale from the list.
![set locale][20]
#### Step 7: Desktop Keyboard Layout
Similarly, most users should be fine with US keyboard. If you have some other keyboard (like French, or Italian), enter the appropriate choice from the available ones.
![set desktop keyboard layout][21]
#### Step 8: Configure Bootloader
In ArchBang, you get GRUB2, Syslinux, or Systemd for the bootloader. To make it simple, I am selecting GRUB2 from the choice.
![select grub2 as bootloader][22]
Now, it will ask you to specify the method to install GRUB. Select **Automatic** and press enter.
![select automatic grub][23]
#### Step 9: Set Root Password
Now, you should enter the root password. Select “Root Password” from the main menu.
![enter and confirm root password][24]
Here, enter and confirm the root password.
#### Step 10: Create a New User
Using a system with only a Root User is not secure. So, you should create a new user. In this installer, select the 10th option. Here, you should type a user name, password and confirm the password.
![create user and password][25]
Once done, press Enter to go to the main menu.
#### Step 11: Finish configuration
At this stage, you have reviewed all the configurations needed. You can now make it to effect by entering the letter “d” as shown in the screenshot below:
![enter d option to finish the installation][26]
This will ask permission to reboot your system.
![press y to reboot your system to new archbang][27]
Entering “y” will reboot your system to the newly installed ArchBang system.
### Post Installation Tweaks
Once rebooted, you will land in the same console. Probably there is no [display manager][28] installed. Here you should enter the username and password and press enter.
![login to archbang through tty][29]
This will bring you to the i3WM.
![installed archbang with i3wm][30]
Once installed, you need to do a couple of update tasks. **Connect to the internet first**.
Firstly, you need to update the Pacman keys and archlinux-keyring.
To do the same, open a terminal by pressing **Super + T** and run the following commands one by one:
```
sudo pacman-key init
sudo pacman-key populate
sudo pacman -Syyu archlinux-keyring
```
This will update system packages and keyrings. Reboot your system.
Now, you should install a display manager. I prefer LightDM display manager. So open a terminal and enter the following command to install it:
```
sudo pacman -S lightdm lightdm-gtk-greeter
```
Once installed, use the following command to start the Lightdm service:
```
sudo systemctl enable lightdm.service
```
You will get a good and minimal login screen from the next reboot.
![lightdm login screen in archbang][31]
You can now enjoy ArchBang Linux according to your liking.
### Wrapping Up
ArchBang brings a good Arch Linux experience coupled with a not-so-hard installer and i3WM as the window manager.
I understand that using a text-based installer like this one could be intimidating for some users. But then, it is [one of the joys of the Arch Linux][32] domain. It feels like a challenge and when you successfully install it, it gives you a sense of accomplishment.
I have tried to detail all the steps with the necessary explanation. Please let me know if you face any issues or if you have any questions.
--------------------------------------------------------------------------------
via: https://itsfoss.com/install-archbang/
作者:[Sreenath][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://itsfoss.com/author/sreenath/
[b]: https://github.com/lkxed
[1]: https://itsfoss.com/arch-based-linux-distros/
[2]: https://itsfoss.com/check-uefi-or-bios/
[3]: https://sourceforge.net/projects/archbang/files/
[4]: https://itsfoss.com/wp-content/uploads/2022/12/go-to-archbang-iso-images-to-download-the-iso-file-from-sourceforge.png
[5]: https://itsfoss.com/install-etcher-linux/
[6]: https://itsfoss.com/wp-content/uploads/2022/06/etcher-flash.png
[7]: https://itsfoss.com/wp-content/uploads/2022/12/archbang-live-iso-home-screen.webp
[8]: https://itsfoss.com/wp-content/uploads/2022/12/archbang-installer.png
[9]: https://itsfoss.com/partition-managers-linux/
[10]: https://itsfoss.com/wp-content/uploads/2022/12/creating-partition-for-non-uefi-system.png
[11]: https://itsfoss.com/wp-content/uploads/2022/12/format-the-disk-and-select-ext4-partition.png
[12]: https://itsfoss.com/wp-content/uploads/2022/12/create-two-partitions-for-efi-system.png
[13]: https://itsfoss.com/wp-content/uploads/2022/12/change-type-of-smaller-partition-to_efi.png
[14]: https://itsfoss.com/wp-content/uploads/2022/12/select-larger-partition-for-root-partition-in-efi-system.png
[15]: https://itsfoss.com/wp-content/uploads/2022/12/select-efi-partition.png
[16]: https://itsfoss.com/wp-content/uploads/2022/12/installing-archbang-progress-bar.png
[17]: https://itsfoss.com/wp-content/uploads/2022/12/provide-hostname-and-press-enter.png
[18]: https://itsfoss.com/wp-content/uploads/2022/12/set-time-zone-info.png
[19]: https://itsfoss.com/wp-content/uploads/2022/12/set-hardware-clock-time.png
[20]: https://itsfoss.com/wp-content/uploads/2022/12/set-locale.png
[21]: https://itsfoss.com/wp-content/uploads/2022/12/set-desktop-keyboard-layout.png
[22]: https://itsfoss.com/wp-content/uploads/2022/12/select-grub2-as-bootloader.png
[23]: https://itsfoss.com/wp-content/uploads/2022/12/select-automatic-grub.png
[24]: https://itsfoss.com/wp-content/uploads/2022/12/enter-and-confirm-root-password.png
[25]: https://itsfoss.com/wp-content/uploads/2022/12/create-user-and-password.png
[26]: https://itsfoss.com/wp-content/uploads/2022/12/enter-d-option-to-finish-the-installation.png
[27]: https://itsfoss.com/wp-content/uploads/2022/12/press-y-to-reboot-your-system-to-new-archbang.png
[28]: https://itsfoss.com/display-manager/
[29]: https://itsfoss.com/wp-content/uploads/2022/12/login-to-archbang-through-tty.png
[30]: https://itsfoss.com/wp-content/uploads/2022/12/installed-archbang-with-i3wm.png
[31]: https://itsfoss.com/wp-content/uploads/2022/12/lightdm-login-screen-in-archbang.png
[32]: https://itsfoss.com/why-arch-linux/

View File

@@ -0,0 +1,119 @@
[#]: subject: "A sysadmin's guide to Carbonio"
[#]: via: "https://opensource.com/article/22/12/carbonio-community-edition-sysadmin"
[#]: author: "Arman Khosravi https://opensource.com/users/arman-khosravi"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
A sysadmin's guide to Carbonio
======
[Carbonio Community Edition (Carbonio CE)][1] is an open source no-cost email and collaboration platform by Zextras. It provides privacy for organizations seeking digital sovereignty by using on-premises self-hosted servers. Using self-hosted servers offers a deeper level of control over infrastructure and data. However, it requires more attention to server configurations and infrastructure management to guarantee data sovereignty. Tasks done by system administrators play an important role in this matter. This makes administrative tasks a crucial part of achieving digital sovereignty, therefore, an administrative console dedicated to such tasks becomes extremely valuable to facilitate sysadmins' everyday jobs.
This is why Zextras launched the first release of its own admin panel for Carbonio CE on October 2022. For Carbonio CE system administrators, it is the first step toward the creation of an all-inclusive admin console.
In this article, I go into detail about the Carbonio CE Admin Panel and take a deeper look into what it can accomplish.
![Image of the Carbonio admin panel.][2]
### What is the Carbonio CE Admin Panel?
The Carbonio CE Admin Panel is designed to assist the Carbonio CE system administrators with the most repetitive and frequent tasks such as user management and domain configuration. It is a browser-based application that runs on a particular port and is available for system administrators to use in production environments as soon as Carbonio CE is installed.
### Why do you need the admin panel?
Everything done in Carbonio CE Admin Panel can be done through the command-line interface as well. This raises the question: why might system administrators prefer using the admin panel rather than the command-line interface?
Using the admin panel has its own obvious advantages such as:
- Making repetitive activities much easier to perform
- Saving system administrators' time monitoring servers
- Providing a much easier learning process for junior system administrators
Even though using the admin panel makes administrative tasks easier to perform, there is more to using this native user interface for Carboino CE. In essence, the Carbonio CE Admin Panel gives you the ability to monitor and manage your organization server from a single centralized location. Even when you're far away, you may still access your admin panel to check the status of servers and carry out various administrative activities.
### Creating and managing user accounts
Managing users has always been one of the most, if not the most, performed action by sysadmins. Therefore it should be an essential part of every administrative GUI available for system administrators. Suppose you, as the system administrator of the company have received some request by users to edit some information on their account. For instance, giving them access to some features, or your company has hired new employees, or some employees have left the company. All these scenarios require a sysadmin to manage user accounts frequently.
Using the Carbonio CE Admin Panel you can simply go to **Domains > select a domain > Accounts** and select any account to modify, or press the **+** button to add a new account.
![Image of the accounts Carbonio adminpanel.][3]
### Creating and managing mailing lists
Besides creating user accounts, a system administrator is often required to create different mailing lists that reflect the organizational structure of the company. Using mailing lists, users can simply send emails to a group of users by inserting the list address instead of every user address one by one.
Creating mailing lists in Carbonio CE is extremely easy using the admin panel. You need to go to **Domains > select a domain > Mailing List > press the + button**. You can now use the wizard that opens up to create a mailing list.
![Image of the Carbonio admin panel mailing list.][4]
The essential steps to follow are:
- Insert the name
- Insert the mailing list address
- Press **NEXT**
- Insert the members
- Press **CREATE**.
You can follow the same path to edit mail lists created before.
### Creating and managing domains
Managing domains is another task frequently done by system administrators. Similar to accounts, creating a domain is very easy in the Carbonio Admin Panel. You only need to go to **Domains > select a domain > under the details** and find different entries to monitor the status of the domain. To create a new domain simply click on the **CREATE** button on the top bar and select **Create New Domain** and insert the necessary information such as:
- Domain name
- Maximum number of accounts and maximum email quota
- Mail server where the domain is hosted
![Image of the Carbonio admin domains panel.][5]
### Creating and managing mailstore servers
The Carbonio CE Admin Panel allows system administrators to manage different servers present in the infrastructure and provide them with different tools to configure them. To monitor a new mailstore server you can go to **Mailstores > Servers List** and find all the available mailstore servers in your infrastructure in a list (when just one server is installed, only one server is shown in this area).
Under **Server Details**, you can select any of the available servers in the list and select **Data Volumes** to show more details of the storage volumes attached to it. While multiple volumes can be mounted simultaneously, only one primary volume, one secondary volume, and one index volume can be designated as active. You can add new volumes using the **NEW VOLUME +** button in the same section. You can also change the volume properties simply by clicking on them to open their detail window.
![Image of the Carbonio admin panel volumes.][6]
### Creating and managing classes of service
Another scenario that can be facilitated with the help of the admin panel is creating classes of service (COS). After the installation, a system administrator might need to create different classes (groups) and assign different properties to them. This way, later in the process each user or a group of users can be easily nominated to a class of service in order to have access to the features and properties assigned to that specific COS.
![Image of the Carbonio admin panel COS features.][7]
To create a COS simply click on the **CREATE** button and select **Create New COS** or alternatively go to **COS** on the left panel and click on **CREATE NEW COS +**. You can then insert the name of the COS and define the different services available to this specific class.
To edit a COS, go to **COS** on the left panel and select a COS from the dropdown menu at top of the list.
You can define settings like quotas, the mail servers that can host accounts from this COS, or enable features for this COS. You can also define features for general features like Mail, Calendar, and Contacts. Additional customizable options include Tagging, Out of Office Reply, Distribution List Folders, and so on.
![Image of the Carbonio admin panel classes of service preferences.][8]
### Conclusion
In this article, you saw a few scenarios in which the Carbonio CE Admin Panel saves you time and effort. The admin panel is an evolution of classical administrative tools in a new and centralized interface that gives the possibility of accessing different functionalities and monitoring tools from the same location.
--------------------------------------------------------------------------------
via: https://opensource.com/article/22/12/carbonio-community-edition-sysadmin
作者:[Arman Khosravi][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/arman-khosravi
[b]: https://github.com/lkxed
[1]: https://opensource.com/article/22/3/open-source-collaboration-carbonio
[2]: https://opensource.com/sites/default/files/2022-11/carbonio_admin_panel.webp
[3]: https://opensource.com/sites/default/files/2022-11/accounts_carbonio_admin_panel.webp
[4]: https://opensource.com/sites/default/files/2022-11/mailing_list_carbonio_admin_panel.webp
[5]: https://opensource.com/sites/default/files/2022-11/domains_carbonio_admin_panel.webp
[6]: https://opensource.com/sites/default/files/2022-11/volumes_carbonio_admin_panel.webp
[7]: https://opensource.com/sites/default/files/2022-11/cos_features_carbonio_admin_panel.webp
[8]: https://opensource.com/sites/default/files/2022-11/cos_preferences_carbonio_admin_panel.webp

View File

@@ -0,0 +1,104 @@
[#]: subject: "Linux Mint Upgrade Tool: Usage Guide"
[#]: via: "https://www.debugpoint.com/mint-upgrade-tool/"
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Linux Mint Upgrade Tool: Usage Guide
======
**Heres how you can upgrade to new Linux Mint versions using the Mint upgrade tool, i.e. mintupgrade GUI with actual upgrade process screenshots.**
If you are looking for **detailed upgrade** steps to the recently released **Linux Mint 21 Vanessa**, read this guide 👉 [upgrade-linux-mint-21-from-20-3][1]
### Linux Mint Upgrade Tool
The Linux Mint team [announced][2] a few months back, that they built a new utility to upgrade the Linux Mints significant versions. Its called the “mintupgrade2”. Development is complete, and It is currently under the support and planning for upgrading to the major versions—for example, Linux Mint 20 to 21 and not the minor version upgrades.
Although you can upgrade the versions using the standard apt commands, the Mint team believes significant version upgrades are tricky. It would be difficult for the new users to perform a seamless upgrade because it involves the terminal and a set of complex steps with commands.
Moreover, the GUI is a wrapper with additional features to the mintupgrade program, which brings a set of pre-system checks and upgrade processes with a one-click Fix.
In addition, the mintupgrade checks basic checks, whether you are connected to power, the system is up to date, disk space availability and many more features.
To show you how it looks and works, we set up a testbed with LMDE 4 and give it a go.
But before that, heres a quick set of features:
- Entirely GUI-driven upgrade process
- Multi-language support
- Pre-upgrade checks: system backup, power, disk space, list of removed packages
- Configurable
- Alert you about the orphaned packages from the prior version
- It gives you the option to fix issues
### How it works
When we ran the mint upgrade utility via the command `mintupgrade`, the GUI, the friendly welcome screen gives you an excellent starting point and starts the upgrade process. And then, it begins with a series of checks on its own.
![Starting the upgrade process][3]
In addition to that, when it finds some problem in your system, it stops and gives you sufficient details about it. Once you click on Fix, it can resume the process again.
Thats not all; it can resume the upgrade process if interrupted due to network or internet or any other problem.
The utility found the following errors in our test system during our test and fixed them with just one click.
![Apt Cache check][4]
![Mint Upgrade detects that system snapshots not present][5]
![Check for Orphan Packages][6]
![Status before upgrade][7]
![Mint Upgrade can detect the packages require downgrade][8]
Lastly, we successfully upgraded a test system from LMDE 4 to LMDE 5.
![Upgrade Complete][9]
#### How to get this upgrade utility
The installation of the utility is easy using the commands below. However, if you are running the latest version of Linux Mint 21, it should already be installed and try by running mintupgrade from the terminal.
```
sudo apt update
```
```
sudo apt install mintupgrade
```
### Closing Notes
Finally, I think its one of the best utilities by the Linux Mint team. As you can see above, it handled many errors on its own. All I did was click the “Fix” button. And the utility is smart enough to understand all the failure points and take care of the remediations.
[GitHub and source code of mintupgrade][10]
--------------------------------------------------------------------------------
via: https://www.debugpoint.com/mint-upgrade-tool/
作者:[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/upgrade-linux-mint-21-from-20-3/
[2]: https://www.debugpoint.com/2022/04/linux-mint-21-announcement/
[3]: https://www.debugpoint.com/wp-content/uploads/2022/04/Starting-the-upgrade-process.jpg
[4]: https://www.debugpoint.com/wp-content/uploads/2022/04/Apt-Cache-check.jpg
[5]: https://www.debugpoint.com/wp-content/uploads/2022/04/Mint-Upgrade-detects-that-system-snapshots-not-present.jpg
[6]: https://www.debugpoint.com/wp-content/uploads/2022/04/Check-for-Orphan-Packages.jpg
[7]: https://www.debugpoint.com/wp-content/uploads/2022/04/Status-before-upgrade.jpg
[8]: https://www.debugpoint.com/wp-content/uploads/2022/04/Mint-Upgrade-can-detect-the-packages-require-downgrade.jpg
[9]: https://www.debugpoint.com/wp-content/uploads/2022/04/Upgrade-Complete.jpg
[10]: https://github.com/linuxmint/mintupgrade

View File

@@ -0,0 +1,300 @@
[#]: subject: "Use Django to send emails with SMTP"
[#]: via: "https://opensource.com/article/22/12/django-send-emails-smtp"
[#]: author: "Sofiia Tarhonska https://opensource.com/users/sofiiatarhonska"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Use Django to send emails with SMTP
======
Numerous professions utilize simple mail transfer protocol (SMTP) to deliver emails to their end users. SMTP also retrieves messages, though that has not been its primary use case. Open source frameworks like Django, a Python-based web framework, allows more control for sending emails using functions and expressions.
This article shows how to configure an SMTP server and send emails in Django using SMTP.
### Project setup and overview
Before proceeding, this tutorial requires a code editor (such as [VS Code or Codium][1]) on your preferred device.
Start by creating a new directory using the command in the terminal:
```
mkdir exampledirectory
```
Then change into the directory using the command:
```
cd exampledirectory
```
Within the newly created directory, create a [virtual environment][2] using the built-in venv module in the command terminal:
```
python -m venv
```
This command creates a virtual environment within the folder created earlier. To activate it, use the following command in the terminal:
On Linux and Mac:
```
source .virtenv/bin/activate
```
On Windows:
```
\Scripts\activate
```
### Creating a Django project
After activating the virtual environment, proceed to install the Django package from [pip][3]:
```
pip install django
```
Create a new Django project:
```
python -m django startproject NewEmailProject
```
This command creates a project with the name `NewEmailProject`. To run the project, head to the project directory (`NewEmailProject`) and run the server:
```
python manage.py runserver
```
Open the link for the developmental server in a browser. You see the Django homepage with release notes.
### Configuration for sending emails
Next, open the `settings.py` file (in the `NewEmailProject` folder) to customize configurations for sending emails using Django.
Scroll to the end of the code and update the file with the following code:
```
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.yourserver.com'
EMAIL_USE_TLS = False
EMAIL_PORT = 465
EMAIL_USE_SSL = True
EMAIL_HOST_USER = 'your@djangoapp.com'
EMAIL_HOST_PASSWORD = 'your password'
```
Change the value of the `EMAIL_HOST` depending on your email client. Here are the acceptable values for common email clients:
- **Gmail:**`smtp.gmail.com`
- **Outlook:**`smtp-mail.outlook.com`
- **Yahoo:**`smtp.mail.yahoo.com`
You can change the `EMAIL_PORT` or leave 465 as the default.
You can use the secure socket layer (SSL) and transport socket layer (TSL) interchangeably as they specify connection security.
To figure out other custom configurations for your email server, check out the full [Django Project documentation][4].
### SMTP email backend
The `EMAIL_BACKEND` expression helps determine the most suitable backend when sending emails through the Django SMTP server. This variable points to `smtp.EmailBackend`, which receives all the parameters needed for sending emails. It tells Django to send the email to the recipient email using SMTP and not to the console.
### Sending emails with SMTP
When the environment is set up and `settings.py` is updated, you can send emails in Django. You can use an HTML form that sends a post request of the necessary information needed for sending an email.
Create a Django application for sending emails:
```
python manage.py startapp mail
```
Next, open the `settings.py` file and add the Django application (mail) to the `INSTALLED_APPS` list:
```
INSTALLED_APPS = [
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
"mail"]
```
### Send mail function
In the mail application's `views.py` file, start by importing the `EmailMessage` and `get_connection` from `django.core.mail`:
```
from django.core.mail import EmailMessage, get_connection
```
The `EmailMessage` class is responsible for creating the email message itself. The `get_connection()` function returns an instance of the email backend specified in `EMAIL_BACKEND`.
Now create a function that accepts a `POST` request, which contains form data submitted from the client side. Followed by the `get_connection()` functions parameters containing the email configurations created in the project `settings.py` file.
Next, import the settings:
```
from django.conf import settings
```
This import allows access to the email configurations created in the `settings.py`. Next, create the variables:
```
subject, recipient_list,
```
Then you can `message`, and store the corresponding attributes used in the HTML form. The `email_from` variable contains the sender email, which is obtained from `EMAIL_HOST_USER` in the `settings.py` file.
After the variables are processed, the `EmailMessage` class sends an email using the `sends()` method, and then closes the connection. The `send_email()` function renders the `home.html` file containing the email form.
You can create a templates folder within your mail application and store the HTML files within that folder:
```
from django.core.mail import EmailMessage, get_connectionfrom django.conf import settingsdef send_email(request):  
   if request.method == "POST":
       with get_connection(  
           host=settings.EMAIL_HOST,
     port=settings.EMAIL_PORT,  
     username=settings.EMAIL_HOST_USER,
     password=settings.EMAIL_HOST_PASSWORD,
     use_tls=settings.EMAIL_USE_TLS  
       ) as connection:  
           subject = request.POST.get("subject")  
           email_from = settings.EMAIL_HOST_USER  
           recipient_list = [request.POST.get("email"), ]  
           message = request.POST.get("message")  
           EmailMessage(subject, message, email_from, recipient_list, connection=connection).send()  
 
   return render(request, 'home.html')
```
This is a bootstrap form for generating a message:
```
<form method="post" action=".">
 {% csrf_token %}
 <div class="mb-3">
     <label for="exampleFormControlInput1" class="form-label">Receipt email address</label>
     <input type="text" class="form-control" name="email" id="exampleFormControlInput1" placeholder="Receipt email address">
   </div>
   <div class="mb-3">
     <label for="exampleInputSubject" class="form-label">Subject</label>
     <input type="text" class="form-control" name="subject" id="exampleInputSubject">
   </div>
   <div class="mb-3">
     <label for="exampleFormControlTextarea1" class="form-label">Message</label>
     <textarea class="form-control" id="exampleFormControlTextarea1" name="message" rows="3"></textarea>
   </div>
   <button type="submit" class="btn btn-primary">Send</button>
 </form>
```
This form sends a post request to the `send_email()` function. This processes the form data and sends the email to the recipients.
Now open the `urls.py` file in the `NewEmailProject` folder to create the homepage URL. Update the `urlpattern` list by adding the code `path("", send_email)` .
### Sending email to multiple recipients
To specify multiple recipients when sending the same email, create a new function called `send_emails` within the `views.py` file and modify the send function code:
```
def send_emails(request):  
    if request.method == "POST":
        with get_connection(  
              host=settings.EMAIL_HOST,
        port=settings.EMAIL_PORT,  
       username=settings.EMAIL_HOST_USER,  
       password=settings.EMAIL_HOST_PASSWORD,  
        use_tls=settings.EMAIL_USE_TLS
        ) as connection:  
            recipient_list = request.POST.get("email").split()  
            subject = request.POST.get("subject")  
            email_from = settings.EMAIL_HOST_USER  
            message = request.POST.get("message")  
            print(type(recipient_list))
            EmailMessage(subject, message, email_from, recipient_list, connection=connection).send()  
 
    return render(request, 'send_emails.html')
```
For the `recipient_list` variable, I'm using the Python `split()` method to convert the recipients email string to list so that I can email all of them.
Next, create another HTML file called `send_emails.html` in the templates folder and use the same form code for the `home.html` file within it.
To specify multiple email recipients, use a space between each email address:
```
first@gmail.com second@gmail.com third@gmail.com
```
You should also update the `urlpattern` list by adding the code:
```
path("send-emails/", send_email)
```
### Sending HTML emails
You can also send HTML emails with Django using a slightly modified version of the `send_email` function:
```
html_message = '''<h1>this is an automated message</h1>'''
msg = EmailMessage(subject, html_message, email_from,recipient_list, connection=connection)
msg.content_subtype = "html"
msg.send()
```
### Sending emails with attachment
To include attachment to mails, create a variable and put it in the file path in a string like this:
```
attachment = "mail/templates/example.png"
```
Then, move the `EmailMessage` function to a variable and call the `attach_file` method followed by the `send` method:
```
msg = EmailMessage(subject, message, email_from, recipient_list, connection=connection)
msg.attach_file(attachment)
msg.send()
```
### Django email libraries
This guide on sending emails in Django would not be complete if I didn't mention the email libraries that are available to users. Here are some noteworthy email libraries.
- **Django mailer** is a Django app for queuing as it saves emails in a database and sends the mail out at a designated time.
- **Django templated email** aims to send templated emails. It offers features like configurable template naming and location, template inheritance, and adding recipients to the CC and BCC lists.
- **Anymail** allows the use of an email service provider (ESP). By using `django.core.mail`, it provides a sustained API that avoids tying your code to a single ESP.
### Emailing with Django
Sending emails in Django can sound daunting, but it's as simple as creating a virtual environment. You can add Django to the environment and create an email backend. Finally, you can set up an HTML template. Give it a try.
--------------------------------------------------------------------------------
via: https://opensource.com/article/22/12/django-send-emails-smtp
作者:[Sofiia Tarhonska][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/sofiiatarhonska
[b]: https://github.com/lkxed
[1]: https://opensource.com/article/20/6/open-source-alternatives-vs-code#vscodium
[2]: https://opensource.com/article/21/2/python-virtualenvwrapper
[3]: https://www.redhat.com/sysadmin/install-python-pip-linux
[4]: https://docs.djangoproject.com/en/3.2/ref/settings/#email-backend

View File

@@ -0,0 +1,79 @@
[#]: subject: "Drupal 10 is worth a fresh look"
[#]: via: "https://opensource.com/article/22/12/drupal-10-fresh-look"
[#]: author: "Martin Anderson-Clutz https://opensource.com/users/mandclu"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Drupal 10 is worth a fresh look
======
The popular Drupal open source content management system (CMS) reaches a significant milestone when version 10 is released on December 14. Personally, I think Drupal X sounds way cooler, but so far, my calls to name it that haven't gotten much traction. I enlisted the help of my friend Aaron Judd of [Northern Commerce][1] to give us a sense of how cool Drupal X could look:
![New Drupal 10 racing 10 logo][2]
### What's a Drupal, anyway?
Drupal is an open source CMS and development framework. While other CMS options focus on simple long-form content (think blogs) or entirely free-form content (like in Wix or Squarespace), Drupal has made a name for itself in handling more complex content architectures, in multiple languages, with robust content governance. Drupal sites (like this site, Opensource.com!) benefit from a strong role-based access control (RBAC) system, unlimited custom roles and workflows, and a powerful and extensible media library.
Here's a rundown for anyone who hasn't kept tabs on what's coming in the newest major version.
### A fresh face
Most Drupal sites use custom themes to give them a unique look and feel. Still, the initial experience you have when installing a CMS matters. In Drupal, themes define the look and feel of a site, and you can use different themes for public and administrative experiences. Until recently, the Bartik and Seven themes had been the default face of Drupal for more than a decade. To put that in context, when Bartik was released, the most popular browser in the world was Internet Explorer 8. A lot has changed since then, particularly around best practices for building websites.
In fact, a significant change in Drupal 10 will be the removal of support for Internet Explorer (IE), which is itself no longer supported by Microsoft and hasn't seen major updates since 2013. That may not sound like an improvement, but continued support for IE kept the community from adopting modern markup and styling. For example, thanks to being unencumbered by support for legacy browsers, Drupal 10 includes a new responsive grid layout that's so innovative it got a writeup in [CSS Tricks][3].
![Responsive grid configuration][4]
The new faces of Drupal are two brand new themes: Olivero for visitors and Claro for admins. In addition to being fresh and modern designs, both were developed with accessibility as a top priority.
### Improvements under the hood
More than a decade ago, the Drupal community decided to "Get Off the Drupal Island." That meant adopting solutions shared across popular projects and frameworks instead of ones developed and maintained exclusively by the Drupal community. Today Drupal leverages a variety of projects and libraries whose names will be familiar to open source developers who have never touched Drupal: Symfony, Composer, CKEditor, Twig, Nightwatch, and more.
That has brought a variety of powerful capabilities to Drupal and allowed it to contribute back to those solutions, benefitting a broader set of developers. It has also become a determining factor for the cadence of Drupal's major version releases.
To illustrate, consider that Drupal 7 was released in early 2011. Drupal 8 was released almost five years later, towards the end of 2015. Drupal 9 was released in June of 2020, with a key motivator being the move to supported versions of underlying dependencies and removing deprecated code. And now, roughly two and half years later, we're already planning to release Drupal 10. This new major version will leverage updated versions of PHP, Symfony, and Composer, among others.
### An all-new editor
An upgrade of particular note is the move to CKEditor 5. Although notionally an incremental update, under the hood CKEditor 5 was completely rewritten, much the same as the transition from Drupal 7 to 8. In addition to a sleeker interface, CKEditor 5 has the potential for exciting new capabilities, such as real-time collaboration. Drupal's CKEditor integration for version 5 has already been augmented with a number of UI enhancements. For example, media placed within content can be configured using an overlaid toolbar ribbon instead of needing to launch a modal dialog to access these settings. Also, the styles dropdown now includes a preview of each type available.
![Real-time collaboration][5]
### A look ahead
Earlier in 2022, Drupal creator and project lead Dries Buytaert announced a focus on "ambitious site builders." This means that while the community will continue to work on making the developer experience better in general, moving forward there is a particular focus on making it easier to create engaging experiences in Drupal without having to write code or use command-line tools. Three strategic initiatives embody this new focus: Automatic Updates, the Project Browser, and Recipes.
**Automatic Updates** will reduce the total cost of ownership for Drupal sites and help them be more secure by ensuring they always have the latest core security patches. This will be a major benefit for site owners and Drupal development teams everywhere. However, judging by personal experience, Wednesday night pizza sales may take a hit (traditionally, the Drupal security team releases updates on the third Wednesday of the month). There is now a stable release of Automatic Updates as a contrib module. Work has begun to move this into Drupal core, so all Drupal sites will eventually be able to leverage this capability.
The **[Project Browser][6]** makes Drupal sites easier to build, maintain, and evolve by allowing site builders to search and browse through a subset of Drupal's vast catalog of available modules, prefiltered to the site's Drupal version, for security, stability, and more. A site builder can select, download, and install a module without leaving the site's web interface. In fact, there's an "app store" like interface meant to promote the most popular modules available that are compatible with the current site's version of Drupal. While other CMS options have had similar offerings, this advancement means you don't need to sacrifice ease-of-use to take advantage of the power of Drupal. Also, all of the thousands of modules listed are 100% free.
For many years Drupal has had a concept of distributions. These are opinionated versions of Drupal designed to meet specific use cases such as media publishing, fundraising, intranet portals, and more. While distributions have proven an excellent way to accelerate initial development, in practice, they have been known to require significant work to maintain and create extra work for site owners during maintenance. The **Recipes** initiative aims to make more granular, composable functionality available when building a site. Want to add a staff directory, events calendar, or locations map to your site? In the future, this will be as easy as installing a recipe and then customizing it to meet your site's specific needs.
### It's an exciting time to try Drupal
Drupal 10 is the culmination of work contributed by thousands of dedicated and talented community members worldwide. If you're not already using Drupal, we hope you'll try it out for your next project. There's a common saying among Drupalists: "Come for the code, stay for the community."
--------------------------------------------------------------------------------
via: https://opensource.com/article/22/12/drupal-10-fresh-look
作者:[Martin Anderson-Clutz][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/mandclu
[b]: https://github.com/lkxed
[1]: https://www.northern.co/
[2]: https://opensource.com/sites/default/files/2022-12/DrupalX-RacerSticker-DrupalBlue-300ppi.png
[3]: https://css-tricks.com/an-auto-filling-css-grid-with-max-columns
[4]: https://opensource.com/sites/default/files/2022-11/responsive-grid-config.png
[5]: https://opensource.com/sites/default/files/2022-11/realtime-collaboration_0.gif
[6]: https://www.drupal.org/project/project_browser

View File

@@ -0,0 +1,96 @@
[#]: subject: "Try this Linux web browser as your file manager"
[#]: via: "https://opensource.com/article/22/12/linux-file-manager-konqueror"
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Try this Linux web browser as your file manager
======
Konqueror is a file manager and web browser for the KDE Plasma Desktop. In many ways, Konqueror defined "network transparency," as it applied to a personal desktop. With Konqueror, you can browse remote network files (including the Internet itself, which really is just a collection of remote files viewed through a fancy lens) just as easily as browsing your local files. Sometimes there was some configuration and setup required, depending on what kind of file share you needed to access. But ultimately, the goal of having instant access to all the data you had permission to view was a reality with Konqueror in ways no other file manager had achieved. And at its peak, the open source web engine it developed (KHTML) was adopted by both Apple and Google, and lives on today as the core library of modern web browsing and, technically, Electron app development.
Today, the KDE Plasma Desktop lists Konqueror as a web browser. Officially, file management has shifted over to [Dolphin][1], but Konqueror is still capable of doing the job. For the full and classic Konqueror experience, you should try the Plasma Desktop 3.x fork [TDE][2], but in this article I use Konqueror in KDE Plasma Desktop version 5.
### Install Konqueror
If you're running KDE Plasma Desktop already, you may already have Konqueror installed. If not, you can install it from your distribution's software repository. On Fedora, CentOS, Mageia, OpenMandriva, and similar:
```
$ sudo dnf install -y konqueror konqueror-plugins
```
On Debian, Linux Mint, Elementary, and similar:
```
$ sudo apt install -y konqueror konqueror-plugins
```
![Image of Konqueror's file manager.][3]
### Configure Konqueror as a file manager
The most convenient feature of Konqueror is that it's a web browser in addition to being a file manager. Or at least, that's theoretically its most convenient feature. If you're not using Konqueror as a web browser, then you may not want the URL field or the search engine field at the top of every file manager window.
As with most KDE applications, Konqueror is highly configurable. You can reposition and add and remove toolbars, add or remove buttons, and so on.
To adjust what toolbars are displayed, launch Konqueror and go to the **Settings** menu and select **Toolbars Shown**. The **Main** toolbar is probably all you really need for file management. It's the toolbar with navigation buttons on it. However, you may not even need that, as long as you're happy to navigate with keyboard shortcuts or using the **Go** menu.
Keyboard navigation in Konqueror is the same as in Dolphin:
- **Alt+Left arrow**: Back one step
- **Alt+Up arrow**: Move to parent directory
- **Alt+Home**: Go to home directory
### Side panel
To get a side panel with a listing of common folders, press **F9** or select **Show Sidebar** from the **Settings** menu. This adds a button bar along the left side of the Konqueror window. Click the **Home** icon to display a file tree of your home directory.
![Image of Konqueror with a sidebar.][4]
As the button bar suggests, this side panel can serve many purposes. Instead of your home directory, you can display bookmarked locations, a history of recent locations you've visited, remote filesystems, and more.
### Applications
Some people are used to an application menu. It's efficient and quick, and always in the same place. Other people prefer to launch applications from the terminal.
There's yet another way to view application launchers, though. Konqueror's **Go** menu allows you go to a meta location called **Applications**, which lists application launchers, by category, as files in a file manager.
![Image of applications in Konqueror.][5]
You can see this in Dolphin, too, by manually typing **applications:** in the location field, but of the two it's Konqueror that provides a menu option to go there directly.
### Network folders
Similarly, Konqueror also provides a menu selection to go to network folders. The greatest network folder of them all is the Internet, but **Network Folders** is the meta location for network protocols other than HTTP. Most remote locations require some setup because they usually require authentication to access. Most of them can be configured through **System Settings**, including file systems accessible over Bluetooth, SMB or CIFS, MTP devices, Fish (file system over SSH), and even Google Drive.
### Split view
You can split the Konqueror window into panes, allowing you to see two folders at once without opening two windows. There are two split options: a vertical split with one pane on the left and the other on the right, or a horizontal split with one pane above the other.
To split the Konqueror window, go to the **Window** menu and select either **Split View Left/Right** or **Spit View Top/Bottom**. Each pane is independent of the other, so you can navigate around in one pane, and then drag and drop files from one to the other.
### Conquering your file system
Konqueror isn't _just_ a file manager, and I don't think the developers of the Plasma Desktop expect you to use it as your primary file manager. There's even an option in the **File** menu to open a location in **Dolphin**, which indicates that Konqueror is a web browser with a file manager component. But that file manager component is a nice feature to have when you need it. And if you're not a fan of all the features Dolphin offers, Konqueror could be a suitable alternative.
--------------------------------------------------------------------------------
via: https://opensource.com/article/22/12/linux-file-manager-konqueror
作者:[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/article/22/12/linux-file-manager-dolphin
[2]: https://opensource.com/article/19/12/linux-trinity-desktop-environment-tde
[3]: https://opensource.com/sites/default/files/2022-10/konqueror-filemanager.png
[4]: https://opensource.com/sites/default/files/2022-10/konqueror-sidebar.png
[5]: https://opensource.com/sites/default/files/2022-10/konqueror-applications.png

View File

@@ -1,91 +0,0 @@
[#]: collector: (lujun9972)
[#]: translator: (CanYellow)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Understanding Linus's Law for open source security)
[#]: via: (https://opensource.com/article/21/2/open-source-security)
[#]: author: (Seth Kenlon https://opensource.com/users/seth)
理解开源安全中的李纳斯定律
======
李纳斯定律 (Linus's Law) 即“只要有足够多的眼睛关注,任何漏洞都无处隐藏” (given enough eyeballs, all bugs are shallow)。那么李纳斯定律是如何应用于开源软件安全的呢?
![Hand putting a Linux file folder into a drawer][1]
2021 年,有更多的原因使人们比以往更钟情 Linux 。在本系列中,我将分享 21 个使用 Linux 的不同原因。 这篇文章则讨论 Linux 对开源软件安全的影响。
开源软件的一个常被赞扬的优点是它的代码能够被任何人检查(安全专家通常称之为“代码审计”)。然而,如果你真的去问很多开源软件用户他们上一次检查代码是什么时候。你大概只能收获他们茫然的眼神或者是喃喃的低语。此外,对于一些相当大型的开源应用,高效地审查每一行代码也是困难的。
根据上述这些稍显不安的事实,我们不得不思考:如果没有人察看这些代码,它是开源还是闭源真的有关系吗?
### 你应该相信开源吗?
计算机爱好者倾向于作出认为开源软件比其他软件更加安全的传统假设。我们通常不会讨论这意味者什么:比较的基础是什么(比什么更安全?),或者上述结论是如何得到的。这是一个危险的陈述,因为它表明只要你将一些东西称之为“开源”,它就自动如魔法般地继承了更高的安全性。这不是开源,事实上,这正是开源安全所非常反对的。
除非你已经亲自审计并理解了软件代码否则就不应该假定一个应用程序是安全的。一但你做到了这一点就可以给予它_最高信任_。_最高信任_不是对计算机而言的而是对你本人而言的至少在这一应用程序被渗透攻击之前你信任它是因为你选择了相信它是安全的。
使用者本人是唯一可以对软件代码最高信任的人,因此任何人想要获得这样的享受都必须亲自审查代码。相信其他人的话是不管用的。
只有你已经亲自审计并理解了软件代码你才可以对一个应用程序给予最高信任最高信任的范围可以是从_根本不信任_到_相当信任_之间。然而我们并没有一个关于信任程度的标准对照表这是一个你必须亲自做出的个人选择。如果你已经听说了一款应用程序的安全性是可以信任的相比没有任何建议的情况而言你可能更加信任它。
然而,因为无法审计专有(闭源)软件代码你不可能给予它_最高信任_。
### 李纳斯定律
现实很骨感,并不是每个人都是程序员,同时也不是每个程序员都有时间检查数以万计的代码行。因此如果你没有亲自审查代码,你就只能选择相信(一定程度上)_亲自_审查了代码的人。
那么,有哪些人会审计代码呢?
李纳斯定律声称_只要有足够的眼睛关注任何漏洞都无处隐藏_然而我们并不知道多少双眼睛是“足够”的。请不要低估这一数量应用程序往往经过了远超你想象数量的人员审计。原始开发人员以及后续开发人员显然清楚他们自己写下的代码不过开源软件往往都是团队成果开源时间越长阅读了代码的开发人员越多。新加入的开发人员也必须回顾项目代码的核心部分因为他们必须学习基础代码以加入新的功能。
同时,为了使开源软件能够在 Linux 发行版上可用,负责开源软件打包分发的开发人员会加入多个项目。有时一个应用程序可能会在不熟悉项目代码的情况下打包,但是大多数时候,开源软件打包人员都是熟悉所打包的项目代码的。这不仅仅是因为他们不想在他们不信任的软件上签名,还由于他们可能不得不修改代码来使得程序能够正确编译。漏洞报告人员和漏洞修复人员一般也是熟悉基本代码的,因为他们需要尝试解决的问题小到运行异常,大到程序崩溃。当然,一些漏洞报告人员无意中揭示了代码漏洞不是通过亲自审查项目代码而是通过关注明显未按预期工作的现象。系统管理员通常都是通晓用户依赖的重要应用软件的代码的。最后,是安全研究人员,他们专门深入代码内部以揭露潜在的漏洞。
### 信任与透明
很多人先入为主的认为大型软件的审计是基本不可能的,因为它由数以万计的代码行组成。不要被软件运行所需的代码量欺骗了。我们不需要真的阅读数以万计的代码行。代码是高度结构化的,可被利用的代码漏洞仅仅只是其中的一行,不过它通常影响软件的全部功能。
当然,也有例外。有时仅仅一个系统调用或者链接一个有缺陷的库文件就可能引入一系列漏洞。幸运的是,多亏安全研究人员以及漏洞数据库所扮演的积极角色,这些错误相对而言是容易发现的。
一些人指向错误追踪系统,比如 [通用漏洞披露 (CVE)][2] 网站,并推断开源软件显而易见是不安全的。毕竟已经向公众公开了大量的安全风险,涉及许多开源项目。但是不要被数据欺骗了。只是因为我们不能发现闭源软件的漏洞,并不意味着闭源软件中不存在漏洞。事实上,已经有很多针对闭源软件的漏洞攻击提出了,闭源软件也是存在漏洞的。区别在于开发者(以及用户)可以查看开源软件的_所有的漏洞_从而降低漏洞的影响。这是扩大对开源软件信任的系统机制的一部分却正是闭源软件软件所缺少的。
对于任何代码而言,可能永远没有“足够的眼睛”来发现漏洞,但是开发社区越壮大、越多样化,越有机会发现和修复代码中的缺陷。
### 信任与人
在开源社区中,参与同一项目的众多开发者已经发现“不安全”的漏洞却保持沉默的的可能性是微乎其微的,因为人们彼此间不会同意以这样的方式密谋。我们已经看到了在应对 COVID-19 的过程中,人类的行为是如何不一致了,在这里也一样:
* 我们都识别出了漏洞(病毒)。
* 我们知晓如何避免它传播(待在家里)。
* 然而病毒还是在持续传播,因为总是有一个或者多个人偏离了消减疫情的计划。
开源软件中的漏洞也一样,如果有人发现了漏洞总会公之于众(当然,我们说的是“假如”能够发现)。
然而就专有软件而言,有很大可能参与项目的众多开发者即使注意到不安全的漏洞却仍然保持沉默,因为专有模式依赖于回报。如果一个开发者将漏洞泄漏出来,他可能只是伤害了该专有软件的声誉,进而降低软件的销售额;或者,在更糟糕的情况下,他可能因此而丢了工作。付费秘密开发软件的开发者倾向于不讨论软件的缺陷。如果你曾经是一名开发者,你可能曾经签署过 NDA (译者注Non-Disclosure Agreement,保密协议),你可能被培训过商业秘密的重要性等等不一而足。专有软件鼓励在面对严重的秘密缺陷时保持沉默,更多时候甚至是强制要求沉默。
### 信任与软件
不要信任未经你审计的软件。
如果你必须相信未经你审计的软件,那么选择相信已经面向那些更有可能将软件缺陷公之于众的开发者公开代码的软件。
开源软件并没有比专有软件继承更高的安全性,但是修复它的系统得到了更好的规划实施和人员配置。
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/2/open-source-security
作者:[Seth Kenlon][a]
选题:[lujun9972][b]
译者:[CanYellow](https://github.com/CanYellow)
校对:[校对者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/yearbook-haff-rx-linux-file-lead_0.png?itok=-i0NNfDC (Hand putting a Linux file folder into a drawer)
[2]: https://cve.mitre.org

View File

@@ -0,0 +1,100 @@
[#]: subject: "Learn the OSI model in 5 minutes"
[#]: via: "https://opensource.com/article/22/10/osi-model-network-communications"
[#]: author: "Anamika https://opensource.com/users/anamika"
[#]: collector: "lkxed"
[#]: translator: "cool-summer-021"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
5 分钟内了解 OSI 模型
======
理解OSI框架的基本概念掌握计算机系统通信机制
开放系统互联OSI模型是一个定义计算机、服务器和用户如何在一个系统内通信的标准。它是第一个网络通信标准模型在20世纪80年代早期所有主流的计算机和通信公司都采用了这个标准。
OSI 模型提供了一种通用语言,用于描述网络,以及在离散的块或层中考虑相关的问题。
### OSI模型的各个层
该模型描述了计算机系统通过网络进行通信的七个层。
1. [应用层][2]
2. [表现层][3]
3. [会话层][4]
4. [传输层][5]
5. [网络层][6]
6. [数据链路层][7]
7. [物理层][8]
每个层都有自己的工作方式和一系列跟其他层不同的协议。本文将逐个剖析这些层级。
### 应用层
应用层是在软件中实现的。它是与应用程序交互的层级。
考虑发送消息的例子。发送消息的程序与应用层进行交互,并发送消息。接着,应用层向 OSI 模型的下一个层级(即表现层)发送消息。
### 表现层
来自应用层的数据被转发到表现层。表现层接收到文字、字符、字母、数字等形式的数据,并把它们转换为机器可识读的二进制格式数据。这个过程叫做编译。
在此阶段ASCII美国信息交换标准码 字符被转换为扩充的二进制编码的十进制交换码EBCDIC。转换后的数据在继续传输前也会进行编码和加密过程使用SSL协议进行加密和解密。
表现层的作用是抽象化,它假设下面的层级会处理它们收到的数据。它也负责压缩数据。数据的压缩可能是有损的,也有可能是无损的,这取决于很多因素,不属于本文的讨论范围。
### 会话层
会话层的作用是建立和管理连接。该层级的主要工作是建立会话。例如,你登录网上商城,就在你的机器和服务器之间建立了会话。
会话层的作用是实现数据的发送和接收,完成后连接的会话就终止了。在一个会话建立前,会进行身份验证。与上一层类似,会话层也假设在它的工作完成后,下面的层级也会准确无误地处理数据。
### 传输层
传输层的作用是管理数据传输和其自身的关于数据如何传输的一些协议。从会话层传到这里的数据被分为更小的数据单元,这些数据单元称为片段。这个过程叫做“分割”。每个片段包含来源端口号、目标端口号和一个序列号。端口号用来识别发送数据的应用程序。注意,数据以块的形式传输。序列号用于把这些片段按正确的顺序排列。
传输层负责控制流量或在给定的时间内传输的数据量。它也负责错误的管理,比如数据丢失、损坏等情况。它利用一种错误探测值,通常叫做校验和。传输层对每个数据片段加上校验和,就可以检查所发送的数据是否被正确接收。然后数据传输到网络层。
### 网络层
网络层的作用是跟其他网络进行通信。它把从一台机器接收到的数据片段传输给另一台位于不同网络的机器。路由器是作用于网络层的。
网络层的功能是逻辑寻址(就是确定 IP 地址)。它为发送方和接收方分配 IP 地址,数据包附带了这个地址,就可以被传输到正确的目标机器。接着网络层对数据包进行路由。负载均衡也是在网络层进行的,旨在确保不会发生过载。下一步,数据传输到数据链路层。
### 数据链路层
数据链路层支持跟其他设备直接通信。
它接收到来自网络层、包含发送方和接收方 IP 地址的数据包,进行物理寻址,然后将发送方和接收方的 MAC 地址分配给数据包,形成帧。
### 物理层
物理层由系统的所有硬件和物理设备(包括网线、导航系统、适配器等)组成。在这里,从前面层级接收到的数据都是 0 和 1 形式的。物理层把这些数据转换并通过各种方式(如果是光纤电缆,有电线、电信号、光信号;如果是 WIFI则为无线电信号传输至本地媒介。
注意,物理层作用于接收方的一端,把接收到的信号以帧的形式传输到数据链路层(把它转换回二进制数据形式)。然后帧传输到上面的层级,最终应用层(应用软件)会接收到需要的数据。
### 结语
当你需要描述网络架构或排除网络问题时OSI 模型的相关知识会对你有所帮助。我希望本文能令你对这个模型的方方面面有清晰的理解。
--------------------------------------------------------------------------------
via: https://opensource.com/article/22/10/osi-model-network-communications
作者:[Anamika][a]
选题:[lkxed][b]
译者:[cool-summer-021](https://github.com/cool-summer-021)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/anamika
[b]: https://github.com/lkxed
[1]: https://opensource.com/sites/default/files/lead-images/code_computer_development_programming.png
[2]: https://opensource.com/article/22/10/osi-model-network-communications#application-layer
[3]: https://opensource.com/article/22/10/osi-model-network-communications#presentation-layer
[4]: https://opensource.com/article/22/10/osi-model-network-communications#session-layer
[5]: https://opensource.com/article/22/10/osi-model-network-communications#transport-layer
[6]: https://opensource.com/article/22/10/osi-model-network-communications#network-layer
[7]: https://opensource.com/article/22/10/osi-model-network-communications#data-link-layer
[8]: https://opensource.com/article/22/10/osi-model-network-communications#physical-layer