EMC (Enhanced Machine Controller, розширений контролер обладнання) був створений Національним інститутом стандартів і технологій (https://www.nist.gov/index.html, NIST), який є агентством Міністерства торгівлі уряду США.
NIST вперше зацікавився створенням пакету програмного забезпечення для управління рухом як тестової платформи для концепцій і стандартів. Раннє спонсорство від General Motors призвело до адаптації початкової версії EMC з використанням інтелектуальних плат управління PMAC, що працювали під «реальною» версією Windows NT і керували великим фрезерним верстатом.
Як і вимагається від усіх «робочих продуктів» співробітників федерального уряду США, отримане програмне забезпечення та звіт про нього повинні бути у відкритому доступі, і звіт про нього був належним чином опублікований, в тому числі в Інтернеті. Саме там Метт Шейвер відкрив EMC. Він зв’язався з NIST і вступив у переговори з Фредом Проктором про адаптацію коду для використання в управлінні менш дорогим обладнанням, яке буде використовуватися для модернізації та заміни застарілих або просто непрацюючих систем CNC. NIST зацікавився, оскільки вони теж хотіли щось менш дороге. Для започаткування спільної роботи було укладено офіційну угоду, яка гарантувала, що отриманий код і дизайн залишаться у відкритому доступі.
Спочатку розглядалося питання заміни дорогої і примхливої системи Windows NT, що працювала в режимі реального часу. Було запропоновано випробувати відносно нове (на той час) розширення операційної системи Linux для роботи в режимі реального часу. Ця ідея була успішно реалізована. Наступним питанням було вирішення проблеми дорогих інтелектуальних плат управління рухом. На той час обчислювальна потужність ПК вважалася достатньою для безпосереднього управління руховими процедурами. Швидкий пошук доступного обладнання призвів до вибору інтерфейсної плати «Servo-To-Go» як першої платформи, що дозволяла ПК безпосередньо керувати двигунами. Програмне забезпечення для планування траєкторії та управління PID-контуром було додано до існуючого користувацького інтерфейсу та інтерпретатора RS274. Мет успішно використав цю версію для модернізації декількох машин з несправними системами управління, і це стало системою EMC, яка вперше привернула увагу зовнішнього світу. Згадка про EMC у новинній групі rec.crafts.metalworking USENET призвела до того, що перші користувачі, такі як Джон Елсон, почали створювати системи, щоб скористатися перевагами EMC.
NIST створив список розсилки для людей, зацікавлених в EMC. Згодом інші люди, не пов’язані з NIST, також зацікавилися вдосконаленням EMC. Багато хто просив або кодував невеликі вдосконалення коду. Рей Генрі хотів удосконалити користувальницький інтерфейс. Оскільки Рей не хотів втручатися в код C, на якому був написаний користувальницький інтерфейс, було шукано простіший метод. Фред Проктор з NIST запропонував скриптову мову і написав код для інтерфейсу скриптової мови Tcl/Tk до внутрішніх комунікацій NML EMC. За допомогою цього інструменту Рей написав програму Tcl/Tk, яка на той час стала основним користувацьким інтерфейсом для EMC.
Щодо точки зору NIST, див. статтю «https://web.archive.org/web/20120417094958/https://www.isd.mel.nist.gov/documents/shackleford/4191_05.pdf» [документ], написану Вільямом Шаклфордом і Фредеріком Проктором, в якій описується історія EMC та її перехід до відкритого коду.
На цей час інтерес до EMC почав суттєво зростати. У міру того, як все більше людей намагалися встановити EMC, труднощі з патчуванням ядра Linux з розширеннями реального часу та компіляцією коду EMC стали очевидними. Було зроблено багато спроб задокументувати процес і написати скрипти, деякі з яких мали помірний успіх. Проблема підбору правильної версії патчів і компіляторів до обраної версії Linux продовжувала виникати. На допомогу прийшов Пол Корнер з BDI (brain dead install) — компакт-диском, з якого можна було встановити повністю робочу систему (Linux, патчі та EMC). Підхід BDI відкрив світ EMC для набагато більшої спільноти користувачів. У міру зростання цієї спільноти список розсилки EMC та архіви коду були перенесені на SourceForge, а також був створений веб-сайт LinuxCNC.
Зі збільшенням кількості користувачів, EMC стала головним об’єктом інтересу на виставках CNC, що проходили в NAMES, а NAMES стала щорічним місцем зустрічі для EMC. Протягом перших кількох років зустрічі відбувалися просто тому, що зацікавлені сторони були присутні на NAMES. У 2003 році спільнота користувачів EMC провела свою першу публічну зустріч. Вона відбулася в понеділок після NAMES у фойє арени, де проходила виставка NAMES. Організація була нечіткою, але народилася ідея апаратного рівня абстракції (HAL) і було запропоновано рух за реструктуризацію коду для полегшення розробки (EMC2).
1. Зміна імені
Навесні 2011 року до ради директорів LinuxCNC звернулася юридична фірма, що представляє корпорацію EMC (www.emc.com), з приводу використання назв «EMC» та «EMC2» для позначення програмного забезпечення, що пропонується на сайті linuxcnc.org. Корпорація EMC зареєструвала різні торговельні марки, пов’язані з EMC та EMC² (EMC з надрядковою цифрою два).
Після низки переговорів з представником EMC Corporation, остаточним результатом стало те, що, починаючи з наступної великої версії програмного забезпечення, linuxcnc.org припинить ідентифікувати програмне забезпечення за допомогою «emc» або «EMC», або цих термінів, за якими йдуть цифри. В тій мірі, в якій рада директорів LinuxCNC контролює назви, що використовуються для ідентифікації програмного забезпечення, пропонованого на linuxcnc.org, рада погодилася з цим.
В результаті довелося вибрати нову назву для програмного забезпечення. З варіантів, розглянутих правлінням, було досягнуто консенсусу, що «LinuxCNC» є найкращим варіантом, оскільки це була назва нашого веб-сайту протягом багатьох років.
У рамках підготовки до введення нової назви ми отримали субліцензію на торговельну марку LINUX® від Linux Foundation (www.linuxfoundation.org), яка захищає наше право на використання назви LinuxCNC. (LINUX® є зареєстрованою торговельною маркою Лінуса Торвальдса в США та інших країнах.)
Ребрендинг включав веб-сайт linuxcnc.org, канали IRC, а також версії програмного забезпечення та документації, починаючи з версії 2.5.0.
2. Додаткова інформація
NIST опублікував статтю, в якій описано мову «https://www.nist.gov/node/704046» [RS274NGC] та абстрактний обробний центр, який вона контролює, а також ранню реалізацію EMC. Стаття також доступна за адресою https://linuxcnc.org/files/RS274NGCv3.pdf .
NIST також опублікував статтю про історію EMC та її перехід до відкритого програмного забезпечення (https://www.nist.gov/node/702276) [відкрите програмне забезпечення]. Стаття також доступна за адресою https://linuxcnc.org/files/Use-of-Open-Source-Distribution-for-a-Machine-Tool-Controller.pdf