Notes de version Solaris 10

Informations générales

Cette section contient des informations d'ordre général concernant, par exemple, les changements de comportement dans Solaris 10.

Single UNIX Specification, Version 3 entraîne des changements

Single UNIX Specification, Version 3 (SUSv3) fournit des mises à jour pour les interfaces des systèmes d'exploitation POSIX suivants :

Les mises à jour comportent les changements suivants :

Variable ENV dans le korn Shell

La variable d'environnement ENV n'est plus étendue dans un korn shell non interactif. Ce changement concerne /bin/ksh et /usr/xpg4/bin/sh.

Compilateurs et applications SUSv3

Les applications conformes à SUSv3 et aux autres normes doivent être créées à partir d'options, de compilateurs et de macros de test corrects. Consultez la page man standards(5).

Commande file

Lorsqu'elle est utilisée avec l'option -m, la commande file effectue des comparaisons signées sur les fichiers magiques définis par l'utilisateur. En outre, dans l'environnement x86, la commande ne place plus les entiers multioctets dans l'ordre big-endian (SPARC) avant de comparer les valeurs magiques. Consultez les pages man file(1) et magic(4).

Fonctions d'impression

snprintf() et vsnprintf() renvoient désormais le nombre d'octets devant être formatés lorsque la valeur d'entrée est n=0. Consultez les pages man snprintf(3C) et vsnprintf(3C).

l'éditeur de texte ;

L'éditeur recherche des conditions supplémentaires avant la lecture des fichiers .exrc dans $HOME ou dans le répertoire actuel lors du démarrage. Consultez les pages man ex(1) et vi(1).

64-bit SPARC : Fonctions de temps

Si l'entrée time_t est trop grande pour être représentée dans une structure tm, les fonctions suivantes renvoient un pointeur nul et attribuent la valeur errno à la variable EOVERFLOW :

Consultez les pages man gmtime(3C), gmtime_r(3C), localtime(3C) et localtime_r(3C).

Barres obliques finales

SUSv3 n'autorise une barre oblique (/) dans le nom d'un chemin que si ce chemin indique un répertoire existant ou un répertoire devant être créé.

Utilitaires dans /usr/xpg6/bin et /usr/xpg4/bin

Les utilitaires dans /usr/xpg6/bin et /usr/xpg4/bin ont un comportement conforme à la norme SUSv3 ou à la norme XPG4 qui est incompatible avec le comportement Solaris par défaut. PATH doit être correctement configuré pour permettre à un utilisateur d'avoir recours à un environnement de ligne de commande conforme à la norme SUSv3. Consultez la page man correspondant à l'utilitaire pour plus d'informations.

Activation de la prise en charge des wrappers TCP dans sendmail

L'utilitaire sendmail a été ajouté à la liste des services qui prennent en charge les wrappers TCP. La capacité supplémentaire de l'utilitaire peut entraîner le refus de connexion de sendmail dans les systèmes Solaris10 précédemment configurés avec des services très limités. Utilisez le nom du démon sendmail pour activer les wrappers TCP. Pour plus d'informations sur la prise en charge de TCP wrapper, reportez-vous à Utilisation de wrappers TCP par sendmail version 8.12 du Nouveautés de Solaris 10. Pour plus d'informations concernant la configuration des wrappers TCP, consultez les pages man tcpd(1M) et hosts_access(4) incluses au fichier SUNWtcpd.

x86 : Changement apporté à l'identificateur fdisk de Solaris

Dans la version Solaris10, l'identificateur fdisk de Solaris a la valeur 0xbf pour faciliter la configuration d'environnements à amorçage multiple (multiboot) comprenant le système d'exploitation Linux. Dans les versions précédentes de Solaris, l'identificateur fdisk de Solaris avait la valeur 0x82. Il s'agit du même identificateur que celui de la partition swap Linux. Le changement apporté à l'identificateur vous permet d'installer Solaris 10 et le système d'exploitation Linux sans devoir modifier la partition swap Linux ou réinstaller le système d'exploitation Linux.

Le système d'exploitation Solaris continue à reconnaître et prendre en charge la commande fdisk de Solaris avec l'identificateur 0x82. Utilisez la commande fdisk pour permuter entre l'identificateur 0x82 et l'identificateur 0xbf. Si vous utilisez Solaris Live Upgrade et devez utiliser l'identificateur 0x82, la commande luactivate vous permet de permuter de l'identificateur 0xbf à l'identificateur 0x82.

Pour plus d'informations, consultez la page man fdisk(1M).

x86 : Restrictions d'allocation de mémoire des applications sur les systèmes x86

Les applications Solaris allouent de la mémoire à l'aide de fonctions, telles que malloc(), brk() ou mmap(). La quantité maximale de mémoire qu'une application peut allouer est limitée par la taille de l'espace d'adressage virtuel de l'utilisateur. L'argument de programmation, la pile, les données et les bibliothèques qui sont contenus dans l'espace d'adressage virtuel de l'utilisateur peuvent contribuer à réduire davantage la taille maximale de la mémoire allouée.

Environnement informatique 32 bits

Dans un environnement informatique 32 bits, l'espace d'adressage virtuel 32 bits est partagé entre l'utilisateur et le noyau. Par conséquent, la taille de l'espace d'adressage virtuel de l'utilisateur est de 4 giga-octets moins la taille de l'espace d'adressage virtuel du noyau. La configuration de la taille de l'espace d'adressage virtuel du noyau dépend de la taille de la mémoire physique. Alors que la taille de la mémoire physique augmente, la taille de l'espace d'adressage virtuel de l'utilisateur diminue. Dans le cas des systèmes dotés de 8 giga-octets de mémoire, la taille de l'espace d'adressage virtuel de l'utilisateur est environ 3 giga-octets.

Si les restrictions d'allocation de mémoire sont insuffisantes pour une application, vous avez deux possibilités :

Environnement informatique 64 bits

Dans un environnement informatique 64 bits, l'espace d'adressage virtuel pour les applications 32 bits est alloué entièrement à l'utilisateur. Par conséquent, une application 32 bits peut allouer 4 giga-octets moins l'espace d'adressage virtuel de l'utilisateur nécessaire pour l'argument, la pile et les bibliothèques.

Sur certains anciens processeurs AMD 64 bits, la restriction d'allocation de la mémoire peut être encore réduite d'un giga-octet. Pour déterminer si votre processeur est concerné, procédez comme suit :

  1. Exécutez la commande pmap depuis n'importe quel shell 32 bits.

  2. Sur l'affichage des processus, vérifiez si les adresses supérieures ou égales à 0xC0000000 sont répertoriées. Si ces adresses n'existent pas, le système d'exploitation a alors limité les applications 32 bits à 3 giga-octets pour une plage d'adresses virtuelles de 4 giga-octets.

Une application 64 bits peut allouer 250 téraoctets de mémoire en fonction de la mémoire déjà utilisée par cette application.

x86 : Solaris prend en charge le bit no execute

Solaris10 sur x86 prend en charge le bit (NX)no execute dans les modes 32 bits et 64 bits. Il permet d'appliquer entièrement les protections qui sont implicitement disponibles car PROT_EXEC n'est pas utilisé dans différents appels système de mémoire, par exemple, avec la fonction mmap(). Auparavant, sur x86, PROT_EXEC était implicitement appliqué pour la mémoire mappée. La protection anti-virus est améliorée du fait de la prise en charge du bit NX par Solaris.

Concernant le matériel compatible NX, le système d'exploitation Solaris utilise le bit NX par défaut lorsque PROT_EXEC n'est pas indiqué. Cependant, les segments de pile utilisent PROT_EXEC par défaut et non le bit NX. Vous pouvez changer la configuration des segments de pile en procédant de l'une des manières suivantes :

L'administrateur système peut désactiver l'utilisation du bit NX à l'aide de la commande eeprom pour définir enforce-prot-exec sur “off”. Cette variable est fournie en tant que solution de transition pour les systèmes avec des applications existantes pour lesquelles PROT_EXEC n'est pas spécifié.