Retrotechtacular: The Floppy Disk Orphaned By Linux

About a week ago, Linus Torvalds made a software commit which has an air about it of the end of an era. The code in question contains a few patches to the driver for native floppy disc controllers. What makes it worthy of note is that he remarks that the floppy driver is now orphaned. Its maintainer no longer has working floppy hardware upon which to test the software, and Linus remarks that “I think the driver can be considered pretty much dead from an actual hardware standpoint“, though he does point out that active support remains for USB floppy drives.

It’s a very reasonable view to have arrived at because outside the realm of retrocomputing the physical rather than virtual floppy disk has all but disappeared. It’s well over a decade since they ceased to be fitted to desktop and laptop computers, and where once they were a staple of any office they now exist only in the “save” icon on your wordprocessor. The floppy is dead, and has been for a long time.

The save icon in LibreOffice and other desktop software is probably the last place the floppy exerts a hold over us.
The save icon in LibreOffice and other desktop software is probably the last place the floppy exerts a hold over us.

Still, Linus’ quiet announcement comes as a minor jolt to anyone of A Certain Age for whom the floppy disk and the computer were once inseparable. When your digital life resided not in your phone or on the cloud but in a plastic box of floppies, those disks meant something. There was a social impact to the floppy as well as a technological one, they were a physical token that could contain your treasured ephemeral possessions, a modern-day keepsake locket for the digital age. We may have stopped using them over a decade ago, but somehow they are still a part of our computing DNA.

So while for some of you the Retrotechtacular series is about rare and unusual technology from years past, it’s time to take a look at something ubiquitous that we all think we know. Where did the floppy disk come from, where is it still with us, and aside from that save icon what legacies has it bestowed upon us?

Continue reading “Retrotechtacular: The Floppy Disk Orphaned By Linux”

Linux Fu: Named Pipe Dreams

If you use just about any modern command line, you probably understand the idea of pipes. Pipes are the ability to connect the output from one program to the input of another. For example, you can more easily review contents of a large directory on a Linux machine by connecting two simple commands using a pipe:

ls | less

This command runs ls and sends its output to the input of the less program. In Linux, both commands run at once and output from ls immediately appears as the input of less. From the user’s point of view it’s a single operation. In contrast, under regular old MSDOS, two steps would be necessary to run these commands:

ls > SOME_TEMP_FILE
less < SOME_TEMP_FILE

The big difference is that ls will run to completion, saving its output a file. Then the less command runs and reads the file. The result is the same, but the timing isn’t.

You may be wondering why I’m explaining such a simple concept. There’s another type of pipe that isn’t as often used: a named pipe. The normal pipes are attached to a pair of commands. However, a named pipe has a life of its own. Any number of processes can write to it and read from it. Learn the ways of named pipes will certainly up your Linux-Fu, so let’s jump in!

Continue reading “Linux Fu: Named Pipe Dreams”

The Saga Of 32-Bit Linux: Why Going 64-Bit Raises Concerns Over Multilib

The story of Linux so far, as short as it may be in the grand scheme of things, is one of constant forward momentum. There’s always another feature to implement, an optimization to make, and of course, another device to support. With developer’s eyes always on the horizon ahead of them, it should come as no surprise to find that support for older hardware or protocols occasionally falls to the wayside. When maintaining antiquated code monopolizes developer time, or even directly conflicts with new code, a difficult decision needs to be made.

Of course, some decisions are easier to make than others. Back in 2012 when Linus Torvalds officially ended kernel support for legacy 386 processors, he famously closed the commit message with “Good riddance.” Maintaining support for such old hardware had been complicating things behind the scenes for years while offering very little practical benefit, so removing all that legacy code was like taking a weight off the developer’s shoulders.

The rationale was the same a few years ago when distributions like Arch Linux decided to drop support for 32-bit hardware entirely. Maintainers had noticed the drop-off in downloads for the 32-bit versions of their distributions and decided it didn’t make sense to keep producing them. In an era where even budget smartphones are shipping with 64-bit processors, many Linux distributions have at this point decided 32-bit CPUs weren’t worth their time.

Given this trend, you’d think Ubuntu announcing last month that they’d no longer be providing 32-bit versions of packages in their repository would hardly be newsworthy. But as it turns out, the threat of ending 32-bit packages caused the sort of uproar that we don’t traditionally see in the Linux community. But why?

Continue reading “The Saga Of 32-Bit Linux: Why Going 64-Bit Raises Concerns Over Multilib”

Windows 10 Goes To Shell

Windows 10 — the operating system people love to hate or hate to love. Even if you’re a Linux die-hard, it is a fair bet that your workplace uses it and that you have friends and family members that need help forcing you to use Windows at least some times. If you prefer a command line — or even just find a place where you have to use the command line, you might find the classic Windows shell a bit anemic. Some of that’s the shell’s fault, but some of it is the Windows console which is — sort of — the terminal program that runs various Windows text-based programs. If you have the creator update channel on Windows 10, though, there have been some recent improvements to the console and the Linux system that will eventually trickle down to the mainstream users.

What’s New?

So what’s new? According to Microsoft, they’ve improved the call interface to make the following things work correctly (along with “many others”):

  • Core tools: apt, sed, grep, awk, top, tmux, ssh, scp, etc.
  • Shells: Bash, zsh, fish, etc.
  • Dev tools: vim, emacs, nano, git, gdb, etc.
  • Languages & platforms: Node.js & npm, Ruby & Gems, Java & Maven, Python & Pip, C/C++, C# &
  • .NET Core & Nuget, Go, Rust, Haskell, Elixir/Erlang, etc.
  • Systems & Services: sshd, Apache, lighttpd, nginx, MySQL, PostgreSQL

The changes to the console are mostly surrounding escape sequences, colors, and mouse support. The API changes included things like allowing certain non-administrative users to create symlinks. We’ve made X Windows work with Windows (using a third-party X server) and Microsoft acknowledges that it has been done. However, they still don’t support it officially.

Continue reading “Windows 10 Goes To Shell”

Running Linux On A Thermostat

When your thermostat comes with Linux running on it, that’s not a hack. When it doesn’t, and you get Linux on there yourself, it most definitely is. This is exactly what [cz7asm] has done. In a recent video, he shows the Honeywell thermostat booting Linux and running a wide range of software.

While the hardware inside the thermostat doesn’t afford all the luxuries of a typical modern embedded Linux, it’s got enough room for the basics. The system runs from a 1 MB rootfs in RAM, and has a 2.5 MB kernel image, leaving a spare 12 MB for everything else. With just these meager resources, [cz7asm] shows how the system can use a USB network adapter, connecting to telehack.com for some command-line retro fun, and host a web server, although no browser runs yet. There’s also framebuffer support for displaying graphics and animations, and the usual Linux terminal goodness.

All we’ve seen so far is the video, so we hope [cz7asm] posts the code somewhere, because we’re tired of using our thermostat just to run the AC.

You might remember [cz7asm] from his previous thermostatic triumph: running Doom. Check out the video of the latest thermostat adventure after the break.

Thanks to [Piecutter] for the tip!

Continue reading “Running Linux On A Thermostat”

The Finest Linux Tablet You Can Build

For the last few years now, we’ve all had access to tiny, affordable Systems on a Module. These wunderchips are complete Linux systems with WiFi, a halfway decent GPU, and enough memory to run a real system. This is the perfect platform to base a tablet build on, the only problem is that someone has to actually do it. The DLT One is the ‘Damn Linux Tablet’ from [Prof. Fartsparkle]. It’s the answer to the question of when someone is going to build a tablet computer around one of these cheap Systems on a Chip that are floating around.

With many modules to choose from, the first task is actually choosing one of these Linux modules. [Fartsparkle] ended up with the Nvidia Jetson Nano, an impressive little board that has one distinct advantage: it’s drop-in compatable with the Raspberry Pi Compute Module, the Raspberry Pi-on-an-SODIMM. Given a single chassis, [Prof. Fartsparkle] can simply upgrade his tablet by getting a newer version of the Jetson Nano (or the Compute Module).

The current state of the board is basically an SODIMM socket on a board, with breakouts for Ethernet, a power jack, USB, and HDMI. That’s all there is to it, and design on the tablet chassis is ongoing.

Future updates for this tablet build will include USB-C PD, an mPCI-E connector that would allow for M.2 storage, LTE in some form or another and a dock that would allow you to turn this into a Surface-like laptop. It’s an amazing build, and one of the best entries we’ve seen in this year’s Hackaday Prize.

Turn Your Car Into A Simulator

Video games, while entertaining to be sure, are a great way to experience things that could not easily be recreated in real life. Shooting aliens on a giant ring in space is an obvious example, but there are some more realistic examples that video games make much more accessible, such as driving a race car. You can make that experience as realistic as you want, too, and can even go as far as using a real car as your controller.

All modern cars use a communication system to allow their various modules to talk to one another. Fuel injection, throttle position, pedal positions, steering wheel angle, and climate control systems can all communicate on the CAN bus, and by tapping into that information the car can be used as a controller for a video game. Once you plug in to the OBD-II port on a car, you’ll need a piece of software to decode all of that information. [Andrew] uses uinput, a tool that allows Linux machines to take any input signal and map it in any way that can be programmed.

The build also includes the use of an integrated pico projector, allowing the car to be parked and turned into a simulator at any time. It’s similar to another project which used a Mazda instead of a Chevrolet Volt, but it just goes to show how straightforward it can be to take information from the CAN bus of a modern car.

Continue reading “Turn Your Car Into A Simulator”