During 2010
– 2014
, I worked as a software engineer in a telecommunication company which uses Solaris
&SPARC
as its server, and the working experience is a really pleasant memory for me. So even I have already left the company for more than 5
years, when I meet illumos
, it always lets me reminisce about some good old days.
Before I joined in that company, I had only used some Linux
distributions, e.g, Fedora 4
. Honestly, I didn’t know what is the difference between Linux
and Solaris
at that time. I still remember the first Solaris
tool I learned is pstack
, which my colleague showed me how to analyze application’s core dump in a brief way. Although Solaris
ships its own debugger, i.e., mdb
, it was a shame I was still used to use gdb
(installed from Sunfreeware). Since only gdb 6.x
was provided, I always tried to build cutting-edge gdb
from source code, and it worked smoothly on Solaris
.
When talking about our commercial server, IIRC, it had only 2GiB
memory. Yes, in the second decade of 21st
century, when notebook already has 8GiB
memory, our 32-bit
application run on 2GiB
machine. Both sever and application could date back to 2005
. Our company didn’t have a big name, and throughput of our application was ~30
transactions per second. The server was surprisingly stable. I can’t remember we ever restarted it once during 2010
– 2014
, and it matched what this picture has said (a Solaris
server run for more than 10
years).
Last week, I came across this tweet, so I wanted to relive Solaris
once again (even though it is called illumos
now). Download and install OmniOS, quite straightforward. Build illumos code, meet some problems, but fix them with the help of enthusiastic people. Find a typo in manual, go through the whole flow of contributing: create issue, send patch to review, send RTI, done! The flow is stricter than “fire-and-forget” mode, but I think it is necessary for code quality. BTW, I find some Solaris
‘s peculiar still exist on illumos
. E.g., even in 64-bit
environment, gcc
will generate 32-bit
executable by default, and you should use “-m64
” compile option to claim you want 64-bit
one.
Thanks for your time and patience to read this ramble rants. If there is only one take-away, that is besides Linux
and BSD
families, there is another less-popular Unix
: illumos
. Though it is a small community, it doesn’t have outdated tools. You can give it a shot if you are interested, and maybe you will like it.
There has long been controversy of the performance differences between 32-bit and 64-bit binaries. Obviously, 32-bit code will be friendlier to the various caches.
SPARC in particular had contributions to this question from many years ago:
https://developers.slashdot.org/story/04/01/23/220205/are-64-bit-binaries-slower-than-32-bit-binaries
When performance is important, both memory layouts should be benchmarked.
This post on reddit: https://www.reddit.com/r/illumos/comments/cd20t2/blog_illumos_makes_me_nostalgic/