Language Selection

English French German Italian Portuguese Spanish

today's leftovers

Filed under
Misc
  • Another system update adventure with RAUC, Barebox & Yocto Project - Bootlin's blog

    After experiencing both SWupdate and Mender in the past we recently got the opportunity to work with another update framework for embedded systems called RAUC.

    This time the choice of RAUC as system upgrade framework was mainly motivated by the Phytec IMX6 board ecosystem which is based on both Barebox and Yocto Project.
    Indeed RAUC and Barebox are both developed by Pengutronix and both are designed to provide a complete and homogeneous solution that will be introduced in this post.

  • Paul E. Mc Kenney: So You Want to Rust the Linux Kernel?

    There has been much discussion of using the Rust language in the Linux kernel (for example, here, here, and here) and 2021 LInux Plumbers Conference had a number of sessions on this topic, as did Maintainers Summit. At least two of these sessions mentioned the question of how Rust is to handle the Linux-kernel memory model (LKMM), and I volunteered to write this blog series on this topic.

    This series focuses mostly on use cases and opportunities, rather than on any non-trivial solutions. Please note that I am not in any way attempting to dictate or limit Rust's level of ambition. I am instead noting the memory-model consequences of a few potential levels of ambition, ranging from "portions of a few drivers", "a few drivers", "some core code" and up to and including "the entire kernel". Greater levels of ambition will require greater willingness to accommodate a wider variety of LKMM requirements.

  • Download Linux - Linux Nightly

    Linux refers to the kernel on which distributions are built. You can think of it as the core to all systems that are running on Linux.

    Linux distributions are the download links featured above – such as Ubuntu, Fedora, Manjaro, etc. These are collections of software and configurations that have been packaged with the Linux kernel. A team of developers is responsible for each distro, and attaches their own branding or moniker (i.e. “Linux Mint) to it. Typically, the devs will release free updates and support for the distro they’ve created.

    Another term you’ll hear often is GNU, or GNU/Linux. The GNU project is responsible for a massive amount of the free software you’ll find availalble across all Linux distributions.

    While the Linux kernel provides an operating system with its core functionality, the GNU software, as well as software from other developers, allows us to interact with the operating system and do things. Since GNU and Linux are both so integral to Linux distributions, the term GNU/Linux is exceedingly common.

    Both the Linux kernel and GNU software are free. That’s why so many Linux distributions exist in the first place. Anyone is free to take these components, bundle them together, add their own spin to the package, and then release the finished product as a separate operating system (Linux distro). This is very different than systems like Microsoft Windows, where the code for the OS and its applications are locked tightly behind a closed source and copyright laws.

  • Fixing a LibreOffice bug in less than eight hours!

    LibreOffice’s QA community works on identifying, testing and fixing bug reports from users around the world. Gabriele Ponzo, a long-time LibreOffice contributors and part of The Document Foundation’s Membership Committee, tells us about how a bug was recently fixed in just under eight hours...

  • Diamantedesk: Open-source Ticketing System for business

    Diamantedesk is an open source web-based Ticketing, help-desk solution aims to allow you to customize for business needs.

    Diamantedesk offers reliability, flexibility, scalability, and extensibility for many enterprise sectors like IT support, shipping, customer services, healthcare and more.

    It is built to improve customer service and convert feedback into valuable experience

    The system comes with a rich set of features and fancy look with informative dashboard filled with graphs, charts, and logs.

    [...]

    It is published under the Open Software License (OSL 3.0).

  • KDE DEVLOG - Fixing This Weird Bug In Desktop Applets - Kockatoo Tube

Paul E. Mc Kenney on Rusting Linux

  • Rust Concurrency Philosophy: A Historical Perspective

    At first glance, Rust's concurrency philosophy resembles that of Sequent's DYNIX and DYNIX/ptx in the 1980s and early 1990s: "Lock data, not code" (see Jack Inman's classic USENIX'85 paper "Implementing Loosely Coupled Functions on Tightly Coupled Engines", sadly invisible to search engines). Of course, Sequent lacked Rust's automatic checking, and Sequent's software engineers made much less disciplined use of ownership than Rust fans recommend. Nevertheless, this resemblance has resulted in some comparisons of Rust with the DEC Alpha, which had a similar concurrency model.

    Interestingly enough, DYNIX and early versions of DYNIX/ptx used compile-time-allocated arrays for almost all of its data structures. You want your kernel to support up to N tasks? Very well, build your kernel to have its array of N task structures. This worked surprisingly well, perhaps because the important concurrent applications of that time had very predictable resource requirements, including numbers of tasks. Nevertheless, as you might expect, this did become quite the configuration nightmare. So why were arrays used in the first place?

    To the best of my knowledge, the earliest published complete articulation of the reason appeared in Gamsa et al.'s landmark paper "Tornado: Maximizing Locality and Concurrency in a Shared Memory Multiprocessor Operating System". The key point is that you cannot protect a dynamically allocated object with a lock located within that object. The DYNIX arrays avoided deallocation (or, alternatively, provided a straightforward implementation of type-safe memory), thus allowing these objects to be protected with internal locks. Avoiding the need for global locks or reference counters was an important key to the performance and scalability prized by Sequent's customers.

  • Rusting the Linux Kernel: Atomics and Barriers and Locks, Oh My!

    LKMM is not the most complex memory model out there, but neither is it the simplest. In addition, it is in some ways more strict than the C/C++ memory models, which means that strict adherence to coding guidelines is required in order to prevent compiler optimizations from breaking Linux-kernel code. Many of these optimizations are not localized, but are instead scattered hither and yon throughout the compilers, including throughout the compiler backends. The optimizations in the backends are a special challenge to Rust, which seems to take the approach of layering safety on top of (or perhaps within) the compiler frontend. Later posts in this series will look at several pragmatic options available to Rust Linux-kernel code.

    There is one piece of good news: Compilers are forbidden from introducing data races into code, at least not into code that is free of undefined behavior.

    With all of that out of the way, let's look at Rust's options for dealing with Linux-kernel atomics and barriers and locks.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

More in Tux Machines

digiKam 7.7.0 is released

After three months of active maintenance and another bug triage, the digiKam team is proud to present version 7.7.0 of its open source digital photo manager. See below the list of most important features coming with this release. Read more

Dilution and Misuse of the "Linux" Brand

Samsung, Red Hat to Work on Linux Drivers for Future Tech

The metaverse is expected to uproot system design as we know it, and Samsung is one of many hardware vendors re-imagining data center infrastructure in preparation for a parallel 3D world. Samsung is working on new memory technologies that provide faster bandwidth inside hardware for data to travel between CPUs, storage and other computing resources. The company also announced it was partnering with Red Hat to ensure these technologies have Linux compatibility. Read more

today's howtos

  • How to install go1.19beta on Ubuntu 22.04 – NextGenTips

    In this tutorial, we are going to explore how to install go on Ubuntu 22.04 Golang is an open-source programming language that is easy to learn and use. It is built-in concurrency and has a robust standard library. It is reliable, builds fast, and efficient software that scales fast. Its concurrency mechanisms make it easy to write programs that get the most out of multicore and networked machines, while its novel-type systems enable flexible and modular program constructions. Go compiles quickly to machine code and has the convenience of garbage collection and the power of run-time reflection. In this guide, we are going to learn how to install golang 1.19beta on Ubuntu 22.04. Go 1.19beta1 is not yet released. There is so much work in progress with all the documentation.

  • molecule test: failed to connect to bus in systemd container - openQA bites

    Ansible Molecule is a project to help you test your ansible roles. I’m using molecule for automatically testing the ansible roles of geekoops.

  • How To Install MongoDB on AlmaLinux 9 - idroot

    In this tutorial, we will show you how to install MongoDB on AlmaLinux 9. For those of you who didn’t know, MongoDB is a high-performance, highly scalable document-oriented NoSQL database. Unlike in SQL databases where data is stored in rows and columns inside tables, in MongoDB, data is structured in JSON-like format inside records which are referred to as documents. The open-source attribute of MongoDB as a database software makes it an ideal candidate for almost any database-related project. This article assumes you have at least basic knowledge of Linux, know how to use the shell, and most importantly, you host your site on your own VPS. The installation is quite simple and assumes you are running in the root account, if not you may need to add ‘sudo‘ to the commands to get root privileges. I will show you the step-by-step installation of the MongoDB NoSQL database on AlmaLinux 9. You can follow the same instructions for CentOS and Rocky Linux.

  • An introduction (and how-to) to Plugin Loader for the Steam Deck. - Invidious
  • Self-host a Ghost Blog With Traefik

    Ghost is a very popular open-source content management system. Started as an alternative to WordPress and it went on to become an alternative to Substack by focusing on membership and newsletter. The creators of Ghost offer managed Pro hosting but it may not fit everyone's budget. Alternatively, you can self-host it on your own cloud servers. On Linux handbook, we already have a guide on deploying Ghost with Docker in a reverse proxy setup. Instead of Ngnix reverse proxy, you can also use another software called Traefik with Docker. It is a popular open-source cloud-native application proxy, API Gateway, Edge-router, and more. I use Traefik to secure my websites using an SSL certificate obtained from Let's Encrypt. Once deployed, Traefik can automatically manage your certificates and their renewals. In this tutorial, I'll share the necessary steps for deploying a Ghost blog with Docker and Traefik.