mikedotwdotshapiro at gmail.com
From 2009-2010, I served as Vice President of Storage and Solaris at Sun and then Oracle. I was previously Distinguished Engineer and VP for Solaris and Open Storage Systems at Sun, leader of the Sun Fishworks engineering team, and before that I worked for many years as a senior engineer in the Solaris Kernel Group at Sun. At the end of my time in this area, my combined set of responsibilities included the Fishworks advanced engineering team, and all of Sun's core Solaris and Storage engineering, and all of our hardware engineering for Disk and Flash technologies.
My research and engineering interests are focused on technology to enhance the availability of computer systems, including programming languages and debugging tools for developers, operating system technologies for handling and recovering from software and hardware faults and defects, and tools for administrators and users that improve the user experience.
At Fishworks during the development of the Sun ZFS Storage 7000 series, my technical contributions included design and implementation
work on clustering, networking, peer groups, service configuration, upgrade, factory installation, out-of-the-box experience, and reliability and serviceability features.
In Solaris 10, I designed and implemented the D compiler for
DTrace, a new facility for
dynamic tracing of the kernel and user processes for
Solaris 10 I worked on
with Bryan Cantrill and Adam Leventhal, and led the
integration of the first phase of Sun's
Predictive Self-Healing effort along with Cindi McGuire and Stephen Hahn.
If you want to learn more about Solaris or participate in development, check out the
communities on OpenSolaris.org.
Code I've Written (Solaris)
- Commands: dtrace(1M), dumpadm(1M), fmadm(1M), fmdump(1M), fmstat(1M), mdb(1), pgrep(1), pkill(1), smbios(1M)
- Daemons: fmd(1M)
- Libraries: libctf, libdtrace, libfmd_adm, libfmd_log, libfmd_msg, libproc, libsmbios
- Kernel Subsystems: Lock-Free Error Queues, Panic Subsystem, Firmware Locking, Error Trap Interpositioning (on_trap), UltraSPARC-I and II CPU and Memory Error Handling, DTrace Virtual Machine
- Device Drivers: smbios(7D)
- File and Data Formats: CTF (Compact C Type Format), DOF (DTrace Object Format), FCF (FMD Checkpoint Format)
Code I've Written (ZFS Storage)
- Commands: akbase64, akbios, akbootprop, akbundle, akciod, akcmos, akcpio, akdhcpinfo, akdlpi, akgz, akinstall, aknc, aknv, akopaque, aksid, aksleep, aktty, akuuid, akzoneprop
- Compilers: fcc
- Drivers: cmos
- Libraries: libnvxml
- Subsystems: avatar, buf, cert, conf, ctype, diagcode, io, net, peer, prop, refstr, rm, routing, ssl, stash, strtab, svc, syslog, tags, token, update, utask, xdr, xdr-rpc
- Tools: conf2svc, fu, fx, mkak, mkakpkg, mkfu, mkpi, mkusb, prop2xml, proplint
- User Interface: Clustering, Conf Backup and Restore, Networking, Theme, Update, UTask
Presentations and Other Links
Here are links for recent publications and other web links for things
I've been involved in recently:
- Purpose-Built Languages - Article discussing purpose-built languages in the design of software systems and their evolution that I wrote
for ACM's Queue on-line magazine. The article is also scheduled to be published in Communications of the ACM in print. This is a written version of some of the ideas discussed during a talk I gave at
Brown University a few years ago describing the importance of purpose-built languages and some of the core patterns in purpose-built language design, illustrated with historical examples.
- Video of my Open Storage Keynote 2 for the second annual Sun Open Storage summit, Feburary, 2009.
- Video of my Open Storage Keynote 1 for the first annual Sun Open Storage summit, September, 2008.
- Video interview with Alex Plant on the day of the announcement that DTrace received the 2008 STUG Award from the USENIX Association.
- Video interview with the DTrace team on Robert Scoble's video blog show.
- Assessment of the Effect of Memory Page Retirement on System RAS Against Hardware Faults - Paper for
Dependable Systems and Networks '06 describing a quantitive model for assessing the positive effect of memory page retirement driven by the Solaris Fault Manager on system availability.
- Self-Healing in Modern Operating Systems - Article discussing Sun's
approach to Predictive Self-Healing that I wrote for the ACM's
You can also view the
corresponding to the print edition.
The article discusses both the Fault Manager and Service Manager as well as
how these Solaris 10 technologies provide a foundation for future work and
a much-needed dose of reality in the discussion of self-healing systems.
The article was also linked on the front page of
SlashDot, where you can read comments.
InsideJack Episode 2: Solaris 10 - Sun's best marketing campaign ever:
a funny cartoon series done using Flash. Episode 2 looks at the lighter
side of Solaris 10, including a brief cameo by yours truly. I seem
significantly more peaceful in Flash than in real life.
Dynamic Instrumentation of Production Systems -
Paper describing DTrace that was accepted and presented at the Summer
2004 USENIX Annual Technical Conference.
The paper provides a technical overview of DTrace, comparison to prior work on tracing, and a case-study demonstrating DTrace in action.
Predictive Self-Healing Knowledge Article Web -
Web-based knowledge article retrieval system for new Sun Predictive Self-Healing
components. Diagnosis and repair articles can be retrieved using a
SUNW-MSG-ID code, and you can also find a whitepaper I wrote here
that describes the Fault Manager and illustrates how it works.
Sun Net Talk: Solaris 10
Technical Roundtable - I recently joined John Fowler and other engineers
from the Solaris team in discussing Solaris 10 features live on the web
on May 5th. We're not exactly as smooth as Curt Gowdy, but you have to
start somewhere. You can dial in and play a recording of the session.
Writing Debuggable Applications -
Discussion of techniques for writing debuggable C and C++ application software, libraries, and middleware with an emphasis on connections to Solaris programming APIs and tools that can maximize application observability and serviceability. This material was presented at the
in 2002 and 2003.
Last Update: Oct2010