JX is implemented as an extended Java virtual machine (the JX Core), adding support to the Java system for features such as protection domains and hardware access, along with several components written in Java that provide kernel facilities to applications running on the computer. Because Java is a type-safe language, JX can provide isolation between running applications without needing to use hardware memory protection. This technique, known as language-based protection means that system calls and inter-process communication in JX does not cause an address space switch, an operation which is slow on most computers. JX runs on standard PCs, supporting a limited range of common hardware elements.