It’s UNIX. On A Microcontroller.

It’s difficult to convey in an era when a UNIX-like operating system sits in your pocket, how there was once a time when the mere word was enough to convey an aura of immense computing power. If you ran UNIX, your computer probably filled a room, and you used it for Serious Stuff rather than just checking your Twitter feed. UNIX machines may still perform high-end tasks, but Moore’s Law has in the intervening years delivered upon its promise, and your phone with its UNIX-like OS is far more powerful than that room-sized minicomputer of the 1970s. A single chip for a few cents can do that job, which begs the question: just how little do we need to run UNIX today? It’s something [Joerg Wolfram] could advise you upon, because he’s got a functional UNIX running on a microcontroller.

Of course, the UNIX in question is not exactly the same as the one you’d find on a supercomputer, either in the 1970s or now. Mini UNIX is a minimalist version of the operating system developed by [Heinz Lycklama] at Bell Labs four decades ago. It gives you a complete UNIX V6 system for the DEC PDP-11, but which needs only 56K of RAM, and no MMU. Emulating a PDP-11 on an STM32 microcontroller allows it to run happily, and while it’s not the most minimalist of microcontrollers it’s still a pretty cheap part upon which to run UNIX.

It’s doubtful whether a 1970s version of an operating system on a commodity microcontroller will take the world by storm, but that’s hardly the point of such a neat hack. It’s certainly not the first time we’ve seen similar work, though this PIC32 offering has a little more in the way of resources to offer.

Header image: Golonlutoj [CC BY-SA 3.0].

Emulating A Forgotten UNIX Box

The AT&T 3B2 series of computers are historically significant, being the main porting platform for System V Release 3 UNIX. Unfortunately, the documentation for these computers has been nearly lost to the sands of time. They are, however, architecturally interesting machines, and [Seth Morabito] has been working for some time on reverse engineering them. Now, [Seth] is calling it: his AT&T 3B2/400 emulator is almost complete, resurrecting an ancient machine from the dead by studying UNIX source code.

The architecture of this computer is unlike anything you’ve seen before, but well-suited to a UNIX machine. The chipset is built around the WE32100 manufactured by Western Electric, and includes a WE32101 MMU for all the fancy memory-mapped I/O. The implementation of this computer is fairly complex, with oodles of glue logic, over a dozen PALs, and various support chips for a PLL and DRAM controllers. This is computer architecture the way it was intended: inscrutable, baroque, and with a lot of fancy custom chips.

The emulator for this system is a bit simpler: you can just download and run it with simh. This emulator simulates 1, 2, or 4MB of system memory, one 720KB floppy diskette, and either one or two 30MB, 72MB, or 161MB MFM hard disk drives. Not everything is implemented so far — [Seth] is still working on an 8-port serial card and a network card — but this is a minimum viable system for developing and analyzing the history of UNIX.

Books You Should Read: The Cuckoo’s Egg

The mid-1980s were a time of drastic change. In the United States, the Reagan era was winding down, the Cold War was heating up, and the IBM PC was the newest of newnesses. The comparatively few wires stitching together the larger university research centers around the world pulsed with a new heartbeat — the Internet Protocol (IP) — and while the World Wide Web was still a decade or so away, The Internet was a real place for a growing number of computer-savvy explorers and adventurers, ready to set sail on the virtual sea to explore and exploit this new frontier.

In 1986, having recently lost his research grant, astronomer Clifford Stoll was made a computer system admin with the wave of a hand by the management of Lawrence Berkeley Laboratory’s physics department. Commanded to go forth and administer, Stoll dove into what appeared to be a simple task for his first day on the job: investigating a 75-cent error in the computer account time charges. Little did he know that this six-bit overcharge would take over his life for the next six months and have this self-proclaimed Berkeley hippie rubbing shoulders with the FBI, the CIA, the NSA, and the German Bundeskriminalamt, all in pursuit of the source: a nest of black-hat hackers and a tangled web of international espionage.

Continue reading “Books You Should Read: The Cuckoo’s Egg”

Z80 Fuzix Is Like Old Fashioned Unix

Classic Z80 computers tend to run CP/M. If you’re a purist you’ll be happy with that because that’s certainly what most serious Z80 computers ran back in the day. However, for actual use, CP/M does feel dated these days. Linux is more comfortable but isn’t likely to run on a Z80. Or is it? Linux borrows from Unix and back in the 1980s [Doug Braun] wrote a Unix-like OS for the Z80 called UZI. There have been lots of forks of it over the years, and a project called FuzixOS aims to make a useful Z80 Unix-like OS.

Of course, 1980 Unix was a lot different from modern-day Linux, but it is still closer to a modern system than CP/M. Fuzix also adds several modern features like 30 character file names and up-to-date APIs. The kernel isn’t just for the Z80, by the way. It can target a variety of older processors including the 6502, the 6809, the 8086, and others. As you might expect, the system can fit in a pretty small system.

The video below shows [Scott Baker’s] RC2014 computer running Fuzix. You’ll see it looks a lot like a Linux system, although that analogy only goes so far.

Continue reading “Z80 Fuzix Is Like Old Fashioned Unix”

Editor Wars

As a rule, I try hard not to get sucked into religious wars. You know, Coke vs Pepsi. C++ vs Java. Chrome vs Firefox. There are two I can’t help but jump into: PC vs Mac (although, now that Mac has turned into Unix, that’s almost more habit than anything else) and–the big one–Emacs vs vi.

If you use Linux, Unix, or anything similar, you are probably at least aware of the violence surrounding this argument. Windows users aren’t immune, although fewer of them know the details. If you aren’t familiar with these two programs, they are–in a way–text editors. However, that’s like calling a shopping mall “a store.” Technically, that’s correct, but the connotation is all wrong.

Like most religious wars, this one is partly based on history that might not be as relevant as it used to be. Full disclosure: I’m firmly in the Emacs camp. Many of my friends are fans of vi–I try not to hold it against them. I’ll try to be balanced and fair in my discussion, unless I’m talking about my preference. I don’t have to be fair when it comes to my opinions. Just to be clear: I know how to use vi. My preference isn’t based out of not wanting to learn something new.

Continue reading “Editor Wars”

E Pluribus Unix, QR-Style

It’s been a long time since we’ve logged into a UNIX mainframe (other than our laptop) but one of our fond memories is the daily fortune: small, quirky, sometimes cryptic sayings that would pop up on the login screen if your system administrator had any sense of humor.

Apparently, we’re not alone. [Alastair] made his own fortune clock which gives you a new “fortune” every second instead of every login. There’s a catch, of course. It’s a QR clock — the fortune is encoded in a QR code instead of being displayed in human-readable form. You have to take a picture of the tiny OLED screen to know what it says. (Watch it sending him Shakespeare sonnets in the video below.)

You probably know QR codes are good for conveying URLs, but their use as general-purpose text containers is underappreciated in our book, so we’re glad to see this example. Now, we’ve seen QR clocks before (here, and here), and this version does have the disadvantage that you can actually tell what time it is. But we’re grateful for the trip down memory lane.

Continue reading “E Pluribus Unix, QR-Style”

LiteBSD Brings 4.4BSD to PIC32

A few years ago [Serge Vakulenko] started the RetroBSD project–a 16-bit port of the old 2.11BSD operating system to the Microchip PIC32 microcontroller. This was impressive, but version 2 of BSD is, to most people, old news and somewhat difficult to use compared to modern BSD and Linux operating systems.

[Serge] has been at it again, however, and now has a port of 4.4BSD–LiteBSD–running on the PIC32MZ. According to [Alexandru Voica] there is about 200K of user space memory in the basic build, and by removing some OS features, you could double or triple that figure.

Continue reading “LiteBSD Brings 4.4BSD to PIC32”