The shell and software
Ixolo feels like a small BSD system. The shell, the commands and most libraries come from NetBSD; the kernel, servers and drivers underneath are MINIX’s. This page covers what you get after logging in, and what you can and cannot install today.
The shell
Section titled “The shell”/bin/sh is NetBSD’s sh (an Almquist shell). It is the login shell of
root and the default for new users.
It has job control since PR #404, once the kernel and process manager gained sessions, process groups and terminal foreground groups. Interactive shells put each pipeline in its own process group, so the usual keys and commands work:
sleep 100 # press Ctrl-Zjobs # [1] + Stopped sleep 100bg %1 # let it run in the backgroundfg # bring it back; Ctrl-C ends itTwo more shells are in base and listed in /etc/shells:
| Shell | Path | Notes |
|---|---|---|
| sh | /bin/sh | Default. POSIX shell with job control and command-line editing (set -o emacs or set -o vi). |
| ksh | /bin/ksh | NetBSD’s public-domain Korn shell. |
| csh | /bin/csh | The BSD C shell. |
Change a user’s shell with chsh (or usermod -s /bin/ksh alice). There is
no bash or zsh in base.
The userland
Section titled “The userland”The commands are NetBSD’s. Most arrived with upstream MINIX’s resync with
NetBSD in 2015; several have since been updated from NetBSD 10 or NetBSD-current.
NetBSD’s manual pages describe them closely. Manual pages ship on the ISO and
in the installed system: man ls, apropos socket.
A few things are MINIX’s own and have no NetBSD equivalent:
| Command | What it does |
|---|---|
minix-service | Start, stop, restart and update system services (servers and drivers) through RS. See Services. |
setup, netconf | The installer and the network configuration tool. |
mined | A small full-screen editor from classic MINIX. |
free | Total, used and free physical memory, and the buffer cache. |
service (without minix-) is NetBSD’s, and runs the rc.d scripts:
service sshd start.
What ships in base
Section titled “What ships in base”Everything below is built from the source tree and installed with the system
(the minix-base set). Versions are from
docs/THIRD_PARTY.md and the
vendored sources.
| Area | Software |
|---|---|
| Editors and terminal | vi (nvi), ed, mined, less 668, tmux 3.6a |
| Network | OpenSSH 10.6, dhcpcd 10.3.1, BIND 9.20.24 tools (dig, host, nslookup; named off by default), ftp (with HTTPS), telnet, tcpdump 4.99.6 |
| Security | OpenSSL 3.5.7 LTS, Mozilla CA certificates with certctl, Heimdal 7.8 (Kerberos) |
| Data and scripting | sqlite3 3.53.3, Lua 5.4.8, awk, sed, make (BSD make) |
| Archives | tar, pax, cpio, gzip, bzip2 1.0.8, xz 5.8.3, unzip, libarchive 3.8.8 |
| Libraries | zlib 1.3.1, expat 2.8.2, libevent 2.1.13, libpthread; libuv 1.52.1 as a static library in minix-comp |
| Time | tz 2026a |
Not in base: Perl, Python, git, curl, a debugger (no gdb or lldb), and X11 (removed from the tree).
The compiler
Section titled “The compiler”The toolchain is LLVM/clang 22 with ld.lld; GCC and GNU binutils are
gone. Whether you have a compiler inside the system depends on how it was
installed:
- The ISO and a system installed from it with
setuphave no compiler: the ISO carries theminix-base,minix-manandminix-testssets, notminix-comp. - A disk image built from source with
releasetools/amd64_hdimage.shincludesminix-comp: headers, libraries and, if the build did not use-V MKLLVMCMDS=no, the nativeclang/cc. Building that native compiler adds hours to the build, which is why the CI skips it.
Packages
Section titled “Packages”Upstream MINIX 3 distributed binary packages built from its fork of pkgsrc,
installed with pkgin. Ixolo has no amd64 package repository yet. The
upstream packages are for i386 and an older ABI; they do not run here.
What exists today:
pkg_add,pkg_info,pkg_deleteandpkg_create(NetBSD’spkg_install) are in base. They install, list and remove binary package files you already have, but there is no repository to fetch them from.pkginitself is not in base. The helper scriptspkgin_cd,pkgin_allandpkgin_setsare inherited from upstream and expect a package collection that does not exist for amd64./usr/Makefilestill points at upstream’s pkgsrc repository ongit.minix3.org. It is upstream’s and does not apply to Ixolo.
So, to get software that is not in base today:
- Add it to the source tree and build it with the system, the way everything in base is built (NetBSD-style reachover Makefiles). See Building from source and Contributing.
- Compile it inside the system with the native clang, on an image that
has it (see above). Simple programs with a plain
Makefileorconfigurescript are the best candidates; anything that needs Linux interfaces will need porting.
A pkgsrc port for amd64, with a binary repository, is on the roadmap. It does not exist yet, and there is no date for it.
Further reading
Section titled “Further reading”- NetBSD manual pages: https://man.netbsd.org/
- Upstream MINIX 3 package guide (i386 and old releases only): https://wiki.minix3.org/doku.php?id=usersguide:installingbinarypackages