User Tools

Site Tools


developersguide:overviewofminixuserland

Overview of Minix 3 userland

The userland is the collection of libraries and executables that users of the operating system use to get work done. They range from basic system utilities (cat, ls, sed, shell…) all the way to desktop environments, office suites, web browsers and video games.

NetBSD userland

History

Since Minix 3.2.0, Minix has imported huge amounts of userland from the NetBSD project. The main consequences are :

  • the source tree of Minix is the same as NetBSD (with Minix-specific code under the minix/ directory),
  • build.sh allows one to cross-compile any version of Minix from almost any POSIX-compatible environment,
  • most of NetBSD's userland documentation (libraries, utilities, headers…) and development process applies here,
  • Minix looks like NetBSD to the untrained eye.

This replaced the classic Minix userland (which was originally designed to be compatible with Unix V7) to reduce maintenance burden, facilitate porting existing software and modernize the OS.

Remember that the majority of NetBSD userland documentation applies here, so only a cursory description will be provided here.

Categories of NetBSD userland

NetBSD userland is separated in two : the base system and extra software installed through the pkgsrc package management system. Additional software installed locally by the users don't count.

Base system

The base system is the collection of essential utilities and libraries bundled with the NetBSD core. This category is further divided in sets, which provides modular functionalities that may not be needed for every use-case (for example, BSD games aren't needed on a web server).

pkgsrc

The base system only provides enough functionality to make NetBSD self-hosting and thus is quite barren. To add additional programs and servers, the usual way is to use pkgsrc, which is a huge collection of software ported and packaged to NetBSD and others OS.

pkgin provides an interface for pkgsrc easier to use for users, comparable to GNU/Linux distribution package systems.

Current state

The transition is complete now, but the import process isn't. Progress is tracked at Porting NetBSD userland to Minix 3.

Minix userland

History

Minix was originally conceived as a teaching tool to circumvent Unix V7 ban on teaching its source code in university classes. It was designed to clone Unix V7 functionality and so Unix userland was reimplemented as part of the project goal.

Current state

Minix has homegrown utilities and libraries mainly to provide system administration and Minix-specific functions. The source tree layout mirrors that of NetBSD under the minix/ directory.

There are small amounts of legacy Minix userland awaiting replacement one day and some legacy utilities from the old days, who may or may not be useful or even usable, left here mostly because they cause no harm for the time being.

developersguide/overviewofminixuserland.txt · Last modified: 2015/04/26 00:06 by jeanbaptisteboric