Archive for the ‘realtime’ Category

Hardware und Betriebssystem

Wednesday, April 29th, 2009

Zwar mit einigem an Verspätung, dafür jedoch mit den ersten Erkenntnissen, folgt der zweite Teil dieser Blog-Serie.
Als Grundlage für meine Untersuchungen und Versuche, wird mein alter Laptop eingesetzt, welcher nur noch mit viel Vorsicht zu bewegen ist. Es handelt es sich um ein Amilo A1650. Dieser hat folgende Leistungsdaten:

  • Mobile Athlon 64bit 3700+
  • 1GB RAM
  • 100GB Festplatte

Auf dem Notebook werden die meisten Entwicklungstätigkeiten und auch die ersten Tests durchgeführt.

Als Betriebssystem wird selbstverständlich ein Linux eingesetzt :)
Die eingesetzte Distribution ist ein gentoo, mit einem aktuellen Kernel, Stand 29.04.09-Kernel 2.6.29.1.
Warum gentoo? Obwohl gentoo als nicht sehr stabil und dafür umso komplizierter gilt, war es für mich die richtige Wahl. Man hat die Möglichkeit es komplett individuell einzurichten, man installiert nur das was man wirklich benötigt, der portage(Paketverwaltung von gentoo) stellt eine Vielzahl an Anwendungen zur Verfügung, es hat eine riesige Community und, der für mich wichtigste Grund, damit kenne ich mich recht gut aus!

Als Kernel-Sources worden die vanilla-sources aus dem Portage gewählt. Dies entspricht den ganz normalen Kernel-Sources, welche auch von kernel.org zu erhalten sind. Mein bestreben ein RTOS aufzubauen, hat mich von den eigentlich empfohlen gentoo-Sources entfernt. Da diese bereits mit verschiedenen Patches ausgeliefert werden, und ich mit einen möglichst reinen Kernel arbeiten möchte, erschien mir diese Entscheidung als sinnvoll.
Tools welche ich nicht mehr missen möchte:

  • gentoolkit (beinhaltet wichtige gentoo tools)
  • eix (vereinfacht den Umgang mit den Paketen – suchen, durchsuchen, aktualisieren)
  • htop (wesentlich schönere Alternative zu top)
  • denyhosts (beobachtet den ssh-Port – hilft beim Umgang mit BruteForceAttacken)
  • ccache (cached Compileergebnisse => Re-Compiling erfolgt schneller)
  • weitere folgen bestimmt….

Um ein RTOS auf Basis eines Linuxsystems zu errichten, gibt es viele verschiedene Möglichkeiten. Da dies ebenfalls ein sehr umfangreiches Thema ist, bietet es sich an dieses extra zu behandeln und einen weiteren Blogbeitrag zu erstellen. Dieser folgt in Kürze. Letztendlich habe ich mich für Ingo Molnars RT-Patch entschieden.

Um möglichst realistische Echtzeitanforderungen stellen zu können, wird auf zwei CAN-Adapter zurückgegriffen, welche per USB an dem Laptop angeschlossen sind. Der eine ist der PCAN-USB Adapter der Firma peak-system und der andere ist ein UConnect-CAN XE-164. Das Einrichten und erste Tests mit diesen beiden Adaptern, folgt ebenfalls in einem gesonderten  Blogbeitrag.

Aller Anfang ist schwer…

Tuesday, April 7th, 2009

Das OSGi in letzter Zeit immer mehr in das Geschäftsumfeld vorgedrungen ist, ist sicherlich bereits vielen aufgefallen. Ursprünglich jedoch wurde es für den embedded Bereich konzipiert. Auf Grund beschränkter Ressourcen ist der Einsatz einer modular aufgebauten Software prädestiniert für eingebettete Systeme. Ausgehend von der embedded-Idee, wird im Zuge einer Masterarbeit OSGi nun auf seine Echtzeitfähigkeit hin untersucht.

Um überhaupt eine Echtzeitanwendung mit Java erstellen zu können, reicht es nicht aus auf eine Standard-JVM zurückzugreifen. Bereits im November 2001 wurde daher ein erster Standard(JSR-001) im Zuge eines Java Community Prozesses entwickelt und im JSR-282 noch einmal überarbeitet.

Betrachtet man den modularen Gedanken von OSGi steht er im ersten Moment konträr zu einer komplett durchgeplanten Echtzeitanwendung. In wieweit ist es möglich asynchrone und ‘unwichtige’ Nichtechtzeittask (Interaktionen des Nutzers, Darstellung von Messwerten…) von Echtzeittask zu trennen. Ist es überhaupt möglich harte Echtzeit zu garantieren, wenn ja, was ist notwendig, wenn nein, warum nicht. Oder von der OSGi-Seite betrachtet, können die Standardservices in einem Echtzeitumfeld bedenkenlos genutzt werden.

All diese Fragen, und sicherlich noch viele mehr, sollen in den kommenden Wochen geklärt werden. Über Ansätze, Probleme und Erkenntnisse wird an aktueller Stelle weiter berichtet. Teil 2 folgt bereits kommende Woche mit der Thematik: Eingesetzte Plattform und weitere Planungen