Language Selection

English French German Italian Portuguese Spanish

Login

Enter your Tux Machines username.
Enter the password that accompanies your username.

More in Tux Machines

Graphics: Mir, X.Org, Gallium3D, GPUOpen, Mesa, Lima and Libinput

  • Mir 1.6 Released With New Wayland, DispmanX Platform Support

    Mir 1.6 is out today with the latest batch of features for this Ubuntu-focused display server that offers Wayland client compatibility. The two big additions to Mir 1.6 are on the graphics platform front. First, there is now a "Wayland platform" for running Mir as a nested compositor on top of a Wayland compositor. Secondly, the rpi-dispmanx platform is for Broadcom's DispmanX API.

  • Before Ending 2019, Vintage SiS X.Org Driver Sees A New Release

    xf86-video-sis 0.12.0 is available this week as a new version of the SiS display driver for X.Org systems in supporting Silicon Integrated Systems' display hardware. This X.Org user-space mode-setting driver has seen its first update in four months but prior to that it hadn't seen any update to the open-source code in three years.

  • RadeonSI Lands SDMA Copy Support For Vega/GFX9

    The RadeonSI Gallium3D driver has finally landed SDMA copy support for Vega/GFX9 graphics hardware, which should principally benefit compute shaders and other cases.

  • AMD's GPUOpen Releases Vulkan Memory Allocator 2.3

    AMD's GPUOpen team has released their first official update to the open-source Vulkan Memory Allocator project in nearly one year. Vulkan Memory Allocator is an easy-to-use Vulkan memory allocation library that in the two and a half years since being open-sourced has been picked up for use by multiple games/engineers, Vulkan code samples, and other projects.

  • Chromium's Ozone Wayland Back-End Is Now Considered Beta, Aiming To Ship Next Year

    For years there has been work on a Wayland back-end to Ozone, the Google component for abstracting user-interface elements and input/window handling among other tasks across platforms. It looks like in 2020 the Ozone Wayland support will be in good standing and promoted out of beta. We were tipped off to a recent presentation by Igalia's Alexander Dunaev on their work contributing to the Ozone Wayland code. From consulting firm Igalia's perspective, they have been focused on bringing up Ozone Wayland support in the embedded Linux context considering the number of consumer devices now shipping that use Wayland and Chromium or CEF. But all their embedded Linux work for Ozone Wayland also benefits the Linux desktop.

  • Mesa Developers Weigh Renaming Gallium "State Tracker" To "API"

    Gallium3D state tracker terminology has been around a decade now in referring to the portions of the architecture that are ultimately implementing various graphics / compute / video APIs. Marek proposed keeping the Mesa OpenGL state tracker term but in renaming the other state trackers to being "API implementations" as that terminology is technically more accurate for the likes of Clover OpenCL, VA-API, VDPAU, and the other state trackers / APIs implemented.

  • Lima Gets Tiling While Vulkan Turnip Lands SSBO + Compute Shaders

    The Lima Gallium3D driver that supports older Mali 400/450 hardware with an open-source OpenGL driver hasn't been seeing too many improvements these days compared to the likes of the Panfrost Gallium3D driver for the newer Arm Mali Bifrost/Midgard architectures. But hitting Mesa 20.0-devel yesterday was tiling support for Lima. This should improve the performance for this open-source Mali driver and also end up working around the driver's broken mipmapping support for linear textures.

  • Libinput 1.15 Is On Approach With Various Improvements/Fixes For Linux Input Handling

    Peter Hutterer has been preparing libinput 1.15 as the next update to this open-source input handling library used by Linux systems both on X.Org and Wayland. Compared to past releases that have seen exciting changes on supporting new input devices like the Dell Totem, scrolling enhancements, and other major additions, there isn't too much of that with libinput 1.15.

Debian GNU/Linux 11 "Bullseye" Installer Is Now Available for Public Testing

Unveiled earlier this year during the DebConf19 conference, Debian GNU/Linux 11 "Bullseye" will be the next major release of the acclaimed Linux-based operating system used by millions of computer users around the globe. It's development kicked off a few months ago, so now it's time to test drive the very first alpha build of the Debian Bullseye Installer. "It's high time we started doing this: many components were updated, replacing “CD”/“CD-ROM” with “installation media”. Such changes are not documented individually below. That also explains why many languages are not fully translated in this alpha release," said Cyril Brulebois on behalf of the Debian release team. Read more

Python Programming and This Week in Rust

  • Adding Notifications to Long-Running Jupyter Notebook Cells

    If you use Jupyter Notebook to run long-running processes, such as machine learning training, then you would probably like to know when the cell finishes executing. There is a neat browser plugin that you can use to help solve this issue called jupyter-notify. It will allow you to have your browser send a pop-up message when the cell finishes executing.

  • #100DaysOfCode, Day 015 – Quick and Dirty Web Page Download

    I wanted to write a program that would just get the latest comic from turnoff.us and save the picture to a file.

  • Mozilla and Chan Zuckerberg Initiative to support pip
  • Creating Palindromes -- if possible -- from a string of letters.

    I don't like the idea of Union[str, int] as a return type from this function. Yes, it's valid Python, but it seems like a code smell. Since the intent is to build lists, a None would be more sensible than a number; we'd have Optional[str] which seems better overall. The solution that was posted was interesting. It did way too much work, but it was acceptable-looking Python. (It started with a big block comment with "#" on each line instead of a docstring, so... there were minor style problems, but otherwise, it was not bad.)

  • Functional programming design pattern: Nested Iterators == Flattening

    Here's a functional programming design pattern I uncovered. This may not be news to you, but it was a surprise to me. It cropped up when looking at something that needs parallelization to reduced the elapsed run time.

  • List Comprehensions in Python

    A list is one of the fundamental data types in Python. Every time you come across a variable name that's followed by a square bracket [], or a list constructor, it is a list capable of containing multiple items, making it a compound data type. Similarly, it is also a breeze to declare a new list and subsequently add one or more items to it.

  • Python if else demo

    A simple kata from codewars will show us how to use the if-else statement in python. The wide mouth frog is particularly interested in the eating habits of other creatures. He just can’t stop asking the creatures he encounters what they like to eat. But then he meets the alligator who just LOVES to eat wide-mouthed frogs! When he meets the alligator, it then makes a tiny mouth.

  • This Week in Rust 315

    Hello and welcome to another issue of This Week in Rust! Rust is a systems language pursuing the trifecta: safety, concurrency, and speed. This is a weekly summary of its progress and community. Want something mentioned? Tweet us at @ThisWeekInRust or send us a pull request. Want to get involved? We love contributions.

Kernel: LWN Articles (Outside Paywall Today), F2FS and BPF

  • LSM stacking and the future

    The idea of stacking (or chaining) Linux security modules (LSMs) goes back 15 years (at least) at this point; progress has definitely been made along the way, especially in the last decade or so. It has been possible to stack "minor" LSMs with one major LSM (e.g. SELinux, Smack, or AppArmor) for some time, but mixing, say, SELinux and AppArmor in the same system has not been possible. Combining major security solutions may not seem like a truly important feature, but there is a use case where it is pretty clearly needed: containers. Longtime LSM stacker (and Smack maintainer) Casey Schaufler gave a presentation at the 2019 Linux Security Summit Europe to report on the status and plans for allowing arbitrary LSM stacking. LSMs allow adding more restrictions to Linux than those afforded by the traditional security policies. For the most part, those policies reflect the existing mechanisms, such as permissions bits on files. But there are also other security concerns, such as binding to a network socket, that are outside of the usual permissions, so mechanisms to restrict access to them have been added to the LSM interface.

  • Some near-term arm64 hardening patches

    The arm64 architecture is found at the core of many, if not most, mobile devices; that means that arm64 devices are destined to be the target of attackers worldwide. That has led to a high level of interest in technologies that can harden these systems. There are currently several such technologies, based in both hardware and software, that are being readied for the arm64 kernel; read on for a survey on what is coming.

  • Keeping memory contents secret

    One of the many responsibilities of the operating system is to help processes keep secrets from each other. Operating systems often fail in this regard, sometimes due to factors — such as hardware bugs and user-space vulnerabilities — that are beyond their direct control. It is thus unsurprising that there is an increasing level of interest in ways to improve the ability to keep data secret, perhaps even from the operating system itself. The MAP_EXCLUSIVE patch set from Mike Rapoport is one example of the work that is being done in this area; it also shows that the development community has not yet really begun to figure out how this type of feature should work. MAP_EXCLUSIVE is a new flag for the mmap() system call; its purpose is to request a region of memory that is mapped only for the calling process and inaccessible to anybody else, including the kernel. It is a part of a larger address-space isolation effort underway in the memory-management subsystem, most of which is based on the idea that unmapped memory is much harder for an attacker to access. Mapping a memory range with MAP_EXCLUSIVE has a number of effects. It automatically implies the MAP_LOCKED and MAP_POPULATE flags, meaning that the memory in question will be immediately faulted into RAM and locked there — it should never find its way to a swap area, for example. The MAP_PRIVATE and MAP_ANONYMOUS flags are required, and MAP_HUGETLB is not allowed. Pages that are mapped this way will not be copied if the process forks. They are also removed from the kernel's direct mapping — the linear mapping of all of physical memory — making them inaccessible to the kernel in most circumstances. The goal behind MAP_EXCLUSIVE seems to have support within the community, but the actual implementation has raised a number of questions about how this functionality should work. One area of concern is the removal of the pages from the direct mapping. The kernel uses huge pages for that mapping, since that gives a significant performance improvement through decreased translation lookaside buffer (TLB) pressure. Carving specific pages out of that mapping requires splitting the huge pages into normal pages, slowing things down for every process in the system. The splitting of the direct mapping in another context caused a 2% performance regression at Facebook, according to Alexei Starovoitov in October; that is not a cost that everybody is willing to pay. Elena Reshetova indicated that she has been working on similar functionality; rather than enhancing mmap(), her patch provides a new madvise() flag and requires that the secret areas be a multiple of the page size. Her version will eventually wipe any secret areas before returning the memory to general use in case the calling process doesn't do that.

  • F2FS File-System Gets More Fixes With Linux 5.5

    The Flash-Friendly File-System continues to be refined and with the forthcoming Linux 5.5 kernel are more improvements albeit largely bug fixes. F2FS in Linux 5.5 improves the in-place updating I/O flow, ensures no garbage collection for pinned files, avoids a needless data migration within the garbage collection code, fixes a potential memory leak, and has a number of other fixes.

  • Netflix: BPF is a new type of software we use to run Linux apps securely in the kernel

    There's growing interest in a new type of software for Linux machines called BPF, which allows the user to run a program in the kernel and enjoy "observability super powers", according to Brendan Gregg, a senior performance architect at Netflix. BPF isn't something an average computer user would know about or even use, but for network and software engineers it promises value. At Facebook, for example, engineers use BPF as part of a network load balancer. Facebook software engineer Alexei Starovoitov is credited with creating Extended BPF, which is now used in Android for collecting statistics from the kernel, monitoring, or debugging. And Google is using it as part of its Kernel Runtime Security Instrumentation to improve detection of security threat signals, such as a kernel module that loads and hides itself.