Solaris 10 릴리스 노트

일반 정보

본 절에서는 Solaris 10 OS의 동작 변경과 같은 일반적인 정보를 제공합니다.

SUSv3(Single UNIX Specification 버전 3) 변경 사항

SUSv3(Single UNIX Specification 버전 3)에서는 다음 POSIX 운영 체제 인터페이스에 대한 업데이트를 제공합니다.

업데이트에는 다음 변경 사항이 포함됩니다.

Korn 쉘의 ENV 변수

환경 변수 ENV는 비대화식 Korn 쉘에서 더 이상 확장되지 않습니다. 이 변경 사항은 /bin/ksh/usr/xpg4/bin/sh 모두에 적용됩니다.

컴파일러 및 SUSv3 응용 프로그램

SUSv3 및 기타 표준을 준수하는 응용 프로그램은 올바른 기능 테스트 매크로, 컴파일러 및 옵션을 사용하여 구축해야 합니다. standards(5) 설명서 페이지를 참조하십시오.

file 명령

-m 옵션과 함께 사용할 경우 file 명령으로 사용자 정의 매직 파일에 대해 부호있는 비교를 수행합니다. 또한 이제 이 명령으로 x86 환경에서 매직 값을 비교하기 전에 멀티바이트 정수를 빅 엔디언(SPARC) 순서로 전환하지 않습니다. file(1)magic(4) 설명서 페이지를 참조하십시오.

인쇄 함수

현재 snprintf()vsnprintf()는 입력 값이 n=0일 때 포맷되는 바이트 수를 반환합니다. snprintf(3C) 및 vsnprintf(3C) 매뉴얼 페이지를 참조하십시오.

텍스트 편집기

편집기는 시작 시 $HOME 또는 현재 디렉토리에서 .exrc 파일을 읽기 전에 추가 조건이 있는지 확인합니다. ex(1)vi(1) 설명서 페이지를 참조하십시오.

64-bit SPARC: 시간 함수

입력 time_t가 tm struct로 나타내기에 너무 크면 다음 함수는 널 포인터를 반환하고 errnoEOVERFLOW로 설정합니다.

gmtime(3C), gmtime_r(3C), localtime(3C)localtime_r(3C) 설명서 페이지를 참조하십시오.

후행 슬래시

SUSv3에서는 경로에 기존 디렉토리나 만들려는 디렉토리를 지정할 때만 경로 이름 뒤에 슬래시 문자(/)를 붙일 수 있습니다.

/usr/xpg6/bin/usr/xpg4/bin의 유틸리티

/usr/xpg6/bin/usr/xpg4/bin의 유틸리티에는 기본 Solaris 동작과 충돌하는 SUSv3 준수 동작이나 XPG4 준수 동작이 있습니다. 사용자가 SUSv3 준수 명령줄 환경을 사용하려면 PATH가 적합하게 구성되어야 합니다. 자세한 내용은 해당 유틸리티의 매뉴얼 페이지를 참조하십시오.

sendmail에서 TCP 래퍼 지원 사용

sendmail 유틸리티가 TCP 래퍼를 지원하는 서비스 목록에 추가되었습니다. 이 유틸리티의 추가 기능 때문에 sendmail은 Solaris 10 시스템에서 이전에 매우 제한적인 서비스로 구성되었던 연결을 거부할 수도 있습니다. TCP 래퍼 사용을 가능하게 하려면 데몬 이름 sendmail을 사용합니다. TCP 래퍼 지원에 대한 자세한 내용은 Solaris 10 새로운 기능sendmail 버전 8.12가 TCP 래퍼 사용를 참조하십시오. TCP 래퍼 구성에 대한 자세한 내용은 SUNWtcpd에 패키지화된 tcpd(1M) 및 hosts_access(4) 매뉴얼 페이지를 참조하십시오.

x86: Solaris fdisk 식별자 변경 사항

Solaris 10 릴리스에서는 Linux 운영 체제를 포함하여 멀티부트 환경 구성이 가능하도록 Solaris fdisk 식별자가 0xbf로 설정되어 있습니다. 이전 Solaris 릴리스에서는 Solaris fdisk 식별자가 Linux 교체 분할 영역과 동일한 식별자인 0x82로 설정되었습니다. 식별자가 변경되어 Linux 교체 분할 영역을 수정하거나 Linux OS를 재설치하지 않고도 Solaris 10 OS 및 Linux 운영 체제를 설치할 수 있습니다.

Solaris OS는 0x82 식별자를 가진 Solaris fdisk를 계속 인식하고 지원합니다. fdisk 명령을 사용하여 0x82 식별자와 0xbf 식별자를 상호 전환할 수 있습니다. Solaris Live Upgrade를 사용하는 중에 0x82 식별자를 사용해야 하면 luactivate 명령을 사용하여 0xbf 식별자를 0x82 식별자로 전환할 수 있습니다.

자세한 내용은 fdisk(1M) 설명서 페이지를 참조하십시오.

x86: x86 시스템의 응용 프로그램 메모리 할당 제한

Solaris 응용 프로그램에서는 malloc (), brk() 또는 mmap()와 같은 함수를 사용하여 메모리를 할당합니다. 어떤 응용 프로그램에서 할당 가능한 최대 메모리 양은 사용자의 가상 주소 공간 크기로 제한됩니다. 사용자의 가상 주소 공간에 포함된 프로그램 텍스트, 스택, 데이터 및 라이브러리 때문에 최대 메모리 할당 크기가 더 줄어들 수 있습니다.

32비트 컴퓨팅 환경

32비트 컴퓨팅 환경에서 32비트 가상 주소 공간은 사용자와 커널이 공유합니다. 따라서 사용자 가상 주소 공간 크기는 4GB에서 커널 가상 주소 공간의 크기를 뺀 것입니다. 커널 가상 주소 공간 크기는 물리적 메모리 크기에 따라 구성됩니다. 물리적 메모리 크기가 증가하면 사용자 주소 공간 크기가 줄어듭니다. 시스템의 메모리가 8GB인 경우 사용자 주소 공간의 크기는 약 3GB입니다.

메모리 할당 제한이 응용 프로그램에 대해 충분하지 않은 경우 두 가지 옵션이 있습니다.

64비트 컴퓨팅 환경

64비트 컴퓨팅 환경에서 32비트 응용 프로그램의 가상 주소 공간은 완전히 사용자에게 할당된 공간입니다. 따라서 32비트 응용 프로그램은 전체 4GB에서 텍스트, 스택 및 라이브러리에 필요한 사용자 주소 공간을 뺀 부분을 할당할 수 있습니다.

일부 초기 64비트 AMD 프로세서에서는 메모리 할당 제한이 1GB 더 감소할 수 있습니다. 사용 중인 프로세서가 여기에 해당되는지 확인하려면 다음 단계를 수행합니다.

  1. 32비트 쉘에서 pmap $$ 명령을 실행합니다.

  2. 프로세스 맵에 0xC0000000보다 크거나 같은 주소가 나열되는지 확인합니다. 이런 주소가 없으면 Solaris OS는 32비트 응용 프로그램을 4GB 가상 주소 범위 중 가장 낮은 3GB로 제한한 것입니다.

64비트 응용 프로그램의 경우 응용 프로그램에서 이미 사용 중인 메모리 양에 따라 250TB의 메모리를 할당할 수 있습니다.

x86: Solaris의 no execute 비트 지원

x86 Solaris 10는 32비트 및 64비트 모드에서 no execute(NX)비트를 지원합니다. NX비트를 사용하면 다양한 메모리 시스템 호출에서 mmap() 함수와 같은 PROT_EXEC를 사용하지 않게 되어 보호 기능을 완전히 구현할 수 있습니다. 과거 x86에서는 매핑된 모든 메모리에 PROT_EXEC가 암시적으로 설정되었습니다. Solaris에서 NX비트가 지원되어 바이러스 보호가 향상되었습니다.

NX 지원 하드웨어에서 Solaris OS는 PROT_EXEC가 지정되지 않은 경우 기본적으로 NX비트를 사용합니다. 그러나 스택 세그먼트에서는 기본적으로 NX비트가 아닌 PROT_EXEC를 사용합니다. 스택 세그먼트의 기본 설정은 다음 중 한 가지를 수행하여 변경할 수 있습니다.

시스템 관리자는 eeprom 명령을 통해 enforce-prot-exec를 “off”로 설정하여 NX 비트 사용을 비활성화할 수 있습니다. 이 변수는 PROT_EXEC가 없는 레거시 응용 프로그램이 설치된 시스템을 위한 전이 해결 방법으로 제공되었습니다.