영역은 Solaris 10 운영 체제의 응용 프로그램 및 자원 관리 기능입니다. 이 기능을 사용하면 운영 체제가 격리되고 안전한 가상 운영 체제 환경(영역)으로 응용 프로그램에 나타납니다. 이러한 영역은 중앙 집중화된 특정 수준의 자원 관리에 운영 체제 독립성의 이점을 제공합니다. 따라서 응용 프로그램을 별도의 영역에 설치 및 실행하여 서로 격리시키는 동시에 특정 운영 체제 자원은 중앙 집중적으로 할당 및 관리할 수 있습니다.
여러 영역을 지원하는 운영 체제 관점에서 운영 체제 자원에는 프로세스 관리, 메모리, 네트워크 구성, 파일 시스템, 패키지 레지스트리, 사용자 계정, 공유 라이브러리 및 어떤 경우에는 설치된 응용 프로그램과 같은 자원이 포함됩니다.
다중 영역 환경은 하나의 전역 영역(기본 운영 체제)과 하나 이상의 비전역 영역으로 구성됩니다. 전역 영역에는 전역(영역) 관리자가 비전역 영역 간에 할당할 수 있는 자원이 있습니다. 비전역 영역에서 제공하는 기능은 다음과 같습니다.
보안. 비전역 영역에 분산된 서비스를 실행하면 보안을 위반할 때 발생할 수 있는 손상이 제한됩니다. 한 영역에 있는 소프트웨어의 보안 결함을 교묘하게 이용하는 침입자는 해당 영역으로 제한됩니다. 비전역 영역에서 사용할 수 있는 권한은 전역 영역에서 사용할 수 있는 권한의 하위 집합입니다.
런타임 격리. 비전역 영역을 사용하면 여러 응용 프로그램에 상이한 보안 수준, 전역 자원에 대한 배타적 액세스 또는 개별화된 구성이 필요하더라도 동일한 컴퓨터에 이러한 응용 프로그램을 배포할 수 있습니다. 예를 들어 각각의 비전역 영역과 연관된 특정 IP 주소를 사용하여 상이한 영역에서 실행되는 여러 응용 프로그램을 동일한 네트워크 포트에 바인드할 수 있습니다. 그러면 응용 프로그램 상호 간에 네트워크 트래픽, 파일 시스템 데이터 또는 프로세스 작업이 모니터링되거나 인터셉팅되는 것이 방지됩니다.
관리 격리. 가상화된 운영 체제 환경을 사용하면 비전역 영역을 개별적으로 관리할 수 있습니다. 사용자 계정 만들기, 소프트웨어 설치와 구성 및 프로세스 관리 등 전역 관리자와는 대조적으로 영역 관리자가 수행하는 작업은 다른 영역에 영향을 미치지 않습니다.
비전역 영역에는전체 루트 영역 및 스파스 루트 영역의 두 가지 유형이 있습니다.
전체 루트 영역. 전역 영역에 있는 파일 시스템의 읽기/쓰기 복사본이 포함됩니다. 전체 루트 영역이 만들어지면 전역 영역에 설치된 모든 패키지를 전체 루트 영역에서 사용할 수 있습니다. 즉, 패키지 데이터베이스를 만들고 독립적인 전용 영역을 사용하기 위해 모든 파일을 전체 루트 영역에 복사합니다.
스파스 루트 영역. 전역 영역에 있는 파일 시스템의 일부에 대한 읽기/쓰기 복사본이 포함되며(그래서 이름이 스파스(sparse) 루트라고 함) 다른 파일 시스템은 전역 영역으로부터 읽기 전용 루프백 가상 파일 시스템으로 마운트됩니다. 스파스 루트 영역을 만들면 전역 관리자가 이 스파스 루트 영역과 공유할 파일 시스템을 선택합니다. 기본적으로 /usr, /lib, /sbin 및 /platform 디렉토리가 읽기 전용 파일 시스템으로 공유됩니다. 전역 영역에 설치되는 모든 패키지를 스파스 루트 영역에서 사용할 수 있습니다. 즉, 패키지 데이터베이스가 만들어지고 마운트된 파일 시스템에 있는 모든 파일을 영역과 공유할 수 있습니다.
자원 효율성과 관리 제어 간의 균형에 따라 전체 루트 비전역 영역과 스파스 루트 비전역 영역 중에서 선택하게 됩니다. 전체 루트 영역에서는 메모리와 다른 자원의 비용 측면에서 관리 제어(독립성 및 격리)를 최대화하지만, 스파스 루트 영역에서는 관리 독립성 비용 측면에서 디스크 공간(footprint)을 훨씬 적게 사용하면서도 실행 파일과 공유 라이브러리의 공유를 효율적으로 최적화할 수 있습니다. 현재는 성능 측면에서 전체 루트 영역에 대한 스파스 루트 영역의 이점을 측정할 수 없지만 이는 소프트웨어에 따라 매우 다를 것입니다.
전역 영역에 기본적으로 설치된 패키지는 패키지 전달이라는 프로세스를 통해 모든 비전역 영역에서사용할 수 있습니다. (전달을 수행하려면 먼저 새로 만들어진 비전역 영역이 완전히 부트되어 실행 상태에 있어야 합니다.) 전달은 전역 영역에 설치된 패키지에 로컬(비전역) 가시성과 가용성을 제공합니다. 전달을 사용하는 경우 전역 관리자는 중앙에서 응용 프로그램 패키지 라이프 사이클(설치, 업그레이드, 제거)을 관리하는 한편 비전역 영역 관리자는 응용 프로그램을 구성하고 런타임을 관리합니다.
전체 루트 영역의 경우 설치된 파일이 전역 영역에서 전체 루트 영역으로 자동으로 복사되고 레지스트리 정보를 자동으로 동기화함으로써 전달됩니다. 이에 비해 스파스 루트 영역의 경우에는 전역 영역과 스파스 루트 영역 간에 공유되는 읽기 전용 파일 시스템과 자동 레지스트리 정보 동기화를 통해 전달됩니다.
비전역 영역으로의 패키지 전달은 내부 패키지 속성을 사용하는 패키지 수준에서 제어됩니다. 이러한 속성의 일부 값(최소한의 기본값)은 속성 값을 무시하는 pkgadd —G 옵션을 사용하면 설치 시에 전달을 사용하지 않을 수 있습니다. 설치된 후 패키지의 전달 동작은 해당 패키지를 제거하고 다시 설치하지 않는 한 수정할 수 없습니다. 예를 들어 패치는 패키지 전달 동작을 변경할 수 없습니다. 실제로 패치는 업그레이드하는 패키지의 전달 동작에 따라 적용되어야 합니다.