Fuzzing Concurrency Bugs with a BPF Scheduler

2025-02-14

At FOSDEM, Jake Hillion from Meta and Johannes Bechberger, an OpenJDK developer, presented their concurrency fuzzing scheduler built using the BPF scheduling framework, `sched_ext`. This scheduler deliberately introduces randomness in scheduling, causing delays and altering thread execution order to surface elusive concurrency bugs. While currently having a significant performance overhead, limiting its use to development debugging, it offers an effective way to uncover real-world logic errors and shows promise for future production use after optimization.

Read more
Development fuzzing

Rust Drivers Hit a Snag in the Linux Kernel's DMA Subsystem

2025-02-04

The Linux kernel's efforts to integrate Rust for device driver development are encountering resistance within the DMA (Direct Memory Access) subsystem. Rust drivers require interaction with the kernel's DMA mapping layer, necessitating a set of abstractions. However, core maintainer Christoph Hellwig opposes adding Rust code to `kernel/dma`, citing increased maintenance complexity. While Rust developers proposed maintaining these abstractions separately, Hellwig remains unconvinced. This impasse highlights challenges in Rust's kernel integration, with its future hinging on the kernel community's decision and the adaptation of core maintainers to a multi-language environment.

Read more
Development

LWN.net Now Offers EPUB Editions

2025-02-02

LWN.net has announced that all feature content is now available in EPUB format for subscribers at the "professional hacker" level and above. Subscribers can download the weekly edition by clicking the "Download EPUB" link in the left column, and there's a separate EPUB RSS feed. Other feature content can be converted to EPUB by appending `/epub` to its URL. LWN.net will also create special EPUB books; coverage from Kangrejos 2024 and the 2024 Linux Storage, Filesystem, Memory Management, and BPF Summit is already available to all readers.

Read more
Tech

Going Mouseless: Building a Productive Keyboard-Only Desktop

2025-02-01

Tired of your mouse? This author shares their journey to a mouse-free desktop. By leveraging tools like the PaperWM scrollable tiling window manager, Firefox bookmark keywords, the Vimium browser extension, and the terminal-based email client Aerc, along with GNOME's Quake Terminal extension and Input Remapper, the author dramatically increased productivity and improved ergonomics. The article details how to use and configure these tools, and shares their experience hiding Emacs's menus and toolbars to further reduce mouse reliance.

Read more

Chimera Linux: A Minimalist Linux Distro Ditching systemd

2025-01-26

Chimera Linux is a new distribution aiming for a "simple, transparent, and easy to pick up" desktop experience. Built from scratch, its first beta release boasts a usable desktop with helpful software, primarily leveraging BSD tools. Rejecting systemd for its complexity, Chimera uses Dinit and musl, reducing dependencies. While installation is manual, its simplicity and support for GNOME/KDE appeal to experienced users. The focus is on a streamlined, usable system, not software debates.

Read more
Development Linux distro

Vim's Rebirth After the Passing of its Founder

2025-01-24

The death of Bram Moolenaar, Vim's creator, shook the community. However, the project continues under the stewardship of Christian Brabandt. The team tackled website modernization, security updates, and new feature development, including XDG directory support and Wayland support. While controversies, such as Tree-sitter integration, exist, the Vim community remains active and dedicated to the project's future.

Read more
Development

2025 Predictions: Linux Kernel, Open Source, and the Uncertain Future

2025-01-17

LWN.net's 2025 predictions paint a picture of exciting advancements and looming challenges in the Linux kernel and open-source landscape. The article foresees transformative changes with the extensible scheduling class (sched-ext), increased adoption of Rust in the kernel, the discovery of new backdoor attempts, risks associated with single-maintainer projects, the potential fallout from AI-generated code, growing support for free generative AI and maintainers, persistent cloud product failures and data breaches, a surge in open hardware, a resurgence of mobile device distributions, and the impact of geopolitical factors. The year ahead promises both significant opportunities and considerable hurdles for the open-source community.

Read more
Development

Vim's Rebirth After Bram Moolenaar's Passing

2025-01-11

The death of Bram Moolenaar, Vim's creator, shook the community, but the project lives on. At VimConf 2024, new maintainer Christian Brabandt outlined the project's reorganization and future plans. The team expanded, the website and infrastructure were upgraded, security vulnerability reporting and community communication were addressed. While Vim is currently in maintenance mode, development hasn't stopped; version 9.1 was released, with plans to improve the GUI, terminal support, and spell checking. Community collaboration is crucial; Brabandt emphasized listening to user needs and maintaining a healthy community.

Read more
Development Community Maintenance

Linux Kernel Initial Commit SHA Collision Risk

2024-12-31

Kees Cook, a Linux kernel developer, discovered a kernel documentation commit whose ID shares the first 12 characters with the initial commit in the kernel's repository. This potential collision could break various tools relying on unique commit IDs. While not yet merged upstream, this commit serves as a test case to proactively address SHA collisions and prevent future widespread issues.

Read more
Development SHA collision

Homa Network Protocol: A New Challenger to TCP/UDP

2024-12-30

Homa is a novel network transport protocol designed for data center applications, aiming to reduce the overhead of transmitting numerous small messages. Unlike traditional TCP/UDP, it eliminates connection setup, employing a unique request-response mechanism and prioritized queues to minimize latency. Currently, Homa is striving for inclusion in the Linux kernel, but its future may heavily rely on hardware acceleration within network devices.

Read more

io_uring Gains New Process Creation Functionality

2024-12-20

LWN.net reports on the development of a new process creation feature for the io_uring subsystem. This functionality is implemented via two new io_uring operations: IORING_OP_CLONE, which creates a new process, and IORING_OP_EXEC, which performs an execveat() system call to load a new program. This promises increased efficiency and allows for more complex logic, such as path searching, to be executed asynchronously within the kernel. However, the feature is still in its early stages and has limitations, such as requiring synchronous execution of io_uring operations within the new process. Future development aims to increase flexibility and eventually merge the feature into the mainline Linux kernel.

Read more

Fish Shell 4.0 Released: Rewritten in Rust for Enhanced Performance

2024-12-19

Fish shell, a command-line shell known for its user-friendliness and smart features, has released version 4.0. The biggest change is a complete rewrite of the codebase from C++ to Rust, resulting in improved modern computing efficiency. Version 4.0 also boasts many new features, such as more natural keybindings and enhanced history search, designed to make the command line experience easier and more enjoyable. To ensure stability, the project has released a public beta inviting all users to participate in testing.

Read more
Development

Guile-powered Emacs: A Bold Rewrite Project

2024-12-16

Emacs, renowned for its extensibility, faces performance and expressiveness limitations with its core language, Emacs Lisp (Elisp). To address this, the Guile-Emacs project aims to replace Elisp in Emacs with Guile Lisp. After years of development and dormancy, Guile-Emacs has been revived by developers Robin Templeton and Larry Valkama. The project aims to leverage Guile's compiler and performance advantages to improve Emacs' speed and extensibility while maintaining Elisp compatibility. The ultimate goal is to rewrite a significant portion of Emacs's C code in Lisp, significantly enhancing its customizability. While facing technical and political challenges, the project presents exciting possibilities for the future of Emacs.

Read more
Development

Rust Compiler: A Query-Based Incremental Compilation Architecture

2024-12-13

To address the efficiency issues of traditional pipeline-based compilation, the Rust compiler employs a query-based incremental compilation architecture. This architecture breaks down the compilation process into a series of interdependent queries, utilizing a compilation database to cache intermediate results. This allows recompilation only of necessary code sections. Similar to a build system's dependency management, this significantly improves compilation speed, especially beneficial in scenarios like IDE integration. While introducing complexity, this approach offers a more stable and efficient incremental compilation experience for Rust compared to gradual improvements to traditional methods, now default for development builds.

Read more
3

Git Project Deadlocked Over Rust Integration

2024-12-13

The Git project is embroiled in a heated debate over the integration of the Rust programming language. Proponents argue that Rust's memory safety and ease of refactoring would enhance Git's security and developer experience. However, opponents express concerns that Rust integration could compromise support for niche platforms like NonStop, potentially hindering Git's long-term viability. NonStop's prevalence in the financial sector, its reliance on Git, and the lack of a Rust compiler for the platform complicate the issue. The discussion ultimately reached no resolution, leaving the Git project grappling with a critical decision between maintaining broad platform support and improving security and developer experience.

Read more
Development Platform Support