# MirOS BSD

MirOS BSD (originally called MirBSD) is a free and open source operating system which started as a fork of OpenBSD 3.1 in August 2002. It was intended to maintain the security of OpenBSD with better support for European localisation. Since then it has also incorporated code from other free BSD descendants, including NetBSD, MicroBSD and FreeBSD. Code from MirOS BSD was also incorporated into ekkoBSD, and when ekkoBSD ceased to exist, artwork, code and developers ended up working on MirOS BSD for a while.
Unlike the three major BSD distributions, MirOS BSD supports only the x86 and SPARC architectures.
One of the project's goals was to be able to port the MirOS userland to run on the Linux kernel, hence the deprecation of the MirBSD name in favour of MirOS.

## History

MirOS BSD originated as OpenBSD-current-mirabilos, an OpenBSD patchkit, but soon grew on its own after some differences in opinion between the OpenBSD project leader Theo de Raadt and Thorsten Glaser. Despite the forking, MirOS BSD was synchronised with the ongoing development of OpenBSD, thus inheriting most of its good security history, as well as NetBSD and other BSD flavours.
One goal was to provide a faster integration cycle for new features and software than OpenBSD. According to the developers, "controversial decisions are often made differently from OpenBSD; for instance, there won't be any support for SMP in MirOS". There will also be a more tolerant software inclusion policy, and "the end result is, hopefully, a more refined BSD experience".
Another goal of MirOS BSD was to create a more "modular" base BSD system, similar to Debian. While MirOS Linux (linux kernel + BSD userland) was discussed by the developers sometime in 2004, it has not materialised.

## Features

* Development snapshots are live and installation CD for x86 and SPARC architectures on one media, via the DuaLive technology.
* Latest snapshots have been extended to further boot a grml (a Linux-based rescue system, x86 only) via the Triforce technology
* mksh (MirBSD Korn shell): an actively developed flavour of KornShell and heir of pdksh
* The base system and some MirPorts store "dotfiles" data in ~/.etc. directory in user's home to avoid cluttering the root of the home directory
* Application packages from the NetBSD-derived pkgsrc repositories were configured for use in MirBSD starting in 2011.
The most important differences to OpenBSD were:
* Completely rewritten, GRUB multi boot compatible, boot loader and boot manager without an 8 GiB limit and with Soekris support
* Slim base system (without NIS, Kerberos, BIND, i18n, BSD games, etc.), Bind and the BSDgames being available as a port
* Binary security updates for stable releases
* ISDN support
* IPv6 support in the web server software
* wtf, a database of acronyms
* Some of the GNUtools (like gzip and *roff) were replaced by original UNIX code released by Caldera International (SCO) under a BSD licence
* 64-bit time handling routines (time_t)
* Correct handling of leap seconds
* Full GCC 3.4 support: C, C++, Pascal, Objective-C
* Current versions of the GNU developer toolchain (rcs, binutils, gdb, texinfo, lynx etc.)
* GNU CVS 1.12 with custom extensions
* Improved random number generator
* Uses sv4cpio with/without CRC instead of tar archives as its package format; support for new formats in cpio
* Improved support for UTF-8 and the Unicode BMP, including wide character support for libncurses ("libncursesw") and friends
** In fact, MirBSD only supports the BMP, so the "UTF-8" support is limited to the part common between UTF-8 and CESU-8.

## Cooperation

Aside from cooperating with other BSDs, submitting patches to upstream software authors, and synergy effects with FreeWRT, there was an active cooperation with Grml both in inclusion and technical areas. Other projects, such as Debian are also fed with MirSoftware.

## MirPorts

MirPorts was a derivative of the OpenBSD ports tree and was developed by Benny Siegert. MirPorts does not use the package tools from OpenBSD written in Perl, but continues to maintain the previous C-based tools. New features are in-place package upgrades and installing a MirPorts instance as a non-root user. Unlike OpenBSD ports, MirPorts are not tied to specific OS versions and even on stable releases using the newest version was recommended. MirLibtool was a modified version of GNU libtool 1.5 installed by MirPorts to build shared libraries in a portable way.
Multiple platforms are supported "out of the box":
* MirOS BSD (-stable and -current)
* OpenBSD (-stable and -current)
* MidnightBSD
* Mac OS X (10.4 and newer) / Darwin
Following the MirOS BSD policy of faster software availability to the user, many ports removed for political reasons in OpenBSD (e.g. all the DJB software or the Flash Plugin) have been kept in MirPorts and can continue to be used. MirPorts was intended to be a place for unofficial or rejected OpenBSD ports.