- by Paul Murphy -
The newly released Solaris 10 includes a radical new technology called DTrace which lets you look inside the usual black box of a running production application to see exactly where the bottlenecks are and what their impact is. As a result I've been telling clients with big Solaris operations that they should dedicate a machine with at least two US3 or later CPUs to Solaris 10 and use it to to train their people on Solaris 10 and DTrace by having them test all major systems.
It's easy to explain the value of stuff like that to management. For the IT people you just talk about combining hardware and licensing dollar savings with increased deployment flexibility - and for senior management you correlate software quality with reductions in error and failure risks. Either way you're really talking about software which enables operational improvements within Sun's existing customer base and that, I'm sure, is why Sun is energetically marketing these new capabilities.
Look a bit deeper, however, and there's so much more in Solaris 10 that the release should eventually become known as SunOS 3.0. (Note: SunOS 1.0 went to release 4.1.4 with its successor, Solaris, initially known as SunOS 5.0 and then relabelled as Solaris 2. Despite marketing's best efforts, therefore, releases up to 2.8 were publically known as 2.X with 8 and 9 still known internally as 2.8 and 2.9 respectively.)
Hot new intrinsic capabilities like DTrace, ZFS, and the ability to run Linux binaries are the realizations of deeper technological innovations like microstate accounting. Solaris 10 brings a lot of those out of the labs and into production environments where they'll receive the kind of intensive real world testing that will ultimately determine how important they are. Consider, for example, this list of Solaris 10 top 11-20 new features put together by Adam Leventhal (one of the key developers behind DTrace):
- libumem - the tool for debugging dynamic allocation problems; oh, and it scales as well or better than any other memory allocator
- pfiles(1) with file names - you can get at the file name info through /proc too; very cool
- Improved coreadm(1M) - core files are now actually useful on other machines, administrators and users can specify the content of core files
- System V IPC - no more clumsy system tunables and reboots, it's all dynamic, and -- guess what? -- faster too
- kmdb - if you don't care, ok, but if you do care, you really really care: mdb(1)'s cousin replaces kadb(1M)
- Watchpoints - now they work and they scale
- pstack(1) for java - see java stack frames in a JVM or core file and through DTrace
- pmap(1) features - see thread stacks, and core file content
- per-thread p-tools - apply pstack(1) and truss(1) to just the threads you care about
- Event Ports - a generic API for dealing with heterogeneous event sources
Things like these are invisible to IT management and of little importance to the press, but this is the stuff on which technology revolutions like DTrace and ZFS are built. Thus their presence in this release signals the importance of Solaris 10, not as an end product but as a work in progress.
To me it seems that Sun is driving toward what I think of as Plan-9 compliance; not at the code level but in terms of system wide functionality. Plan 9, you may recall, is a kind of second generation Unix liberated from the single machine focus of the original design to make full use of multiple machines on a network. Originally Sun's marketing people said that "the network is the computer"; realistically, Plan 9 reverses that to make it: "the computer is the network" - and that's exactly what's going on with Solaris.
Adam Leventhal's list, above, reflects the achievements of people working to put in place the foundations for future software while the forthcoming Niagara and later SPARC designs do the same thing at the hardware level -putting the equivelent of a traditional 32-way SMP box into a single processor.
Bring them together in production systems and what do you get? The ability to organize your business around a single physical computer redundantly implemented in processors spread across your network -meaning that a lot of business processes now limited by technology costs and software complexity can be simplified right down to affordability. That's what Solaris 10 is really about, and the ten year impact is likely to be like nothing we've ever seen before.