J
James Adrian
Guest
Is there a Linux distribution that works on PCs and OS X that is purely interrupt driven and does not use supervisory loops?
Thank you for your help.
Jim Adrian
Thank you for your help.
Jim Adrian
Since all "Linux" distributions use the Linux kernel, I would assume that they all operate the same. The only exception might be some difference between the "Linux" kernel, vs the "Hurd" kernel. This is a little beyond my expertise.Is there a Linux distribution that works on PCs and OS X that is purely interrupt driven and does not use supervisory loops?
Thank you for your help.
Jim Adrian
I would provide a link, but I think they are disallowed by the forum. My email address was rejected in my first post above.
What you are referring to is probably preemption. All versions of the Linux kernel after 2.6 are almost fully preemptible in that most of the kernel processes can be preempted by an 'event'.A supervisory loop is just a continual polling by the operating system. Maybe the term isn't used much any more.
All of the actions needed to retrieve programs from the hard disk drive and other storage to achieve a state whereby the next move is up to the user or the environment is included in what I have been calling the reset program.
If the system does nothing after it has been made ready to serve the user or the environment outside of the computer, and services are performed only in response to hardware interrupts from peripheral devices, the operating system is purely interrupt driven. A once-per-second interrupt from a cock, or a press of a key on a keyboard would be examples of hardware interrupts.
The reset program is complicated not only by the need to retrieve programs from storage, but also by the need to check for hardware options that may not exist the same way in all computers using the operating system.
In any case, there comes a time when the computer waits without polling.
Depending on a number of factors, some interrupt input signals may be temporarily disabled. If the system is running a program that controls a robot arm that is pouring coffee, that program may be written to disallow input from a clock tick for a while.
There seem to be real-time versions of Linux. I don't know whether they are purely interrupt driven or just permit some programs to perform in that way. I would provide a link, but I think they are disallowed by the forum. My email address was rejected in my first post above.
Jim Adrian
In terms of robotics I don't see why the kernel would need to be fully real time in order to accomplish what you are suggesting about being interrupted by sensory data. Userland libraries are able to achieve this already without modification to the scheduler. For example, look at the KIPR Wallaby. The controller is just for kids but underneath it is actually very powerful running a modified Yocto Linux distro with a quad core arm processor and a co-proecessor for other computations. The system is not running in real time if I recall correctly yet it allows students to program for input sensory data to trigger events and there is an overall timer that can trigger events outside of their control.Thank you ryanvade for your very valuable information.
I am primarily concerned about the Linux community coming to fully support robotics, machine control, and all sorts of automation. It is very important to the economy.
It is reasonable for a robot to be interrupted by a non-maskable interrupt caused by a fire alarm and it should be routine for it to be interrupted by sensory conditions, or a stop button, but there should be a way to prevent, at least for a designated period of time, the sharing of processor time with a spread sheet program under the scheduling assumption that no program needs real-time computing.
Windows and OS X are nowhere on this. Serving these customers will increase Linux market share. That would be a good thing, in my opinion.
Jim Adrian