Tilläggsinformation för Solaris 10

Allmän information

I det här avsnittet finns allmän information, t.ex. beteendeförändringar i OS för Solaris 10.

SUSv3 (Single UNIX Specification, version 3) innehåller ändringar

SUSv3 (Single UNIX Specification, version 3) innehåller uppdateringar för följande operativsystemsgränssnitt för POSIX:

Uppdateringarna innehåller följande ändringar:

Variabeln ENV i Korn-skalet

Miljövariabeln ENV utökas inte längre i ett Korn-skal som inte är interaktivt. Den här ändringen gäller både /bin/ksh och /usr/xpg4/bin/sh.

Kompilerare och SUSv3-program

Program som följer SUSv3 och andra standarder bör byggas med rätt funktionstestmakron, kompilerare och alternativ. Mer information finns i direkthjälpen för standards(5).

Kommandot file

När kommandot file används tillsammans med alternativet -m, utför kommandot signerade jämförelser på användardefinierade magic-filer. I x86-miljön växlar dessutom inte kommandot ordningen för multibyte-heltal till fallande signifikans (SPARC) innan magic-värdena jämförs. Mer information finns i direkthjälpen för file(1) och magic(4).

Utskriftsfunktioner

snprintf() och vsnprintf() returnerar nu det antal byte som skulle formaterats vid indatavärdet n=0. Mer information finns i direkthjälpen för snprintf(3C) och vsnprintf(3C).

Textredigeraren

Redigeraren söker efter ytterligare villkor innan den läser .exrc-filerna i $HOME eller i den aktuella katalogen vid starten. Mer information finns i direkthjälpen förex(1) och vi(1).

64-bit SPARC: Tidsfunktioner

Om time_t är för stor för att representeras i en tm-struktur, returneras en nollpekare av följande funktioner och errno anges till EOVERFLOW:

Mer information finns i direkthjälpen för gmtime(3C), gmtime_r(3C), localtime(3C) och localtime_r(3C).

Avslutande snedstreck

SUSv3 tillåter bara ett avslutande snedstreck (/) i sökvägsnamn om sökvägen anger en befintlig katalog eller en katalog som ska skapas.

Verktyg i /usr/xpg6/bin och /usr/xpg4/bin

Verktygen i /usr/xpg6/bin och /usr/xpg4/bin uppvisar beteenden som följer SUSv3- eller XPG4-standarden och som står i konflikt med standardbeteendet för Solaris. PATH måste vara ordentligt konfigurerad för att en användare ska kunna använda kommandoradsmiljön som följer SUSv3-standarden. Mer information finns i direkthjälpen för det specifika verktyget.

Stödet för TCP-inkapslare aktiveras under sendmail

Verktyget sendmail har lagts till i listan över tjänster som stöder TCP-inkapslare. Den kapacitet som har tillkommit i och med verktyget kan orsaka att sendmail nekar anslutningar i Solaris 10-system som tidigare konfigurerats med mycket restriktiva tjänster. Använd bakgrundsprogramnamnet sendmail om du vill aktivera användningen av TCP-inkapslare. Mer information om stöd för TCP-inkapslare finns i sendmail version 8.12 använder TCP-wrappers i Nyheter i Solaris 10. Information om hur du konfigurerar TCP-inkapslare finns i direkthjälpen för tcpd(1M) och hosts_access(4) i paketet SUNWtcpd.

x86: Byta till Solaris fdisk-identifierare

I Solaris 10-versionen har Solaris fdisk-identifieraren satts till 0xbf för att underlätta konfigurationen av miljöer med flera startsystem som inkluderar operativsystemet Linux. I tidigare Solaris-versioner sattes fdisk-identifieraren till 0x82, samma identifierare som skivdelen för minnesväxling för Linux. Ändringen av identifierare gör att du kan installera OS för Solaris 10 och operativsystemet Linux utan att du först måste göra ändringar i skivdelen för minnesväxling för Linux eller installera om Linux.

Operativsystemet Solaris känner även i fortsättningen igen och stöder Solaris fdisk med 0x82-identifieraren. Använd kommandot fdisk om du vill växla mellan identifierarna 0x82 och 0xbf. Om du använder Solaris Live Upgrade och måste använda 0x82-identifieraren kan du byta 0xbf-identifieraren till 0x82 med kommandot luactivate.

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

x86: Minnestilldelningsbegränsningar för program på x86-system

Solaris-program tilldelar minne med hjälp av funktioner som exempelvis malloc(), brk() eller mmap(). Hur mycket minne som kan tilldelas av ett program begränsas av storleken på användarens virtuella adressutrymme. Programtext, -stack, -data och -bibliotek som finns i det virtuella adressutrymmet kan minska storleken för den maximala minnestilldelningen ytterligare.

32-bitars datamiljö

I en 32-bitars datamiljö delas det virtuella adressutrymmet mellan användaren och kärnan. Det innebär att storleken på användarens virtuella adressutrymme är 4 GB minus storleken på kärnans virtuella adressutrymme. Hur storleken för det virtuella adressutrymmet konfigureras beror på mängden fysiskt minne. I takt med att det fysiska minnet ökar, minskar storleken på användarens virtuella adressutrymme. För system med 8 GB minne innebär detta att användarens virtuella adressutrymme är ungefär 3 GB.

Det finns två alternativ om minnestilldelningen är otillräcklig för ett program:

64-bitars datamiljö

I en 64-bitars datamiljö är det virtuella adressutrymmet för 32-bitarsprogram helt och hållet till för användaren. Därför kan ett 32-bitarsprogram tilldela 4 GB minus det användaradressutrymme som krävs för text, stack och bibliotek.

På vissa tidiga 64-bitars AMD-processorer kan minnestilldelningen minskas ytterligare med 1 GB. Gå igenom följande steg för att avgöra om din processor påverkas:

  1. Kör kommandot pmap $$ från ett 32-bitarsskal.

  2. Kontrollera om adresser som är större eller lika med 0xC0000000 listas på processöversikten. Om det inte finns några sådana adresser begränsar operativsystemet Solaris 32-bitarsprogram till de 3 GB som är längst ned i det virtuella adressutrymmet på 4 GB.

Ett 64-bitarsprogram kan tilldela 250 TB minne beroende på hur mycket programmet redan använder.

x86: Solaris stöder NX-bit (no execute)

Solaris 10 på x86 stöder NX-bit (no execute) i 32- och 64-bitarslägen. Med NX-bit aktiveras fullständig implementering av de skydd som tillämpas när PROT_EXEC inte används i olika minnessystemanrop, exempelvis funktionen mmap(). Tidigare angavs PROT_EXEC för allt mappat minne på x86-system. I och med att Solaris stöder NX-bit har virusskyddet förbättrats.

På NX-kompatibel maskinvara använder operativsystemet Solaris NX-bit som standard när inte PROT_EXEC specificeras. Stacksegment använder däremot PROT_EXEC som standard, inte NX-bit. Du kan ändra standardinställningen för stacksegment genom att göra något av följande:

Systemadministratören kan inaktivera all användning av NX-bit genom att använda eeprom-kommandot för att ange enforce-prot-exec till “off”. Den här variabeln medföljer som en övergångslösning för system med gamla program som saknar PROT_EXEC.