LowEndBox - Cheap VPS, Hosting and Dedicated Server Deals

Let's Try Tribblix, the Solaris-Derived x86-64 Operating System

TribblixAges ago, I was a Solaris admin.  That operating system is nearly dead at the hands of Oracle, but a community of derivatives lives on.  And one of these is Tribblix:

Tribblix is an operating system distribution derived from OpenSolaris, OpenIndiana, and illumos, with a retro style and modern components. The base kernel and commands come from illumos, with everything else rebuilt from scratch.

Tribblix is a traditional system. Software is distributed as SVR4 packages, lightweight window managers are preferred over heavy desktop environments, the primary desktop option is Xfce, and MATE and Enlightenment are also available, plus many others. The system is flexible, fast, and familiar to those who’ve used Solaris in the past, while shipping modern software on the solid foundation it’s based on.

Tribblix isn’t just a spin or repackaging of another illumos distribution. It’s a completely independent distribution that, while sharing the key illumos technologies such as ZFS, zones, DTrace, and SMF, has been essentially built from scratch, with its own build and packaging system.

I’m going to try really hard to avoid The Trouble With Tribblix jokes…

So if you consider x86 Unix-like systems, your choices are:

  • Linux, available in many distros
  • The BSDs (Free, Open, and Net)
  • Some proprietary systems that still linger on
  • Minix, a teaching OS you can still download and run
  • The Solaris-based distros

Always fun to see how other projects do things, so let’s give it a spin.  I’m using 0m40 (version 0, milestone 40).

I spun up a 4c/4GB VPS on my home Proxmox.  I won’t rehash the install instructions for Tribblix, which are pretty straightforward.  You boot off the CD, login, su to root, find out the name of your disk, and then run the live_install.sh script.

I just installed the basics which…turns out perhaps to have been a mistake.  More on that later.

First Boot

After logging in as “jack” (the default user), here’s what ps showed:

jack@tribblix:~$ ps -ef
UID PID PPID C STIME TTY TIME CMD
root 0 0 7 11:52:24 ? 0:01 sched
root 4 0 0 11:52:24 ? 0:00 kcfpoold
root 5 0 0 11:52:24 ? 0:01 zpool-rpool
root 1 0 0 11:52:25 ? 0:00 /sbin/init
root 2 0 0 11:52:25 ? 0:01 pageout
root 3 0 0 11:52:25 ? 0:00 fsflush
root 529 1 0 11:52:42 ? 0:00 /usr/lib/inet/inetd start
root 9 1 0 11:52:25 ? 0:01 /lib/svc/bin/svc.startd
root 11 1 0 11:52:25 ? 0:04 /lib/svc/bin/svc.configd
root 112 1 0 11:52:29 ? 0:00 /usr/lib/pfexecd
netadm 47 1 0 11:52:28 ? 0:00 /lib/inet/ipmgmtd
netcfg 44 1 0 11:52:28 ? 0:00 /lib/inet/netcfgd
dladm 40 1 0 11:52:28 ? 0:00 /sbin/dlmgmtd
root 175 1 0 11:52:30 ? 0:00 /usr/lib/rcm/rcm_daemon
root 733 1 0 11:52:42 ? 0:00 /usr/sbin/sshd
root 393 9 0 11:52:31 ? 0:00 /usr/lib/saf/sac -t 300
root 162 1 0 11:52:30 ? 0:00 /usr/lib/zones/zonestatd
root 374 9 0 11:52:31 console 0:00 /usr/lib/saf/ttymon -g -d /dev/console -l console -m ldterm,ttcompat -h -p trib
root 248 1 0 11:52:30 ? 0:00 /usr/lib/picl/picld
root 169 1 0 11:52:30 ? 0:00 devfsadmd
root 81 1 0 11:52:29 ? 0:00 /lib/inet/in.mpathd
root 506 1 0 11:52:32 ? 0:00 /usr/sbin/in.routed
root 204 1 0 11:52:30 ? 0:00 /lib/inet/nwamd
root 148 1 0 11:52:30 ? 0:00 /usr/lib/sysevent/syseventd
root 283 1 0 11:52:30 ? 0:00 /sbin/dhcpagent
root 558 1 0 11:52:42 ? 0:00 /usr/sbin/syslogd
root 151 1 0 11:52:30 ? 0:00 /usr/lib/power/powerd
root 508 1 0 11:52:40 ? 0:00 /usr/lib/inet/in.ndpd
jack 739 737 0 11:52:49 pts/2 0:00 ps -ef
root 633 1 0 11:52:42 ? 0:00 /usr/perl5/bin/perl /usr/lib/intrd
root 372 1 0 11:52:31 ? 0:00 /usr/lib/utmpd
root 416 393 0 11:52:31 ? 0:00 /usr/lib/saf/ttymon
root 690 1 0 11:52:42 ? 0:00 /usr/sbin/nscd
root 426 1 0 11:52:31 ? 0:00 /usr/sbin/cron
daemon 513 1 0 11:52:42 ? 0:00 /usr/sbin/rpcbind
root 734 733 0 11:52:45 pts/1 0:00 /usr/lib/ssh/sshd-session -R
jack 736 734 0 11:52:48 pts/1 0:00 /usr/lib/ssh/sshd-session -R
jack 737 736 0 11:52:48 pts/2 0:00 -bash
root 611 1 0 11:52:42 ? 0:00 /usr/lib/fm/fmd/fmd

Some of that is familiar.  Some ZFS, and “SAF” is a Solaris service management framework.

One thing that jumped out to me:

root 633 1 0 11:52:42 ? 0:00 /usr/perl5/bin/perl /usr/lib/intrd

What is that?

jack@tribblix:~$ file /usr/lib/intrd
/usr/lib/intrd: executable /usr/perl5/bin/perl script
$ vi /usr/lib/intrd
-bash: vi: command not found

Oh…it’s one of those kinds of operating systems where you have install everything.

more(1) was installed so I looked at the file, which has the Sun CDDL license but no comments on what it did.  But the man page explained:

The intrd daemon is started at boot time to monitor the assignments
between interrupts and CPUs. If intrd decides that the current
assignments are imbalanced and harmful to system performance, it will
generate and implement new assignments.

OK, not as exciting as I’d thought.

nscd is running, but that’s the “name service cache daemon,” not nsd.

Naturally, there’s no systemd.  In fact, Tribblix uses very traditional rc.d startup scripts.  Check out /etc:

Tribblix /etc

Installing vi: Attempt #1

I would like to have vi, so let’s try and install it.  If I’d installed additional “overlays” during the live install, I’d probably have it, but since I don’t, it’s time to look at package management.

jack@tribblix:/etc$ man -k pkg
pkgadd(8) - transfer software packages to the system
pkgadm(8) - manage packaging system
pkgask(8) - stores answers to a request script
pkgchk(8) - check package installation accuracy
pkginfo(1) - display software package information
pkginfo(5) - package characteristics file
pkgmap(5) - package contents description file
pkgmk(1) - produce an installable package
pkgparam(1) - display package parameter values
pkgproto(1) - generate prototype file entries for input to pkgmk command
pkgrm(8) - remove a package from the system
pkgtrans(1) - translate package format

Unfortunately, the docs don’t say anything about how to find and install packages.  There’s nothing in the documentation about it.

Maybe the packages are on the CD.

There is a document about how to use removable media.  There’s nothing in my /media directory where I’d expect a CDROM to be mounted, so I followed the doc and installed the packages and ran the svcadm commands to enable rmvolmgr, which should detect and mount removable media.

After doing those steps, I inserted a CDROM (.iso) in Proxmox (I’d removed it during the first boot) but it didn’t show up.

root@tribblix:/root# ls /media
root@tribblix:/root#

dmesg showed these lines:

Jul 25 12:04:38 tribblix pseudo: [ID 129642 kern.info] pseudo-device: eventfd0
Jul 25 12:04:38 tribblix genunix: [ID 936769 kern.info] eventfd0 is /pseudo/eventfd@0
Jul 25 12:05:17 tribblix pseudo: [ID 129642 kern.info] pseudo-device: devinfo0
Jul 25 12:05:17 tribblix genunix: [ID 936769 kern.info] devinfo0 is /pseudo/devinfo@0
Jul 25 12:05:19 tribblix scsi: [ID 583861 kern.info] sd0 at ata1: target 0 lun 0
Jul 25 12:05:19 tribblix genunix: [ID 936769 kern.info] sd0 is /pci@0,0/pci-ide@1,1/ide@1/sd@0,0
Jul 25 12:05:19 tribblix genunix: [ID 127566 kern.info] device pciclass,030000@2(display#0) keeps up device sd@0,0(sd#0), but the former is not power managed
Jul 25 12:05:19 tribblix svc.startd[9]: [ID 652011 daemon.warning] svc:/system/hal:default: Method "/lib/svc/method/svc-hal start" failed with exit status 95.
Jul 25 12:05:19 tribblix svc.startd[9]: [ID 748625 daemon.error] system/hal:default failed fatally: transitioned to maintenance (see 'svcs -xv' for details)
Jul 25 12:05:19 tribblix fmd: [ID 377184 daemon.error] SUNW-MSG-ID: SMF-8000-YX, TYPE: defect, VER: 1, SEVERITY: major
Jul 25 12:05:19 tribblix EVENT-TIME: Sat Jul 25 12:05:19 PDT 2026
Jul 25 12:05:19 tribblix PLATFORM: Standard-PC-(i440FX-+-PIIX,-1996), CSN: -, HOSTNAME: tribblix
Jul 25 12:05:19 tribblix SOURCE: software-diagnosis, REV: 0.1
Jul 25 12:05:19 tribblix EVENT-ID: e81356fd-5c1d-405f-b00b-d41b568e8583
Jul 25 12:05:19 tribblix DESC: A service failed - a start, stop or refresh method failed.
Jul 25 12:05:19 tribblix Refer to http://illumos.org/msg/SMF-8000-YX for more information.
Jul 25 12:05:19 tribblix AUTO-RESPONSE: The service has been placed into the maintenance state.
Jul 25 12:05:19 tribblix IMPACT: svc:/system/hal:default is unavailable.
Jul 25 12:05:19 tribblix REC-ACTION: Run 'svcs -xv svc:/system/hal:default' to determine the generic reason why the service failed, the location of any logfiles, and a list of other services impacted.

I tried to lookup some of the debugging steps listed.  For example:

root@tribblix:/root# cat /var/svc/log/system-hal:default.log
[ Jul 25 12:05:17 Enabled. ]
[ Jul 25 12:05:17 Executing start method ("/lib/svc/method/svc-hal start"). ]
hal failed to start: error 1
[ Jul 25 12:05:19 Method "start" exited with status 95. ]
[ Jul 25 12:05:19 Rereading configuration. ]

Hmmm.

During the rmvolmgr install, there was reference to a “zap” command.

The zap utility is used to manage software packages, zones, and system upgrades on Tribblix.

The man page is very thin, but there is “zap help”, which gives various verbs like “search” and “whatprovides”.

root@tribblix:/root# zap whatprovides /usr/bin/vi
usr/bin/vieet f TRIBe19-efl
usr/bin/vi s TRIBeditor-vim
usr/bin/view s TRIBeditor-vim
usr/bin/vim f TRIBeditor-vim
usr/bin/vimdiff s TRIBeditor-vim
usr/bin/vimtutor f TRIBeditor-vim
usr/bin/vimdot f TRIBgraphviz
usr/bin/vips f TRIBlibvips
usr/bin/vipsedit f TRIBlibvips
usr/bin/vipsheader f TRIBlibvips
usr/bin/vipsprofile f TRIBlibvips
usr/bin/vipsthumbnail f TRIBlibvips
usr/bin/visualvm s TRIBv-visualvm
usr/bin/virtualenv s TRIBvirtualenv-python-313
usr/bin/viewres f TRIBx11-viewres

Eureka!  OK, let’s try this…

root@tribblix:/root# zap install TRIBeditor-vim

Installing 2 packages:
TRIBeditor-vim
TRIBlibsodium

Fetching https://pkgs.tribblix.org/tribblix-m40//TRIBlibsodium.1.0.22.0.zap
Download TRIBlibsodium.1.0.22.0.zap checksum verified
Signature of TRIBlibsodium.1.0.22.0.zap verified
Fetching https://pkgs.tribblix.org/tribblix-m40//TRIBeditor-vim.9.1.2132.0.zap
Download TRIBeditor-vim.9.1.2132.0.zap checksum verified
Signature of TRIBeditor-vim.9.1.2132.0.zap verified
Installing TRIBlibsodium

Installation of  was successful.
Installing TRIBeditor-vim

Installation of  was successful.
Installed 2 packages

And vi works.

Quirks

I read once that the chief differences between Unices are in system startup, accounting, and package management.  We’ve seen the startup is rc.d-based.  Accounting is SVR4 (to be honest, it’s rarely used now and made more sense in days when many departments and users logged into a single system), and package management is different than Linux/BSDs.

I noticed a strange message on boot, which was captured in dmesg:

Jul 25 11:52:24 tribblix pci: [ID 370704 kern.info] PCI-device: pci1af4,1100@1,2, uhci0
Jul 25 11:52:24 tribblix genunix: [ID 936769 kern.info] uhci0 is /pci@0,0/pci1af4,1100@1,2
Jul 25 11:52:24 tribblix i8042: [ID 526150 kern.info] 8042 device: keyboard@0, kb8042 # 0
Jul 25 11:52:24 tribblix genunix: [ID 936769 kern.info] kb80420 is /pci@0,0/isa@1/i8042@1,60/keyboard@0
Jul 25 11:52:24 tribblix i8042: [ID 526150 kern.info] 8042 device: mouse@1, mouse8042 # 0
Jul 25 11:52:24 tribblix genunix: [ID 936769 kern.info] mouse80420 is /pci@0,0/isa@1/i8042@1,60/mouse@1
Jul 25 11:52:24 tribblix unix: [ID 950921 kern.info] cpu0: x86 (chipid 0x0 GenuineIntel 60FB1 family 15 model 107 step 1 clock 1800 MHz)
Jul 25 11:52:24 tribblix unix: [ID 950921 kern.info] cpu0: QEMU Virtual CPU version 2.5+
Jul 25 11:52:24 tribblix unix: [ID 551322 kern.info] KPTI enabled (PCID not supported, INVPCID not supported)
Jul 25 11:52:24 tribblix unix: [ID 417328 kern.warning] WARNING: cpu1: CPUID.0xD returns invalid value: hw_low = 0, hw_high = 0, xsave_size = 0, ymm_size = 0, ymm_offset = 0
Jul 25 11:52:24 tribblix unix: [ID 950921 kern.info] cpu1: x86 (chipid 0x0 GenuineIntel 60FB1 family 15 model 107 step 1 clock 1800 MHz)
Jul 25 11:52:24 tribblix unix: [ID 950921 kern.info] cpu1: QEMU Virtual CPU version 2.5+
Jul 25 11:52:24 tribblix unix: [ID 557947 kern.info] cpu1 initialization complete - online

Not sure what that means, but possibly because it’s a QEMU virtual CPU that Tribblix didn’t anticipate.

Also saw this on reboot:

root@tribblix:/root# reboot
bootadm: failed to open file: /rpool//platform/i86pc/kernel/unix: No such file or directory

I was trying to see what Tribblix would report about the hardware.  There’s a /proc, but it’s solely process info.  Then I remembered a little of my Solaris days and psrinfo:

root@tribblix:/proc# psrinfo -v
Status of virtual processor 0 as of: 07/25/2026 14:58:27
  on-line since 07/25/2026 12:08:57.
  The i386 processor operates at 1800 MHz,
        and has an i387 compatible floating point processor.
Status of virtual processor 1 as of: 07/25/2026 14:58:27
  on-line since 07/25/2026 12:08:57.
  The i386 processor operates at 1800 MHz,
        and has an i387 compatible floating point processor.
Status of virtual processor 2 as of: 07/25/2026 14:58:27
  on-line since 07/25/2026 12:08:57.
  The i386 processor operates at 1800 MHz,
        and has an i387 compatible floating point processor.
Status of virtual processor 3 as of: 07/25/2026 14:58:27
  on-line since 07/25/2026 12:08:57.
  The i386 processor operates at 1800 MHz,
        and has an i387 compatible floating point processor.

Accurate, though not as detailed as /proc/cpuinfo on Linux.

And prtconf will give you details on the hardware, such as:

Memory size: 4096 Megabytes

…as well as various pci hardware.

Conclusion

I enjoyed spelunking around Tribblix.  It reminds me of my early days when I was learning Unix and trying out different systems.  Back then, there was AIX, HP-UX, Solaris, Irix, and more.  In 2026, nearly everything is Linux, and the few things that aren’t are BSD.  Poking around on another member of the great Unix family tree is fun.

I think I need to learn more about Solaris services, and ZFS to really take advantage of the OS.  Time permitting, I’ll play around with Tribblix some more.

 

 

 

No Comments

    Leave a Reply

    Some notes on commenting on LowEndBox:

    • Do not use LowEndBox for support issues. Go to your hosting provider and issue a ticket there. Coming here saying "my VPS is down, what do I do?!" will only have your comments removed.
    • Akismet is used for spam detection. Some comments may be held temporarily for manual approval.
    • Use <pre>...</pre> to quote the output from your terminal/console, or consider using a pastebin service.

    Your email address will not be published. Required fields are marked *