EMC (der Enhanced Machine Controller) wurde von NIST , dem National Institute of Standards and Technology, einer Behörde des Handelsministeriums der Vereinigten Staaten, entwickelt.
Das NIST interessierte sich zunächst für die Entwicklung eines Bewegungssteuerungspakets als Testplattform für Konzepte und Normen. Die frühe Förderung durch General Motors führte zu einer Anpassung der noch jungen Version von EMC unter Verwendung intelligenter PMAC-Steuerungskarten, die unter einer "Echtzeit"version von Windows NT liefen und eine große Fräsmaschine steuerten.
Wie bei allen Arbeitsprodukten von Mitarbeitern der US-Bundesregierung vorgeschrieben, müssen die resultierende Software und der Bericht darüber öffentlich zugänglich sein, und ein Bericht darüber wurde ordnungsgemäß veröffentlicht, auch im Internet. Dort entdeckte Matt Shaver EMC. Er setzte sich mit dem NIST in Verbindung und diskutierte mit Fred Proctor über die Anpassung des Codes für die Steuerung preiswerterer Hardware, die für die Aufrüstung und den Ersatz veralteter oder schlichtweg toter CNC-Steuerungen verwendet werden sollte. Das NIST war fasziniert, denn auch sie wollten etwas Günstigeres. Um eine Zusammenarbeit in die Wege zu leiten, wurde eine formelle Vereinbarung getroffen, die garantierte, dass der resultierende Code und das Design public domain bleiben würden.
Die ersten Überlegungen konzentrierten sich auf den Ersatz des teuren und temperamentvollen Windows-NT-Systems (Echtzeit). Es wurde vorgeschlagen, eine (damals) relativ neue Echtzeit-Erweiterung des Linux-Betriebssystems zu testen. Diese Idee wurde mit Erfolg weiterverfolgt. Als Nächstes stand die Frage der teuren intelligenten Bewegungssteuerungskarten an. Zu diesem Zeitpunkt wurde die Rechenleistung eines PCs als groß genug angesehen, um die Kontrolle über die Bewegungsroutinen direkt zu übernehmen. Eine schnelle Suche nach verfügbarer Hardware führte zur Auswahl einer Servo-To-Go-Schnittstellenkarte als erste Plattform, mit der PC die Motoren direkt steuern konnte. Die vorhandene Benutzeroberfläche und der RS274-Interpreter wurden um Software für die Bahnplanung und PID-Regelung ergänzt. Matt setzte diese Version erfolgreich ein, um einige Maschinen mit toten Steuerungen aufzurüsten, und dies wurde das EMC-System, das die Aufmerksamkeit der Außenwelt auf sich zog. Die Erwähnung von EMC in der USENET-Newsgroup rec.crafts.metalworking führte dazu, dass frühe Anwender wie Jon Elson Systeme bauten, um die Vorteile von EMC zu nutzen.
Das NIST richtete eine Mailingliste für Personen ein, die sich für EMC interessierten. Im Laufe der Zeit interessierten sich auch andere außerhalb des NIST für die Verbesserung von EMC. Viele Leute baten um kleine Verbesserungen des Codes oder programmierten sie. Ray Henry wollte die Benutzeroberfläche verfeinern. Da Ray sich nicht traute, den C-Code, in dem die Benutzeroberfläche geschrieben war, zu verändern, wurde eine einfachere Methode gesucht. Fred Proctor vom NIST schlug eine Skriptsprache vor und schrieb einen Code, um die Skriptsprache Tcl/Tk mit der internen NML-Kommunikation von EMC zu verbinden. Mit diesem Tool schrieb Ray dann ein Tcl/Tk-Programm, das zur damals vorherrschenden Benutzeroberfläche für EMC wurde.
Die Perspektive des NIST finden Sie in diesem paper von William Shackleford und Frederick Proctor, das die Geschichte von EMC und den Übergang zu Open Source beschreibt.
Zu dieser Zeit begann das Interesse an EMC erheblich zuzunehmen. Als immer mehr Leute versuchten, EMC zu installieren, wurde die Schwierigkeit, einen Linux-Kernel mit den Echtzeit-Erweiterungen zu patchen und den EMC-Code zu kompilieren, überdeutlich. Viele Versuche, den Prozess zu dokumentieren und Skripte zu schreiben, wurden unternommen, einige mit mäßigem Erfolg. Immer wieder tauchte das Problem auf, die richtige Version der Patches und Compiler mit der ausgewählten Linux-Version abzugleichen. Paul Corner kam zur Rettung mit der BDI (brain dead install), einer CD, von der ein komplettes funktionierendes System (Linux, Patches und EMC) installiert werden konnte. Der BDI-Ansatz öffnete die Welt der EMC für eine viel größere Benutzergemeinschaft. Als diese Gemeinschaft weiter wuchs, wurden die EMC-Mailingliste und die Code-Archive nach SourceForge verschoben und die LinuxCNC-Website eingerichtet.
Durch die Teilnahme einer größeren Gemeinschaft von Anwendern wurde EMC zu einem wichtigen Interessenschwerpunkt bei den laufenden CNC-Ausstellungen auf der NAMES, und die NAMES wurde zur jährlichen Veranstaltung für EMC. In den ersten Jahren fanden die Treffen nur deshalb statt, weil die interessierten Parteien auf der NAMES waren. Im Jahr 2003 fand das erste angekündigte öffentliche Treffen der EMC-Anwendergemeinschaft statt. Es fand am Montag nach der NAMES in der Lobby der Arena statt, in der auch die NAMES-Messe abgehalten wurde. Die Organisation war locker, aber die Idee einer Hardware-Abstraktionsschicht (HAL) wurde geboren und die Umstrukturierung des Codes zur Vereinfachung der Entwicklung (EMC2) wurde vorgeschlagen.
1. Namensänderung
Im Frühjahr 2011 wurde der LinuxCNC-Vorstand von einer Anwaltskanzlei in Vertretung der EMC Corporation (www.emc.com) wegen der Verwendung von "EMC" und "EMC2" zur Kennzeichnung der auf linuxcnc.org angebotenen Software kontaktiert. Die EMC Corporation hat verschiedene Marken im Zusammenhang mit EMC und EMC² (EMC mit hochgestellter Zahl zwei) eingetragen.
Nach einer Reihe von Gesprächen mit dem Vertreter der EMC Corporation war das Endergebnis, dass mit dem nächsten großen Release der Software, linuxcnc.org aufhörte, die Identifizierung der Software mit "emc", "EMC", oder diese Zeichenfolgen in Kombination mit nachfolgenden Ziffern zu nutzen. Soweit das LinuxCNC Board of Directors eine Kontrolle hat über die Bezeichnung der auf linuxcnc.org angeboten Software, hat der Vorstand diesem zugestimmt.
Infolgedessen war es notwendig, einen neuen Namen für die Software zu wählen. Von den Optionen, die der Vorstand in Betracht zog, gab es einen Konsens, dass "LinuxCNC" die beste Option ist, da dies seit Jahren der Name unserer Website ist'.
In Vorbereitung auf den neuen Namen haben wir eine Unterlizenz für die Marke LINUX® von der Linux Foundation (www.linuxfoundation.org) erhalten, die unsere Verwendung des Namens LinuxCNC schützt. (LINUX® ist die eingetragene Marke von Linus Torvalds in den USA und anderen Ländern.)
Die Umbenennung umfasste die Website linuxcnc.org, die IRC-Kanäle und die Versionen der Software und der Dokumentation seit Version 2.5.0.
2. Zusätzliche Informationen
Das NIST hat ein Papier veröffentlicht, in dem die Sprache RS274NGC und das von ihr gesteuerte abstrakte Bearbeitungszentrum sowie eine frühe Implementierung von EMC beschrieben werden. Das Papier ist auch unter https://linuxcnc.org/files/RS274NGCv3.pdf verfügbar.
Das NIST hat auch ein Papier über die Geschichte der EMC und ihren Übergang zu open source veröffentlicht. Das Papier ist auch unter https://linuxcnc.org/files/Use-of-Open-Source-Distribution-for-a-Machine-Tool-Controller.pdf verfügbar