Friday, January 1, 2010

Looking back a decade, part 2

I've found out that this takes much time and it's hard to sort of the important things out of everything you would want to cover and not going into any depth. But three parts where promised so here's what have had time to write. The events will be dated around 2004-2006.

In the end of January 2005 "s10_74L2" a was finished, the release build of Solaris 10, which still is the active and supported major version. It had several features that changed the way we work with Unix systems. It was also the larges update to Solaris since the move to SVR4 in 2.0. The main focus was on performance but there where also huge improvements in virtualization, fault management and observability.

Previous Solaris releases was sometimes bashed with names such as "slowlaris", especially when run on workstation class machines. Solaris had overhead that needed to be removed and other operating systems did some things faster. The slogan "if another OS is faster, it is a Solaris bug" was used during development and it payed of making Solaris 10 substantially faster than in predecessors. One thing developed to improve performance was a library for microbenchmarking of system calls, libmicro. With performance data on every system call the ones which where slow could be fixed and compared to other operating systems. Another area of improvement was the networking stack, much of this was delivered by two projects, FireEngine for better TCP performance and Yosemite (in update 2) which did the same for UDP.

Solaris 10 was also the first release to contain light weight virtualization in the form of Solaris zones for both security and workload separation. While the initial release had several flaws when upgrading, it was fixed and many more features added in subsequent update releases.

DTrace, Service Management Facility and Fault Manager Daemon was other important additions, especially DTrace which really was, and still is, groundbreaking for debugging and performance tuning. ZFS which was much needed solution for an own modern volume manager and filesystem for Solaris was often mentioned as a major feature long before Solaris 10 was released, for example in the "Ten moves ahead" campaign. But ZFS was not released until over a year later with the second update, Solaris 10 6/06.

All this was crucial for Solaris to survive the competition and Solaris 10 delivered, albeit with somewhat slow adaptation in the beginning due to the large amount of changes. Without all the work put into this release Solaris would probably have lost it's competitive edge and faded away. The improved performance was required for Solaris to continue to be a competitive OS, the improved security and virtualization where needed additions, but what made most impact was probably DTrace and ZFS which both broke new ground.

Something worth a notice is that Oracle did chose Solaris 10 as it's preferred open source 64-bit developer platform in November 2006. So even if the bounds between Sun and Oracle had been stronger, it did still exist.

2005 was not only the year Solaris 10 was released, it was also the year it became free and open, Solaris 10 was made available freely for download and the source was released. As discussed in the first part, this might have been a bit late, especially the free for use bit, the source was probably even harder to rush, but giving people a chance to test Solaris for free should have been given long before Solaris 10, at least on the X86 side.

On the hardware side the dual-core UltraSPARC IV "Jaguar" was in the heart of most SPARC servers shipped. Sun and Fujitsu formed a partnership to develop future SPARC64 systems together. This resulted in Sun canceling it's own UltraSPARC V processor "Millennium" and shifted its focus on developing Chip MultiThreading processors with technology acquired when buying Aftra Websystems. The first CMT processor was released in November 2005, the UltraSPARC T1 with 8 cores and 4 hardware threads per core. Sun also hinted on a much more advanced CMT processor that was under development, named Rock, or the UltraSPARC RK, which would include features such as transactional memory and higher thread performance than the T1. The Fujitsu partnership helped Sun a lot, both by ending the head-on competition with Fujitsu and by giving Sun the CPU they needed for single thread performance while developing it's own line of CMT processors.

In the X86 space Sun bought Kealia which was started by one of the Sun founders, Andy Bechtolsheim. Kealia focused on developing 64-bit AMD opteron servers and became the foundation for the next generation of X86 servers including the 4 unit, 48 disk storage server x4500 "Thumper".

To summarize, Sun spent lots of resources on making Solaris more competitive and making if free, forming a alliance which cut the R&D spending on current SPARC systems while developing the next generation of system based on CMT. This was also the time when the real commitment to X86 servers began, with Kealia.

No comments: