The delay in delivering Project Janus support is not just a few months, but years. Back in 2001, both Sun and Hewlett-Packard Co were promising to deliver a Linux API or ABI runtime environment for their respective Solaris 9 and HP-UX 11i Unix platforms. (And, by the way, Linux has for years including several ABI runtimes that allow SCO Xenix, SCO Unix, and Solaris X86 binaries to run unchanged on 32-bit X86 iron running Linux as its operating system platform.)
HP delivered its Linux Runtime Environment HP-UX 11i in 2001, and it lets Linux applications compiled for Itanium processors to run unchanged inside the HP-UX operating system running on Itanium machines. This runtime does not support the emulation of 32-bit X86 code. It is unclear if the Aries application binary interface (ABI) runtime is able to run 32-bit X86 binaries for Linux or Windows in emulation mode on the Itanium-based Integrity servers as it does for HP-UX binaries.
Back in 2001, when Linux was taking off and Sun was starting to decline, the company promised it would deliver a Linux runtime environment in Solaris 9, too, as a means of competing against HP and IBM, the latter of which was supporting Linux directly on its Power-based AIX servers inside logical partitions. Such support was available with the lxrun environment in the X86 version of Solaris 8, but unfortunately for Sun customers, Sun yanked support for X86 processors when it delivered Solaris 9 in an effort to pump up sales of its Sparc-based servers and workstations.
With Project Janus, Sun is taking another stab at delivering Linux support within Solaris. Janus is a runtime environment that can run compiled Red Hat Linux 3.0 applications compiled for X86 servers inside a shell on an X86 or X64 server that translates Linux API calls to the equivalent Solaris API calls–and do so on the fly. Janus is not, strictly speaking, an emulation environment, but an API translation layer with relatively low overhead, according to Sun. Eventually, Sun will add support for other Red Hat Linux releases and Linux distributions from other commercial suppliers.
Even though this support did not make it into the initial commercial release of Solaris 10 that the company delivered in late January. And Sun has every intention of delivering Project Janus, contrary to rumors that the company is spiking Janus in favor of using the open source Xen hypervisor to allow Solaris and Linux operating systems to run side-by-side on a single machine.
We have a technology demonstration available today, explains Tom Goguen, vice president of marketing for Sun’s operating platforms group. The delay in commercializing Project Janus, according to Goguen, has to do with the way it was implemented. The initial Janus API runtime was implemented in what Sun calls a global zone, but the early customers using it say that what would be more useful is being able to run the Janus environment inside a Solaris container.
These containers are functionally similar to virtual machine partitions, in that they allow a server to be sliced up into pieces to support multiple, isolated application sets. However, virtual machine partitions put a hypervisor on a machine and then allow whole operating systems to be loaded into partitions; the processor, memory, and bandwidth capacities for these partitions can be scaled up and down as need be.
A Solaris container is even further virtualized in that it does not carve up a machine and then literally run multiple copies of the Solaris operating system, but rather runs one copy of the Solaris kernel, file system, and core shared features common to all containers and then presents a virtual Solaris operating system for each container.
The benefit of the container approach is that customers do not have to maintain multiple operating systems, but just one. (The single kernel is a single point of failure, of course.) The containers have security features that let them be sandboxed from each other, just like virtual partitions are.
As for Xen, Sun has contributed hardware to the cause and started formally contributing to it earlier this year, and the OpenSolaris community (spearheaded mostly by Sun engineers) are working to weave support for the Xen hypervisor into OpenSolaris, which means Xen will eventually be added to future Solaris platforms.
Xen and Janus are complimentary, and we plan to support both in the future, says Goguen. For a number of customers, running Solaris and Linux on one server is the right way to go about it. However, some customers want to consolidate down to one platform, and the Linux Application Environment, which is what we eventually call Janus, is the right move.
Exactly when the containerized version of Project Janus will be available is unclear. The software is not included in the OpenSolaris version of Solaris yet, either.
As for the Zeta File System, which is a 128-bit file system that is based on a what Sun calls a transactional object model. This new way of doing I/O allows for huge performance gains, according to Sun. ZFS is a replacement for Sun’s Unix File System (UFS), which is itself based on the Berkeley Fast File System (FFS) and is an alternative to the Network File System (NSF) that Sun released as an open file system in the mid-1980s.
ZFS also includes support for both Sparc and X86/X64 platforms, and has a patent-pending adaptive-endian feature that gets around the endian issues that separate X86 and RISC architectures. The ZFS file system also includes 64-bit checksums for guaranteeing the validity of stored information, and has new automation features that Sun claims will radically simplify the management of file systems on Solaris.
ZFS is scheduled for a future, unspecified update to Solaris 10, and it is not included in the OpenSolaris version of Solaris yet, either. The ZFS software is in its second beta right now, and Goguen says that Sun believes that it is looking good. Sun will continue to support UFS on Solaris platforms, and most modern platforms today (including Linux) support NSF.
It will be interesting to see if anyone takes the OpenSolaris implementation of ZFS and ports it to Linux, Windows, or other platforms – something that will be entirely possible given Sun’s Common Development and Distribution License (CDDL) for OpenSolaris.