Linux 0.00 & 0.11 on Qemu!

While checking out oldlinux.org, I came across two things that are somewhat exciting.

The first, is Linux 0.00 The first ever known version of Linux. It’s only two assembly files, an 8086 booter, and the 80386 kernel that sets up protected mode, and two hard coded tasks, then runs the two tasks. It’s very exciting. There is even some commented source available on the oldlinux forum here.

For those who want to check it out, I’ve padded it out onto a diskette image on sourceforge here.

Don’t expect too much, it just prints “AAAA” and “BBBB” over and over, but it’s the first booting version of Linux.

The next thing I found was a BOCHS archive with Linux 0.11 installed, along with GCC 1.40 and a few other programs. This image can even build Linux 0.00 and a slightly modified version of 0.11 that can run bash. I’ve found BOCHS somewhat difficult to configure, and since Qemu is faster, I’ve converted the disk image into a ‘qcow2’, then got it running on Qemu 0.12.5. Just unzip the archive here, and you can be running some really ancient Linux.

Linux 0.00 in action.

Linux 0.00 in action.

Remember that Linux 0.11 is OLD. At this point it didn’t support multiple users, nor did it even have a shutdown or reboot command. Instead we all ran ‘sync’ a dozen times, then pulled the plug. Also it was VERY unstable, and quite prone to panics and crashes.. Although I think a majority of them back then were due to file system corruption from pulling the plug at the wrong time… 🙂

Linux 0.11 on Qemu 0.12.5

Linux also had no support for things like TCP/IP, UUCP, shared libraries, etc… although I’m pretty sure it had working serial port support.. In many ways it feels like 32v, although more primitive. This disk image also has the ability to re-build the patched kernel, and even Linux-0.00. What is also cool is the ‘shoelace’ loader which can boot the Linux kernel, so you don’t have to suffer the boot/root disks of the time, and the fun of hex editing stuff.

For people that love ancient stuff from 1991 this will be great fun indeed!

***UPDATE

For people who are interested in ancient Linux on Windows, I did get the toolchain to build with MinGW, and it seems to work ok!  I have a post about it here.  I have also been able to get the 32bit portion of the Linux kernel to cross compile on Windows as well!  That adventure is here.

This entry was posted in Linux, qemu by neozeed. Bookmark the permalink.
avatar

About neozeed

What is there to tell? I've loved UNIX like things since I was first exposed to QNX in highschool (we had the Unisys ICONS!), and spent the better time of my teenage years trying to get my own UNIX... I should have bought Coherent in retrospect.. Anyways latched onto Linux in 1992, and then got some old BSD admin books and have been hooked on the VAX BSD & other big/ancient things since...!

16 thoughts on “Linux 0.00 & 0.11 on Qemu!

  1. Very interesting. So this is where it all began, huh? When you read the arrogance of todays Linux users who detail the history of OS, they act like it was a God send from day one. NOT!

    Sorry, Windows ruled the 90's and it had good reason to, affordable and a wide variety of applications along with a decent UI. What I would love for you get a hand on is really early NT builds, but I guess they got those on lock down.

  2. It's probably kids… lol when I was younger I thought OS/2 was in the same light, but in retrospect it's MS-DOS like config.sys combined with lack of proper networking and SDK's really sent it to where it was destined.

    Windows NT is a far better OS/2, that's for sure.

    I can still remember going between some 0.9x & 0.12 release of Linux as the 0.12 was more stable on my 386sx, but 0.96 had more 'features'…

    It's funny how the lack of TCP/IP wasn't an issue as everyone I knew in 1992/1993 was still BBS'ing like crazy, and hell I'd just got a 2400 baud modem in 1992…….

  3. I don't think that exist very early builds of NT/OS2 (Windows NT dev. codename)that can run in actual X86 machines & emulators, those were targeted & developed solely for the i860 "Dazzle" microsoft prototype architecture, & only then, ported to other processor architectures, first MIPS "Jazz" machine architecture & then, X86…

    All i860 alpha builds ran in "native" text mode, Win32 & NTVDM subsystem port was done in the MIPS builds ^^.

  4. It's all in that book Show Stopper!

    http://virtuallyfun.blogspot.com/2010/03/showstopper.html

    The oldest build I used to have (I lost the CD!!!!!) was the hardware convention thing that was in florida… there was no real 'install' program, it just xcopied files in place, then installed a new boot sector…

    I think I still have that March beta around here…. But then it looked just like the release version.

    I know I mentioned networking on NT 3.1

    http://virtuallyfun.blogspot.com/2009/08/networking-with-windows-nt-31-under.html

    And that old webserver….

    http://winnt31.superglobalmegacorp.com/

  5. Ohhh… yeah, & forgot to mention that the i860 N-10 emulator used in early stages of development, because a lack of the real hardware thing, ran in a OS/2 x86 enviroment(yeah, i'm surprised that those old processors could emulate a i860 RISC architecture)

  6. Hahaha… after reading the Windws Internals book & viewing some of the windows source, I'm only can think that the NT architecture & design of David Cutler is a far superior to any Linux or UNIX that exists actually…

    Sorry Linux guys, but is the truth..

  7. Hey Neozeed, you know that Windows 3.x & the latest releases of DOS had OS/2 components?

    I'm read a little of Show Stopper! book in Google Books, very interesting piece of history, I'm recommend this book as well.

    Another interesting book with a lot of history: "Andrew Schulman – DOS Undocumented"

  8. Somewhere they have screen shots of the Microsoft Beta of OS/2 2.0, and the MS-DOS session configuration looks almost identical to the MS-DOS configuration from Windows 95…

    Yeah there was a bit of technology mixed around on the x86 space as Cutlers original design proved to be too slow… Although NT 3.1 flies on 1Ghz++ machines… .lol

  9. But Cutler design was only slow in X86 platform. As you can see, in RISC type architectures, Windows NT "flies" literally… For x86 port 45% of code were hacks made in assembly language to make NT go as fast as possible for these older machines, & with that all, NT in 386-Pentium Uniprocessor machines was terribly slow, those hacks only made sense with the advent of PII processor generation (In PII & subsequent processor generations Windows NT flies literally, and is a good OS for guest VMs, unlike OS/2)…

    In all other Windows NT ports, those type of hacks were almost nonexistent, and assembly code only appears in the HAL.

    Thinking in all of this, I wonder the ReactOS attempt to recreate all this so complex OS with a so tiny develop team…

  10. I've only used the Dec Alpha NT on physical hardware (still have one!!) and in Qemu the MIPS version will run… I use it's NT 4.0 / VC 4 from time to time.

  11. And how to fast is the NT Alpha port in real hardware?

    I'm very interested in OS internals, virtualization & hardware in generally, but in Mexico does not exist a place to learn all those U_U..

  12. It certainly 'felt' faster as there was less driver contentions, but it still used the same PCI/ISA bus as the PC's….

    I know my old Dec Alpha would take a minute or two to go through the BIOS, but once NT had loaded only a few seconds to bring up the logon prompt.

    I think the bus chips may have been a big deal, but ironically the C compilers for the Dec Alpha SUCKED… badly.

    only until Visual C++ 6.0 could you actually use it to build 'release' binaries, and of course then they killed it.

Leave a Reply

Your email address will not be published.

Notify me of followup comments via e-mail. You can also subscribe without commenting.