I am a student of Instrumentation and Control. Considering the versatility and stability of Linux, I was wondering if Linux can be configured to act as a Distributed Control System?

Also if yes, which distro would be appropriate? I have basic knowledge of Linux shell scripting so I would prefer the distro to be relatively user-friendly.

Note : Having experience with Ubuntu, I'd like to set-up the server there.

Updates in reply to answers :

My hardware : i5 2nd gen, 8GB ram, 500GB HDD.
System : Ubuntu 12.04 Desktop edition 64bit.
Required job (proposed) : Running 5 or more sensors(as a start), driven by a micro-controller(s).

I need to set up a server, but without re-installing or changing the system. A second user as a workstation if it can be set-up so.

Virtualization is welcome but don't know how.

I have till March '13 to learn OpenCL and parallel programming to use my graphics card (NVidia GeForce 525M 1GB) (although this part of plan is still under heavy consideration).

It would be useful and appriciated to get links to good books, tutorials and reports of similar undertaking.

closed as unclear what you're asking by Gilles, Caleb, slm, Anthon, Rahul Patil Sep 17 '13 at 5:00

Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • Yes, of course, a Linu machine can act as a DCS. The distribution is mostly irrelevant. What is your question? – Gilles Nov 26 '12 at 23:22

Of course it can. Depending on your specific needs, you should consider several things:

  • will you need any kind of support or will you be able and allowed (in the long run) to take care of the technical things yourself? For anything production grade an "enterprise" distribution with support seems to be a better option.
  • what architecture do you need to run on? - x86, PowerPC, MIPS, SPARC, ARM, AVR...?
  • will you need anything at least remotely real-time? In that case look for a real-time kernel.
  • will you need some sort of virtualization?

EDIT: If you just need to run a supervisory station, then distribution doesn't probably matter that much. You might want to run it separately from other processes though, see e.g. controlling priority of applications using cgroups for some hints; the workstation stuff can be placed for example in a separate LXC.

To directly control the peripherals (which to me doesn't sound like a DCS at all) you may need to run it on a real-time kernel to have guaranteed responsiveness for the controlling process(es).

  • Updated answer. Any suggestions? – VedVals Nov 26 '12 at 17:20
  • Can you direct me to more information on LXC and cgroups? – VedVals Nov 30 '12 at 16:34

Linux machines are used as DCSes, but it is impossible to give more specific answers without knowing the exact requirements. Both server- and embedded-oriented distributions might be appropriate.

  • Updated answer. Any suggestions? – VedVals Nov 26 '12 at 17:20

Not the answer you're looking for? Browse other questions tagged or ask your own question.