Dieser Abschnitt beschreibt an Entwickler gerichtete Verbesserungen in diesem Release, die die Entwicklung von Anwendungen auf der Oracle Solaris-Plattform mit ihren hochmodernen Bibliotheken und zuverlässigen Frameworks wesentlich einfacher machen.
Oracle Solaris umfasst neue und aktualisierte C-Bibliotheks-SSM-APIs. Beispiel: Diese APIs können verwendet werden, um Probleme wegen Speicherbeschädigung zu ermitteln, wenn eine Anwendung ihre eigene benutzerdefinierte Speicherzuweisung verwendet.
Weitere Informationen finden Sie auf den Manpages adi(3C), adi(2), memcntl(2), mmap(2) und siginfo(3HEAD).
Eine neue Speicherverwaltungsbibliothek auf Benutzerebene, libadimalloc, definiert Versionen der standardmäßigen libc-malloc(3C)-Funktionsfamilie, die SSM verwenden. Darüber hinaus bietet die libadimalloc-Bibliothek auch einen umfassenden Debuggingsupport.
Weitere Informationen finden Sie auf der Manpage libadimalloc(3LIB). Weitere Informationen zur Unterstützung des Debuggings finden Sie auf der Manpage adimalloc_debug(3MALLOC).
Die Entwicklungstools von Oracle Solaris Studio umfassen Unterstützung für SSM ein und bieten Entwicklern zusätzliche Diagnosefunktionen, um laufzeitbezogene SSM-Fehler schnell zu finden und zu korrigieren. Code Analyzer ist ein erweitertes Analysetool in Oracle Solaris Studio, das Codierungsfehler mit einer statischen Analyse ermitteln kann, wenn Sie Ihre Anwendung kompilieren. Code Analyzer schützt Ihre Anwendung auch vor Speicherfehlern mit einer dynamischen Laufzeitanalyse. Außerdem wird die Codeabdeckung mit patentierter Technologie umfassend verbessert, die eine Rangfolge für nicht getestete Funktionen festlegt. Die dynamische Laufzeitanalysefunktion des Code Analyzers von Oracle Solaris Studio, Discover, umfasst eine Bibliothek (libdiscoverADI), mit der Discover laufzeitbezogene Speicherfehler verstehen und ermitteln kann, die von SSM identifiziert werden. Jede C- oder C++-Anwendung kann diese Bibliothek im Voraus laden, damit sie mit der SSM-Fehlerprüfung ausgeführt werden kann. Wird ein Speicherfehler ermittelt, gibt Discover einen umfassenden Fehleranalysebericht aus.
Informationen zur Verwendung der Oracle Solaris Studio-Entwicklungstools zur Ermittlung und Korrektur von Speicherzugriffsfehlern, die von SSM identifiziert wurden, finden Sie im folgenden Artikel: https://community.oracle.com/docs/DOC-912448. Weitere Informationen finden Sie auf den Manpages mdb(1) und dtrace(1M).
Die C-Bibliothek umfasst eine neue API, mit der Java schneller und effizienter ausgeführt werden kann. Mit der neuen API, posix_spawn_file_actions_addchdir_np(), können Sie ein Arbeitsverzeichnis für einen Prozess angeben, der mit der posix_spawn()-Funktion erstellt wird. Java verwendet die posix_spawn()-Funktion, um untergeordnete Prozesse zu erstellen, die nicht zu einem übermäßigen Speicheroverhead führen.
Weitere Informationen finden Sie auf den Manpages posix_spawn(3C) und posix_spawn_file_actions_addchdir_np(3C).
Die neuen Schnittstellen, die zu der C-Bibliothek hinzugefügt wurden, stellen eine Änderung des Oracle Solaris POSIX/UNIX-Multithreaded-Prozessmodells dar. Mit diesen Schnittstellen können Prozesse Signale nicht nur aneinander sondern auch an Threads innerhalb des Prozesses senden, indem sie direkt mit einem spezifischen Thread in einem anderen Prozess kommunizieren.
Weitere Informationen finden Sie auf den Manpages proc_thr_kill(3C) und proc_thr_sigqueue(3C).
Signale werden jetzt als eine Ereignisquelle zu dem vorhandenen Set von Ereignisquellen hinzugefügt, die für Ereignisports definiert sind. Dadurch sind Prozesse in Ereignisports möglich, die zusammen mit dem vorhandenen Set von Ereignisquellen auf Signalereignisse warten.
Weitere Informationen finden Sie auf den Manpages port_create(3C), port_associate(3C) und port_dissociate(3C).
Oracle Solaris 11.3 umfasst zwei neue Systemaufrufe, getentropy(2) und getrandom(2), mit denen Entropie- oder Zufallsbits aus dem Kernel erfasst werden können. Diese Systemaufrufe sind eine bessere Auswahl als die Verwendung von open(2) und read(2) auf /dev/random- und /dev/urandom-Geräten.
Weitere Informationen finden Sie auf den Manpages getentropy(2)und getrandom(2).
In Oracle Solaris 11.3 können Sie jetzt die Threads einer Anwendung mit Labels versehen, um das Debugging der Anwendung zu vereinfachen. Beobachtbarkeitstools, wie ps, prstat und DTrace können Metriken basierend auf zugewiesenen Namen anzeigen. Diese Funktion eignet sich besonders für Anwendungen, wie Java, die über viele Threads verfügen.
Weitere Informationen finden Sie auf den Manpages prstat(1M) und pthread_attr_setname_np(3C).
DTrace umfasst jetzt die Möglichkeit, die automatische Auflösung von Userspace-Symbolen über eine neue Laufzeitoption, –x noresolve zu verhindern. Diese Option eignet sich besonders, wenn die Symbolauflösung bei großen statisch verknüpften Binärdateien lange Zeit dauert.
Neue DTrace SDT-Probes in den Modulen eoib und eibnx ermöglichen eine bessere Beobachtung der Ethernet over InfiniBand-(EoIB-)Implementierung.