We are pleased to announce the first ever Linux Kernel Debugging Microconference, and we are now accepting proposals and problem statements.
Kernel debugging can be done in many ways with many purpose-built tools, from printk to Crash, Drgn, KDB/KGDB, and more. These tools are built on layers of standards, formats, implicit standards, and undocumented assumptions that make everything tick. When things work well, the tools stay out of your way and help you resolve your bug. But when things don’t work so well, you’re left debugging your debugger.
The Linux Kernel Debugging Microconference aims to bring together the developers and users of these tools to discuss the shared problems we face. We hope to discuss ongoing work that will improve the state of kernel debuggers, as well as new ideas that will require coordinated development across projects. Some possible topics might include: [...]
Raven Reader is a desktop news reader application. It's built using Electron, a popular framework with developers.
The Skrooge Team announces the release 2.30.0 version of its popular Personal Finances Manager based on KDE Frameworks.
Do you use AWS Elastic Container Registry (ECR) to store and manage your Docker images?
This simple tutorial is going to introduce the new Ubuntu PPA for installing VLC media player as native .deb package format. VLC is easy to install in Ubuntu through either Snap (available in Ubuntu Software) or Flatpak.
In this tutorial, you will learn how to make changes to sources.list file on Debian 11.
sources.list file contains the sources from where packages are going to be downloaded on your system. Adding or removing sources from the sources.list is easy, and it can be done easily
Here is a quick tutorial on installing ZFS support in Debian Linux 12 "Bookworm" using "apt" or "apt-get" command-line option.
The Docker container ecosystem is full of really handy (and cool) tricks.
A fantastic summertime game has consumed many of the kids in my neighborhood. It’s basically a treasure hunt, but the treasures are all shoebox-sized NFC readers that are “easily” findable on a map. Players all have a smart card and run around from box to box, collecting points that depend on how far apart the boxes are from each other. Walk, skate, or bike 1 km between check-ins, and ten points show up on the e-paper screen.
GNOME Web, also known as Epiphany, is a great lightweight web browser with a number of compelling features, including Firefox Sync.
There are a lot of things in Plan 9 which are not improvements over conventional Unix... but it seems to me that this is partly because it's stuck in its tiny little niche and never got the rough edges worn down by exposure to millions.
I was a support guy, not a programmer. I started Unixing on SCO Xenix and later dabbled in AIX and Solaris, and they were all painful experiences with so many rough edges that I found them really unpleasant to use.
Linux in the 1990s was, too. Frankly WinNT was a much more pleasant experience.
But while Win2K was pleasant, XP was a bloated mess of themes and mandatory uninstallable junk like Movie Maker. So I switched to Linux and found that, 5-6 years after I first tried Slackware and RHL and other early distros with 0.x or 1.0 kernels, it was much more polished now.
By a few years later, the experience for non-programmers was pretty good. It uses bold and underline and italics and colour and ANSI block characters, right in the terminal, because it assumes you're using a PC, while the BSDs still don't because you might be on a dumb terminal or a VAX or a SPARCstation or something. (!)
Linux just natively supports the cursor keys. It supports up and down and command-line editing, the way Windows does, the way PC folk expect. BSD doesn't do this, or very poorly.
Linux just natively supports plain old DOS/Windows style partitions, whereas BSD did arcane stuff involving "slices" inside its own special primary partitions. (GPT finally banishes this.)
The June release of KaOS, 2023.06, gives users Linux kernel 6.3.10, the latest Plasma 5.27.6, and adds new tools to the distro's arsenal.
It’s a minimalistic distribution, betting on the Xfce desktop environment, that demands fewer hardware resources, thus an excellent choice for the older machine.
Yesterday, the new version of Peppermint OS finally became available, so let’s dive in and see what’s changed.
From May 25th to 27th, Brasília hosted the MiniDebConf 2023. This gathering, composed of various activities such as talks, workshops, sprints, BSP (Bug Squashing Party), key signing, social events, and hacking, aimed to bring the community together and celebrate the world's largest Free Software project: Debian.
The MiniDebConf Brasília 2023 was a success thanks to the participation of everyone, regardless of their level of knowledge about Debian. We valued the presence of both beginners who are getting familiar with the system and official project developers. The spirit of inclusion and collaboration was present throughout the event. MiniDebConfs are local meetings organized by members of the Debian Project, aiming to achieve similar goals as DebConf but on a regional scale. Throughout the year, events like this occur in different parts of the world, strengthening the Debian community.
Linux kernel 6.4 was released last weekend by Linus Torvalds and it’s already available for installations for Ubuntu systems from Canonical’s official Ubuntu Mainline Kernel Archive for amd64 (x86_64), AArch64 (ARM64), ARMhf, PowerPC 64-bit Little Endian (ppc64el), and IBM System z (s390x) architectures.
I’ve only installed and tested Linux kernel 6.4 on Ubuntu 23.04 (Lunar Lobster) because I never recommend upgrading to a mainline kernel on Ubuntu LTS release and the Ubuntu 22.10 (Kinetic Kudu) release is about to reach end of life later this month.
Many thanks to all the people who are testing and finding bugs in the BETA. So far we gathered 60 bug reports. Many issues were fixed already thanks to your feedback. Many thanks also to our sponsors and all the people who support us with donations.
The K3831-H Thin mITX is the latest Kontron’s motherboard powered by Intel Core i9/i7/i5/i3 and Intel Pentium/Celeron processor series. Some of the key features on this product are its DDR5 memory support, dual GbE ports and multiple display interfaces.
Texas Instruments recently launched two development kits based on the CC2340R5 and the CC1314R10 wireless microcontrollers. These Launchpads support protocols such as Bluetooth 5 Low Energy, Sub-1 GHz, Wi-SUN, etc.
System76, the Colorado-based pre-installed Linux computer company, continues to expand its offerings beyond ready-to-use laptops, desktops, and servers. On Thursday, the company announced that for the do-it-yourselfer it’s released Nebula, a line of PC cases (or chassis) for those who like to make their own computers from scratch.
Although the company continues to introduce new computers at a rapid pace, during the last couple of years the company has also been releasing related products, which runs the gamut from software to hardware.
Migrating a PCB design from one CAD software package to another is no one’s favorite task. It almost never works cleanly. Often there are missing schematic symbols, scrambled PCB footprints, and plenty of other problems. Thankfully [shabaz] shows how to import EAGLE projects into KiCad 7 and fix the most common problems one is likely to encounter in the process. Frankly, the information couldn’t come at a better time.
One of our favorite retro-computing YouTubers, [Clint] from LGR, found himself a very interesting Fujitsu keyboard while thrift store shopping. It was a beautiful unit, but confusing, as this keyboard comes with an 8-pin DIN connector. A 5-pin DIN plug or 6-pin Mini-DIN would be easy to work with, but what was this odd connection? Turns out the Fujitsu N860-2500-T111 came with an Olympus CV-100 Video Processor, which was designed for medical imaging, potentially among other uses. And as often happened with old specialized hardware, the keyboard used a proprietary protocol for sending keystrokes.
The Framework laptop will no doubt already have caught the eye of more than one Hackaday reader, as a machine designed for upgrade and expansion by its users. One of its key features is a system of expansion modules. The modules are USB-C devices in a form factor that slides into the expansion bays on the Framework Laptop.€ Framework encourages the development of new modules, which is something [Spacehuhn] has taken on with an ESP32-S3 development board.
I think you are focusing on the trees and so not seeing the size and the shape of the forest.
Most organisations use C and languages implemented in C, on OSes implemented in C, because they do the job, the people are cheap and readily available, and the dominant OS is free and costs nothing to deploy.
Which can be reduced to:
Most people use the tools most people use.
That's not a very useful observation, but it poses an interesting question:
Why?
That's easier.
Here is the shape of the outside of the answer:
They use them not because they are good -- they aren't very good, measured objectively -- but because they are ubiquitous and cheap.
Other tools are better, and just as free, but then the people cost more, and the associated tooling costs more. (Frameworks, supporting libraries, deployment costs, whatever. E.g. it's very cheap to deploy Javascript because all you need is a reasonably modern browser, and those are free and almost all OSes have them.)
Those are the externalities, in a manner of speaking.
Our profession does structured analysis in a way no other profession has ever done. Let's not lose that precious gift.
My first hype exposure was "use the Extensible Markup Language for everything". Learning from it allowed me to live through the front end stack explosion, the micro-service overdose and many, many more silly trends.
Java 8 introduced the java.util.stream API, which represents a lazily computed, potentially unbounded sequence of values (Streams was also the first designed-for-lambdas API in the JDK). Streams supports the ability to process the stream either sequentially or in parallel.
A Stream pipeline consists of a source (collection, array, generator, etc), zero or more intermediate operations (Stream -> Stream transforms), and an eager terminal operation which produces a value or a side-effect.
The Streams API come with a reasonably rich, but fixed set of built-in operations (mapping, filtering, reduction, sorting, etc), as well as an extensible terminal operation (Stream::collect) that enables the stream contents to be flexibly summarized in a variety of forms. The resulting API is rich enough that users have had good experience with streams, but there are repeated requests for “please add operation X to streams”.
In this document, we explore a corresponding extensible intermediate operation, called
Reaching version 1.0 in just 2015, Rust is a relatively new language with a lot to offer. Developers eyeing the performance and safety guarantees that Rust provides, have to wonder if it's possible to just use Rust in place of what they've been using previously. What would happen if large companies tried to use it in their existing environment? How long would it take for developers to learn the language? Once they do, would they be productive?
In this post, we will analyze some data covering years of early adoption of Rust here at Google. At Google, we have been seeing increased Rust adoption, especially in our consumer applications and platforms. Pulling from the over 1,000 Google developers who have authored and committed Rust code as some part of their work in 2022, we’ll address some rumors head-on, both confirming some issues that could be improved and sharing some enlightening discoveries we have made along the way.
Adding memory safety to C++ is a very difficult problem, to say the least.
I've spent most of the last decade exploring this area (mainly to design Vale's memory safety) and I've discovered some surprising things.
The world largely believes that the only ways to make code memory safe are through reference counting, tracing garbage collection, or borrow checking.
It turns out, there's at least eleven more methods 0 1 with more being discovered all the time if you know where to look. 2
Someone asked me recently, can we use these techniques to add memory safety to C++?
We can! It's something I've been thinking about for a while, and it's about time I write it all down.
Having been a programmer for a long time now, I have experienced my fair share of programming languages. What strikes me the most is that programming languages have not improved much over the years. Java, for example, has certainly improved from when I started using it in the mid-nineties — but only in pretty minor ways. We still get buffer overflows and integer overflows. The compiler still cannot tell when our loops will terminate (yes, this is possible). Aliasing is still a complete unbridled mess. Even Rust, my favourite language du jour, only offers a minor improvement on the status quo. These are not stop-the-world everything has changed kinds of improvements.
Still, big improvements are possible. I now use, on a daily basis, a language (Dafny) which often genuinely amazes me. I’ll admit, its not super easy to use and perhaps not ready yet for mainstream — but, it gives a glimpse of what is possible. Dafny’s ability to statically check critical properties of your program goes well beyond what mainstream languages can do (that includes you, Rust).
Since the inception I had the plan to have two kinds of way to "store" image imported. Managed and mot managed. Managed meant that the file would be "owned" by the library, copied into a location controlled by the app. Not managed meant it's just a reference to a file on the filesystem. This concept idea came from Apple Apertureâ⢠that did just that, where you'd have a library occuping dozens of GB on your disk. The storage layout of the files was abstracted.
Instead I decided to simplify the approach. Importing files will by default reference, or will copy into a specific location (when importing from a camera, only the latter). The folders are actual directories in storage and this goes hand in hand with the recursive import.
So I just ripped out the Managed enum wherever it was used and ignored. This was unfortunately ported from the C++ code a while ago.
It's been a month since the start of the GSoC 2023 coding period. There is a lot to talk about and show, but here are the highlights of the month and the things I worked on.
The “random.choices()” method of the random “module” and the “secrets.choice()” method of the “secrets” module is used to retrieve the random string in Python.
The Bash source command is a built-in shell tool that plays a pivotal role in the world of Linux and UNIX operating systems. It’s designed to read and execute commands from a specified file within the current shell environment.
Bash scripting offers a powerful built-in utility known as the eval command. This command evaluates and executes strings as shell commands, making it an essential tool in scenarios that involve special operators, reserved keywords, or scripts where variable names are not predetermined.
In Bash scripting, the printf command is a robust utility that offers extensive control over output formatting. Originating from the C programming language’s printf() function, printf in Bash is a built-in command, taking precedence over the standalone /usr/bin/printf binary.