It’s Time To Make A Major Change To D-Bus On Linux

Although flying well under the radar of the average Linux user, D-Bus has been an integral part of Linux distributions for nearly two decades and counting. Rather than using faster point-to-point interprocess communication via a Unix socket or such, an IPC bus allows for IP communication in a bus-like manner for convenience reasons. D-Bus replaced a few existing IPC buses in the Gnome and KDE desktop environments and became since that time the de-facto standard. Which isn’t to say that D-Bus is well-designed or devoid of flaws, hence attracting the ire of people like [Vaxry] who recently wrote an article on why D-Bus should die and proposes using hyprwire instead.

The broader context is provided by [Brodie Robertson], whose video adds interesting details, such as that Arch Linux wrote its own D-Bus implementation rather than use the reference one. Then there’s CVE-2018-19358 pertaining to the security risk of using an unlocked keyring on D-Bus, as any application on said bus can read the contents. The response by the Gnome developers responsible for D-Bus was very Wayland-like in that they dismissed the CVE as ‘works as designed’.

One reason why the proposed hyperwire/hyprtavern IPC bus would be better is on account of having actual security permissions, real validation of messages and purportedly also solid documentation. Even after nearly twenty years the documentation for D-Bus consists mostly out of poorly documented code, lots of TODOs in ‘documentation’ files along with unfinished drafts. Although [Vaxry] isn’t expecting this hyprwire alternative to be picked up any time soon, it’s hoped that it’ll at least make some kind of improvement possible, rather than Linux limping on with D-Bus for another few decades.

Continue reading “It’s Time To Make A Major Change To D-Bus On Linux”

Xcc700: Self-Hosted C Compiler For The ESP32/Xtensa

With two cores at 240 MHz and about 8.5 MB of non-banked RAM if you’re using the right ESP32-S3 version, this MCU seems at least in terms of specifications to be quite the mini PC. Obviously this means that it should be capable of self-hosting its compiler, which is exactly what [Valentyn Danylchuk] did with the xcc700 C compiler project.

Targeting the Xtensa Lx7 ISA of the ESP32-S3, this is a minimal C compiler that outputs relocatable ELF binaries. These binaries can subsequently be run with for example the ESP-IDF-based elf_loader component. Obviously, this is best done on an ESP32 platform that has PSRAM, unless your binary fits within the few hundred kB that’s left after all the housekeeping and communication stacks are loaded.

The xcc700 compiler is currently very minimalistic, omitting more complex loop types as well as long and floating point types, for starters. There’s no optimization of the final code either, but considering that it’s 700 lines of code just for a PoC, there seems to be still plenty of room for improvement.

Microsoft’s WebTV Is Being Revived By Fans

During the 1990s, everyone wanted to surf the information super-highway — also known as the World Wide Web or just ‘Internet’ — but not everyone was interested in getting one of those newfangled personal computers when they already had a perfect good television set. This opened a market for TV-connected thin clients that could browse the web with a much lower entry fee, with the WebTV service being launched in 1996. Bought by Microsoft in 1997 and renamed MSN TV, it lasted until 2013. Yet rather than this being the end, the service is now being revived by members of the community through the WebTV Redialed project.

The DreamPi adds dial-up support back to old hardware.
The DreamPi adds dial-up support back to old hardware.

The project, which was recently featured in a video by [MattKC], replaces the original back-end services that the thin clients connected to via their dial-up modems, with the first revision using a proprietary protocol. The later and much more powerful MSN TV 2 devices relied on a standard HTTP-based protocol running on Microsoft’s Internet Information Services (IIS) web server and Windows.

What’s interesting about this new project is that it allows you to not just reconnect your vintage WebTV/MSN TV box, but also use a Windows-based viewer and more. What difficulty level you pick depends on the chosen hardware and connection method. For example, you can pair the Raspberry Pi with a USB modem to get online thanks to the DeamPi project.

Interestingly, DreamPi was created to get the Sega Dreamcast back online, with said console also having its own WebTV port that can be revived this way. Just in case you really want to get the full Dreamcast experience.

Continue reading “Microsoft’s WebTV Is Being Revived By Fans”

Playing A Game Of Linux On Your Sony Playstation 2

Until the 2000s, game consoles existed primarily to bring a bit of the gaming arcade experience to homes, providing graphical feats that the average home computer would struggle to emulate. By the 2000s this changed, along with the idea of running desktop applications on gaming console for some reason. Hence we got Linux for the PlayStation 2, targeting its MIPS R5900 CPU and custom GPU. Unlike these days where game consoles are reskinned gaming PCs, this required some real effort, as well as a veritable stack of accessories, as demonstrated by [Action Retro] in a recent video.

Linux on the PlayStation 2 was a bit of a rare beast, as it required not only the optional HDD and a compatible ‘fat’ PS2, but also an Ethernet adapter, VGA adapter and a dedicated 8 MB memory card along with a keyboard and mouse. PS2 Linux users were also not free to do what they wanted, with e.g. ripping PS2 game discs disallowed, but you could make your own games. All of which had to fit within the PS2’s meagre 32 MB of RAM.

Continue reading “Playing A Game Of Linux On Your Sony Playstation 2”

The Rise Of Fake Casio Scientific Calculators

Scientific calculators are an amazing invention that take pocket calculators from being merely basic arithmetic machines to being pocket computers that can handle everything from statistics to algebra. That said, there are a few layers of scientific calculators, starting with those aimed at students. This is where Casio is very popular, especially because it uses traditional algebraic notation (VPAM) that follows the written style, rather than the reverse-polish notation (RPN) of HP and others. However, much like retro Casio wristwatches, it appears that these Casio calculators are now being (poorly) faked, as explained by [Another Roof] on YouTube.

The advanced fx-991 models are updated every few years, with the letters following the model indicating the year, such as fx-991EX standing for the 2015-released model. This was the model that got purchased online and which turned out to be fake. While the fx-991CW is newer, it changes the entire interface and is rightfully scolded in the video. Arguably this makes it the worst Casio scientific calculator in history.

Continue reading “The Rise Of Fake Casio Scientific Calculators”

Only Known Copy Of UNIX V4 Recovered From Tape

UNIX version 4 is quite special on account of being the first UNIX to be written in C instead of PDP-11 ASM, but it was also considered to have been lost to the ravages of time. Joyfully, we can report that the more than fifty year old magnetic tape that was recently discovered in a University of Utah storeroom did in fact contain the UNIX v4 source code. As reported by Tom’s Hardware, [Al Kossow] of Bitsavers did the recovery by passing the raw flux data from the tape read head through the ReadTape program to reconstruct the stored data.

Since the tape was so old there was no telling how much of the data would still be intact, but fortunately it turned out that the tape was not only largely empty, but the data that was on it was in good nick. You can find the recovered files here, along with a README, with Archive.org hosting the multi-GB raw tape data. The recovered data includes the tape file in SimH format and the filesystem

Suffice it to say that you will not run UNIX v4 on anything other than a PDP-11 system or emulated equivalent, but if you want to run its modern successors in the form of BSD Unix, you can always give FreeBSD a shot.

The Birotary Engine Explained

Everyone generally knows about piston and rotary engines, with many a flamewar having been waged over the pros and cons of each design. The “correct” answer is thus to combine both into a single engine design. The resulting birotary engine comes courtesy of Czech company [Knob Engines] which makes their special engine for the aviation market. The workings of this engine and why it makes perfect sense for smaller airplanes is explained by [driving 4 answers] in a recent video.

Naturally, it’s at best confusing to call an engine a “rotary”, as this covers many types of engines. One could consider the birotary engine perhaps a cross between the traditional rotary piston engines that powered early aircraft and the Wankel rotary engines that would appear much later. The fact that both the housing and the crankshaft rotate reinforces this notion of a piston rotary, while it keeps the fixed ports and glow plugs on the housing that is typical of a Wankel-style engine. Having both the housing and crankshaft rotate is also why it’s called the ‘birotary’.

The claimed benefits of this design include a small size, low vibrations, reduced gyroscopic effect due to counter-rotation, no apex seals, and less mechanically complex than a piston engine. This comes at the cost of a very short stroke length and thus the need for a relatively high RPM and slow transition between power output levels, but those disadvantages are why small airplanes and UAVs are being targeted.

Continue reading “The Birotary Engine Explained”