Nyheter i Solaris 10

Förbättrade utvecklingsverktyg

Det här avsnittet beskriver alla utvecklingsverktyg i Solaris 10 3/05 som är nya eller har förbättrats sedan Solaris 9 först distribuerades i maj 2002. Det dynamiska spårningsverktyget DTrace är en särskilt viktig funktion.

Utvecklare bör också granska de nya funktionerna i avsnitten om säkerhet och systemadministration:

Det dynamiska spårningsverktyget

Den här funktionen är ny för Solaris Express 11/03.

Solaris DTrace är ett omfattande och dynamisk spårningsverktyg som innebär att Solaris-användare, administratörer och utvecklare får en ny observationsnivå för kärn- och användarprocesser. Mer information finns i Det dynamiska spårningsverktyget DTrace.

GCC version 3.4.3

Den här funktionen är ny för Solaris 10 3/05.

GCC är en open source-kompilator för ”C” från GNU Software Foundation. Bland byggverktygen finns gmake, bison, binutils, gnuM4 och flex.

Perl version 5.8.4

Den här funktionen är en nyhet i Solaris Express 8/04.

Operativsystemet Solaris 10 innehåller en ny standardversion av Perl (Practical Extraction and Report Language). Den nya standardversionen av Perl är version 5.8.4. Efter att du uppgraderat till Solaris 10 måste du installera om alla moduler som du installerat manuellt. Mer information om hur du installerar moduler finns i ”Perl 5” i System Administration Guide: Network Services.

Mer information om Perl finns i direkthjälpen för perl(1).

Förbättrat per-tråd-läge

Den här funktionen är en nyhet i Solaris Express 8/04.

Kommandona truss, pstack och pflags har uppdaterats så att användare kan ange enskilda trådar i en process eller kärna. Utvecklare och systemadministratörer kan förstå beteendet hos stora flertrådade program bättre och välja ut specifika trådar för felsökning.

Mer information finns på följande ställen i direkthjälpen:

Förbättringar i stödet för USB-enheter

De här förbättringarna är nya för Solaris Express 5/04. Nya programmeringsgränssnitt lades till i Solaris Express 8/04.

Alla aktuella Edgeport USB-to-Serial-enheter fungerar med den här Solaris-versionen. USB 1.1-ljud och andra isokrona enheter fungerar bakom USB 2.0-höghastighetshubbar.

Nya programmeringsgränssnitt

De här gränssnitten är nya för Solaris Express 8/04.

USBA 2.0-programmeringsgränssnitt (Universal Serial Bus Architecture) introduceras som en del av operativsystemet Solaris 10. De här gränssnitten är dokumenterade som usb_*-funktioner och -strukturer i direkthjälpsavsnitten 9F och 9S. Se även Writing Device Drivers.

USBA-ramverket kallas nu USBA 2.0. USB-drivrutiner som skrevs för USBA 1.0-gränssnitten i tidigare DDK:er är bara binärt kompatibla med Solaris 10. De här drivrutinerna är inte källkompatibla med Solaris 10.

Förbättringar av ls

Den här funktionen är en nyhet i Solaris Express 8/04.

Med kommandot ls kan du nu visa filtider ned till sekunden eller nanosekunden. Mer information finns i Förbättringar av ls-kommandot.

Nya funktioner för konvertering av strängar

Den här funktionen är ny för Solaris Express 7/04.

Två nya funktioner för konvertering av strängar till långa heltal är nu tillgängliga för utvecklare av kärnmoduler. Funktionerna ddi_strtol() och ddi_strtoul() möjliggör konvertering från strängar till långa heltal respektive osignerade långa heltal. De nya funktionerna ger flexibla indata, DDI-kompatibilitet och förbättrad felidentifiering.

Mer information finns i direkthjälpen för ddi_strtol(9F) och ddi_strtoul(9F).

Java-stöd för kommandot pstack

Den här funktionen är ny för Solaris Express 7/04.

Kommandot pstack har förbättrats så att Java-ramar visas när den senaste Java-versionen används. För varje Java-ram i anropsstacken visas funktion och radnummer, om de är tillgängliga.

Mer information finns i direkthjälpen för pstack(1).

Nya mekanismer för det kryptografiska ramverket för Solaris

Den här funktionen är ny för Solaris Express 6/04.

Det kryptografiska ramverket för Solaris stöder nu följande mekanismer för protokollen SSL (Secure Sockets Layer) och TLS (Transport Layer Security):

Det kryptografiska ramverket för Solaris är en arkitektur som gör att Solaris-program kan använda eller tillhandahålla kryptografiska tjänster. All interaktion med ramverket baseras på PKCS#11 Cryptoki (Cryptographic Token Interface) från RSA Laboratories, forskningsgrenen av RSA Security, Inc.

Mer information finns i ”PKCS #11-funktioner: C_GetMechanismList” i Solaris Security for Developers Guide.

Retail- och Nonretail-alternativ för providers i det kryptografiska ramverket för Solaris

Den här funktionen är ny för Solaris Express 6/04.

Leverantörer av kryptografiska providers som ansluter till det kryptografiska ramverket för Solaris har större flexibilitet när de begär certifikat från Sun Microsystems. Certifikaten stöder nu både retail- och nonretail-export.

Produkter med retail-kryptering är produkter som USA:s regering tillåter export av till alla länder. Retail-produkter kan inte levereras till vissa nationer som USA:s regering anser vara hot mot säkerheten. Produkter med nonretail-kryptering är produkter som USA:s regering bara tillåter för inhemsk användning eller för export till vissa länder som undantagits från förbudet.

Mer information finns i direkthjälpen för elfsign(1) och i Appendix F, ”Packaging and Signing Cryptographic Providers”, i Solaris Security for Developers Guide.

Uppdateringar av länkare och bibliotek

Den här beskrivningen är ny för Software Express pilotprogram och reviderad i Solaris Express 5/04. Uppdateringar av länkare och bibliotek introducerades även i Solaris 9 12/02 och efterföljande versioner. De här uppdateringarna ingår i Solaris 10 3/05.

Operativsystemet Solaris 10 innehåller nya funktioner för redigering av länkare, som t.ex. strängtabellkomprimering, avsnittseliminering utan referens och beroendeidentifiering utan referens. Fullständig information om de senaste funktionsförbättringarna finns i Appendix D, ”Linker and Libraries Updates and New Features”, i Linker and Libraries Guide.

Bland förbättringarna som introducerades i Solaris Express 5/04 finns följande:

Bland förbättringarna som introducerades i det föregående pilotprogrammet Software Express finns följande:

Skiktade drivrutinsgränssnitt

Den här funktionen är ny för Solaris Express 3/04.

Operativsystemet Solaris 10 har förbättrats för att möjliggöra för kärnmoduler att utföra enhetsåtkomstoperationer, exempelvis öppna, läsa och skriva till en enhet. Det här systemet gör även att du kan bestämma vilka enheter som är tillgängliga via en ny uppsättning av skiktade drivrutinsgränssnitt (Layered Driver Interfaces), kallade ”LDI”.

Drivrutinutvecklare kan använda LDI-gränssnitt för att komma åt tecken-, block- eller STREAMS-enheter direkt från Solaris-kärnan. Programutvecklare kan använda LDI-gränssnitt för att visa information om enhetsskikten. Den här nya arkitekturen ger administratörer möjlighet att observera enhetsanvändningen från kärnans insida. Mer information finns i direkthjälpen för ldi_*(9F) och di_*(3DEVINFO).

Verktygen prtconf och fuser har förbättrats med följande funktioner:

De skiktade drivrutinsgränssnitten börjar med prefixet ldi_. De här gränssnitten används för enhetsåtkomst och för att hämta enhetsinformation på kärnnivå. Det finns direkthjälpsavsnitt för gränssnitten i sektion 9F. På användarnivå finns en uppsättning med gränssnitt för enhetsinformationsbibliotek som hämtar enhetsanvändningsinformation för kärnan i program. Det finns direkthjälpsavsnitt för LDI libdevinfo-gränssnitten i sektion 3DEVINFO. Dessutom finns information om hur du visar enhetsanvändningsinformation för kärnan som tillhandahålls av LDI-arkitekturen. Den här informationen finns i direkthjälpen för prtconf(1M) och fuser(1M).

Mer information finns i kapitel 13, ”Layered Driver Interface (LDI)”, i Writing Device Drivers.

Ändringar i funktionen makecontext()

Den här funktionen är ny för Solaris Express 3/04 och för Solaris 9 9/04.

Semantiken för medlemmen uc_stack i strukturen ucontext_t är ändrad vad gäller inmatningar till biblioteksfunktionen makecontext(3C) libc. Binär kompatibilitet bevaras mellan tidigare versioner av Solaris och operativsystemet Solaris 10.

Program som använder det här gränssnittet måste uppdateras innan de kompileras om för Solaris 10. Mer information finns i direkthjälpen för makecontext(3C).

SUSv3 (Single UNIX Specification, version 3)

Den här funktionen är ny för Solaris Express 2/04.

Den här Solaris-versionen följer SUSv3 (Single UNIX Specification, version 3). SUSv3 innehåller uppdateringar för POSIX.1-1990, POSIX.1b-1993, POSIX.1c-1996, POSIX.2-1992 och POSIX.2a-1992.

Effekterna av SUSv3-uppdateringarna för Solaris-användare beskrivs detaljerat i ”Single UNIX Specification, version 3 introducerar ändringar” i Tilläggsinformation för Solaris 10.

Avancerat API

Den här funktionen är ny för Solaris Express 1/04.

IPv6 Advanced Sockets API uppdaterar Solaris Sockets API så att kraven i den aktuella versionen av RFC 2292 uppfylls. Se IPv6 Advanced Sockets API.

SASL (Simple Authentication and Security Layer for Developers)

Den här funktionen är ny för Solaris Express 12/03.

Med SASL (Simple Authentication and Security Layer) får programutvecklare och delade bibliotek gränssnitt för autentisering, dataintegritetskontroll och kryptering till anslutningsbaserade protokoll.

SASL består av följande objekt:

Tack vare SASL kan utvecklaren skriva till ett generiskt API utan att behöva bekymra sig om detaljer i säkerhetsmekanismerna. När servrar och klienter har utvecklats för att använda SASL på ett lämpligt sätt kan de använda nya säkerhetsmekanismer, insticksprogram för standardisering av namn och användare samt auxprop-insticksprogram utan att omkompilering behövs.

SASL beskrivs i RFC 2222. SASL är särskilt lämpligt för program som använder följande protokoll som stöder SASL:

Mer information om SASL finns i direkthjälpen för libsasl(3LIB). Se även Solaris Security for Developers Guide.

Händelseportar

Den här funktionen är ny för Solaris Express 12/03.

Händelseportar är ett ramverk som tillåter att program genererar och samlar händelser från osammanhängande källor. Ramverket kan hämta händelser från flera objekt samtidigt utan att övergripande prestanda nedgraderas.

Mer information finns i direkthjälpen för port_create(3C) och signal.h(3HEAD).

Innehållet i minnesavbildningsfiler

Solaris Express 12/03 introducerade förbättringar av verktygen coreadm, gcore och mdb. Se Förbättringar av innehållet i minnesavbildningsfiler.

Atomära operationer

Den här funktionen är ny i Solaris Express 10/03 och har förbättrats i Solaris 10 1/06.

Funktionen Atomära operationer tillhandahåller API:er i libc som utför enkla atomära operationer snabbt. Med den här nya funktionen kan program uppdatera minne atomärt utan att använda andra synkroniseringsprimitiver eller plattformsspecifika assemblerspråk. Bland de tillgängliga operationerna finns addition, den booleska funktionen ”and” och den booleska funktionen ”or”.

Mer information finns i direkthjälpen för atomic_ops(3C).

Ändringar i Solaris WBEM-filen

Den här funktionsbeskrivningen uppdaterades i Solaris Express 9/03.

Det har skett flera ändringar i MOF-filerna (Managed Object Format) i katalogen /usr/sadm/mof.

Behörigheter för programvaruutvecklare

Den här funktionen är ny för Software Express pilotprogram. Den här funktionen ingår i Solaris 10 3/05.

Processer behöver inte längre köras som root för att ha superanvändaregenskaper. I stället kan superanvändaregenskaper delas ut av systemadministratörer som en diskret processrättighet. De här processrättigheterna implementeras via behörigheter. Utvecklare kan använda behörigheter för att begränsa åtkomsten till begränsade operationer och begränsa hur länge behörigheterna gäller. Genom att använda behörigheter kan du reducera de negativa effekterna som kan orsakas av att behöriga program tas över. Av kompatibilitetsskäl har oförändrade program som körs som root fortfarande alla behörigheter.

Allmän information om behörigheter finns i Hantering av processrättigheter. Information om hur du anger och beviljas behörigheter finns i direkthjälpen för setppriv(2) och getppriv(2). Mer information om hur du ändrar behörigheter finns i direkthjälpen för priv_str_to_set(3C) och priv_addset(3C).

Ytterligare information finns i Solaris Security for Developers Guide.

Det kryptografiska ramverket för Solaris för utvecklare

Den här funktionen är ny för Software Express pilotprogram. Den här funktionen ingår i Solaris 10 3/05.

Det kryptografiska ramverket för Solaris innehåller kryptografiska tjänster för program. Program kan använda ramverket via libpkcs11(3LIB) och på högre nivåer.

Det kryptografiska ramverket för Solaris innehåller följande funktioner för utvecklare av program som använder kryptering:

Se följande direkthjälpsavsnitt: libpkcs11(3LIB), pkcs11_softtoken(5) och pkcs11_kernel(5). Se även Det kryptografiska ramverket för Solaris för systemadministratörer.

Leverantörer av program- eller maskinvarukryptografiska acceleratorer som är intresserade av att förse det kryptografiska ramverket för Solaris med insticksprogram kan kontakta Sun Microsystems för mer information.

SPARC: Ändringar i 64-bitarspaket för programvaruutvecklare

Den här funktionen är ny för Software Express pilotprogram. Den här funktionen ingår i Solaris 10 3/05.

I operativsystemet Solaris har paketeringen förenklats i och med att de flesta 32-bitars- och 64-bitars komponenter levereras i ett enda paket. Se SPARC: Förändringar av 64-bitarspaket.

Pseudomekanismen SPNEGO för GSS-API-program

Den här funktionen är ny för Software Express pilotprogram. Den här funktionen ingår i Solaris 10 3/05.

Operativsystemet Solaris 10 innehåller en ny GSS-API-pseudomekanism för förfrågningar om GSS-API-säkerhet som är baserad på SPNEGO-protokollet (IETF RFC 2478). SPNEGO (Simple and Protected GSS-API Negotiation) är framför allt användbart för program som baseras på GSS-API-implementeringar som stöder flera säkerhetsmekanismer. SPNEGO kan användas när två program utbyter data med hjälp av GSS-API och inte känner till vilka mekanismer som stöds av det andra programmet.

SPNEGO är en pseudo-säkerhetsmekanism som representeras av följande objektidentifierare:


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

SPNEGO gör att GSS-API-användare kan bestämma om deras kreditiv delar samma GSS-API-säkerhetsmekanismer. Om mekanismerna delas kan användarna upprätta ett säkerhetssammanhang genom att välja en vanlig mekanism.

Mer information finns i direkthjälpen för mech(4) och mech_spnego(5). Se även Solaris Security for Developers Guide.

Lokalitetsgrupper (Locality Groups)

Den här funktionen är ny för Software Express pilotprogram och för Solaris 9 12/03. Den här funktionen ingår i Solaris 10 3/05.

Programming Interfaces Guide innehåller nu ett kapitel som förklarar de gränssnitt som interagerar med lokalitetsgrupper (locality groups, lgroups). De här gränssnitten kan användas för att hjälpa program att effektivt tilldela processors- och minnesresurser. Detta leder till förbättrade prestanda på en del system.

Trådstackar i pmap

Den här funktionen är ny för Software Express pilotprogram. Den här funktionen ingår i Solaris 10 3/05.

Verktyget pmap etiketterar nu trådarnas stackar så att de lättare kan identifieras.

Mer information finns i direkthjälpen för pmap(1).

Ny DOOR_REFUSE_DESC-flagga

Den här funktionen är ny för Software Express pilotprogram. Den här funktionen ingår i Solaris 10 3/05.

En ny flagga, DOOR_REFUSE_DESC, har lagts till i funktionen door_create(). Den här nya flaggan förenklar skrivning till door-servrar som inte accepterar argumentbeskrivare.

Mer information finns i direkthjälpen för door_create(3DOOR).

API:er för stackkontroll

Den här funktionen är ny för Software Express pilotprogram och för Solaris 9 4/03. Den här funktionen ingår i Solaris 10 3/05.

API:er för stackkontroll möjliggör avancerad användning av stödet för stackkontrollkompilatorn i Sun ONE Studio. De här API:erna bör användas i program som är kompilerade med stackkontroll aktiverad och som antingen hanterar sina egna stackar eller som försöker upptäcka eget stackspill.

Utvecklare som har egna trådbibliotek måste använda gränssnittet setustack för att användare av deras bibliotek ska kunna kompilera med stackkontroll aktiverad.

Mer information finns i direkthjälpen för stack_getbounds(3C), stack_setbounds(3C) och stack_inbounds(3C).

Förbättrad crypt()-funktion för programvaruutvecklare

Den här funktionen är ny för Software Express pilotprogram och för Solaris 9 12/02. Den här funktionen ingår i Solaris 10 3/05.

Software Express-versionerna innehåller nya tillägg till crypt()-funktionen och introducerar funktionen crypt_gensalt(). Med dessa förbättringar kan administratörer ändra den algoritm som används för att dölja användares lösenord vid inloggning till UNIX.

Moduler ingår för MD5 och Blowfish. MD5-modulerna finns i crypt_sunmd5 och crypt_bsdmd5. Blowfish-modulen finns i crypt_bsdbf.

Utvecklare kan skapa nya moduler för alternativa lösenordsdöljande algoritmer. Programutvecklare måste använda crypt_gensalt()-funktionen i stället för att manuellt generera saltsträngen som ersättning till crypt()-funktionen.

Moduler för alternativa algoritmer anges i filen crypt.conf(4). Fältet module_path anger sökvägen till det gemensamma bibliotek som implementerar de två nödvändiga funktionerna:

Mer information finns i direkthjälpen för crypt(3C) och policy.conf(4).

Nya flaggor för madvise()-funktionen

Den här funktionen är ny för Software Express pilotprogram och för Solaris 9 12/02. Den här funktionen ingår i Solaris 10 3/05.

Funktionen madvise() gör så att kärnan kan optimera åtkomst till en användardefinierad region av ett minne. Den här Solaris-versionen innehåller tre nya flaggor för madvise()-funktionen:

Mer information om madvise()-funktionen finns i direkthjälpen för madvise(3C).

Minnestilldelning med libumem

Den här funktionen är ny för Software Express pilotprogram och för Solaris 9 4/03. Den här funktionen ingår i Solaris 10 3/05.

libumem är ett minnestilldelarbibliotek i användarläge (ej kärnläge) . libumem har funktioner som gör att du kan felsöka minnesläckor och andra avvikelser som rör minnesanvändning.

Den här funktionen används på samma sätt som en standard-ABI-tilldelare, exempelvis malloc(). Ett program i användarläge begär ett godtyckligt antal byte av minnet. En pekare returneras som är lastad med adressen för det tilldelade minnet.

Mer information finns i direkthjälpen för libumem(3LIB).

Terminalgränssnitt för smartkort

Den här funktionen är ny för Software Express pilotprogram och för Solaris 9 8/03. Den här funktionen ingår i Solaris 10 3/05.

Smartkortsgränssnitten för Solaris är en uppsättning offentliga gränssnitt för smartkortsterminaler. Kortterminaltillverkare kan implementera de här gränssnitten i ett gemensamt bibliotek på användarnivå och på så sätt tillhandahålla enhetsnivåstöd för smartkortsterminaler i Solaris. Uppsättningen av terminalgränssnitt för smartkort i Solaris baseras på de kortterminalgränssnitt som är tillgängliga som en del av ramverket Linux Smartcard. Stödbibliotek för kortterminaler i Linux kan enkelt överflyttas till Solaris-miljön. Mer information om smartkort finns i Solaris Smartcard Administration Guide.

Mellanprograms-API:er för smartkort

Den här funktionen är ny för Software Express pilotprogram och för Solaris 9 9/02. Den här funktionen ingår i Solaris 10 3/05.

I smartkortssystemet i Solaris finns nu också stöd för mellanprograms-API:er på låg nivå. De här API:erna kan användas för att utväxla data med ett smartkort med hjälp av en smartkortsläsare. De här API:erna är tillgängliga för plattformar som Sun BladeTM och Sun RayTM. Program som är skrivna på något av programmeringsspråken Java eller C kan använda dessa gränssnitt.

Mer information finns i direkthjälpen för libsmartcard(3LIB) och JavaDocs på /usr/share/javadoc/smartcard. Se även Solaris Smartcard Administration Guide.