November, 15 2004. The Solaris 10/NC04Q4 Launch 2004. Dawn in San Jose, CA was a truly beautiful sight to behold on Monday. As the sun rose over the mountains and shed its light on the valley below – the city, which the night before had seemed so unimpressive, suddenly came to life in the shimmer of the sun’s rays. It seemed a perfect morning for the launch of Sun’s most ambitious project to date. The press and other attendees looked happy, hopeful. Sun’s folks were excited – especially the engineers.
Solaris 10 represents the culmination of a half billion dollars investment and the work of 3000 engineers. Sun Microsystem’s investment in technology is well evidenced in this version of Solaris – it is all about the technology. According to John Loiacono, Executive Vice President of the Software Group at Sun, the goals for the Solaris Operating System were Performance, Efficiency, Security and Availability. A listing of new features shows that Sun has worked very hard indeed to achieve these goals. New Features include a completely rewritten TCP stack, Dynamic Tracing, Solaris Containers, Linux Application Environment, ZFS, Predictive Self Healing, Solaris Process Rights Management, Guaranteed Source and Binary Compatibility and many others. These eight features alone make it well worthwhile to consider Solaris 10 as an Operating System.
Solaris 10 is FREE. Solaris 10 will be released with a Free Binary Right to Use – RTU. The license will apply to all platforms for end users. It does not come with any technical support other than what is available on the World Wide Web. The freeing of Solaris begins the fulfillment of Scott McNealy’s long ago prophetic statement that software would one day be free.
Solaris has a new logo – simple, but nice.
Rewritten TCP Stack
Sun claims that the new TCP stack is very much improved over previous versions. Simply upgrading from a previous version of Solaris to Solaris 10 will result in a minimum 20% increase in speed according to Mr. Loiacono. Sun is looking to drive 10 Gigabit Ethernet to full saturation and the improved stack is a giant step towards realizing that goal.
Dynamic Tracing, or DTrace as the console application front end for it is called, is all the rage in development circles. A search on Google results in 35,300 results today. DTrace is the developer and system administrator’s ultimate tracing tool. It allows the user to instrument the Operating System so that it can be observed in action. Want to know how many I/O operations are occurring at any given moment, or what process caused the I/O at any level of the application stack? DTrace and its scripting language, D, can tell you – fast! Debugging and performance analysis are likely never going to be the same again. I sat down with the author of DTrace, Sun’s Senior Staff Engineer, Bryan Cantrill and asked for a demonstration, what I got was a revelation. In less than 10 minutes I was shown more of the inner workings of the kernel than you would probably be able to navigate in days of debugging or digging through source code. It became clear to me why Sun’s engineers were so pumped. According to Bryan, when DTrace is not running, there is zero overhead on the system and when it is running, the load is proportional to the complexity of the observation. Therefore, a simple question will have a negligible impact on the system and a hard question will have a greater impact. To be fair, during the demonstration, I saw no impact on the system, whatsoever.
Formerly, N1 Grid Containers, this technology provides separate virtual instances of the Solaris Operating Environment running on a single machine. Containers are an emerging technology of mammoth proportions. Sun did not promote the containers as much as they could have. This is an extremely important technology as it provides isolation, increased utilization of resources and speedy environment restart, cloning, and other cool features with very little overhead – unlike VMWare and other emulation environments. I sat with one of Sun’s Senior Technical Product Managers for Solaris Containers/Zones, Angel Camacho, for a lab where we created a number of containers. In a little over 15 minutes we were able to create 3 separate containers, with their own IP addresses and file systems. The containers are impressive, simple to understand, simple to use and very powerful, look for enterprise deployments of container technology soon.
Linux Application Environment
Formerly, Project Janus, LAE is the penguin running on the sun – Linux binaries running unmodified, without emulation, on Solaris. This is one ambitious project that aims at bringing the thousands of Linux applications to the Solaris platform.
The Zetabyte File System is yet another technological breakthrough. 19 nines reliability, 128 bits, fault resilient file system, combine to provide an awesome new model for the next several decades. Anyone who has ever worked with complex raid configurations will appreciate ZFS. ZFS will provide, massive scalability, easy administration, space age error detection and correction and data security.
Solaris 10’s Fault Manager and Service Manager work together to provide comprehensive prediction and detection of system failures – both Hardware and Software. These managers increase reliability and redundancy, while at the same time decrease the likelihood of failure and provide faster recovery and diagnosis. Incomprehensible error messages are replaced with telemetry events that are passed from the Fault Manager to componentized error handlers. The predictive self healing capability allows the Operating System to predict that RAM is likely to fail after some number of events and to remove that one faulty component to be removed without taking down the system.
Solaris Process Rights Management
Thanks to Trusted Solaris, Solaris 10 is going to be much more secure than its predecessors. This is military grade security and it is going to be available by default. There will also be a strengthened cryptographic framework delivered as well.
Guaranteed Source and Binary Compatibility
Since version 2.6 of the Operating System, Solaris has guaranteed Binary Compatibility. This is something that neither Microsoft Windows nor any distribution of Linux has offered. When I spoke with performance expert, Jarod Jenson, Chief Systems Architect for Aeysis, about Sun’s networking performance claim, he supported the claim, stating that his clients consistently found significant performance gains through the simple upgrade to Solaris 10. Coming from a Linux/Microsoft Windows background I was somewhat skeptical of the ‘simple’ characterization of upgrading. Jarod quickly put my skepticism in the back seat. He explained the Binary Compatibility feature and how it eases migrations. The source code guarantee goes much further than the binary compatibility guarantee and guarantees that any source code that compiled and ran on a previous version of Solaris, back to 2.6 will require a simple recompile to run. This is a huge claim and shows a great deal of confidence in Sun’s engineers.
The biggest questions on Sun’s plate for the launch event were the Open Source questions. Was Solaris 10 truly going to be open source? What licensing model would be used? What would the terms be? Would DTrace and ZFS be included in the source code? The answers – still to come. The biggest disappointment of the day was the complete lack of final answers to these important questions. Sun lost an opportunity to step up and state, once and for all, that YES Solaris 10 will be completely Open Source and unencumbered by Kodak style patents. The sense, murmurings and whispered wisdom was that indeed Solaris 10 would be Open Source. The license was yet to be determined – but it would definitely encourage openness – that a community process would be forthcoming that would be defined largely by the community – that all of Solaris would be included, everything required to build from source. But at the end of the day, there was no news on the Open Source angle, in San Jose. Stay tuned was the mantra.
Other bad news included the fact that ZFS would not be included in the GA release (general availability release), but that it would be in a future update – tentatively, Update 1. LAE was also not going to be fully guaranteed in the GA release, although the functionality would be part of the final GA release. It should be interesting to see what defines the final GA release – another stay tuned.
All right, we have covered the Good and the Bad, that leaves us with the Ugly. Solaris 10 Beta 7, which was released in October, contains quite a number of changes from the previous Beta 6. The Gnome Desktop look and feel of Beta 6 has become the Java Desktop System look and feel in Beta 7. In addition, the Sun X Server has been replaced with the X.org – X Window System. Also, there is a completely revamped installation program. Coming just a couple of weeks prior to the launch and a couple months prior to the GA release, this seems like a late date to be making such sweeping, visible changes. These late changes combined with the postponement of ZFS and LAE and the lack of clear Open Source licensing are the only dark spots in the otherwise bright outlook for Solaris.
Solaris 10 is a technological marvel that appears to be headed for the history books as one of the most ambitious and advanced general purpose operating environments of this generation. Sun is walking a fine line on the Open Source question. IP enforceability versus community goodwill seems to be Sun’s biggest near term challenge. The free binary RTU for end users might cover some distance towards community acceptance.