Introducing the Viewpoint Linux Distribution
Viewpoint Linux is a distribution for providing a minimal environment for me to build on and play with. I hope that for others it can be a distro which provides a working environment to use alongside various texts I have in mind, allowing the reader to focus on study of the material at hand rather than trying to get their environment setup right.
The idea came about through having to side step from study to investigate broken stack traces and wondering about the level of pain when having to make build changes system-wide on a distribution which doesn’t provide infrastructure to rebuild at mass with ease. When I first started writing about my experiments with LFS it was suggested that I look at several different established distributions which were the answer to what I was looking for. I was aware of these distributions already and had even used some in the distant past, however I decided not to go down this path as there was either new tooling to learn which would drive system management or components were adapted (local changes and features). I was not interested in having to detour to learn another set of tools which are non-transferable between operating systems nor making use of derivatives before setting up the system how I needed it so that I could practice what I was studying, hence Viewpoint Linux strives to be innovationless in this regard.
Every now and then, I find myself facing a giant pile of files that need renaming in some way. Now, there’s always a tradeoff of number of files vs. complexity where the balance of time spent makes sense to reach for an automated tool, but learning a few tricks off the top of your head can tip the balance in favour of automation and save a lot of time.
First, for demonstration purposes, I’ll make a whole lot of files.
A collection of modern/faster/saner alternatives to common unix commands.
In a previous post I talked a bit about setting up Arch Linux on the Pinebook Pro. That process relied on using a third-party
pacmanrepo for the Pinebook Pro specific build and driver stuff which has disappeared and seems to be no longer maintained. As there’s still no official Arch Linux ARM Pinebook Pro support, I’ve decided that the next best thing is to use official Manjaro images to get as close to my familiar Arch Linux setup as I can. It’s not perfect (because it’s not Arch), but Manjaro is based on top of Arch Linux and it’s easier than the hoops you have to jump through to actually get Arch on the Pinebook Pro. Here’s my guide in which I detail the steps I went through to achieve the following goals:
Full-disk LUKS encryption on root partition
Minimal Manjaro install on the Unstable branch
I take no responsibility for anything good or bad that happens as a result of following this guide. If you manage to brick your Pinebook Pro and think I’m somehow to blame, you can shoot me a nasty email. It’s OK, I won’t hold it against you. But I probably won’t reply. Make sure you’re plugged into a power outlet before starting this, because it takes a while, and running out of juice midway may leave your Pinebook Pro in an… interesting state.
Late in the evening of June 12, 2021, freenode staff seized the largest community channel left on freenode.
They cleared the ##linux access list and established themselves as channel owners. In the process they kicked roughly a thousand remaining users from ##linux, trying to forward them to #linux (one hash mark).
##linux was by far the largest community content channel remaining on freenode with >1000 online users, building this Linux community on IRC, my staff and I have spent countless hours of volunteer time over 22 years.
There was no warning, no consultation and the only shred of reasoning that could be found was in the canned message stating “this channel is in violation of Freenode policy” used with the channel purge. Some of the ##linux channel staff were klined from freenode (i.e. banned at the network level). The channel staff and myself view this as a hostile takeover attempt of our community and an attack on users’ freedom of choice and association.
The key to understanding the value proposition of the PinePhone is understanding the difference between workable and cutting-edge…
OK, this is not an easy post. I have been maintaining Cinnamon in Debian for quite some time, since around the times version 4 came out. The soon (hahaha) to be released Bullseye will carry the last release of the 4-track, but version 5 is already waiting, After Bullseye, the future of Cinnamon in Debian currently looks bleak.
A while back there was a thread on one of our company mailing lists about SSH quoting, and I posted a long answer to it. Since then a few people have asked me questions that caused me to reach for it, so I thought it might be helpful if I were to anonymize the original question and post my answer here.
The question was why a sequence of commands involving
sshand fiddly quoting produced the output they did. The first example was this:
$ ssh firstname.lastname@example.org bash -lc “cd /tmp;pwd” /home/user
Oh hi, my dubious life choices have been such that this is my specialist subject!
Cutefish is a new(ish) desktop environment for GNU/Linux distributions that includes Apple-inspired design elements including a dock, icons, and color theme. While the developers seem to have plans to release an operating system called CutefishOS that’s based on Arch Linux soon, the easiest way to take the software for a spin at the moment is with the new Manjaro Cutefish Edition.
This community spin of Manjaro Linux comes with the Cutefish application dock, file manager, calculator, status bar, full-screen application launcher, and other packages pre-installed. And it’s a pretty nice take on the desktop environment… although it’s also a bit familiar looking.
For the past few months we have been improving the experimental Wayland driver for Wine, which allows Windows applications to run directly on Wayland compositors. Our goal is to eventually remove the need for XWayland for many use cases, and thus reduce the overall system complexity while eliminating points of potential inefficiency.
A side effect of the whole freenode kerfluffle is that I’ve been looking at IRCD again. IRC, is of course a very weird and interesting place, and the smaller community of people who run IRCDs are largely weirder and even more interesting.
However, in that community of IRCD administrators there happens to be a few incorrect systems programming opinions that have been cargo culted around for years. This particular blog is about one of these bikesheds, namely the kqueue vs epoll debate.
You’ve probably heard it before. It goes something like this, “BSD is better for networking, because it has kqueue. Linux has nothing like kqueue, epoll doesn’t come close.” While I agree that epoll doesn’t come close, I think that’s actually a feature that has lead to a much more flexible and composable design.
In software there’s a saying that the last 20% of a project take as much time as the first 80%. Knowing this we’re very happy to announce that a number of projects we were working on have been successfully completed since our previous update in February. The most exciting update is that the touchpad gestures have been accepted to the X server which means that we will get uniform touchpad gesture support in applications regardless of what desktop environment is being used! 🚀 A full accountability report of our progress has been prepared by our developer Povilas on a per-project basis in the Project Update section below.
You can probably make your Unix systems hum – deliver great performance, withstand threats to file system integrity, resist hacker attacks, report problems, and run smoothly no matter what your users throw at them. But can you make them do goofy things? Let’s look at a collection of some really oddball tools that you might never have heard of are tried.
These posts are intended to break down how a program decides how it gets an IP address on a Linux host, and the components that can get involved. Without understanding how these pieces fit together, debugging and fixing problems with (for example)
vagrant landrush, or
resolvconfcan be utterly bewildering.
It’s also a valuable illustration of how something so simple can get so very complex over time. I’ve looked at over a dozen different technologies and their archaeologies so far while trying to grok what’s going on.
I even wrote some automation code to allow me to experiment in a VM. Contributions/corrections are welcome.
The GCC compiler, like other GNU projects, has long required contributors to complete paperwork assigning the copyrights on their work to the Free Software Foundation. That requirement has just been dropped, and contributors can now attach a Signed-off-by tag indicating use of the Developers Certificate of Origin instead. “This change is consistent with the practices of many other major Free Software projects, such as the Linux kernel.” Initial discussion suggests that some developers were surprised by this change and are yet to be convinced that it is a good idea.
Yocto is a set of tools for building a custom embedded Linux distribution. The systems are usually targeted for a particular application such as a commercial product.
Yocto uses what it calls meta-layers to define the configuration. Within each meta-layer are recipes, classes and configuration files that support the primary build tool, a python app called bitbake.
I have a custom meta-layer for the RPi4 boards called meta-rpi64.
There are a some example images in meta-rpi64 that I have been experimenting with.
These systems use sysvinit, but Yocto supports systemd.
Modern computing systems can feature multiple types of memory that differ in their performance characteristics. The most common example is NUMA architectures, where memory attached to the local node is faster to access than memory on other nodes. Recently, persistent memory has started appearing in deployed systems as well; this type of memory is byte-addressable like DRAM, but it is available in larger sizes and is slower to access, especially for writes. This new memory type makes memory allocation even more complicated for the kernel, driving the need for a method to better manage multiple types of memory in one system.
NUMA architectures contain some memory that is close to the current CPU, and some that is further away; remote memory is typically attached to different NUMA nodes. There is a difference in access performance between local and remote memory, so the kernel has gained support for NUMA topologies over the years. To maximize NUMA performance, the kernel tries to keep pages close to the CPU where they are used, but also allows the distribution of virtual memory areas across the NUMA nodes for deterministic global performance. The kernel documentation describes ways that tasks may influence memory placement on NUMA systems.
The NUMA mechanism can be extended to handle persistent memory as well, but it was not really designed for that case. The future may bring even more types of memory, such as High Bandwidth Memory (HBM), which stacks DRAM silicon dies and provides a larger memory bus. Sooner or later, it seems that a different approach will be needed.
Recently, kernel developers have been discussing a possible solution to the problem of different memory types: adding the notion of memory tiers. The proposed code extends the NUMA mode to include features like migrating infrequently used pages to slow memory, migrating hot pages back to fast memory, and a proposal for a control mechanism for this feature. The changes to the memory-management subsystem to support different tiers are complex; the developers are discussing three related patch sets, each building on those that came before.