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 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 relabeled as Solaris 2. Despite marketing’s best efforts, therefore, releases up to 2.8 were publicly 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 systemwide functionality. Plan 9, you might 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 equivalent 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 10-year impact is likely to be like nothing we’ve seen before.
Paul Murphy, a LinuxInsider columnist, wrote and published The Unix Guide to Defenestration. Murphy is a 20-year veteran of the IT consulting industry, specializing in Unix and Unix-related management issues.