One of the recent questions asked about potential reasons to use Solaris on a server. I would like to ask about the opposite:
What would be reasons to stay away from Solaris on a server?
Package and patch management comes to mind, but I'm sure there's more to it. You can also point out advantages of other server operating systems over Solaris.
I am (was) a Solaris admin through to about nine years ago, from v2.5 through v8. I've had a little exposure to Solaris 9, and almost none to 10.
My reasons for avoiding Solaris:
Hardware support is not nearly as good as many Linux or Windows operating systems. It is improving.
You can run Solaris for free, but you can't get updates for free. Not even security updates. Not even 0-day exploits. You have to buy a support plan, per system, which can be expensive. This means that the way to get updates is to wait for the next "U" release, and upgrade at that point.
OpenSolaris is too bleeding edge for me. It changes too often, and the releases wander too close to unstable or unreliable for my needs.
Between Solaris and OpenSolaris, Sun has managed to totally miss the happy medium between "welcome to 2004" and "I'm so new and shiny I don't really work 100%!"
I used to be willing to use Solaris more before the Blastwave project imploded. Through there I could get newer tools that fit more with the Linux way of doing things (which is where I spend 95% of my professional time) with a relatively easy online way of managing the tools and updates. Once Blastwave and CSW settle down, I'll look at both remnants and decide if it is worth putting time and effort into either of them again. Really, the loss of Blastwave as a trustworthy source of tools was a huge blow to Solaris' viability in my circles.
But the number one reason for me is that right now I don't need to do anything that requires Solaris.
My biggest worry, as a large Oracle customer, is that they'll eventually do away with either Solaris or 'Oracle Enterprise Linux' (their rebadge of RHEL).
Obviously both have their benefits and their downsides but I do know that they're selling a lot more OEL support agreements than Sun were selling for Solaris and of course they own the development costs of Solaris, OEL dev costs then very little at all.
We all love Solaris but if it's not selling well enough and costing too much to develop then I'm sure Oracle will simply 'asset strip' it (keep ZFS etc.) and sell it on to someone else. That would be my main concern.
For 10-15 years, biggest worry has been about the future of Sun and the future of SPARC. I was about ready to give up when they came out with Solaris 10 which leaped ahead in terms of technology (although took ~1 year to be production worthy). The recent Oracle purchase adds a lot of short-term uncertainty but that could go away pretty quickly (regardless of the outcome). SPARC still seems a lost cause, even though there's been a lot of buzz around their "new" CoolThreads processors, but these are too specialized to gain wide acceptance.
It'll be interesting to watch industry trends... Years ago, I observed a lot of Wall Street firms flocking to Linux (from Solaris/sparc) not for Linux, but for x86. When Solaris 10 came out, there was definitely a partial reversal to Solaris, again on x86.
Package and patch management shouldn't be a worry, it's a matter of knowledge/skill. To offer you a different perspective, my new job is in a Linux environment and both package and patch management worry me. These are old generic concerns for which there are answers.
I will miss Solaris sorely, some things in it just can't be found elsewhere.
The only reason I can come up with is the "lack" of support/info out on the web if you're not an expert with Solaris (compared to Linux or FreeBSD).
Comparing Solaris 10 to Linux is Apples to Oranges. Primarily the difference is in the build environment as anyone who has moved Linux apps to Solaris can attest to. I would expect Oracle to focus on building out the Linux source/application compatibility model vs. trying to position Solaris as a replacement for Linux. Linux is also not a replacement for Solaris!
For small applications Linux is fine, for embedded applications its probably better. For big Iron applications Solaris is in a different class than any Linux distro. Look into Solaris' TCP/IP stack, real-time scheduling, service management, bullet-proof virtualization (zones), and you have a super-set of functionality vs. Linux. Add in ZFS, DTRACE, and MULTI-THREAD SCHEDULING and you're in an entirely different class of OS.
Linux is great, I love it. Solaris is great, I love it too. Each has its advantages and disadvantages. Oracle certainly is not going to build its big-iron products such as EXEDATA2 on LINUX when it has a superior product for big iron environments in Solaris.
When my shared-server host switched from BSD to Open Solaris, FTP jailing went away. I don't know whether FTP jailing could be made available on Open Solaris by using a different FTP server, or perhaps by reconfiguring the default FTP server.
The authors of the Joyent wiki page about the issue attribute the problem to getcwd.
i have been working on Solaris since 2002 (so 15 years now) and all i can say is that it was my "favourite" OS for all this time, in particular for its stability and its stability with known commercial applications such as networker, oracle (when it was still Sun), netbackup & so on.
but it's more of a "passion" for Solaris than anything else.
after 15 years, for me the "main issues" (if we can call them issues) were :
the lack of online documentation compared to other Operating Systems (in particular when trying to debug system performance), but it was better when Solaris 10 arrived. in particular for infrastructure services such as LDAP, kerberos, NIS2LDAP etc. every system was documented separately but you could never find good documentation with people implementing everything at once.
patching / upgrades (my company had to develop its own patching system for Solaris)
the lack of compatible tools/binairies online (we often had to compile our own and rarely find precompiled binairies)
the difficulties to understand performance issues sometimes due to the lack of good tools (solaris is not for beginners trying to understand how the system works) and its specific memory management (in particular when used in conjunction with oracle databases and everything using shared memory)
on the other hand, Solaris is still my favourite OS so far for multiple reasons, some of them are :
i never tried Solaris 11, but it looks great, and i would have nothing against it. i'm used to Solaris 10 (we still heavily use it where i work) and RHEL now (which is great too, but completely different) RHEL is the easy way to go..... if you don't want to struggle and you want to find solutions on page 1 of google when you have issues..
Solaris is quite unstable. Playing around with POSIX message queues, causes lots of undocumented behavior.. On the other hand Linux works like a charm, no problems at all.
EDIT (after 1.5 years of research and hard testing): OK, guys, maybe Solaris is not so bad. Problem is that errno.h by default is NOT THREAD SAFE. Thus I get random errors from other threads. So we need _REENTRANT, _TS_ERRNO or _POSIX_C_SOURCE - 0 >= 199506L to be defined in order to get errno thread safe. Note that on other OSes errno by default is thread safe. Thus it causes confusion.