In general, all applications can run in a non-global zone. However, the following types of applications might not be suitable for this environment:
Applications that use privileged operations that affect the system as a whole. Examples include operations that set the global system clock or lock down physical memory.
The few applications dependent upon certain devices that do not exist in a non-global zone, such as /dev/kmem.
Applications that expect to be able to write into /usr, either at runtime or when being installed, patched, or upgraded. This is because /usr is read-only for a non-global zone by default. Sometimes the issues associated with this type of application can be mitigated without changing the application itself.
In a shared-IP zone, applications dependent upon devices in /dev/ip.