Literatur zu Oracle Solaris 10, 11 und Open Solaris

Abstract

Ich werde in unregelmäßigen Abständen gefragt, ob ich denn Literaturempfehlungen hätte zur Einarbeitung in Solaris x86. Direkte Empfehlungen im Sinne von "dieses Buch muss man gelesen haben, ist ein Standardwerk" habe ich keine, aber ich nehme die Frage mal als Motivation, die aktuell verfügbare Literatur zum Thema in einem Blogartikel zusammenzustellen.

Ich werde in unregelmäßigen Abständen gefragt, ob ich denn Literaturempfehlungen hätte zur Einarbeitung in Solaris x86. Direkte Empfehlungen im Sinne von "dieses Buch muss man gelesen haben, ist ein Standardwerk" habe ich keine, aber ich nehme die Frage mal als Motivation, die aktuell verfügbare Literatur zum Thema in einem Blogartikel zusammen zu stellen.

Disclaimer
Ich gehe weitestgehend auf die kommerziellen Varianten Solaris 10 und Solaris 11 ein. Für die Open-Source-Derivate gibt es an unterschiedlichen Stellen eigene Dokumentation, Wikis, Mailinglisten. Eine Auflistung dieser Derivate und der Firmen, die meines Wissens damit arbeiten und auch einen Großteil der Entwicklungsarbeit leisten, ist am Ende dieses Artikels zu finden.

Generell kann man sagen: Solaris bis einschließlich Version 9 ist Linux sehr ähnlich. Natürlich hat es ein paar zum Teil deutliche Unterschiede insbesondere im Bereich der Hardware-Verwaltung, aber das User-Interface ist dem von Linux recht ähnlich. Ebenfalls bis einschließlich Solaris 9 war die Entwicklung für SPARC und x86 jeweils recht eigenständig. Die beiden Varianten haben sich weitgehend gleich verhalten, es gab aber an etlichen Stellen deutliche Unterschiede.

Seit Solaris 10 werden die SPARC- und die x86-Variante aus demselben Source Tree kompiliert. Sobald man im Betriebssystem also weg von der Hardware kommt, verhalten sich die beiden Varianten identisch. Außerdem wurden in Solaris 10 wesentliche Neuerungen eingeführt, an die man sich auch als langjähriger Unix-Admin erst einmal gewöhnen musste: Service Management Facility (SMF) und Fault Management Architecture (FMA) sind dabei vermutlich die auffälligsten Neuerungen. Ersteres ist ein neuer Ansatz, ein System zu booten, was unter Linux so halbwegs vergleichbar ist mit systemd und Upstart. Aus Runlevels wurden Milestones, ein Init-Script heißt jetzt Service Manifest und wird als XML hinterlegt. FMA ist eine bis runter auf die Hardware greifende, weitgehend automatische und umfangreiche Fehlerbehandlung. Außerdem kam in Solaris 10 das Konzept der Zonen (manchmal auch Container genannt) und in dem Zusammenhang auch Resource Management. Und ZFS hielt Einzug. Zunächst nur für Datenbereiche, mittlerweile kann man davon auch booten. Ach ja, und auch DTrace tauchte das erste Mal in Version 10 auf und war die erste Komponente im Solaris-Universum, die von Sun als Open Source (unter CDDL) freigegeben wurde.

Mit Solaris 11 hat Oracle dann viele Dinge einfließen lassen, die vorher schon in Open Solaris zu sehen waren. Das Paketmanagement wurde auf IPS umgestellt, es gibt jetzt umfangreiche Möglichkeiten zur Virtualisierung von Netzwerken und ein neues Kommando ipadm zur umfangreichen Administration von IP-Verbindungen. Viele Neuerungen sind erst auf den zweiten Blick sichtbar, das meiste sind Verbesserungen und Erweiterungen der mit Solaris 10 eingeführten neuen Features.

Wo und wie lernt man nun über diese neuen Funktionen?

Zunächst einmal auf der Plattform selbst: Traditionell ist bei Solaris alles ausführlich und konsistent in Manpages beschrieben. Ich habe in meinen fast 20 Jahren Unix-Erfahrung kein anderes Unix kennen gelernt, das so gute Manpages hat wie Solaris. Die BSD-Familie kenne ich nicht gut genug, der sagt man ähnliches nach.

Die nächste Informationsquelle ist dann die offizielle Dokumentation. Hier gilt ähnlich wie für Manpages: die Dokumentation ist sehr vollständig. Alle Bücher kann man bequem online lesen oder als PDF herunterladen. Je Minor Release gibt es alternativ auch ein ZIP-File mit allen PDFs:

Wer nicht genau weiß, welche Minor Release von Solaris auf dem System läuft:

# cat /etc/release

Weiter zu den Büchern außerhalb der offiziellen Oracle-Dokumentation. Hier wird die Luft schnell dünn. Für Solaris 10 kenne ich deren fünf, nur das letzte aus der Liste habe ich im Regal stehen:

Alle fünf Titel sind englisch. Deutsche Ausgaben davon sind mir nicht bekannt. Das Solaris Internals ist immer dann hilfreich, wenn man etwas Spezielleres mit DTrace debuggen will oder ein tieferes Verständnis für eine bestimmte Systemkomponente braucht. Die anderen vier Bücher hatte ich selbst nie in der Hand. Falls jemand zu den Titeln etwas sagen kann, gerne diesen Eintrag hier kommentieren.

Mit der Einführung von DTrace in Solaris 10 wurde der Quellcode zu Solaris Open Source, die Entwicklerversion des Betriebssystems nannte sich fortan Open Solaris. Eine ganze Reihe der in Open Solaris entwickelten Features wurde von Oracle dann auch in das fertige Produkt Solaris 11 übernommen. Für einen Einstieg in das kommerzielle Solaris 11 eignen sich die Bücher zu Open Solaris aber nur bedingt: Sie erschienen alle eine Weile bevor Oracle den Zugriff auf den Sourcecode unterband. Die mir bekannten Titel zu Open Solaris und Solaris 11 im einzelnen:

Nicht kommentierte Bücher hatte ich nie in der Hand und kann deshalb nichts weiter dazu sagen.

Im Umfeld von Solaris 11 und den quelloffenen Weiterentwicklungen von Open Solaris gibt es außerdem noch ein paar Titel zu speziellen Aspekten von Solaris:

  • Solaris Performance and Tools, Richard McDougall, Jim Mauro, Brendan Gregg, Prentice Hall, 2006

    Dieses Buch hilft vor allem, wenn man Performance-Problemen auf der Spur ist. Nicht alles darin stimmt noch mit aktuellen Inkarnationen von Solaris 11 überein, weil sich sowohl in der Hardware als auch im Kernel einige für die Systemperformance relevante Komponenten und Subsysteme geändert haben. Trotzdem gibt es eine gute Einführung in Werkzeuge wie vmstat, mpstat, iostat, prstat etc.

  • DTrace, Jim Mauro, Brendan Gregg, Chad Mynhier, Tariq Magdon-Ismail, Prentice Hall, 2011

    Wer nach einem Referenzwerk zu DTrace sucht, wird hier glücklich. Neben der Solaris-Variante geht das Buch auch auf DTrace unter FreeBSD und MacOS X ein. Der Titel ist meines Wissens auch als eBook erhältlich.

  • Systems Performance, Brendan Gregg, Prentice Hall, 2013

    Der Mitautor von DTrace geht in diesem recht umfangreichen Buch auf Performance-Monitoring und -Debugging sowohl von Solaris x86 (am Beispiel SmartOS) als auch Linux ein.

Von den gedruckten Büchern weiter zu sinnvollen Informationen in der Weite des Netzes. Jörg Möllenkamp bloggt regelmäßig über Besonderheiten in aktuellen Solaris-Releases (leider nicht mehr so aktiv wie zu der Zeit, als Sun noch nicht zu Oracle gehörte). Jörg aktualisiert außerdem regelmäßig sein Less Known Solaris Features, in dem hilfreiche, aber meist eben weniger bekannte Ecken von Solaris beleuchtet werden.

Eine schöne, mit vielen Beispielen gespickte Einführung in die Welt der Virtualisierung mit Zonen gibt der Container Leitfaden, der in der vorliegenden Fassung leider schon ein paar Jahre alt ist. Die Prinzipien sind aber nach wie vor die selben. Der Containerleitfaden ist als PDF deutsch und englisch verfügbar.

Seit dem Kauf von Sun durch Oracle gibt es leider so gut wie keine Blogs mehr direkt aus dem Solaris Engineering. Neben dem erwähnten (privaten) Blog von Jörg Möllenkamp möchte ich hier noch auf das Blog von Stefan Hinker hinweisen, in dem es gelegentlich Updates im Umfeld von Performance-Verbesserungen und damit zusammenhängenden Solaris-Interna gibt.

Zum bereits genannten Buch Solaris Performance and Tools gibt es auch ein Solaris Performance and Tools Wiki mit zusätzlichen Beispielen und Code-Schnipseln.

Für technische Inhalte zu seinen Produkten betreibt Oracle das sogenannte Oracle Technology Network (OTN). Dort gibt es einen Bereich speziell mit technischen Artikeln zu Solaris. Eine Übersicht aller dort erschienenen Artikel gibt es alternativ auch auf Delicious. Wer es lieber interaktiv hat, klickt sich einen Account in der Oracle Technet Community und sucht sich anschließend zu den Diskussionsforen zu Solaris durch.

Zu Literatur und Informationen für Performance-Betrachtungen und Benchmarks in Solaris-Releases älter als Solaris 10 habe ich vor langer Zeit an anderer Stelle schon einen Artikel geschrieben.

Und abschließend noch die oben erwähnte Aufzählung der Open-Solaris-Abkömmlinge:

  • Illumos, die Weiterentwicklung des Kernels.
  • OpenIndiana, eine am Desktop orientierte Distribution, baasierend auf Illumos.
  • SmartOS, eine schlanke Distribution speziell für den Betrieb von Clouds, einschließlich eines KVM-Ports auf Illumos. Hauptentwickler und Benutzer ist Joyent. Die haben auch KVM hineinportiert.
  • OnmiOS, der Versuch, eine vollständige Distribution auf Basis von Illumos zu bauen, die gleichermaßen für Desktop und Server geeignet ist.
  • Nexenta vermarktet auf Basis von Illumos und ZFS eine Storage-Appliance.
  • Delphix entwickelt ebenso wie Nexenta hauptächlich an den Storage-Subsystemen von Illumos.
Wolfgang Stief, 08. February 2014