Overview
BrandZ is a framework that extends the Solaris Zones infrastructure to create Branded Zones, which are zones that contain non-native operating environments. The term "non-native" is intentionally vague, as the infrastructure allows for the creation of a wide range of operating environments.
Each operating environment is provided by a brand that plugs into the BrandZ framework. A brand may be as simple as an environment with the standard Solaris utilities replaced by their GNU equivalents, or as complex as a complete Linux userspace.
BrandZ extends the Zones infrastructure in user space:
- A brand is an attribute of a zone, set at zone create time
- Each brand provides its own installation routine, which allows us to install an arbitrary collection of software in the branded zone.
- Each brand may provide pre/post-boot scripts that allows us to do any final boot-time setup or configuration.
- The zoneadm and zonecfg tools can set and report a zone's brand type.
BrandZ provides a set of interposition points in the kernel:
- These points are found in the syscall path, process loading path, thread creation path, etc.
- At each of these points, a brand may choose to supplement or replace the standard Solaris behavior.
- These interposition points are only applied to processes in a branded zone
- Fundamentally different brands may require new interposition points
Linux Zones on Solaris
The lx brand enables Linux binary applications to run unmodified on Solaris, within zones running a complete Linux userspace. The combination of BrandZ and the lx brand will be productized as Solaris Containers for Linux Applications.
The lx brand is not a Linux distribution and does not contain any Linux software at all. The lx brand enables user-level Linux software to run on a machine with a Solaris kernel, and includes the tools necessary to install a CentOS or Red Hat Enterprise Linux distribution inside a zone on a Solaris system.
The lx brand will run on x86/x64 systems booted with either a 32-bit or 64-bit kernel. Regardless of the underlying kernel, only 32-bit Linux applications are able to run.
We do not support SPARC linux. This might be an interesting community project, but it's not on our roadmap.