Charles,

On 1/16/2014 11:03 AM, Charles Steinkuehler wrote:
> Either way, I don't really think the ARM/x86 platform key belongs in 
> the configuration selector at all.
Then I guess we are at really opposite points of view on this topic.

Let's take a bit little tip in the way back machine.... in the olden 
days EMC (I use that name as that is what it was called during the time 
I refer to) was not anywhere near as much of a platform specific project 
as it is today. It started out designed to be able to run a variety of 
hdw+sftw platforms.

It was only as time has passed by that a particular hardware/software 
came to dominate EMC installations: the X86 PC + Linux combination.
Today that hdw/sftw platform is so intertwined with EMC/LCNC that the 
idea that you might want to run EMC (or at least parts of it) on a 
non-linux platform combination will likely get may get one receiving 
derisive mailing list comments.

An example from fairly recent history: Consider that this is so much a 
"fish being unaware of water situation" that when EMC corp came along 
and panicked the herd into a renaming stampede, the "obvious" name 
became *_Linux_*CNC.

Yet conceptually Linux is far from a single OS environment and is only 
one software (family) environment that EMC could be applicable to.

(Side bar contemplation: I have no idea how to refer to LinuxCNC that 
has one, or more, or all, modules not running on Linux anymore - what 
will we call such an animal?!? )

There are lots of assumptions that come along with the x86+PC choice - 
and they strongly color all the design decisions that get made within 
the project.
Example: I suspect that no one thinks that making LCNC more dependent on 
Linux could possibly be a topic for much discussion, let alone a bad idea.
The community takes the path of least resistance - we don't even talk 
much about what flavors of Linux that LinuxCNC will run with. The 
reality is that the project has a strong tendency to gravitate toward 
Ubuntu or Debian flavors. I see that the default attitude tends to be 
that if it does not work on Linux flavors that are more removed from 
Debian derivatives, then it's the OS flavor that is at fault (it must 
have not implemented something correctly - i.e. "correct" == the way 
Debian does things).

This autopilot approach to hdw+sftw platform has worked OK for many 
years - in large part it has been pushed along by the economics of PC 
hardware.

But computing economics have shifted... and now we are seeing interest 
in what I'll call "embedded CNC" and "distributed CNC".
In the LCNC space this has manifested as the interest in BeagleBone and 
RasPi as SOC oriented hardware platforms.
Yet this combination does not fit the unstated PC+Debian flavored Linux 
combo so nicely - it chafes a bit. I know you've seen that first hand in 
dealing with the AM335x Angstrom patches into machine kit stuff.  As the 
OS assumption drifts away from PC + Debian or Ubuntu, things fit less well.
Consider Machinekit: One consequence of where we are today is that the 
machinekit stuff lives on SD cards and runs Debian. There is a cost 
associated with that: we can't run LCNC on the Angstrom flavor of linux 
that comes on a BBB and we can run from the built in eMMC. That's an 
example where the OS assumptions (even within the Linux family) have 
added cost (SD card) and removed functionality (can't pare it down to 
run from eMMC).

The monolithic PC platform has done (IMHO, with the aid of hindsight) 
great damage to the modularity of LCNC. (I know some will remember that 
EMC ran on Windows in the early days and that this was not considered a 
bad thing.)  The decrease in modularity and increase in pc+Linux 
platform dependence didn't happen all at once, but, slowly over years 
(the same way many entities get addicted to substances).

Consider again the BBB and the "problems" around graphics performance 
and GUIs for LCNC. These are only issues if you start from the assertion 
that everything runs on the single CPU in the (assumed) monolithic PC 
platform (which is the base assumption implicit in much of LCNC today). 
If you think of a BBB as a little PC you get one set of conclusions. If 
you think of it as a platform well suited to runs parts (but not all) of 
LCNC, you get different conclusions.
For an embedded or distributed CNC widget, why does _the _gui (for for 
that matter _any _gui (or X server) ) have to be running  on the BBB?

Look at your own recent interest in a non-X gui. That does not fit the 
PC + Linux assumptions as well, and you found the pickings slim.
I tend to see these issues as attempts to fit the PC driven square peg 
assumptions into the embedded CNC round hole.

Another example: Think about how AXIS reaches down into LCNC internal 
structures to do some of what it does. It was (IHMO) not the best 
decision to do that, but it was easy to do - and so human nature won and 
it came to be - and it's served it's intended audience well. I will note 
that it was only possible to do because all the LCNC modules were 
(known) to be running on the single monolithic PC platform. Now split up 
LCNC differently as to what runs where and the AXIS tricks are not as 
attractive. Rhetorical question: Would Axis's authors have made the same 
choices if there were a significant number of non-PC EMC installations 
at that time?

One of the reasons I'm interested in Michael's re-architecture work is 
that it offers a chance to undo some of this insidious binding to PC 
assumptions. As an example, the judicious application of ZMQ to create 
module interfaces could allow this to happen without negatively 
impacting the LCNC PC platform installed base.

I also think that Putting the modularity back into LCNC enables lots of 
new non-PC platforms and I see the future for LCNC involving many 
platforms that are not PCs. Accordingly I would like to see LCNC become 
less PC dependent.
But for that to have any chance, we fish have to become aware of the 
water we swim in.

So, I think that it's really important that we start realizing that PCs 
(and all that a PC implies) are NOT the only target for LCNC.
I honestly  don't think that a config structure oriented around 
Mill/lathe then a hardware interface is sufficiently cognizant of the 
possibilities of modular/distributed CNC.
While while the X86 and ARM stuff is similar today, that's because it 
has to be... technical evolution has not yet had time to drive the 
modifications that will make these diverge further apart than they are 
today.

I think we do ourselves a favor if we organize (at least as a start) 
along "PC assumption made here" and "PC assumptions are no longer 
constraints here".    The easiest way to do that is to let X86 PC 
configs handle the legacy and installed base, while we let the ARM based 
SOC stuff be more distinct and more free to grow different ways.

Dave

------------------------------------------------------------------------------
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today. 
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
_______________________________________________
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers

Reply via email to