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).
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 <firstname.lastname@example.org> Message-ID: <Pine.BSO.email@example.com> Date: Mon, 17 Nov 2003 16:09:43 +0000 (UTC) Subject: MirBSD at Unix history Hi, 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 Releases: 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) cu //Thorsten -- 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