History of MirOS

Sponsored by
HostEurope Logo

History of MirOS

On August 29th, 2002, Theo de Raadt, leader of the operating system project OpenBSD, co-founder of its antecessor NetBSD, dismissed the port of some NetBSD user-land utility to OpenBSD, made by a person already known, loved and hated in the community: Thorsten Glaser. After struggling around, he eventually decided to not only keep wtf(6) (which later became wtf(1)) in his local tree, but also to start a patch kit and upload it to his personal homepage webspace.

Quickly, the first binary release was made, after various other improvements found their way into the patchkit - among the first, some code of the then-dying MicroBSD (publically released under a good licence), and the KAME patch bringing IPv6 support to the Apache HTTP dæmon.
It was to be decided how to name the child. The first shot was OpenBSD-current-mirabilos, since Thorsten Glasers pseudonym has been like it since early 1993; but that was too long. Even the later OpenBSD-mirabilos was too long, and lasted not more than a few days until the next quarrel with the OpenBSD people. The patchkit was then renamed into BSD-mirabilos.

Eventually, it was decided that using CVS instead of just providing diffs to OpenBSD would be progress (I've considered OpenCM more than just a little bit, but its main advocate and coder Todd Fries told me that I'd need 6-8 Gibibytes of RAM for what I've planned (not even including X-Window or GNU GCC 3.x), so I decided to stick with CVS until OpenCM would be ready for prime time). The patchkit was then renamed to MirBSD. (Update: Subversion isn't up for even GNU Mono with only like 50'000 files under version control, so even less for MirOS with like 120'000 files in CVS.)

Later, a project was born from the patchkit, and designing MirLinux was started (purely as a quick and weird idea, qua the absolute contrary of Debian GNU/NetBSD). When the first person, namely Benny Siegert (who had looked down on MirBSD before "because it lacks NLS support"), having submitted many uncommitted ports to OpenBSD in the past, joined and started to help with the MirBSD ports tree, the project was named The MirOS Project, and the former MirBSD ports tree, evolved from the OpenBSD ports tree, was separated from the MirOS base system and called MirPorts Framework when we heard that many people are using NetBSD pkgsrc (the same thing as the ports tree, called differently, on NetBSD) on their GNU/Linux boxen.

A real boost came into the project when Waldemar Brodkorb of LUUSA, netzladen.org and OpenBSD.de fame started a Quality Assurance whack on MirPorts, and simultaneously decided to donate a SPARCstation 20 with a bit of prodding to Thorsten Glaser, in order to resurrect the port to the sparc32 architecture.

At the same time, MirOS has reached a pretty stable shape, and has been deemed commercial quality by more than one company. There are a lot of people around the world using MirOS, mostly as an alternative to OpenBSD (which lacks ISDN support, IPv6 Apache, and comes with code (Kerberos, AFS, YP, BIND) most users don't need).

More information

If you really want to read the full story, please go look after the ChangeLog files (they are huge). History before that has been preserved back to MirBSD snap#2 in the historic releases folder; the source code consists of a current (at that time) OpenBSD checkout and the files called "obsd.*" (yes it really was a patch kit).
Unluckily, most of the personal-homepage CVS history from that time (I even did log entries describing the changes) is lost, as well as the first versions of the patch kit.

Not really from Day Zero (real men don't count from One :), but less than six weeks later, the web log started. This does not contain every change in every little detail, and is emotionally written and heavily biased, even offending the OpenBSD developers (which I highly appreciate for their work). Read it at your own danger if you are really into it.

An introduction to BSD which has been written by Thorsten Glaser when he was still member of the Open.BSDcows.netproject. Nice reading, although it could need quite an update.
MirOS also appears in the Unix Family Tree, although the arrows pointing to it aren't accurate at all (but if every single synchronization with the other BSD had been synched, you could not read the tree anyways).

A short timeline submitted to Levenez

Note: this has been amended with updates from the original mail.

From: Thorsten Glaser <tg-v2003@netcologne.de>
Message-ID: <Pine.BSO.4.58.0310201046240.4697@herc.mirbsd.org>
Date: Mon, 17 Nov 2003 16:09:43 +0000 (UTC)
Subject: MirBSD at Unix history


I'd like to give some official information regarding the history
of MirOS BSD.

It all started on 29. August 2002, combining OpenBSD (-current)
and NetBSD (-current) at that time.
Maybe you might want to add an asterisk to the arrow from OpenBSD,
adding a footnote which says that sync with OpenBSD is done almost
every few weeks, so the chart would be unreadible if you put them
all there.

Only a few days later, most of the MicroBSD material which this
"Jedi/Sector One" guy published was integrated into the tree.

Synchronization with OpenBSD happened all the time, and NetBSD
material was integrated pretty frequently as well.
Here are some of these I can quickly grep from the changelog:

11.10.2002	earliest point in history of which contributed
		material (web page entries) could be preserved
03.11.2002      ELF exec support, inspired from NetBSD, after the
                OpenBSD ELF patch didn't really work
		earliest point in history of which material could
		be preserved
10.02.2003      finally, ELF with the gcc 3.x port
25.03.2003      ISDN4BSD from third-party diff to OpenBSD 2.7,
                later backed out
27.03.2003      src/lib/csu from NetBSD-current
05.04.2003      growfs/ffsinfo from FreeBSD-current (UFS2 backed out)
05.04.2003      CTM from FreeBSD-current
06.04.2003      ISDN4BSD from NetBSD-current
10.04.2003      evilwm from upstream
02.09.2003      PLIP from NetBSD-current (untested :(
09.11.2003      elf2aout from NetBSD-current with tweaks
                needed for sparc support
27.11.2003	code and idea exchange with ekkoBSD
10.12.2003	first build with propolice-gcc3 done
21.12.2003	first time working cd/msdos boot loader on broken hardware
27.12.2003	20C3 event, changing default uname(1) output
		from OpenBSD to MirBSD and start fixing stuff;
		setup of a MirOS #7-stable branch.
15.01.2004	Server problems solved; development plan changed
31.01.2004	Preparation of release-quality snapshot (i386 only)
		with gcc3, new CSU, WineX working; most improvements ever
03.05.2004	First release via BitTorrent
29.08.2004	Two-Year Birthday Snapshot (i386 only)
17.09.2004	System build with -fstack-protector-all
10.12.2004	Start of ncvs (CVS repository using GNU cvs 1.12)
04.01.2005	Import of the GNU Compiler Collection 3.4.4 (-stable)
22.01.2005	First working snapshot with gcc 3.4-stable etc., no X11.
mid 2006	We realise our website is orphaned


11.10.2002      #0 (first ever)
31.11.2002      #1 (diversion from OpenBSD; getting used to development)
28.01.2003      #2 (a.out with exec-ELF)
02.03.2003      #3 (ELF)
16.04.2003      #4 (first really stable; still used!)
11.06.2003      #5 (fixed executable format; most tested release ever)
08.07.2003      #6 (LinuxTag special edition)
28.09.2003      #7semel (intended to be a commercial-quality product)
04.10.2003      #7bis (must-update critical bug fix release)
22.11.2003      #7ter (same codebase as #7bis, i386/sparc available,
                openbsd errata fixed, many other small bugs too)
early 02.2004   #7-current snapshots (gcc 3.2.3 with Propolice)
13.03.2004	#7-current snapshots (XFree86 4.4, Ada, Pascal, ...)
May-June 2004	The great incompatibility - large parts of infrastructure
		rewritten; binary incompatibility introduced, time_t bumped
		to 64 bit; no SMP.
14.06.2004	#7quater (#7-stable for i386, sparc)
17.09.2004	Now, all functions are SSP protected.
28.12.2004	#7quinquies (#7-stable for i386), maybe ending #7 lifetime
23.12.2005	#8 (gcc 3.4 in-tree; i386 BSD)
25.06.2006	#9 (iconv, basic i18n)
late 2007	#11 (sync with OpenBSD 4.0; rewritten installer)
maybe 2009	#12 (syspkgs, more architectures, maybe new cvs repo)

Solange man keine schmutzigen Tricks macht, und ich meine *wirklich*
schmutzige Tricks, wie bei einer doppelt verketteten Liste beide
Pointer XORen und in nur einem Word speichern, funktioniert Boehm ganz
hervorragend.           -- Andreas Bogk über boehm-gc in d.a.s.r
MirOS Logo