A LinuxCNC eleg sok modon hasznalhato (raadasul nem csak cnc-re).
Adnak egy debian alapu telepitot, ami RTAI kernellel jon, de hasznalhatsz Xenomai-t is (mindketto hard realtime, asszem a regi RTL tovabbfejlesztese). A Linux kernel "alatt" fut, azzal vagy a userspace-szel shared memoryn keresztul kommunikal. Irhatsz hozza kisebb real time modulokat, es megadhatod, hogy ezt hogy utemezze (talan interruptot is tud). Amikor nem a te kodod fut, akkor a normal kernelt utemezi (ott van a legtobb driver is), es a sima userspace programok is itt futnak. Ebbol rogton latszik a hatranya: sajat driver kell ahhoz, amit innen hasznalsz (ami egy parport eseten nem gond, de vannak bonyolultabbak is). A masik, hogy ha valamit a Linux kernel hajt, az csak kerulouton jut el hozzad.
Ha masok az igenyeid, van sima RT patch. Ez az utemezovel varial valamit, emiatt soft realtime, de sokkal egyszerubb a hasznalata. Raadasul a driverekkel sem kell annyit trukkozni. Ha van egy modern geped, megengedheted magadnak, hogy a - mondjuk - 8 magbol egy parat adott processzeknek adsz dedikaltan, igy nagyon sok feladatra eleg, sokkal egyszerubben. Egy x64-es gep meg szamitasi teljesitmenyben egyelore veri az ARM (es persze az AVR) vonalat. Ubuntu csomagol RT kernelt is, innentol a karbantartasa sem gond. Egyebkent van LinuxCNC Beaglebone-ra is, Machinekit neven.
Szemely szerint a LinuxCNC alap elkepzeleset mar hatranyosnak tartom, ki lehetne szervezni egy csomo dolgot uC-re, ahol trivialis a RT mukodes. De ez nem jelenti azt, hogy ne lehetne megoldani. A parhuzamos portos stepdires bohockodasrol meg plane le kene szokni.
--
Any A.I. smart enough to pass a Turing test is smart enough to know to fail it. -Ian McDonald