LinuxCNC is software that runs on Linux, on most standard PCs, that can interpret G-code and run a CNC machine. It was originally developed on a milling machine, but support was added for lathes and many other types of machine. It can be used with mills, lathes, plasma cutters, routers, robots, and so on.
LinuxCNC is an effort currently underway to simplify, organize, and extend the original NIST-developed software in order to make it more developer friendly. It got under way after meetings in 2003 where the difficulty in understanding and modifying the original version was a major topic of discussion.
The RCSlib (Real-time Control System) was replaced with libNML (Neutral Messaging Language) which is a pruned version with just the functionality needed to support the NML communications needed by LinuxCNC. The new libNML is part of the LinuxCNC code tree so it is no longer necessary to compile or include the original RCSlib. Some recent discussion on the IRC channel has lead to ideas as to how, in an ideal world we would implement the messaging layer within LinuxCNC ... as ideas form they are documented on the MessagingLayer page.
Other parts of the code have been pruned somewhat to remove abandoned, non-Linux, platforms (Windows-NT and Sun-OS) and code with licensing restrictions incompatible with the open source nature of the project.
The interface to the control hardware has been greatly reorganized and simplified by the introduction of a Hardware Abstraction Layer (HAL).
Documentation of concepts and code are being given much greater attention so that new developers can "come on-line" with much less effort. Many of the goals set at ProgrammerDecisions Fest 2005 have been met.
GPL license terms have been applied to the newly derived code.
There are Documents available online in PDF and HTML format. Go to the www.LinuxCNC.org homepage and click Documents, or just click here: [[www.LinuxCNC.org Documents]]