Novedades de Solaris 10

Mejoras en las herramientas de desarrollo

Esta sección describe todas las herramientas de desarrollo en la versión Solaris 10 3/05 que son nuevas o que se han mejorado desde el lanzamiento de Solaris 9 en mayo de 2002. La función de seguimiento dinámico DTrace es especialmente importante.

Los desarrolladores deben revisar también estas nuevas funciones en los apartados de seguridad y administración de sistemas:

Utilidad de seguimiento dinámico

Esta función se introdujo en la versión Solaris Express 11/03.

Solaris DTrace es una completa herramienta de seguimiento dinámico que proporciona a los usuarios, los administradores y los desarrolladores de Solaris una nueva capacidad de observación en los procesos del núcleo y de los usuarios. Para obtener más información, consulte Utilidad de seguimiento dinámico DTrace.

GCC versión 3.4.3

Esta función se introdujo en la versión Solaris 10 3/05.

GCC es el compilador en “C” de origen abierto de GNU Software Foundation. Entre las herramientas de construcción, se incluyen gmake, bison, binutils, gnuM4 y flex.

Perl versión 5.8.4

Esta función es nueva en la versión Solaris Express 8/04.

El SO Solaris 10 dispone de una versión nueva predeterminada del Lenguaje práctico de extracción e informes (Perl). La nueva versión predeterminada de Perl es la número 5.8.4. Deberá reinstalar todos los módulos que haya instalado manualmente después de actualizar al software Solaris 10. Para obtener más información acerca de la instalación de los módulos, consulte "Perl 5" en la System Administration Guide: Network Services .

Para obtener más información acerca de Perl, consulte la página de comando man perl(1).

Mejoras en el modo por procesos

Esta función es nueva en la versión Solaris Express 8/04.

Los comandos truss, pstack y pflags se han actualizado para permitir que el usuario especifique subprocesos individuales en un proceso o núcleo. Los desarrolladores y los administradores de sistemas pueden comprender mejor el comportamiento de grandes aplicaciones que cuenten con numerosos subprocesos y centrarse en subprocesos específicos para su depuración.

Para obtener más información, consulte las siguientes páginas de comando man:

Mejoras en la compatibilidad con dispositivos USB de usuario final

Estas mejoras se introdujeron en la versión Solaris Express 5/04. Las nuevas interfaces de programación se agregaron en la versión Solaris Express 8/04.

Todos los dispositivos actuales serie USB de Edgeport funcionan ahora con esta versión de Solaris. Los dispositivos de audio USB 1.1 y otros dispositivos asíncronos ahora funcionan respaldados por hubs USB 2.0 de alta velocidad.

Nuevas interfaces de programación

Estas mejoras se introdujeron en la versión Solaris Express 8/04.

Las interfaces de programación Universal Serial Bus Architecture (USBA) 2.0 se suministran como parte del SO Solaris 10. Estas interfaces se documentan como funciones y estructuras usb_* en la página de comando apartados 9F y 9S. Consulte también Writing Device Drivers .

La estructura USBA recibe ahora el nombre de USBA 2.0. Los controladores USB que se escribieron para las interfaces USBA 1.0 en los kits de desarrollo de unidades (DDK, del inglés Driver Development Kit) anteriores son sólo compatibles binarios con el software Solaris 10; no son compatibles en cuanto a origen con Solaris 10.

Mejoras en el comando ls

Esta función es nueva en la versión Solaris Express 8/04.

El comando ls puede mostrar ahora tiempos de archivo en segundos o en nanosegundos. Consulte Mejoras en el comando ls.

Nuevas funciones para convertir cadenas

Esta función se introdujo en la versión Solaris Express 7/04.

Los desarrolladores del módulo del núcleo cuentan ahora con dos funciones nuevas para convertir cadenas en enteros largos. Las funciones ddi_strtol() y ddi_strtoul () hacen posible la conversión de cadenas en enteros y en enteros largos sin firmar, respectivamente. Estas nuevas funciones proporcionan entradas más flexibles, compatibilidad con DDI y una mayor detección de errores.

Para obtener más información, consulte las páginas de comando man ddi_strtol(9F) y ddi_strtoul(9F).

Compatibilidad de Java con el comando pstack

Esta función se introdujo en la versión Solaris Express 7/04.

El comando pstack se ha mejorado para que muestre marcos de Java cuando se esté usando la última versión de Java. Para cada marco de Java en la pila de llamadas, se muestran la función y el número de línea si están disponibles.

Consulte la página de comando man pstack(1).

Nuevos mecanismos para la estructura criptográfica de Solaris

Esta función es nueva en la versión Solaris Express 6/04.

La estructura criptográfica de Solaris admite ahora los siguientes mecanismos para los protocolos de capa de socket segura (SSL, del inglés Secure Sockets Layer) y de seguridad de capa de transporte (TLS, del inglés Transport Layer Security):

La estructura criptográfica de Solaris es una arquitectura que permite a las aplicaciones de un sistema Solaris usar o proporcionar servicios criptográficos. Todas las interacciones con la estructura están basadas en PKCS#11 Cryptographic Token Interface (Cryptoki), de los laboratorios RSA, la sección de investigación de RSA Security, Inc.

Para obtener más información, consulte “PKCS #11 Functions: C_GetMechanismList" en Solaris Security for Developers Guide .

Opciones comerciales y no comerciales para los proveedores en la estructura criptográfica de Solaris

Esta función es nueva en la versión Solaris Express 6/04.

Los vendedores de proveedores criptográficos que conectan con la estructura criptográfica de Solaris tienen más flexibilidad a la hora de solicitar certificados a Sun Microsystems. Los certificados distinguen ahora entre distribuciones para exportación comercial y no comercial.

Los productos con cifrado comercial son aquellos que el gobierno de Estados Unidos permite que se distribuyan a todos los países. No obstante, los productos comerciales no se pueden enviar a determinados países que el gobierno de EE. UU. considere que constituyen amenazas para la seguridad. Los productos con cifrado no comercial, por su parte, son los que dicho gobierno autoriza sólo para usarlos dentro de sus fronteras o en países que especifique concretamente.

Para obtener más información, consulte la página de comando man elfsign(1) y el apéndice F, “Packaging and Signing Cryptographic Providers”, de la Solaris Security for Developers Guide.

Actualizaciones de enlazadores y bibliotecas

Esta descripción se introdujo en el programa piloto Software Express y se revisó en la versión Solaris Express 5/04. Las actualizaciones de los enlazadores y las bibliotecas se introdujeron también en Solaris 9 12/02 y en las versiones posteriores. Estas actualizaciones también se incluyen en la versión Solaris 10 3/05.

El SO Solaris 10 contiene funciones de enlazador y editor como, por ejemplo, la compresión de la tabla de cadenas, la eliminación de secciones a las que no se hace referencia y la detección de dependencias a las que tampoco se hace referencia. Para obtener información completa sobre las mejoras más recientes en las funciones, consulte el apéndice D, "Linker and Libraries Updates and New Features", de la Linker and Libraries Guide .

Entre las mejoras introducidas en la versión Solaris Express 5/04, se incluyen las siguientes:

Entre las mejoras introducidas en el programa piloto Software Express anterior se incluyen las siguientes:

Interfaces con controlador por capas

Esta función se introdujo en la versión Solaris Express 3/04.

El sistema operativo Solaris 10 se ha mejorado para que los módulos del núcleo puedan realizar operaciones de acceso a dispositivos como, por ejemplo, abrir un dispositivo, leerlo y escribir en él. Este sistema también le permite determinar qué dispositivos se proporcionan mediante un nuevo conjunto de interfaces con controlador por capas, que se conoce como "LDI" (Layered Driver Interfaces), y que están disponibles de forma pública.”

Los programadores de controladores pueden usar las interfaces LDI 9F para acceder a dispositivos de caracteres, de bloques o STREAMS directamente desde el núcleo de Solaris. Los programadores de aplicaciones pueden usar las interfaces LDI para mostrar la información sobre las capas del dispositivo. Esta nueva arquitectura también proporciona a los administradores la posibilidad de observar el uso del dispositivo dentro del núcleo. Para obtener más información, consulte las páginas de comando man ldi_*(9F) y di_*(3DEVINFO).

Las utilidades prtconf y fuser se han mejorado para dar cabida a las siguientes funciones:

Las interfaces con controlador por capas comienzan por el prefijo ldi_. Estas interfaces se usan para el acceso de los dispositivos y para obtener información sobre los dispositivos en el núcleo. Las páginas de comando man se proporcionan para las interfaces en el apartado 9F. En cuanto a los usuarios, un conjunto de interfaces de bibliotecas de información, proporciona datos de uso de dispositivos de núcleo en las aplicaciones. Las páginas de comando man se proporcionan para las interfaces LDI libdevinfo en el apartado 3DEVINFO. Además, en las páginas de comando man prtconf(1M) y fuser(1M), se incluye información acerca de la visualización de la información sobre el uso del dispositivo del núcleo que es proporcionada por la arquitectura LDI.

Para obtener más información, consulte el capítulo 13, "Layered Driver Interface (LDI)", de Writing Device Drivers .

Cambios en la función makecontext()

Esta función se introdujo en las versiones Solaris Express 3/04 y Solaris 9 9/04.

La semántica del miembro uc_stack de la estructura ucontext_t ha cambiado al aplicarla a las entradas en la función de biblioteca makecontext(3C) libc. La compatibilidad de binarios se mantiene entre las versiones anteriores de Solaris y el SO Solaris 10.

Las aplicaciones que utilizan esta interfaz deben actualizarse antes de volver a compilarse para el SO Solaris 10. Consulte la página de comando man makecontext(3C) para obtener más información.

Especificación única para UNIX, versión 3

Esta función se introdujo en la versión Solaris Express 2/04.

Esta versión de Solaris se ajusta a la versión 3 de la especificación única para UNIX (SUSv3, del inglés Single UNIX Specification, Version 3). SUSv3 incluye actualizaciones para POSIX.1-1990, POSIX.1b-1993, POSIX.1c-1996, POSIX.2-1992 y POSIX.2a-1992.

Consulte "Single UNIX Specification, Version 3 Introduces Changes" en las Notas de la versión de Solaris 10 para obtener una descripción detallada del impacto de las actualizaciones de SUSv3 en los usuarios de Solaris.

API avanzada

Esta función se introdujo en la versión Solaris Express 1/04.

La API de sockets avanzada para IPv6 supone una actualización de la API de sockets de Solaris para que se ajuste a la versión actual de RFC 2292. Consulte IPv6 Advanced Sockets API.

Capa de seguridad y autenticación simple para desarrolladores

Esta función se introdujo en la versión Solaris Express 12/03.

La capa de seguridad y autenticación simple (SASL, del inglés Simple Authentication and Security Layer) proporciona a los desarrolladores de aplicaciones y bibliotecas compartidas interfaces para agregar autenticación, comprobaciones de la integridad de los datos y cifrado para los protocolos basados en conexiones.

SASL consta de los siguientes elementos:

Con SASL, los desarrolladores pueden escribir en una API genérica sin tener que preocuparse acerca de los detalles de los mecanismos de seguridad. Cuando se desarrollan para usar SASL de una forma adecuada, los servidores y los clientes pueden usar nuevos mecanismos de seguridad, complementos de canonización de usuarios y designación, así como complementos auxproop sin recompilación.

SASL se describe en RFC 2222. SASL es especialmente adecuado para aplicaciones que utilizan los protocolos siguientes que admiten SASL:

Para obtener más información acerca de SASL, consulte la página de comando man libsasl(3LIB) Consulte también la Solaris Security for Developers Guide .

Puertos para eventos

Esta función se introdujo en la versión Solaris Express 12/03.

La función de puertos para eventos (Event Ports) es una estructura que permite a las aplicaciones generar y recopilar eventos desde orígenes separados. La estructura puede recuperar eventos de numerosos objetos simultáneamente sin que se vea afectado el rendimiento general.

Para obtener más información, consulte las páginas de comando man port_create(3C) y signal.h(3HEAD).

Contenido de los archivos del núcleo

La versión Solaris Express 12/03 supuso la introducción de mejoras para las utilidades coreadm, gcore y mdb. Consulte Mejoras en el contenido de los archivos del núcleo.

Operaciones atómicas

Esta función se introdujo como novedad en la versión Solaris Express 10/03 y se ha mejorado en la versión Solaris 10 1/06.

Las operaciones atómicas proporcionan API en libc que realizan rápidamente operaciones atómicas sencillas. Esta nueva función permite que las aplicaciones realicen actualizaciones atómicas de memoria sin usar otros lenguajes anteriores de sincronización u otros lenguajes de conjuntos específicos para las plataformas. Las operaciones disponibles incluyen la adición, las funciones booleanas “and” y “or”.

Para obtener más información, consulte la página de comando man atomic_ops(3C).

Cambios en el archivo WBEM de Solaris

La descripción de esta función se introdujo en la versión Solaris Express 9/03.

Se han efectuado diversos cambios en los archivos con un formato de objetos gestionados (MOF, del inglés Managed Object Format) en el directorio /usr/sadm/mof.

Privilegios para los desarrolladores de software

Esta función se introdujo en el programa piloto Software Express. Además, se incluye en la versión Solaris 10 3/05.

Ya no es necesario ejecutar los procesos como root para tener funciones de superusuario. En su lugar, las funciones de superusuario las puede distribuir el administrador de sistema como derechos para procesos diversos. Los derechos para llevar a cabo un proceso se implementan mediante privilegios. Los privilegios permiten a los desarrolladores limitar el acceso a operaciones restringidas, así como limitar los periodos durante los cuales surten efecto dichos privilegios. El uso de privilegios puede reducir los daños que antes se podían producir si se comprometía la seguridad de un programa con privilegios. Por motivos de compatibilidad, los programas sin modificar que se ejecutan como root continúan teniendo todos los privilegios.

Para obtener información general acerca de los privilegios, consulte Administración de derechos de procesamiento. Para obtener información acerca de la configuración y obtención de privilegios, consulte las páginas de comando man setppriv(2) y getppriv(2). Para obtener más información sobre el uso de privilegios, consulte las páginas de comando man priv_str_to_set(3C) y priv_addset(3C).

Si desea obtener más información, consulte la Solaris Security for Developers Guide .

Estructura criptográfica de Solaris para desarrolladores

Esta función se introdujo en el programa piloto Software Express. Además, se incluye en la versión Solaris 10 3/05.

La estructura criptográfica de Solaris proporciona servicios criptográficos a todas las aplicaciones. Las aplicaciones pueden acceder a dicha estructura a través de libpkcs11(3LIB) y de niveles superiores.

La estructura criptográfica de Solaris proporciona las siguientes funciones para los desarrolladores de aplicaciones que usen el cifrado:

Consulte las siguientes páginas de comando man: libpkcs11(3LIB), pkcs11_softtoken(5) y pkcs11_kernel(5). Consulte también Solaris Cryptographic Framework para administradores de sistemas.

Los proveedores de aceleradores criptográficos de software o hardware que estén interesados en suministrar complementos a la estructura criptográfica de Solaris deben ponerse en contacto con Sun Microsystems para obtener más información.

SPARC: Cambios en el paquete de 64 bits para los desarrolladores de software

Esta función se introdujo en el programa piloto Software Express. Además, se incluye en la versión Solaris 10 3/05.

En el sistema operativo Solaris 10, los paquetes se han simplificado puesto que la mayoría de los componentes de 32 bits y 64 bits se envían en un único paquete. Consulte SPARC: Cambios en los paquetes de 64 bits.

Pseudomecanismo SPNEGO para aplicaciones GSS-API

Esta función se introdujo en el programa piloto Software Express. Además, se incluye en la versión Solaris 10 3/05.

El SO Solaris 10 incluye un nuevo “pseudomecanismo” para GSS-API que permite negociar la seguridad GSS-API basada en el protocolo SPNEGO (IETF RFC 2478). La negociación GSS-API sencilla y protegida (SPNEGO, del inglés Simple and Protected GSS-API Negotiation) es más útil para aplicaciones basadas en implementaciones GSS-API que admitan varios mecanismos de seguridad. SPNEGO se puede aplicar cuando dos aplicaciones usan GSS-API para intercambiar datos y no conocen qué mecanismos admite la otra aplicación.

SPNEGO es un pseudomecanismo de seguridad que se representa mediante el siguiente identificador de objetos:


iso.org.dod.internet.security.mechanism.snego (1.3.6.1.5.5.2)

SPNEGO establece relaciones entre elementos del mismo nivel de GSS-API para determinar en banda si sus credenciales comparten los mecanismos se seguridad comunes de GSS-API. Si los mecanismos se comparten, los elementos del mismo nivel podrán seleccionar un mecanismo común para establecer el contexto de seguridad.

Para obtener más información, consulte las páginas de comando man mech(4) y mech_spnego(5). Consulte también la Solaris Security for Developers Guide .

Grupos de localidad

Esta función se introdujo en el programa piloto Software Express y en Solaris 9 12/03. Además, se incluye en la versión Solaris 10 3/05.

Programming Interfaces Guide incluye ahora un capítulo en el que se explican las interfaces que interactúan con los grupos de localidad (lgroups). Dichas interfaces pueden utilizarse para ayudar a que las aplicaciones asignen de forma eficaz los recursos de la CPU y de la memoria. Esta función tiene como consecuencia una mejora en el rendimiento de algunos sistemas.

Pilas de subprocesos en pmap

Esta función se introdujo en el programa piloto Software Express. Además, se incluye en la versión Solaris 10 3/05.

La utilidad pmap etiqueta ahora las pilas de los subprocesos para que sea mucho más fácil identificarlas.

Consulte la página de comando man pmap(1) para obtener más información.

Nuevo indicador DOOR_REFUSE_DESC

Esta función se introdujo en el programa piloto Software Express. Además, se incluye en la versión Solaris 10 3/05.

Se ha agregado un nuevo indicador, DOOR_REFUSE_DESC, a la función door_create. () Este nuevo indicador simplifica la escritura en los servidores de puerta que no aceptan descriptores de argumentos.

Para obtener más información, consulte la página de comando man door_create(3DOOR).

Stack Check APIs

Esta función se introdujo en el programa piloto Software Express y en Solaris 9 4/03. Además, se incluye en la versión Solaris 10 3/05.

Stack Check APIs permite una interacción avanzada con la admisión del compilador de comprobación de pilas que está disponible en Sun ONE Studio. Estas API se deben usar en aplicaciones que se compilen con la comprobación de pilas activada y gestiona sus propias pilas o intenta detectar sus propios desbordamientos de pilas.

Los desarrolladores que mantengan sus propias bibliotecas de subprocesos necesitan usar la interfaz setustack para permitir que los consumidores de la biblioteca compilen con la comprobación de pilas activada.

Consulte las páginas de comando man stack_getbounds(3C), stack_setbounds(3C) y stack_inbounds(3C).

Mejoras en la función crypt() para los desarrolladores de software

Esta función se introdujo en el programa piloto Software Express y en Solaris 9 12/02. Además, se incluye en la versión Solaris 10 3/05.

En las versiones de Software Express se incluyen nuevas extensiones de la función crypt() y se presenta la función crypt_gensalt. () Dichas mejoras permiten a los administradores cambiar el algoritmo utilizado para camuflar las contraseñas de inicio de sesión UNIX de los usuarios.

Se incluyen módulos para MD5 y Blowfish. Los módulos de MD5 se encuentran en crypt_sunmd5 y crypt_bsdmd5. El módulo de Blowfish se incluye en crypt_bsdbf.

Los desarrolladores pueden crear nuevos módulos para algoritmos de camuflaje de contraseñas alternativos. Los programadores de aplicaciones deben emplear la función crypt_gensalt() en lugar de generar manualmente la cadena salt para pasar a la función crypt().

Los módulos para los algoritmos alternativos se especifican en el archivo crypt.conf(4) El campo module_path especifica la ruta al objeto de biblioteca compartida que implementa las dos funciones necesarias:

Para obtener más información, consulte las páginas de comando man crypt(3C) y policy.conf(4).

Nuevos indicadores para la función madvise()

Esta función se introdujo en el programa piloto Software Express y en Solaris 9 12/02. Además, se incluye en la versión Solaris 10 3/05.

La función madvise() permite al núcleo optimizar el acceso a un área de memoria definida por el usuario. Esta versión de Solaris contiene tres nuevos indicadores para la función madvise():

Si desea más información sobre la función madvise(), consulte la página de comando man madvise(3C).

Asignación de memoria con libumem

Esta función se introdujo en el programa piloto Software Express y en Solaris 9 4/03. Además, se incluye en la versión Solaris 10 3/05.

libumem es una biblioteca de asignación de memoria en modo usuario (modo no núcleo). con funciones que permiten depurar las pérdidas de memoria y otros errores que implican el uso de ésta.

Se usa esta función del mismo modo que un asignador estándar de interfaces de aplicación binarias (ABI), como malloc. () Una aplicación de modo usuario solicita un número arbitrario de bytes de memoria. A continuación se devuelve un puntero cargado con la dirección de la memoria asignada.

Para obtener más informacion, consulte la página de comando man libumem(3LIB).

Interfaces de terminales de tarjeta inteligente

Esta función se introdujo en el programa piloto Software Express y en Solaris 9 8/03. Además, se incluye en la versión Solaris 10 3/05.

Las interfaces de tarjeta inteligente de Solaris son un conjunto de interfaces públicas para los terminales de tarjeta inteligente que los distribuidores de terminales de tarjetas pueden implementar en una biblioteca compartida por usuarios con el fin de proporcionar admisión de dispositivos a los terminales de tarjeta inteligente en Solaris. El conjunto de interfaces de terminales de tarjetas inteligentes de Solaris se basa en interfaces de terminales de tarjetas disponibles como parte de la estructura Linux Smartcard. Las bibliotecas de admisión de terminales de tarjetas de Linux se pueden trasladar a un entorno Solaris con un esfuerzo mínimo. Para obtener más información acerca de las tarjetas inteligentes, consulte la Solaris Smartcard Administration Guide .

API de middleware para tarjetas inteligentes

Esta función se introdujo en el programa piloto Software Express y en Solaris 9 9/02. Además, se incluye en la versión Solaris 10 3/05.

La estructura de Tarjeta inteligente de Solaris ofrece ahora API de middleware de bajo nivel que se pueden usar para el intercambio de datos con tarjetas inteligentes mediante el uso de un lector de tarjetas inteligentes. Las API se pueden usar en plataformas como los sistemas Sun BladeTM y Sun Ray. TM Las aplicaciones escritas en los lenguajes Java o C pueden usar estas interfaces.

Para obtener más información, consulte la página de comando man libsmartcard(3LIB) y JavaDocs en /usr/share/javadoc/smartcard. Consulte también la Solaris Smartcard Administration Guide .