17

I was recently looking at a Motorola 68010 and 68451 that have been in some ESD foam on a shelf for a very, very long time. Now, things are all so huge in memory, but BSD4.4-Lite can run in only 256k for the kernel with networking (https://github.com/sergev/LiteBSD).

I was wondering what the simplest historical UNIX machine is that had memory management?

5
  • 9
    Microsoft's Xenix 286 running on an Intel 80286 based system would be one example. Available commercially and an IBM PC AT would do with some form of serial card to run multiple terminals. Available ~1984.
    – Brian
    Dec 24, 2021 at 18:50
  • 3
    Both Sun and Apollo built workstations using the 68000 and 68010 in 1981-83, with Sun being an early adopter of BSD Unix.
    – Brian H
    Dec 24, 2021 at 19:14
  • 4
    Another example is the Unix-like QUNIX (later renamed QNX) which was released for the Intel 8088 in 1982. Wikipedia: “in the late 1990s QNX released a demo image that included the POSIX-compliant QNX 4 OS, a full graphical user interface, graphical text editor, TCP/IP networking, web browser and web server that all fit on a bootable 1.44 MB floppy disk for the 386 PC.”. Dec 24, 2021 at 20:45
  • I guess it depends how you define Unix ☻
    – mirabilos
    Dec 27, 2021 at 15:40
  • 1
    If there is an implied question what UNIX you could run if you were to make a computer of the chips you have today: Fuzix would be the right starting point, not ancient unices.... Dec 28, 2021 at 7:50

3 Answers 3

22

The PDP-11/45.

Ken Thompson and Dennis Ritchie's first PDP-11 Unix system was on an 11/20 (first PDP-11; no MMU available in standard pricebook) and later an 11/45. The 11/45 was the "big, fast" follow-on machine, with 18-bit physical addresses and three CPU modes.

18-bit physical can address 256 KB; less 8 KB for the I/O page, that gives the 11/45 up to 248 KB of memory (core, MOS, or bipolar).

The classic Ken and Dennis photo has them in front of a pair of PDP-11s (the rightmost two cabinets each holds a CPU + console). The machine on the left is an 11/45, on the right an 11/20.

Thompson and Ritchie at PDP-11

Without your stipulation of an MMU, the 'simplest Unix' label would go to PDP-7 Unix, and after that to PDP-11/20 Unix.

4
  • Then note that this is that machine with 1970s tech. With ~2019 era tech: pdp2011.sytse.net/wordpress/the-smallest-pdp-11-ever So yeah, very simple indeed. Dec 28, 2021 at 0:39
  • 'Small' and 'simple' are not the same, though I covet a PDP2011 (I'm currently running the Raspberry Pi + Simh variant of a PiDP-11). In reference to the question, though, the OP asked about 'historical' Unix machines. Dec 28, 2021 at 2:48
  • Indeed, but the point is that the different tech bases make the original PDP11 seem more complicated than it actually is, by making it physically large and imposing. This makes the comparison a bit more "obvious". Still not going to be a super accurate comparison, but that's the broad gist. Almost surely it could be made even tinier e.g. as a dedicated SoC then look at the wafer :) Dec 28, 2021 at 3:37
  • @The_Sympathizer - ok, now I get your point. Thanks. Dec 28, 2021 at 17:40
18

A bit hard to give a definitive answer as the term UNIX not only covers a huge variety of systems from early minis and microprocessors with a few KiB, to multi gigabyte 64 bit systems, but as well a huge range of more or less (usually less) compatible implementations. Even more, what to consider part of it? Especially the later can be the defining moment for smaller system - which by default all early ones are. Does it need to have an IP stack, or a GUI, which shell or editor?

A basic kernel with a few helpers (getty, shell, etc.) can already run in a few dozen KiB, even supporting multiple users. In fact, the very first implementations were as slim.

A good example for what a low end (non educational/research) system might be is Microsoft's XENIX. It's not an Unix-alike, but a fully licensed (*1) AT&T Unix. Frst based on genuine V7 sources, later upgraded to System III and System V. Microsoft did sell it mostly to OEMs like Altos, Siemens or Tandy. A basic starter system may look like these:

  • Siemens PC-MX (~1981) an 8086 based multi user system for up to 5 terminals (13 terminals possible), running at 8 MHz, 256KiB (up to 1 MiB possible) and a 10 MB HD. The later NS32K based PC-MX2 brought already 1 MiB as minimum RAM. The system did feature a special to type memory management. Siemens MX systems were the most sellign Unix systems worldwide during the mid 80s to early 90s.

  • Tandy Model 16 (~1982) was essentially a Model II with a 68k subsystem running at 6 MHz fitted with 256 KiB and an 8 MiB HS. It could operate up to 9 terminals (DT-1). The Model 16 was in 1984/85 the best selling Unix system in the US.

  • IBM PC-XT was gifted with SCO XENIX in 1983, requiring a basic 4.77 MHz 8088, 256 KiB RAM and a 10 MiB HD - although the manual mentions that some tools, like VI may need at least 384 KiB to run (*2). Also, while a PC-XT could run multi user with terminals attached, it may not be as smooth :)) As a software package it dwarfed any other Unix sale in the US in numbers around 1986.

This may be as low as genuine Unix runs on a low end microprocessor system - and being successful in real life applications.


*1 - Everything but the name.

*2 - PCjs shows nicely how Xenix felt on a 4.77 MHz 8088 with 640 KiB and 10 MiB HD :)

15
  • 3
    Fundamentally, though, how do we measure "simplicity" of a computer? Gut feel says that an 8086 with 29000 transistors is not as simple as a TTL PDP-11. (Upvoted anyway) Dec 24, 2021 at 21:49
  • 1
    @another-dave Oh, I fully agree. On the other hand, machines like a PDP and how they differ from today's computers are simply not understood by most people who think of an i386 as stone age. So I tried to come up with an example that is ancient and at the same time at least remote relatable to today's readers.
    – Raffzahn
    Dec 24, 2021 at 22:58
  • 1
    @Raffzahn Of course, (mind, I'm not an x86 expert), you could easily use all 4 segments. I harp on memory protection because of Unixes 'C' history, which we all know is not "memory safe", and without some mechanic, it would be too simple to corrupt the system. Not so much for applications (since they're "debugged") but having to reboot a Unix system due to a broken routine during development would get tiring really quick, and frustrating to anyone else logged in. So, in practice, I would think some memory protection is almost a necessity. Dec 25, 2021 at 17:18
  • 1
    You'd learn to write programs more carefully, perhaps? :-) Dec 26, 2021 at 14:17
  • 1
    @PeterCordes yea, 64k is coincidentally the "minimum" process size and the "maximum" process size. Just the way it is. If the C compiler doesn't offer the other memory models, it doesn't become an issue. The other example of this is that you don't need a loader for your executables. Ye Olde ".COM" format will do just fine, no need to relocate code to suit the process space. Coherent used to have a 64K process limitation, dunno if it had a minimum size or not. It ran on the 286. Dec 26, 2021 at 21:14
14

Strictly speaking, for an OS to be called UNIX, it has to be certified to comply with the Single UNIX Specification. If we relax the requirement to include also UNIX-like systems (e.g. it took many years for Linux to be certified - and then again, only one specific distribution), then there is UZIX, a UNIX-like OS for the MSX computers (Z80 CPU), which implements kernel in as little as 32KB RAM that implements almost all of 7th Edition AT&T kernel (e.g. it can run complete Bourne shell), full mutiuser and multitasking, and TCP/IP. It is even old enough to be retrocomputing related again.

Then there is FUZIX, a multiplatform (from 8080, 6809, 6502 to esp8266) OS (developed by Alan Cox!) implementing a lot of System7 and SYS3 to SYS5 functionality. It runs even on an unmodified ZX Spectrum 128. And that is a modern impementation of the original UZI, an UNIX implementation for Z80 CP/M OS, running in 64KB (non-banked) RAM.

3
  • 10
    re: it has to be certified to comply with the Single UNIX Specification -- uh, Unix as produced by Thompson and Ritchie was never certified with anything. Dec 25, 2021 at 12:38
  • 5
    @another-dave True, since SUS was only defined in the mid 1990, next to all classic Unix are not onl non-certified, but with high possibility not even compliant. Poor AT&T :))
    – Raffzahn
    Dec 25, 2021 at 14:39
  • 4
    Nitpick: It's not that for an OS to be called UNIX it has to be certified. The certification gives you only one right: to use the trademarked word "Unix" in your documentation and marketing material. So for an OS to be marketed and sold as UNIX it has to be certified. Users on the other hand can generally call anything anything and in fact have been known to do so and go on flamewars about it with other users on the internet :D
    – slebetman
    Dec 26, 2021 at 21:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.