Unleashed 1.4 Released (final release)

Josef 'Jeff' Sipek jeffpc at josefsipek.net
Sat Apr 4 15:53:54 UTC 2020

This is the fifth and final release of Unleashed - an operating system fork
of illumos.  For more information about Unleashed itself and the download
links, see our website [1].

That is right, we are pulling the plug on this project.  What began as a
hobby project for two developers never grew much beyond being a hobby
project for two developers.  But after nearly 4 years of work, we
proved that the illumos code base can be cleaned up significantly, its APIs
modernized, and the user experience improved in general.

While we've made too many changes [2] to list them all here, I'd like to
highlight what I think are some of our major accomplishments:

 - shrinking the codebase by about 25% (~5.6 million lines of code) even
   though we imported major components (e.g., libressl, openbsd ksh)
 - reducing build times drastically (from ~40 minutes to ~16 minutes on a
   2012-era 4 core CPU)
 - changing uname to Unleashed and amd64 (from SunOS 5.11 i86pc)

In addition to the projects we finished, we were well on the way to several
other improvements that we simply haven't gotten around to completing.  Some
of the more notable ones include:

 - page cache rewrite (~3/5 done)
 - modernizing the build system with bmake / removing dmake (~1/5 done)
 - everything 64-bit only (~4/5 done)

All that we've accomplished is just the tip of the iceberg of what remains
to be done.  Unfortunately for Unleashed, we both decided that we wanted to
spend our free time on different projects.

I know I'm biased, but I think we've made some good changes in Unleashed and
I'd love to see at least some of them make their way into illumos-gate or
one of the illumos distros.  So, I hope that someone will have the time and
interest to integrate some of these changes.

Finally, I'd like to encourage anyone who may be interested not to be afraid
of forking an open source project.  Even if it doesn't work out, it is
extremely educational.

The remainder of this email is the typical release announcement text.

By far the most significant changes since 1.3 were the changes around the
compilation environment.  Namely:

 - compilers produce 64-bit output by default
 - /usr/bin/ld is binutils ld.bfd
 - 32-bit libs are in i386 subdirs, 64-bit libs are outside subdirs (no more

As before, you can install the system from scratch using the ISO or USB
images, or update using pkg(1).

To update an existing system, download the p5p and run:

# pkg set-publisher -G '*' -g file:///path/to/unleashed-1.4.p5p unleashed
# pkg set-publisher -G '*' -g file:///path/to/unleashed-1.4.p5p userland
# pkg update
# reboot

You will also want to rebuild any additional software you may have built.

With all this said, give the release a try.  We will still be on IRC
(#unleashed on Freenode) and the mailing list answering questions.

Happy hacking!


[1] https://www.unleashed-os.org
[2] https://repo.or.cz/unleashed.git/blob/HEAD:/FEATURES.txt


A '-' means that the support for that feature was removed, a '+' means that
the support for that feature was added, and a '*' means that the behavior
was changed.

 + native compiler support:
   * all provided compilers and binutils generate 64-bit output by default.
     -m32 is required for 32-bit.
   * gcc 4.9 has been removed. gcc 6.4.0 is now the default compiler
     /usr/bin/cc, and it is used to build userland and the bmake part of base.
   * gcc 4.4.4 aka. illumos-gcc is provided in /opt/gcc/4.4.4/bin/gcc, and it
     is used to build itself as well as the dmake part of base.
   * the default compiler uses GNU binutils ld.bfd as the linker. gcc 4.4.4
     stays with sunld for compatibility.
   * the default compiler does not support Solaris-specific features (eg.
     #pragma init/fini, cmn_err format checking, startfile selection from
     values-{Xa,Xc,Xs,Xt,xpg4,xpg6} based on -std)
   * the default compiler does not define sun/__sun/__sun___ or
     __svr4__/__SVR4. gcc 4.4.4 still does, for compatibility reasons.
   * __unleashed__ is automatically defined by all provided compilers.
 - multiarch support from python removed; it's now 64-bit only
 - /etc/log symlink & /var/adm/log directory
 - /etc/[uw]tmpx symlink
 - /usr/adm symlink
 - legacy accounting and reporting
 * 32-bit libraries moved to i386 subdir of /lib and /usr/lib, and 64-bit
   libraries moved from the amd64 subdir to the top level of /lib and /usr/lib.
   in subdirectories not directly handled by the default ld.so configuration,
   the old style of amd64 subdir is still (mostly) used.
 * moved all /var/adm files to /var/log
 * moved /var/svc/log to /var/log/svc
 * ntp has been replaced with openntpd 6.2p3
 * bash 5.0.3
 * zsh 5.7.1
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: not available
URL: <http://lists.31bits.net/archives/devel/attachments/20200404/33aa808a/attachment.sig>

More information about the Devel mailing list