Answer the question
In order to leave comments, you need to log in
Realtime OS to study the issue (and literature)?
Somehow, by chance, my teacher gently pushed me to study real-time operating systems. Since I am a correspondence student, I will have to study the issue myself, and therefore I am free to choose literature and, in fact, the OS itself - they will ask me for the result, not the process. And the result, something tells me, will be at least a courseworker.
Surely among the numerous Habr specialists there are a couple of professionals in this industry. I ask them to advise me on the literature of the initial and middle level about architecture, and at the same time a subject operating system, for study, open and free, without Hindu code, preferably Unix-like, preferably with hard real-time, and one that knowledge about which may be useful later in professional activities. Thanks in advance.
Answer the question
In order to leave comments, you need to log in
Of the really applicable - QNX and VxWorks.
At the very least, the knowledge gained can be really useful.
A couple of interesting examples for the "seed" - QNX manages drawbridges in St. Petersburg and was used as an OS in the auto-guided system of St. Petersburg metro trains. I am modestly silent about nuclear power plants and pumping stations, as well as heating points =)
Vanilla core with PREEMPT RT patch , approved by Linus Torvalds and completely suitable for all your conditions.
Very popular and certified for many things by VxWorks, which has a bunch of clones, additions and modifications. As close as possible to linux due to the broad adherence to Posix. You can also focus not on a specific OS, but on the standard , the same posix.1b (aka IEEE Std 1003.1b-1993)
Written is true if the ultimate goal is system programming experience in RT.
I can advise this:
art-linux.sourceforge.net/
#include <stdio.h>
#include <stdlib.h>
#include <sys/io.h>
#include <linux/art_task.h>
#define TRUE 1
#define KBD_PORT 0x61
#define SPK_BIT 0x02
main(int argc, char *argv[])
{
int temp, hz, i;
hz = atoi(argv[1]);
ioperm(KBD_PORT, 1, TRUE);
art_enter(ART_PRIO_MAX, ART_TASK_PERIODIC, 500000 / hz);
for (i = 0; i < hz * 5; ++i) {
art_wait();
temp = inb(KBD_PORT);
temp = (i & 1) ? temp | SPK_BIT : temp & ~SPK_BIT;
outb(temp, KBD_PORT);
}
art_exit();
}
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <linux/art_task.h>
int main(int argc, char *argv[])
{
art_prio_t prio;
if (argc < 3 || (prio = atoi(argv[1])) < ART_PRIO_MIN ||
prio > ART_PRIO_MAX) {
fprintf(stderr, "usage: %s prio file arg .../n", argv[0]);
return -1;
}
if (art_enter(prio, ART_TASK_RR, 0) == -1) {
perror("art_enter");
return -1;
}
if (execvp(argv[2], &argv[2]) == -1) {
perror("execvp");
return -1;
}
return 0;
}
Thanks to all. After consultations with the teacher, it was decided to stop at QNX, without losing sight of Inferno. Here is a twofold solution.
Portos real-time operating system.
Recently, the range of applications of the BlackBox Component Builder system has been significantly expanded with the Denia cross-programming environment, which is a component extension of BlackBox. Denia allows cross-programming in Component Pascal for the new real-time operating system Portos, which is also fully implemented in Component Pascal. Portos is designed for embedded systems and applications with hard real-time requirements such as robotics and industrial automation.
Source:
delphimaster.net/view/15-1185282701/all
But I can't find either partos or denia anywhere.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question