Solaris 10 Versionshinweise

Allgemeine Informationen

Dieser Abschnitt stellt allgemeine Informationen zur Verfügung, wie z. B. Änderungen des Verhaltens von Solaris 10-BS.

Einführung von Änderungen durch die Single UNIX Specification, Version 3

Die Single UNIX Specification, Version 3 (SUSv3), bietet Aktualisierungen für die folgenden POSIX Betriebssystem-Schnittstellen:

Die Aktualisierungen enthalten die folgenden Änderungen:

Variable ENV in der Korn-Shell

Die Umgebungsvariable ENV wird in einer nicht-interaktiven Korn-Shell nicht mehr erweitert. Diese Änderung gilt für /bin/ksh und /usr/xpg4/bin/sh.

Compiler und SUSv3-Anwendungen

Anwendungen, die der SUSv3 und anderen Standards entsprechen, sollten unter Verwendung der korrekten Funktionstestmakros, Compiler und Optionen erzeugt werden. Siehe hierzu die Manpage standards(5).

Der Befehl file

Wenn der Befehl file mit der Option -m verwendet wird, führt er Vergleiche mit Vorzeichen bei benutzerdefinierten Magic-Dateien durch. Darüber hinaus wechselt der Befehl in der x86-Umgebung bei Multibyte-Integer-Werten nicht mehr die Reihenfolge in big-endian (SPARC), bevor die Magic-Werte verglichen werden. Siehe hierzu die Manpages file(1) und magic(4).

Druckfunktionen

snprintf() und vsnprintf() geben jetzt die Anzahl von Bytes zurück, die bei einem Eingabewert von n=0 formatiert würden. Siehe die Man Pages snprintf(3C) und vsnprintf(3C).

Texteditor

Der Editor prüft beim Starten auf zusätzliche Bedingungen, bevor die .exrc-Dateien in $HOME oder im aktuellen Verzeichnis gelesen werden. Siehe hierzu die Manpages ex(1) und vi(1).

64-bit SPARC: Zeitfunktionen

Wenn die Eingabe time_t zu groß ist, um in einer tm struct dargestellt zu werden, geben die folgenden Funktionen einen Null-Zeiger zurück und setzen errno auf EOVERFLOW:

Siehe die Manpages gmtime(3C), gmtime_r(3C), localtime(3C) und localtime_r(3C).

Nachgestellte Schrägstriche

SUSv3 erlaubt einen nachgestellten Schrägstrich (/) in einem Pfadnamen nur, wenn der Pfad ein vorhandenes oder ein zu erstellendes Verzeichnis angibt.

Dienstprogramme in /usr/xpg6/bin und /usr/xpg4/bin

Dienstprogramme in /usr/xpg6/bin und /usr/xpg4/bin weisen SUSv3-konformes oder XPG4-konformes Verhalten auf, das mit dem Standardverhalten von Solaris in Konflikt steht. PATH muss für einen Benutzer ordnungsgemäß konfiguriert sein, damit dieser eine Befehlszeilenumgebung verwenden kann, die SUSv3-konform ist. Weitere Informationen finden Sie auf der jeweiligen Man Page des Dienstprogramms.

In sendmail ist die Unterstützung für TCP-Wrapper aktiviert

Das Dienstprogramm sendmail wurde der Liste von Diensten hinzugefügt, die TCP-Wrapper unterstützen. Die erweiterte Funktion des Dienstprogramms kann dazu führen, dass sendmail Verbindungen bei Solaris 10-Systemen zurückweist, die zuvor mit stark restriktiven Diensten konfiguriert wurden. Verwenden Sie den Dämon-Namen sendmail, um die Verwendung von TCP-Wrappern zu aktivieren. Informationen zur Unterstützung von TCP-Wrappern finden Sie im Abschnitt sendmail Version 8.12 arbeitet mit TCP-Wrappern in Neuerungen im Betriebssystem Solaris 10. Informationen zum Konfigurieren von TCP-Wrappern finden Sie in den Man Pages tcpd(1M) und hosts_access(4), die sich im Package SUNWtcpd befinden.

x86: Änderung an der Solaris fdisk-ID

In der Solaris 10-Version ist die Solaris fdisk-ID auf 0xbf festgelegt, um die Konfiguration von Multiboot-Umgebungen zu erleichtern, die das Betriebssystem Linux enthalten. In früheren Versionen von Solaris war die Solaris fdisk-ID auf 0x82 festgelegt, dieselbe ID wie die der Swap-Partition von Linux. Der Wechsel der ID ermöglicht eine Installation von Solaris 10-BS zusammen mit dem Betriebssystem Linux, ohne die Swap-Partition von Linux ändern oder das Linux BS erneut installieren zu müssen.

Das Solaris BS erkennt und unterstützt weiterhin Solaris fdisk mit der ID 0x82. Sie können mit dem Befehl fdisk zwischen den IDs 0x82 und 0xbf wechseln. Wenn Sie Solaris Live Upgrade verwenden und die ID 0x82 verwenden müssen, ermöglicht Ihnen der Befehl luactivate den Wechsel der ID 0xbf zu 0x82.

Weitere Informationen finden Sie in der Man Page fdisk(1M).

x86: Speicherzuordnungsgrenzwerte für Anwendungen auf x86-Systemen

Solaris-Anwendungen ordnen Arbeitsspeicher zu, indem sie Funktionen wie malloc (), brk() oder mmap() verwenden. Die Speichermenge, die eine Anwendung maximal zuordnen kann, wird von der Größe des virtuellen Benutzeradressraums beschränkt. Programmtext, -stack, -daten und -bibliotheken, die sich im virtuellen Benutzeradressraum befinden, können die Größe der maximal möglichen Speicherzuordnung zusätzlich verringern.

32-Bit-Computerumgebung

In einer 32-Bit-Computerumgebung wird der virtuelle 32-Bit-Adressraum von Benutzer und Kernel gemeinsam verwendet. Infolgedessen beträgt die Größe des virtuellen Benutzeradressraums 4 GB, abzüglich der Größe des virtuellen Kerneladressraums. Die Konfiguration der Größe des virtuellen Kerneladressraums hängt von der Größe des physischen Arbeitsspeichers ab. Bei steigender Größe des physischen Arbeitsspeichers verringert sich die Größe des Benutzeradressraums. Bei Systemen mit 8 GB RAM beträgt die Größe des Benutzeradressraums ungefähr 3 GB.

Wenn die Grenzwerte für die Speicherzuordnung für eine Anwendung nicht ausreichen, haben Sie zwei Möglichkeiten:

64-Bit-Computerumgebung

In der 64-Bit-Computerumgebung steht der virtuelle Adressraum für 32-Bit-Anwendungen vollständig dem Benutzer zur Verfügung. Daher kann eine 32-Bit-Anwendung die vollständigen 4 GB zuordnen, abzüglich des Benutzeradressraums, der für Text, Stack und Bibliotheken benötigt wird.

Bei manchen älteren 64-Bit AMD-Prozessoren kann der Grenzwert für die Speicherzuordnung um ein weiteres GB verringert sein. Um festzustellen, ob Ihr Prozessor davon betroffen ist, führen Sie folgende Schritte aus:

  1. Führen Sie den Befehl pmap $$ aus einer beliebigen 32-Bit-Shell aus.

  2. Prüfen Sie in der Prozessübersicht, ob Adressen aufgeführt werden, die größer als oder gleich 0xC0000000 sind. Wenn diese Adressen nicht vorhanden sind, begrenzt das Solaris BS 32-Bit-Anwendungen auf die unteren 3 GB des virtuellen Addressraums von 4 GB.

Eine 64-Bit-Anwendung kann in Abhängigkeit von der aktuellen Speichernutzung durch die Anwendung Arbeitsspeicher in einer Größenordnung von 250 TB zuordnen.

x86: Solaris unterstützt das no execute Bit

Solaris 10 auf x86 unterstützt das no execute (NX)-Bit in den Modi 32-Bit und 64-Bit. Das NX-Bit ermöglicht die vollständige Implementierung der Schutzmechanismen, die impliziert sind, wenn PROT_EXEC in verschiedenen Speicher-Systemaufrufen, z. B. der Funktion mmap(), nicht verwendet wird. Vorher war auf x86 bei allem zugeordneten Arbeitsspeicher immer implizit PROT_EXEC gesetzt. Durch die Unterstützung von Solaris für das NX-Bit wird der Virenschutz verbessert.

Auf NX-fähiger Hardware verwendet das Solaris BS das NX-Bit standardmäßig, wenn PROT_EXEC nicht festgelegt ist. Stacksegmente verwenden jedoch standardmäßig PROT_EXEC, nicht das NX-Bit. Die Standardeinstellung für Stacksegmente kann durch eine der folgenden Aktionen geändert werden:

Der Systemadministrator kann jegliche Verwendung des NX-Bits deaktivieren, indem er mit dem Befehl eeprom enforce-prot-exec auf “off” (aus) einstellt. Diese Variable wird als Übergangslösung für alle Systeme bereitgestellt, die übernommene Anwendungen verwenden, denen PROT_EXEC fehlt.