Nuove funzioni di Solaris 10

Miglioramenti agli strumenti di sviluppo

Questa sezione descrive tutte le funzioni relative agli strumenti di sviluppo che sono state introdotte o migliorate in Solaris 10 3/05 rispetto alla versione Solaris 9 distribuita originariamente nel maggio 2002. Di queste, la funzione di tracciamento dinamico DTrace riveste particolare importanza.

Può inoltre essere utile consultare le descrizioni di queste nuove funzioni nelle sezioni relative alla sicurezza e all'amministrazione dei sistemi:

Funzione di tracciamento dinamico

Questa funzione è stata introdotta in Solaris Express 11/03.

DTrace è un sistema di tracciamento dinamico che offre agli utenti, agli amministratori e agli sviluppatori di Solaris un nuovo livello di osservabilità dei processi del kernel e degli utenti. Per maggiori informazioni, vedere Funzione di tracciamento dinamico DTrace.

GCC versione 3.4.3

Questa funzione è stata introdotta in Solaris 10 3/05.

GCC è il compilatore “C” open source della GNU Software Foundation. Include gli strumenti gmake, bison, binutils, gnuM4 e flex.

Perl versione 5.8.4

Questa funzione è stata introdotta in Solaris Express 8/04.

Solaris 10 include una nuova versione predefinita del linguaggio Perl (Practical Extraction and Report Language). La nuova versione predefinita di Perl è la 5.8.4. Per utilizzarla, è necessario reinstallare i moduli installati manualmente dopo l'aggiornamento a Solaris 10. Per maggiori informazioni sull'installazione dei moduli, vedere la sezione “Perl 5” nel manuale System Administration Guide: Network Services.

Per maggiori informazioni su Perl, vedere la pagina man perl(1).

Miglioramento della modalità per-thread

Questa funzione è stata introdotta in Solaris Express 8/04.

I comandi truss, pstack e pflags sono stati aggiornati per consentire all'utente di specificare singoli thread all'interno di un processo o di un file core. Per gli sviluppatori e gli amministratori di sistema sarà più semplice comprendere il comportamento delle grandi applicazioni multithreaded e indirizzarsi verso thread specifici per il debugging.

Per maggiori informazioni, vedere le seguenti pagine man:

Miglioramenti al supporto dei dispositivi USB per gli utenti finali

Questi miglioramenti sono stati introdotti in Solaris Express 5/04. In Solaris Express 8/04 sono state introdotte nuove interfacce di programmazione.

Tutti i dispositivi di conversione USB-seriale Edgeport operano ora correttamente in Solaris. I dispositivi USB 1.1 audio e altri dispositivi isocroni operano ora correttamente quando collegati a hub USB 2.0 ad alta velocità.

Nuove interfacce di programmazione

Queste interfacce sono state introdotte in Solaris Express 8/04.

Le interfacce di programmazione USBA (Universal Serial Bus Architecture) 2.0 vengono distribuite pubblicamente insieme a Solaris 10. Queste interfacce sono documentate come funzioni e strutture usb_* nelle sezioni 9F e 9S delle pagine man. Vedere anche Writing Device Drivers.

Il framework USBA è ora denominato USBA 2.0. I driver USB che erano stati scritti per interfacce USBA 1.0 nei precedenti DDK sono compatibili solo a livello binario con Solaris 10. Questi driver non sono compatibili con Solaris 10 a livello di sorgente.

Miglioramenti a ls

Questa funzione è stata introdotta in Solaris Express 8/04.

Il comando ls può ora visualizzare l'ora dei file al secondo o al nanosecondo. Vedere Miglioramenti al comando ls.

Nuove funzioni per la conversione delle stringhe

Questa funzione è stata introdotta in Solaris Express 7/04.

Per gli sviluppatori di moduli del kernel sono ora disponibili due nuove funzioni per la conversione delle stringhe in interi lunghi. Le funzioni ddi_strtol() e ddi_strtoul () consentono la conversione da stringhe in interi lunghi e interi lunghi senza segno rispettivamente. Le nuove funzioni forniscono un input flessibile, la conformità DDI e una migliore rilevazione degli errori.

Per maggiori informazioni, vedere le pagine man ddi_strtol(9F) e ddi_strtoul(9F).

Supporto di Java per il comando pstack

Questa funzione è stata introdotta in Solaris Express 7/04.

Il comando pstack è stato migliorato e ora visualizza i frame Java quando si utilizza la più recente versione di Java. Per ciascun frame Java nello stack delle chiamate viene visualizzata la funzione e il numero di riga, se disponibile.

Vedere la pagina man pstack(1).

Nuovo meccanismo per il framework crittografico di Solaris

Questa funzione è stata introdotta in Solaris Express 6/04.

Il framework crittografico di Solaris ora supporta i seguenti meccanismi per i protocolli SSL (Secure Sockets Layer) e TLS (Transport Layer Security):

Il framework crittografico di Solaris è un'architettura che consente alle applicazioni del sistema Solaris di utilizzare o fornire servizi di crittografia. Tutte le interazioni con il framework si basano sull'interfaccia PKCS#11 Cryptographic Token Interface (Cryptoki) di RSA Laboratories, il dipartimento di ricerca di RSA Security, Inc.

Per maggiori informazioni, vedere “PKCS #11 Functions: C_GetMechanismList” nel manuale Solaris Security for Developers Guide.

Opzioni retail e nonretail per i provider del framework crittografico di Solaris

Questa funzione è stata introdotta in Solaris Express 6/04.

I fornitori di provider crittografici che si connettono al framework crittografico di Solaris dispongono oggi di una maggiore flessibilità nella richiesta dei certificati a Sun Microsystems. I certificati ora supportano entrambe le distribuzioni per l'esportazione retail e nonretail.

I prodotti di cifratura retail sono quelli per cui il governo degli Stati Uniti consente la distribuzione in tutti i paesi. Questi prodotti, tuttavia, non possono essere distribuiti in alcune specifiche nazioni che il governo degli Stati Uniti considera una minaccia per la sicurezza. I prodotti di cifratura nonretail sono quelli per i quali il governo degli Stati Uniti consente il solo utilizzo nazionale o nei paesi che sono stati esplicitamente autorizzati.

Per maggiori informazioni, vedere la pagina man elfsign(1) e l'Appendice F, “Packaging and Signing Cryptographic Providers”, nel manuale Solaris Security for Developers Guide.

Aggiornamento dei linker e delle librerie

Questa descrizione è stata introdotta nel programma pilota Software Express e rivista nella versione Solaris Express 5/04. Altri aggiornamenti ai linker e alle librerie erano stati introdotti in Solaris 9 12/02 e nelle versioni successive. Questi aggiornamenti sono inclusi in Solaris 10 3/05.

Solaris 10 include nuove funzioni del linker-editor quali la compressione della tabella stringhe, l'eliminazione delle sezioni non referenziate e la rilevazione delle dipendenze non referenziate. Per informazioni più complete sui più recenti miglioramenti delle funzioni, vedere l'Appendice D, “Linker and Libraries Updates and New Features”, nel manuale Linker and Libraries Guide.

In Solaris Express 5/04 sono stati introdotti i seguenti miglioramenti:

I miglioramenti introdotti nel precedente programma pilota Software Express includono i seguenti:

Interfaccia a livelli dei driver

Questa funzione è stata introdotta in Solaris Express 3/04.

Nel sistema operativo Solaris 10, i moduli del kernel possono eseguire operazioni di accesso ai dispositivi, ad esempio operazioni di apertura, lettura e scrittura in un dispositivo. Il sistema consente anche di determinare quali dispositivi vengono resi disponibili tramite un nuovo set pubblico di interfacce dei driver denominato “LDI” (Layered Driver Interfaces).

Gli sviluppatori di driver possono utilizzare le interfacce LDI per accedere ai dispositivi a caratteri, a blocchi o STREAMS direttamente dal kernel di Solaris. Gli sviluppatori di applicazioni possono usare le interfacce LDI per visualizzare informazioni sulla struttura a livelli dei dispositivi. Questa nuova architettura offre anche agli amministratori una maggiore osservabilità dell'utilizzo dei dispositivi nel kernel. Per maggiori informazioni, vedere le pagine man ldi_*(9F) e di_*(3DEVINFO).

I programmi prtconf e fuser sono stati migliorati e ora includono le seguenti funzioni:

Le interfacce LDI iniziano con il prefisso ldi_. Queste interfacce vengono usate per l'accesso ai dispositivi e per ottenere informazioni sui dispositivi a livello del kernel. Le pagine man delle interfacce sono fornite nella sezione 9F. A livello dell'utente un set di interfacce della libreria di informazioni sui dispositivi consente di richiamare le informazioni sull'utilizzo dei dispositivi del kernel all'interno delle applicazioni. Le pagine man per le interfacce libdevinfo di LDI sono incluse nella sezione 3DEVINFO. Inoltre, le pagine man prtconf(1M) e fuser(1M) includono informazioni sulla visualizzazione dell'utilizzo dei dispositivi del kernel fornito dall'architettura LDI.

Per maggiori informazioni, vedere il Capitolo 13, “Layered Driver Interface (LDI)”, nel manuale Writing Device Drivers.

Modifiche alla funzione makecontext()

Questa funzione è stata introdotta nelle versioni Solaris Express 3/04 e Solaris 9 9/04.

Le semantiche del membro uc_stack della struttura ucontext_t sono state modificate in relazione agli input della funzione makecontext(3C) della libreria libc. Viene mantenuta la compatibilità binaria tra le versioni precedenti di Solaris e Solaris 10.

Le applicazioni che utilizzano questa interfaccia devono essere aggiornate prima di essere ricompilate per Solaris 10. Per maggiori informazioni, vedere la pagina man makecontext(3C).

Singola specifica UNIX, versione 3

Questa funzione è stata introdotta in Solaris Express 2/04.

Questa versione di Solaris è conforme alla singola specifica UNIX, versione 3 (SUSv3). SUSv3 include aggiornamenti alle specifiche POSIX.1-1990, POSIX.1b-1993, POSIX.1c-1996, POSIX.2-1992 e POSIX.2a-1992.

Vedere “Modifiche introdotte dalla singola specifica UNIX, versione 3” nelle Note su Solaris 10 per una descrizione dettagliata dell'impatto degli aggiornamenti SUSv3 per gli utenti di Solaris.

API avanzata

Questa funzione è stata introdotta in Solaris Express 1/04.

L'API IPv6 Advanced Sockets aggiorna la API Sockets di Solaris per renderla conforme alla versione attuale della RFC 2292. Vedere API Advanced Sockets IPv6.

SASL per gli sviluppatori

Questa funzione è stata introdotta in Solaris Express 12/03.

La funzione SASL (Simple Authentication and Security Layer) fornisce agli sviluppatori di applicazioni e di librerie condivise le interfacce per aggiungere l'autenticazione, il controllo dell'integrità dei dati e la cifratura ai protocolli basati sulla connessione.

SASL comprende i seguenti elementi:

SASL consente agli sviluppatori di scrivere una API generica senza doversi preoccupare dei dettagli dei meccanismi di sicurezza. Una volta progettati per un utilizzo appropriato di SASL, i server e i client possono usare nuovi meccanismi di sicurezza, nuovi plugin per la canonicalizzazione dei nomi e degli utenti e nuovi plugin auxprop senza richiedere una ricompilazione.

SASL è descritto nella RFC 2222. SASL è appropriato in modo particolare per le applicazioni che utilizzano i seguenti protocolli che supportano SASL:

Per maggiori informazioni su SASL, vedere la pagina man libsasl(3LIB) Vedere anche il manuale Solaris Security for Developers Guide.

Event Ports

Questa funzione è stata introdotta in Solaris Express 12/03.

Event Ports è un framework che consente alle applicazioni di generare e raccogliere eventi da diverse fonti. Il framework è in grado di richiamare gli eventi da più oggetti simultaneamente senza effetti sulle prestazioni complessive.

Per maggiori informazioni, vedere le pagine man port_create(3C) e signal.h(3HEAD).

Contenuto dei file core

In Solaris Express 12/03 sono stati introdotti alcuni miglioramenti ai programmi coreadm, gcore e mdb. Vedere Miglioramenti al contenuto dei file core.

Operazioni atomiche

Questa funzione è stata introdotta nella versione Solaris Express 10/03 e migliorata in Solaris 10 1/06.

Le operazioni atomiche forniscono una serie di API in libc in grado di eseguire rapidamente semplici operazioni atomiche. Questa nuova funzione consente alle applicazioni di aggiornare la memoria a livello atomico senza usare altre primitive di sincronizzazione o il linguaggio assembly specifico per la piattaforma. Le operazioni disponibili includono la somma e le funzioni logiche “and” e “or”.

Per maggiori informazioni, vedere la pagina man atomic_ops(3C).

Modifiche ai file di Solaris WBEM

La descrizione di questa funzione è stata aggiornata in Solaris Express 9/03.

Sono state apportate varie modifiche ai file MOF (Managed Object Format) nella directory /usr/sadm/mof.

Privilegi per gli sviluppatori di software

Questa funzione è stata introdotta nel programma pilota Software Express. Questa funzione è inclusa in Solaris 10 3/05.

I processi non richiedono più di essere eseguiti come utente root per usufruire delle capacità di superutente. Le capacità di superutente possono essere suddivise dagli amministratori di sistema come autorizzazioni legate ai singoli processi. Queste autorizzazioni sui processi vengono implementate tramite i privilegi. I privilegi consentono agli sviluppatori di limitare l'accesso ad alcune operazione e di limitare il periodo di tempo durante il quale i privilegi sono effettivi. L'utilizzo dei privilegi può ridurre i potenziali danni che potevano in precedenza derivare dalla violazione di un programma in possesso dei privilegi di root. Per compatibilità, i programmi non modificati che vengono eseguiti come utente root continuano a disporre di tutti i privilegi.

Per informazioni generali sui privilegi, vedere Gestione delle autorizzazioni dei processi. Per informazioni sull'impostazione e sulla rilevazione dei privilegi, vedere le pagine man setppriv(2) e getppriv(2). Per maggiori informazioni sull'amministrazione dei privilegi, vedere le pagine man priv_str_to_set(3C) e priv_addset(3C).

Per maggiori informazioni, vedere il manuale Solaris Security for Developers Guide.

Framework crittografico di Solaris per gli sviluppatori

Questa funzione è stata introdotta nel programma pilota Software Express. Questa funzione è inclusa in Solaris 10 3/05.

Il framework crittografico di Solaris fornisce servizi di crittografia alle applicazioni. Le applicazioni possono accedere al framework tramite la libreria libpkcs11(3LIB) e a livello più elevato.

Il framework crittografico di Solaris fornisce le seguenti funzioni per gli sviluppatori di applicazioni che utilizzano la cifratura:

Vedere anche le seguenti pagine man: libpkcs11(3LIB), pkcs11_softtoken(5) e pkcs11_kernel(5). Vedere anche Framework crittografico di Solaris per gli amministratori di sistema.

I fornitori di strumenti per l'accelerazione della crittografia software o hardware interessati a fornire plugin per il framework crittografico di Solaris sono invitati a contattare Sun Microsystems per maggiori dettagli.

SPARC: Modifiche ai pacchetti a 64 bit per gli sviluppatori di software

Questa funzione è stata introdotta nel programma pilota Software Express. Questa funzione è inclusa in Solaris 10 3/05.

La struttura dei pacchetti di Solaris 10 è stata semplificata e gran parte dei componenti a 32 e a 64 bit vengono inclusi in un singolo pacchetto. Vedere SPARC: Modifiche ai pacchetti a 64 bit.

Pseudomeccanismo SPNEGO per le applicazioni GSS-API

Questa funzione è stata introdotta nel programma pilota Software Express. Questa funzione è inclusa in Solaris 10 3/05.

Questa versione di Solaris 10 include un nuovo “pseudomeccanismo” GSS-API per la negoziazione della sicurezza GSS-API basato sul protocollo SPNEGO (IETF RFC 2478). SPNEGO (Simple and Protected GSS-API Negotiation) è utile in particolare per le applicazioni che si basano sulle implementazioni GSS-API che supportano più meccanismi di sicurezza. SPNEGO può essere applicato quando due applicazioni utilizzano GSS-API per scambiarsi dati e non sono a conoscenza dei meccanismi supportati dall'altra applicazione.

SPNEGO è un meccanismo di pseudosicurezza rappresentato dal seguente identificatore di oggetto:


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

SPNEGO consente ai nodi GSS-API di determinare nella banda quando le loro credenziali condividono lo stesso meccanismo di sicurezza GSS-API. Se ciò avviene, i due nodi possono selezionare un meccanismo comune per instaurare il contesto di sicurezza.

Per maggiori informazioni, vedere le pagine man mech(4) e the mech_spnego(5). Vedere anche il manuale Solaris Security for Developers Guide.

Gruppi di località

Questa funzione è stata introdotta nel programma pilota Software Express e nella versione Solaris 9 12/03. Questa funzione è inclusa in Solaris 10 3/05.

La Programming Interfaces Guide contiene ora un capitolo che spiega le interfacce che interagiscono con i gruppi di località (lgroups). Queste interfacce possono essere utilizzate per consentire a un'applicazione di allocare in modo efficiente le risorse della CPU e della memoria. Tale capacità produce un miglioramento delle prestazioni su alcuni sistemi.

Stack dei thread in pmap

Questa funzione è stata introdotta nel programma pilota Software Express. Questa funzione è inclusa in Solaris 10 3/05.

Il programma pmap etichetta ora gli stack dei thread in modo da facilitare la loro identificazione.

Per maggiori informazioni, vedere la pagina man pmap(1).

Nuovo flag DOOR_REFUSE_DESC

Questa funzione è stata introdotta nel programma pilota Software Express. Questa funzione è inclusa in Solaris 10 3/05.

Un nuovo flag, DOOR_REFUSE_DESC, è stato aggiunto alla funzione door_create. () Questo nuovo flag semplifica la scrittura dei server delle porte che non accettano descrittori degli argomenti.

Per maggiori informazioni, vedere la pagina man door_create(3DOOR).

API Stack Check

Questa funzione è stata introdotta nel programma pilota Software Express e nella versione Solaris 9 4/03. Questa funzione è inclusa in Solaris 10 3/05.

Le API Stack Check permettono di interagire in modo avanzato con il supporto dei compilatori dotati di funzioni di controllo degli stack disponibili in Sun ONE Studio. Queste API sono utili nelle applicazioni che vengono compilate con il controllo degli stack abilitato e che gestiscono direttamente i propri stack o cercano di rilevarne gli overflow.

Gli sviluppatori che amministrano direttamente la propria libreria di thread devono usare l'interfaccia setustack per consentire ai consumatori della libreria di eseguire le compilazioni con il controllo degli stack abilitato.

Vedere le pagine man stack_getbounds(3C), stack_setbounds(3C) e stack_inbounds(3C).

Funzione crypt() avanzata per sviluppatori di software

Questa funzione è stata introdotta nel programma pilota Software Express e nella versione Solaris 9 12/02. Questa funzione è inclusa in Solaris 10 3/05.

Le versioni Solaris Express includono nuove estensioni della funzione crypt() e introducono la funzione crypt_gensalt. () Queste modifiche consentono agli amministratori di cambiare l'algoritmo usato per oscurare le password di login UNIX degli utenti.

Sono inclusi moduli per MD5 e Blowfish. I moduli MD5 si trovano in crypt_sunmd5 e crypt_bsdmd5. Il modulo Blowfish si trova in crypt_bsdbf.

Gli sviluppatori possono creare nuovi moduli per algoritmi di oscuramento delle password alternativi. Per lo sviluppo delle applicazioni, è necessario usare la funzione crypt_gensalt() anziché generare manualmente la stringa salt da passare alla funzione crypt().

I moduli per altri algoritmi sono specificati nel file crypt.conf(4) Il campo module_path specifica il percorso dell'oggetto della libreria condivisa che implementa le due funzioni richieste:

Per maggiori informazioni, vedere le pagine man crypt(3C) e policy.conf(4).

Nuovi flag per la funzione madvise()

Questa funzione è stata introdotta nel programma pilota Software Express e nella versione Solaris 9 12/02. Questa funzione è inclusa in Solaris 10 3/05.

La funzione madvise() permette al kernel di ottimizzare l'accesso a un'area di memoria definita dall'utente. Questa versione di Solaris include tre nuovi flag per la funzione madvise():

Per maggiori informazioni sulla funzione madvise(), vedere la pagina man madvise(3C).

Allocazione della memoria con libumem

Questa funzione è stata introdotta nel programma pilota Software Express e nella versione Solaris 9 4/03. Questa funzione è inclusa in Solaris 10 3/05.

La libreria libumem consente un'allocazione veloce e scalabile della memoria per le applicazioni a livello utente. Le funzioni di libumem permettono di eseguire il debugging delle perdite di memoria e di altre anomalie legate all'uso della memoria.

Il suo utilizzo è analogo a quello di un normale allocatore di ABI (Application Binary Interface), come ad esempio malloc. () Le applicazioni in modalità utente richiedono un numero arbitrario di byte di memoria. Restituiscono quindi un puntatore che viene caricato con l'indirizzo della memoria allocata.

Per maggiori informazioni, vedere la pagina man libumem(3LIB).

Interfacce per i terminali di smart card

Questa funzione è stata introdotta nel programma pilota Software Express e nella versione Solaris 9 8/03. Questa funzione è inclusa in Solaris 10 3/05.

Le interfacce per smart card di Solaris rappresentano un insieme di interfacce pubbliche per i terminali di smart card. I produttori di terminali per smart card possono implementare queste interfacce in una libreria condivisa a livello utente per offrire il supporto dei loro dispositivi in Solaris. Le interfacce per terminali di smart card di Solaris sono basate su quelle disponibili nel framework Smartcard di Linux. È possibile eseguire il porting delle librerie di supporto da Linux a Solaris senza particolari difficoltà. Per maggiori informazioni sulle smart card, vedere il manuale Solaris Smartcard Administration Guide.

API di middleware per smart card

Questa funzione è stata introdotta nel programma pilota Software Express e nella versione Solaris 9 9/02. Questa funzione è inclusa in Solaris 10 3/05.

Il framework Solaris Smartcard include ora le API di middleware a basso livello. Queste API permettono lo scambio di dati con una smart card attraverso l'apposito lettore. Le API possono essere usate nelle piattaforme dei sistemi Sun BladeTM e Sun Ray. TM Le applicazioni scritte in linguaggio C o Java possono usare queste interfacce.

Per maggiori informazioni, vedere la pagina man libsmartcard(3LIB) e la documentazione JavaDocs in /usr/share/javadoc/smartcard. Vedere anche il manuale Solaris Smartcard Administration Guide.