You are on page 1of 27

Solaris: greater than the

sum of its parts
Phil Harman
Senior Staff Engineer
Sun Microsystems, Inc.

1
“$2B on R&D makes
Sun a technology
company (sorry for
any confusion).”
Phil Harman
photo: Craig Roderick (Flickr CC) 3
A BRIEF HISTORY
OF INNOVATION

photo: Phil Harman & NASA 4
Prehistoric Innovations
• Open Network Computing (ONC)
> NFS, NIS, automount, XDR, RPC etc
• SVR4
> unification of BSD, SVR3 and Xenix
• STREAMS
• mmap(2)
• ld.so.1(1)
• CMW
... oh yes,
and NeWS!
In Living Memory
• Loadable, configurable kernel
• Dynamic System Domains
• /proc
> including truss and the ptools
• /etc/nsswitch.conf and PAM
• Audacious SMP scalability
• Compatible 32/64 bit environment

... oh yes,
and vold!
The years of the Penguin
Just Yesterday
• SMF, FMA • Least Privilege
• MPO, HLS, MPSS • xVM (based on
• Resource XEN)
Management • pgrep, pkill, prstat
> Containers, FSS,
Pools
• Zones
> BrandZ, S8MA
• ZFS
• Trusted Extentions ... oh yes, and
DTrace!
NIH
• SVR3 • Perl
• PThreads • Samba
• X11 • Apache
• GNOME • CUPS
• OpenSSL
• GRUB
• IPfilter
... oh yes, and
CDE!
ILP32 Apps ILP32 Apps LP64 Apps

ILP32 Libs ILP32 Libs LP64 Libs

ILP32 Kernel ILP32 Kernel LP64 Kernel

ILP32 Drivers ILP32 Drivers LP64 Drivers

32-bit HW 32-bit HW 64-bit HW
“What is the essential
difference between
single thread and
multithreaded
processes?”
10
7C
10
2C
96
C
91
C
85
C
80
C
74
C
69
C
63
C
58
C
Throughput vs Latency

1x

8x
A Virtualisation Smorgasbord
Hard PartitionsVirtual Machines
OS Virtualization
Resource Managem

Multiple OS's
Single OS
Trend to flexibility Trend to isolation
Dynamic System Logical DomainsSolaris Containers Solaris Resource
Domains, xVM, VBox (Zones + SRM) Manager (SRM)
Dynamic Re-configuration VMware Linux Application * Born in Solaris 2.6
Environment
Solaris 2.6, 7, 8, 9, 10 Solaris 10 Solaris 10 Solaris 2.6, 7, 8, 9, 1
Sun Proprietary/Confidential: Internal Use Only
image: Phil Harman
“DTrace... it's like
they saw inside my
head and gave me
the One True Tool”
a slashdot reviewer
Buy these books!
image: www.greatsite.com
R
AI 20
Uber-block

Original Data

New Data

Initial block tree Writes a copy of some changes

Original Pointers New Uber-block

New Pointers

Copy-on-write of indirect blocks Rewrites the Uber-block
photo: Craig Roderick (Flickr CC) 22
Example: E25K Scalability Issue
Example: E25K Scalability Issue
Example: E25K Scalability Issue
DTrace, Zones and ZFS in the real world
Solaris: greater than the
sum of its parts
Phil Harman
phil.harman@sun.com
blogs.sun.com/pgdh

27