En esta sección, se describen las mejoras incluidas en esta versión para los desarrolladores que hacen que el desarrollo de aplicaciones en la plataforma de Oracle Solaris sea más sencillo gracias a sus bibliotecas de última generación y sus estructuras confiables.
Oracle Solaris incluye API de SSM de bibliotecas C nuevas y actualizadas. Estas API se pueden usar, por ejemplo, para permitir la detección de problemas de daño de memoria cuando una aplicación usa su propio asignador de memoria personalizado.
Para obtener más información, consulte las páginas del comando man adi(3C), adi(2), memcntl(2), mmap(2) y siginfo(3HEAD).
Una nueva biblioteca de gestión de memoria de nivel de usuario, libadimalloc, define versiones de la familia libc-malloc(3C) estándar de funciones que usan la SSM. Además, la biblioteca libadimalloc también proporciona una amplia compatibilidad con la depuración.
Para obtener más información, consulte la página del comando man libadimalloc(3LIB). Para obtener más información acerca de la compatibilidad con la depuración, consulte la página del comando man adimalloc_debug(3MALLOC).
Las herramientas de desarrollo de Oracle Solaris Studio incluyen compatibilidad con SSM y proporcionan a los desarrolladores diagnósticos adicionales para encontrar rápidamente los errores de SSM relacionados con el tiempo de ejecución y corregirlos. Code Analyzer es una herramienta de análisis avanzada en Oracle Solaris Studio que puede detectar errores de códigos mediante el análisis estático al compilar su aplicación. Code Analyzer también protege su aplicación contra errores de memoria con análisis dinámicos de tiempo de ejecución. Además, aumenta sustancialmente la cobertura de código con tecnología patentada que clasifica funciones sin probar. La funcionalidad de análisis dinámico de tiempo de ejecución del analizador de código de Oracle Solaris Studio, Discover, incluye una biblioteca, libdiscoverADI, que permite que Discover comprenda y detecte errores relacionados con el tiempo de ejecución identificados por la SSM. Cualquier aplicación C o C++ puede precargar esta biblioteca para que se ejecute con la comprobación de errores de SSM activada. Si se detecta un error de memoria, Discover imprime un informe completo de análisis de error.
Para obtener información sobre cómo usar herramientas de desarrollo de Oracle Solaris Studio para buscar y corregir errores de acceso a la memoria identificados por la SSM, consulte el siguiente artículo: https://community.oracle.com/docs/DOC-912448. Para obtener más información, consulte las páginas del comando manmdb(1) y dtrace(1M).
La biblioteca C incluye una nueva API que permite que Java se ejecute de forma más rápida y efectiva. La nueva API, posix_spawn_file_actions_addchdir_np(), permite especificar un directorio de trabajo para un proceso creado con la función posix_spawn(). Java usa la función posix_spawn() para crear procesos secundarios que no generan una sobrecarga excesiva de la memoria.
Para obtener más información, consulte las páginas del comando man posix_spawn(3C) y posix_spawn_file_actions_addchdir_np(3C).
Las nuevas interfaces agregadas a la biblioteca C representan un cambio en el modelo del proceso multithread POSIX/UNIX de Oracle Solaris. Las interfaces permiten que los procesos envíen señales no solo entre ellos, sino también a threads dentro del proceso al interaccionar directamente con cualquier thread específico en un proceso diferente.
Para obtener más información, consulte las páginas del comando man proc_thr_kill(3C) y proc_thr_sigqueue(3C).
Las señales ahora se agregan como un origen de evento al conjunto existente de orígenes de eventos que están definidos para puertos de eventos. Esta mejora permite que los puertos de eventos tengan procesos que esperan eventos de señales junto con el conjunto existente de orígenes de eventos.
Para obtener más información, consulte las páginas del comando man port_create(3C), port_associate(3C) y port_dissociate(3C).
Oracle Solaris 11.3 incluye dos nuevas llamadas del sistema, getentropy(2) y getrandom(2), que se proporcionan para recopilar entropía o bits aleatorios del núcleo. Estas llamadas del sistema son una mejor opción que usar open(2) y read(2) en dispositivos /dev/random y /dev/urandom.
Para obtener más información, consulte las páginas del comando man getentropy(2) y getrandom(2).
En Oracle Solaris 11.3, ahora puede etiquetar los threads de una aplicación para simplificar la depuración de la aplicación. Las herramientas de observación, como ps, prstat y DTrace, pueden mostrar métricas en función de los nombres asignados. Esta función es especialmente útil para las aplicaciones, como Java, que tienen muchos threads.
Para obtener más información, consulte las páginas del comando man prstat(1M) y pthread_attr_setname_np(3C).
DTrace ahora incluye la capacidad de evitar la resolución automática de símbolos userspace a través de una nueva opción de tiempo de ejecución, –x noresolve. Esta opción puede ser útil cuando la resolución de símbolos demora mucho tiempo para los binarios enlazados estáticamente de gran tamaño.
Los nuevos sondeos SDT de DTrace en los módulos eoib y eibnx proporcionan una mejor capacidad de observación de la implementación de Ethernet sobre InfiniBand (EoIB).