MOSIX is a software package that enhances the Linux kernel with cluster-computing capabilities. The resulting kernel allows for the creation of any size cluster of X86/Pentium-based workstations. It also allows servers to work cooperatively as if they were part of a single system. At the core of MOSIX are adaptive online, load-balancing and memory-ushering algorithms that respond to variations in the use of the cluster resources in order to maximize the overall performance. These algorithms use preemptive process migrations to assign and reassign the processes among the nodes. This takes advantage of the best available resources, just like in an SMP. The MOSIX algorithms are geared for maximum performance, overhead-free scalability and ease of use.