On occasions, it has proved difficult to amend the configuration of a zone in SmartOS using –

vmadm update <uuid>

SmartOS zone configuration may be accessed and amended directly using the zonecfg command as follows –

zonecfg -z <uuid>
zonecfg:uuid> select attr name="dns-domain"
zonecfg:uuid:attr> set value="example.net"
zonecfg:uuid:attr> end
zonecfg:uuid> verify
zonecfg:uuid> commit
zonecfg:uuid> exit

{jcomments on}Distribution tracker

To follow is a list of OpenSolaris-derived and Illumos-derived operating system distributions in alphabetical order. The list will be updated from time to time whenever I learn about a new distribution and any entries may be accompanied by any additional information that is deemed relevant to a person selecting between the distributions. I presently omit reference to the Oracle distributions because they are no longer open source; the source having become closed in or about August 2010. Illumos also has an official list of distributions here; the official list is likely to be more up-to-date than the list presented here.


DilOS is an Illumos-based operating system that uses the Debian package manager (dpkg and apt).



Dyson is a general-purpose operating system derived from Debian that uses an Illumos kernel, GNU libc and the SMF init system. It is not a derivative of any existing or previous distributions based on Illumos or OpenSolaris. It appears to be being developed as a drop-in replacement for Debian with, presumably, the inherent benefits of an Illumos-based kernel, namely: ZFS, OS-level virtualization in the form of containers / zones and virtualized networking (also known as Crossbow technology).



Illumian is an Illumos distribution combining the Illumos operating system with the Debian packaging tool set.



OpenIndiana is a desktop-oriented distribution of Illumos which represents a good, stable environment for the development of Solaris / Illumos software using the latest versions of the Illumos kernel.



OmniOS is an installable, multi-tenant cloud oriented server distribution of Illumos.



OpenSXCE is an implementation of OpenIndiana for machines based on SPARC architecture.



Schillix is a self hosting operating system distribution based on a fork of the original OpenSolaris code base and is now developed independently of Illumos.



SmartOS is a live-image distribution of Illumos, designed to boot off a USB memory key and run exclusively from system memory to support multi-tenant cloud computing applications using newly integrated technologies such as KVM with core OpenSolaris / Illumos technologies such as Zones (operating system virtualisation), CrossBow (network virtualisation), ZFS (high integrity / redundant array software-based file system), and DTrace (application tracing / debugging system).



Tribblix is an operating system distribution derived in part from OpenIndiana with a Xfce-based desktop and SVR4 packaging.



XStreamOS is a minimal self-hosting and installable distribution of Illumos to provide a base from which new "computing appliances" can be built.




{jcomments off}

Per directory / file publishing to an IPS repository

Open package for write access at the IPS repository

eval `pkgsend [-s <repository_uri>] open This email address is being protected from spambots. You need JavaScript enabled to view it.`

Add a directory to the package

pkgsend [-s <repository_uri>] add dir mode=0555 owner=root group=bin path=/etc/package

Add a file to a directory of the package

pkgsend [-s <repository_uri>] add file package/text_file

Add attributes to the file

pkgsend [-s <repository_uri>] add file package/text_file mode=0555 owner=root group=bin path=/etc/package

Add a dependency for this package

pkgsend [-s <repository_uri>] add depend fmri=pkg:/This email address is being protected from spambots. You need JavaScript enabled to view it.,5.11-0.101 type=require

Set a name attribute.

pkgsend [-s <repository_uri>] add set name=description value="Example package"

Close the package.

pkgsend [-s <repository_uri>] close

En bloc publishing to an IPS repository

Open package for write access at the IPS repository

eval `pkgsend [-s <repository_uri>] open This email address is being protected from spambots. You need JavaScript enabled to view it.`

pkgsend [-s <repository_uri>] import pkg

Close the package.

pkgsend [-s <repository_uri>] close

OpenSolaris 2009.06 x86_64 (AMD64)

This article is a work in progress based on ongoing experiences.


Over a period of time, I have been trialling OpenSolaris 2009.06 as an alternative to Linux for use in storage applications, web service applications and as a potential alternative software development platform for Java / JVM based technologies. An operating system based on one with wide industry acceptance is also of particular interest and the availability of software RAID capability is critical to the safe management of work.

My operating system of choice for Unix applications the past 8 to 10 years has been FreeBSD, principally due to -

  • kernel performance;
  • kernel stability;
  • comprehensive application support; and
  • advanced features including the availability of lightweight virtualisation in the form of jails (chroot-like environments)

Whilst I wholly recommend FreeBSD, unfortunately a number of modern applications prevent use of FreeBSD as a software development system for the Java / JVM software. For example, applications such as VirtualBox and Java / JVM are not yet available except in the form of community ports which lag to some extent behind the latest bug fix releases available on other platforms.

Although my first experience with Unix-like operating systems on x86 hardware came through an early version of Linux (circa 1994) and whereas a distribution such as Ubuntu, Fedora or OpenSUSE would seem a natural, more widely accepted, alternative to FreeBSD in almost all past installations of Linux I have found that installation of certain applications such as the AMP components (Apache, MySQL and PHP) from source has been extremely problematic - mostly due to shared library and dependency issues. Furthermore, each Linux distribution has its own file system layout that makes movement between Unix-like operating systems more difficult.

First impressions

Like most modern Linux distributions, OpenSolaris installs very easily using a graphic-based user interface. By default, OpenSolaris formats the boot disk using ZFS. Without a doubt, ZFS is an impressive file system. In particular, it supports disk mirroring and integrity checking by way of checksums. It also implements a copy-on-write data storage model that facilitates low cost creation and management of individual file system 'snap shots'.

In addition to ZFS, OpenSolaris supports zones (also known as containers in Solaris and jails in FreeBSD) which are light-weight virtual machines.

Problems inherent in simultaneous 32-bit / 64-bit support

Unfortunately, the 32-bit / 64-bit capability of OpenSolaris running on an AMD 64 bit platform appears to create a number of problems when compiling common tools and software in particular, with reference to the so called Application Binary Interface (ABI) and also the compilation of shared libraries with Position Independent Code (PIC).

Installing gcc toolchain

On fresh installation, OpenSolaris 2009.06 is packaged with gcc version 3.4.3. It is inevitable, with the volume of open source software written for Unix-like operating systems, that some open source software will prefer to be compiled with certain versions of the gcc compiler; whether version 3 or 4.

Compiling gcc 4.4.3 on OpenSolaris x86_64 was problematic initially, principally due to the need to compile two libraries: gmp (GNU Multiple Precision library) and mpfr (Multiple Precision Floating-point library with correct Rounding) to provide mathematical arithmetic support. Compiling gmp (and mpfr?) direct from the tarball results in libraries generated using a 64-bit ABI. In contrast, out of the tarball, gcc is compiled as a 32-bit application requiring libraries generated using a 32-bit ABI.

[compilation command]

Although gnu binutils can be compiled on OpenSolaris, most documentation I have reviewed suggests that, on Solaris, gnu ld is "buggy" and, accordingly, Solaris' own version of ld should be used.