Linux Weekly News
[$] Lockless patterns: more read-modify-write operations
Last week's installment in this
series on lockless patterns took a first look
at the compare-and-swap (CAS) operation. CAS is a powerful tool that can
be used to implement a number of lockless primitives. The next step is to
look at other atomic read-modify-write operations that can
be implemented on top of compare-and-swap.
Rust support hits linux-next
Followers of the linux-next integration tree may have noticed a significant
addition: initial support for writing device drivers in the Rust language.
There is some documentation in Documentation/rust,
while the code itself is in the rust
top-level directory. Appearance in linux-next generally implies readiness
for the upcoming merge window, but it is not clear if that is the case
here; this code has not seen a lot of wider review yet. It is, regardless,
an important step toward the ability to write drivers in a safer language.
Security updates for Friday
Security updates have been issued by CentOS (kernel and pki-core), Debian (shibboleth-sp, shibboleth-sp2, and squid3), openSUSE (libmysofa and privoxy), Oracle (bind), and Ubuntu (ruby2.3, ruby2.5, ruby2.7).
[$] Clarifying memory management with page folios
Memory management generally works at the level of pages, which typically
contain 4,096 bytes but may be larger. The kernel, though, has extended
the concept of pages to include compound pages, which are groups of
contiguous single pages. That, in turn, has made the definition of
what a "page" is a bit fuzzy. Matthew Wilcox has been working since last
year on a concept called "page folios" which is meant to bring the picture
back into focus; whether the memory-management community will accept it
remains unclear, though.
Security updates for Thursday
Security updates have been issued by Debian (velocity-tools), Fedora (switchboard-plug-bluetooth), Mageia (discover, flatpak, and xmlgraphics-commons), openSUSE (chromium and python), Oracle (kernel, kernel-container, and pki-core), Red Hat (openvswitch2.11 and ovn2.11, python-django, qemu-kvm-rhev, and rubygem-em-http-request), and SUSE (crmsh, openssl1, and php53).
[$] LWN.net Weekly Edition for March 18, 2021
The LWN.net Weekly Edition for March 18, 2021 is available.
[$] Handling brute force attacks in the kernel
A number of different attacks against Linux systems rely on brute-force
techniques using the fork()
system call, so
a new Linux security module (LSM), called "Brute", has been created to
detect and thwart such attacks.
Repeated fork() calls can be used for various types of
attacks, such as exploiting the Stack
Clash vulnerability or Heartbleed-style flaws.
Version 6 of the Brute patch set was recently
posted
and looks like it might be heading toward the mainline.
A set of stable kernels
[$] Software platforms for open-source projects and foundations
Open-source projects have many non-technical needs as they grow. But,
running a FOSS non-profit organization for supporting these projects is a
lot of work, as anyone involved in such an organization will attest. These
days, some software platforms, such as LFX from the Linux Foundation
and Open Collective, are in
development to provide important services, such as crowdfunding, to
projects and other organizations. These platforms have the potential to
improve both the quality and range of services available to projects.
Security updates for Wednesday
Security updates have been issued by Debian (shadow, tor, and velocity), Fedora (gsoap, qt5-qtsvg, and switchboard-plug-bluetooth), Mageia (batik, chromium-browser-stable, glibc, ksh, and microcode), openSUSE (389-ds, connman, freeradius-server, froxlor, openssl-1_0_0, openssl-1_1, postgresql12, and python-markdown2), Red Hat (bind, curl, kernel, nss and nss-softokn, perl, python, and tomcat), Scientific Linux (ipa, kernel, and pki-core), SUSE (glib2 and velocity), and Ubuntu (containerd).
Schaller: What to look for in Fedora Workstation 34
Christian Schaller looks
forward to the Fedora 34 release with a detailed write-up of the
desktop-oriented changes. "The big ticket item we have wanted to
close off on was Wayland, because while Wayland has been production ready
for most of us for a while, there was still some cases it didn’t cover as
well as X.org. The biggest of this was of course the lack of accelerated
XWayland support with the binary NVidia driver."
Security updates for Tuesday
Security updates have been issued by Debian (tomcat8), Fedora (git), openSUSE (opera), Oracle (python), Red Hat (ipa, kernel, kernel-rt, kpatch-patch, and pki-core), SUSE (compat-openssl098 and python), and Ubuntu (glib2.0, linux, linux-aws, linux-aws-5.4, linux-azure, linux-azure-5.4, linux-gcp, linux-gcp-5.4, linux-gke-5.4, linux-gkeop, linux-gkeop-5.4, linux-hwe-5.4, linux-kvm, linux-oracle, linux-oracle-5.4, linux-raspi, linux-raspi-5.4, linux, linux-aws, linux-aws-hwe, linux-azure, linux-azure-4.15, linux-dell300x, linux-gcp, linux-gcp-4.15, linux-hwe, linux-kvm, linux-oracle, linux-raspi2, linux-snapdragon, linux, linux-aws, linux-azure, linux-gcp, linux-hwe-5.8, linux-kvm, linux-oracle, linux-raspi, linux, linux-aws, linux-kvm, linux-lts-xenial, linux-raspi2, linux-snapdragon, and openjpeg2).
The linux.dev mailing-list service launches
There is a new
mailing-list server running under the auspices of kernel.org that is
meant, over time, to address the problems that have been plaguing
vger.kernel.org in recent times.
The infrastructure behind lists.linux.dev supports multiple domains, so all mailing lists hosted on vger.kernel.org will be carefully migrated to the same platform while preserving current addresses, subscribers, and list ids. The only thing that will noticeably change is the procedure to subscribe and unsubscribe from individual lists.
Among other things, the new server prioritizes delivery to the lore.kernel.org archive, which should minimize the problems seen recently with lost messages.
[$] Unprivileged chroot()
It is probably fair to say that most Linux developers never end up using chroot()
in an application. This system call puts the calling process into a new
view of the filesystem, with the passed-in directory as the root
directory. It can be used to isolate a process from the bulk of the
filesystem, though its security benefits are somewhat limited. Calling
chroot() is a privileged operation but, if Mickaël Salaün has his
way with this patch
set, that will not be true for much longer, in some situations at
least.
Security updates for Monday
Security updates have been issued by Debian (ca-certificates, flatpak, golang-1.7, golang-1.8, mupdf, pygments, and tiff), Fedora (containerd, golang-github-containerd-cri, mingw-gdk-pixbuf, mingw-glib2, mingw-jasper, mingw-python-jinja2, mingw-python-pillow, mingw-python3, python-django, python-pillow, and python2-pillow), Mageia (git, mediainfo, netty, python-django, and quartz), openSUSE (crmsh, git, glib2, kernel-firmware, openldap2, stunnel, and wpa_supplicant), Oracle (qemu), Red Hat (openvswitch2.11, openvswitch2.13, pki-core, rh-nodejs10-nodejs, rh-nodejs12-nodejs, rh-nodejs14-nodejs, and wpa_supplicant), Slackware (kernel), SUSE (apache2, crmsh, glib2, s390-tools, and slurm_20_11 and pdsh), and Ubuntu (python2.7, python3.7, python3.8).
Kernel prepatch 5.12-rc3
The third 5.12 kernel prepatch is out for
testing. "So rc3 is pretty big this time around, but that's entirely
artificial, and due to how I released rc2 early. So I'm not going to read
anything more into this, 5.12 still seems to actually be on the smaller
side overall."
[$] Lockless patterns: an introduction to compare-and-swap
In the first part of this series, I showed you the theory behind
concurrent memory models and how that theory can be applied to
simple loads and stores. However, loads and stores alone are not
a practical tool for the building of higher-level synchronization primitives
such as spinlocks, mutexes, and condition variables.
Even though it is possible to synchronize two threads using the
full memory-barrier pattern that was introduced last week (Dekker's
algorithm), modern processors provide a way that is
easier, more generic, and faster—yes, all three of them—the
compare-and-swap operation.
Security updates for Friday
Security updates have been issued by Debian (mupdf and pygments), Fedora (arm-none-eabi-newlib, nodejs, python3.10, and suricata), Mageia (ansible, ceph, firejail, glib2.0, gnuplot, libcaca, mumble, openssh, postgresql, python-cryptography, python-httplib2, python-yaml, roundcubemail, and ruby-mechanize), Scientific Linux (wpa_supplicant), Slackware (git), SUSE (crmsh, libsolv, libzypp, yast2-installation, zypper, openssl-1_0_0, python, and stunnel), and Ubuntu (pillow).
Asahi Linux progress report
The Asahi Linux project, which is working to build a distribution for
M1-based Apple systems, has published a
progress report for January and February. "Apple Silicon Macs
boot in a completely different way from PCs. The way they work is more akin
to embedded platforms (like Android phones, or, of course, iOS devices),
but with quite a few bespoke mechanisms thrown in. However, Apple has taken
a few steps to make this boot process feel closer to that of an Intel Mac,
so there has been a lot of confusion around how things actually work. For
example, did you know that Apple Silicon Macs cannot boot from external
storage at all, in the traditional sense? Or that the bootloader on Apple
Silicon Macs cannot show a graphical user interface at all, and that the
“Boot Picker” is in fact a full-screen macOS app, not part of the
bootloader?"
LWN.net is a comprehensive source of news and opinions from
and about the Linux community. This is the main LWN.net feed,
listing all articles which are posted to the site front page.
Webcím