Enhanced Machine Controller

Enhanced Machine Controller, or EMC2, is a FLOSS GNU/Linux software system to implement CNC capability using general purpose computers to control machines. It is developed by a number of volunteer developers at LinuxCNC.org

Purpose
EMC2 is a software system for numerical control of machines such as milling machines, lathes, plasma cutters, routers, cutting machines, robots, hexapods, etc. It can control up to 9 axes or joints of a CNC machine using G-code (RS-274NGC) as input. It has several GUIs suited to specific kinds of usage (touch screen, interactive development). Currently it is almost exclusively used on X86 PC platforms, but a couple ports to other architectures are in use (Alpha, Sparc). It makes extensive use of a Real Time-modified kernel, and supports both stepper- and servo-type drives.