Forum: Mikrocontroller und Digitale Elektronik Einstieg in Embedded Linux


von Mattes (Gast)


Lesenswert?

Hallo,

ich möchte mich gerne in Embedded Linux einarbeiten und komme aber aus 
der Windows-Welt. Jetzt weiss ich nicht so richtig, wie ich einsteigen 
soll.
Wäre es hilfreich zuerst mal Linux auf nem Rechner zu installieren und 
damit zu spielen oder direkt ein Eva-Board kaufen, auf dem ein Embedded 
Linux läuft?
Wie sind da eure Erfahrungen bzw wie seid ihr das Thema angegangen?
Grundlagen in Embedded Systems sind da (Programmierung in C, Atmel AVR, 
Elektronikgrundlagen).

Gruß Mattes

von Tobi (Gast)


Lesenswert?

Moin,

es läuft deutlich schmerzfreier ab wenn du dich erstmal mit Linux auf 
einem normalen Rechner auseinander setzt. Alternativ kannst du auch 
Linux in einer virtuellen Maschine unter Windows installieren und damit 
die ersten Schritte machen.

Gruss,
Tobi

von Zorg (Gast)


Lesenswert?

Es ist zum entwickeln sowieso von Vorteil auf dem Host auch ein Linux 
laufen zu haben (aber kein Muss).


Ah ja kannst erstmal auch VirtualBox verwenden.

von Mattes (Gast)


Lesenswert?

Habe mir heute morgen Ubuntu eingerichtet. Hab gelesen, dass es für den 
Anfang angebracht wäre aber da wird wohl jeder seine eigene Meinung 
haben.

von Mattes (Gast)


Lesenswert?

Hab mich jetzt etwas mit Ubuntu beschäftigt und würd jetzt gern mal 
eigene Applikationen einbringen. Jetzt stellt sich natürlich die Frage 
wie ich das mache. Ich habe mal einen Roboter programmiert, auf dem ein 
portiertes OSEK lief. Da konnte ich meine Applikation schreiben, neu 
compilieren und den Roboter bzw den Prozessor neu flashen.
Diese Vorgehensweise wird wohl eher schwierig bei Ubuntu. Wie stelle ich 
das nun an?

von blubb (Gast)


Lesenswert?

Für nicht in den Repositories verfügbare Programme mit dem Programm 
Checkinstall. Selbstgeschriebene einfache Programme braucht man zu 
Testzwecken nicht wirklich zu installieren sondern kann sie einfach so 
ausführen.

von Joachim D. (Firma: JDCC) (scheppertreiber)


Lesenswert?

blubb schrieb:
> Selbstgeschriebene einfache Programme braucht man zu
> Testzwecken nicht wirklich zu installieren sondern kann sie einfach so
> ausführen.

Wow ! ;-)))

von Unlucky2012 (Gast)


Lesenswert?

Auch wenn ich Ubuntu nicht schlechter reden will als es ist: Ubuntu ist 
für den Einstieg in die Linux-Welt sicherlich großartig, aber, ich 
denke, sobald man wirklich am System "herumfrickeln" möchte gibt es 
bessere Distributionen, welche das Ganze einfacher gestalten und bei 
denen sich die vom Macher betriebene Politik nicht ganz so stark in den 
Weg stellt wie es z.B. bei Ubuntu der Fall ist.

Nennen möchte ich: Arch Linux, Gentoo und LFS (Linux From Scratch). Ganz 
klar: Alle drei sind "fortgeschrittene" Distributionen, die einen 
Anfänger bzw. Umsteiger sicherlich überfordern. Hat man aber das nötige 
Know-How, dann bieten sie einfach genau das was man will: Möglichst 
unverfälschte Software (Stichwort: Upstream), welche möglichst zeitnah 
bereit gestellt wird. Vor allem der "Build Process" also das Erstellen 
von Packages aus den ursprünglichen Quellen ist bei Arch und Gentoo sehr 
viel einfacher (und mächtiger) als bei Debian Derivaten à la Ubuntu.

Übrigens: Wenn du wirklich im Embedded Bereich anfangen willst eignet 
sich LFS ganz hervorragend dazu herauszufinden wie die einzelnen 
Komponenten bei einem System zusammenarbeiten. Dieses Wissen lässt sich 
dann auch relativ einfach auf Embedded Devices ummünzen. Idealerweise 
hantierst du damit aber "bloß" in einer virtuellen Machine herum, dann 
hast du über das Hostsystem nämlich immer die Möglichkeit dir 
Informationen zum aktuellen Schritt/Problem zu beschaffen ;).

von Joachim D. (Firma: JDCC) (scheppertreiber)


Lesenswert?

Welche Vorteile bietet eigentlich ein OS auf eine Mikrocontroller ?

Programmieren kann ich den ja auch direkt in C oder Assembler. Dinge
wie Benutzerverwaltung, Zugrifsrechte oder ein Filesystem sind für
normale Anwendungen ja eigentlich kaum notwendig. Bei komplexeren
Systemen (zB Fritzbox) sehe ich das ein ... Was bringt das gegenüber
einer "direkten" Programmierung ?

von Mattes (Gast)


Lesenswert?

Ich habe mir am WE mal Fedora eingerichtet, auch im Bezug auf den 
Raspberry Pi den ich mi evtl kaufen möchte.
Also mir gehts am Anfang halt nur darum auf einem Embedded Linux Board 
eine LED zu schalten und Taster einzulesen

von _\|/_ (Gast)


Lesenswert?

Zum Einstieg in embedded Linux kann ich dir das hier empfehlen:

http://cross-lfs.org

Es gibt auch fertige Distributionen speziell für embedded Linux:

http://www.angstrom-distribution.org

Ich würde das CrossLFS empfehlen. Ohne ein komplettes Verständnis, wie 
ein Linux eigentlich funktioniert, kommst du bei Problemen nicht weiter.

von Unlucky2012 (Gast)


Lesenswert?

Joachim Drechsel schrieb:
> Welche Vorteile bietet eigentlich ein OS auf eine Mikrocontroller ?
Ein OS bietet mehr als die von dir genannten Feature. Insbesondere halt 
auch eine (hoffentlich) vernünftige Prozessverwaltung. Durch 
Time-Slicing und Scheduler wird scheinbare Parallelität (bei 1-CPU 
Systemen) oder eben sogar echte Parallelität (bei 
Mehrkern-Architekturen) gewährleistet.

Bei Mikrocontrollern hat man halt das Problem, dass ein vernünftiges 
Betriebssystem komplex und groß ist. Das findet auf gewöhnlichen 
Mikrocontrollern halt nur bedingt Platz. Außerdem lassen sich solch 
komplexe System auch nicht unbedingt einfach testen.

Übrigens sind Filesysteme bei Mikrocontrollern doch öfter von Nöten als 
gedacht. Zumindest gibt es hier mehr als nur ein Projekt, bei welchem 
man FAT und ähnliches nachimplementiert.

Mattes schrieb:
> Also mir gehts am Anfang halt nur darum auf einem Embedded Linux Board
> eine LED zu schalten und Taster einzulesen
Klar, damit kann man anfangen, aber letztendlich braucht es dafür kein 
Linux ;). Das geht auch mit einem Mikrocontroller (bzw. sogar ohne ;)).

von Joachim D. (Firma: JDCC) (scheppertreiber)


Lesenswert?

Unlucky2012 schrieb:
> Ein OS bietet mehr als die von dir genannten Feature. Insbesondere halt
> auch eine (hoffentlich) vernünftige Prozessverwaltung. Durch
> Time-Slicing und Scheduler wird scheinbare Parallelität (bei 1-CPU
> Systemen) oder eben sogar echte Parallelität (bei
> Mehrkern-Architekturen) gewährleistet.

Ab welcher Hardware lohnt sich der Aufwand ?

Windows, Linux etc. sind ja als EWS ausgelegt, also Mädchen für Alles.
Zentraler Bestandteil eines OS ist ja Starten und Verwalten von
Prozessen - auf einem ATTiny2313 macht das im Prinzip ja der Reset-
Vektor.

Mit einer Maschine mit viel Speicher etc. brauche ich ja noch kein
Filesystem, bekomme aber einiges drauf (auch ein einfaches OS).

Wo wäre da die Grenze ab der sich ein OS lohnt ? Oder gibt es da
feste Kriterien ?

(Sorry. Ich kenne nur den Tiny und 6502, sonst nur PC-Erfahrung. Linux
kann ich installieren - das war's dann aber auch ;)

von 123 (Gast)


Lesenswert?

Ich definiere mal OS im embeded bereich für mich so. Eine lose sammlung 
von rotinen für die Mehrläufige Programmierung und deren 
Synchronisationsmittel.

Mehrläufig: Threads, Prozesse, ... je nach dem wie man sie nennen will. 
In Kleinen systemen eher Threads vergleichbar, da es keine MMU gibt die 
die Prozesse vor gegenseitigen Speicherzugriffen schützt. Jeder Thread 
hat zugriff auf den ganzen speicher.

Synchronisationsmittel: Maseges, Semaphoren, Queues, ... alles was man 
so braucht um die threads synchron zu halten und zwischen ihnen zu 
kommunizieren. Je nach OS können das verschiedene sachen sein. teilweise 
auch sehr spezielle dinge die es so nicht grossen os gibts.

wozu man sowas braucht? es gibt aufgaben da braucht man sowas nicht 
problem wird durch eine einfache loop erschlagen, in irgendwelche irqs 
ausgelagert.  und es gibt sachen da währe es sinvoll, bzw vorteilhaft 
sowas zu verwenden.
z.B. auf Tasten input warten, auf dem display irgend was animieren, 
zusätzlich noch nen stepper drehen, auf der RS232 auf input warten, über 
SPI zyklisch irgend was wegschreigen, ...

von Unlucky2012 (Gast)


Lesenswert?

Ich glaube kaum, dass dir jemand genaue und konkrete Werte liefern kann, 
ab wann sich ein Betriebssystem lohnt. Das kann man wohl nur allgemeiner 
beantworten. Und eine solche Antwort würde wohl eher lauten: Es kommt 
auf die Anforderungen an.

Spontan und kaum durchdacht würde ich sagen, dass man über den Einsatz 
eines Betriebssystems erst nachdenken sollte, wenn man weiß, dass man 
mehrere Prozesse benötigt, welche sich nicht auf unterschiedliche 
Mikrocontroller aufteilen lassen, beispielsweise ein multimediales 
System.

Und diverse Projekte hier im Forum zeigen, dass auch solche Systeme sich 
mit den klassischen Formen der Mikrocontroller-Programmierung in den 
Griff bekommen lassen.

Übrigens gibt es hier im Forum schon den ein oder anderen Ansatz für 
Betriebssysteme auf Mikrocontrollern. Meiner Einschätzung nach handelt 
es sich aber mehr oder weniger um Proofs-of-Concept bzw. "Just for Fun" 
Projekte. Produktiv einsetzen würde ich wohl keines davon.

Deinen Vergleich zwischen Betriebssystem und dem Reset-Vektor verstehe 
ich nicht so ganz. Der "Reset-Vektor" ist ja bloß eine Adresse, welche 
beim Neustart "angesprungen" wird. Da wäre wohl eher ein Vergleich mit 
dem MBR (Master-Boot-Record) bei einem klassischen PC richtig.

Ein Betriebssystem, welches "echte" Prozessverwaltung anbietet, bietet 
viel mehr als nur die Möglichkeit das komplette System neu zu starten. 
Hier kann man - je nach Implementierung - einzelne Prozesse starten, 
stoppen, auslagern, einlagern, warten lassen, etc. Im Idealfall gibt es 
dann noch ein Threadkonzept, sodass einzelne Prozesse zum Teil auch 
parallelisiert werden können. Ein Betriebssystem bietet dann auch noch 
die Möglichkeit der Kommunikation zwischen den Prozessen an, z.B. 
Speicher- bzw. Nachrichtenbasiert.

Wie schon gesagt: Bei den typischen Mikrocontrollern wäre ein 
vernünftiges Betriebssystem einfach nicht unterzukriegen. Weder vom 
Flash her, noch vom Arbeitsspeicher. Außerdem fehlt Hardware, welche 
sich bei anderen Architekturen etabliert hat, wie z.B. ein Interrupt 
Controller, um das Ganze brauchbar implementieren zu können.

Des Weiteren ist es ein um Größenordnungen komplexeres Problem, sobald 
man Echtzeit-Anwendungen hat. Während man bei einem Mikrocontroller 
"recht" einfach sicherstellen kann, dass die Verarbeitung schnell genug 
passiert, ist das bei einem (komplexen) Betriebssystem nicht mehr der 
Fall, weil im Hintergrund haufenweise andere Prozesse laufen, die für 
das Wohl des Systems sorgen. I.d.R. lässt sich die Reihenfolge, in 
welcher diese bearbeitet werden nicht vorher bestimmen. Hier sind dann 
die Worst-Case Szenarien (nämlich das so ziemlich alles dazwischen 
funkt, was dazwischen funken kann) einfach viel schlimmer, als bei einem 
"einfachen" Mikrocontroller, wo man i.d.R. mit einigen an einer Hand 
abzählbaren Interrupts arbeitet.

von Joachim D. (Firma: JDCC) (scheppertreiber)


Lesenswert?

Unlucky2012 schrieb:
> Deinen Vergleich zwischen Betriebssystem und dem Reset-Vektor verstehe
> ich nicht so ganz.

Er hinkt auch ein wenig. Prinzipiell startet der Reset-Vektor aber
auch einen Task.

Zusammenfassend liegt die Grenze, ab der sich ein OS lohnt (zB um die
Komplexität der HW/SW in den Griff zu bekommen bzw die Programmierung
zu vereinfachen) bei einer Mindesthardware.

Ich vermute, da gibt es dann eine finanzielle Abwägung (zusätzliche
HW-Kosten für den Einsatz eines OS gegenüber den Mehrkosten für die
Programmierung) bei Einsatz billigerer Hardware.

von 123 (Gast)


Lesenswert?

Kleine OS systeme brauchen nicht wirklich viel an resourcen. ein paar KB 
flash und ein paar kB ram.

Nach kurzem Google, für die AVRs z.B. FemtoOS 1-4K Flash 2K ram

von Mattes (Gast)


Lesenswert?

Es gibt ja jetzt einige Antworten aber wir sind etwas vom Thema 
abgekommen.

Der Grund warum ich in Embedded Linux einsteigen will ist, dass es mich 
zu einem interessiert und ich gern später in diesem Bereich arbeiten 
würde. Daher ist es sicherlich nicht verkehrt, wenn man ein paar 
Projekte vorzeigen kann.

von Wooog (Gast)


Lesenswert?

_\|/_ schrieb:
> Ohne ein komplettes Verständnis, wie
> ein Linux eigentlich funktioniert, kommst du bei Problemen nicht weiter.

Ja, genau, mann muss den gesamten Kernel, alle Programme und Daemons bis 
auf das letzte Byte genau kennen, ansonsten kommt man unter Linux nicht 
weiter.

Sorry, aber das ist einfach nur unsinniges, elitäres Gehabe. So fern er 
nicht gerade einen Server ins Internet stellen will, reichen auch ein 
paar Grundlagen, so dass er prinzipiell klar kommt. Und bei echten 
Problemen ist die Community mehr als hilfsbereit.

von Unlucky2012 (Gast)


Lesenswert?

Wooog schrieb:
> Sorry, aber das ist einfach nur unsinniges, elitäres Gehabe.
Naja, so abwegig finde ich das gar nicht. Klar muss man nicht "jedes 
Byte" kennen, aber man sollte schon wissen wie die einzelnen Systeme und 
Komponenten funktionieren und miteinander kommunizieren.

Das Installieren bzw. Betreiben einer Distribution wie Ubuntu jedenfalls 
vermittelt dieses Wissen wohl nicht. Daher wurde ja oben auch auf LFS 
(bzw. CrossLFS) verwiesen.

von abc (Gast)


Lesenswert?

und es geht hier weder um Desktop noch um server.

Bei embedded sollte man schon wissen was man da tut. wie man bootet, was 
man an diensten braucht, in welcher reihenfolge diese zu starten sind, 
...

und embedded heist zumindest sehr oft auch am kernel hand anlegen zu 
müssen.
Welche treiber brauch ich  will ich  muss ich haben. als modul oder im 
Kernel, ggf an welchem pin hängt was dran, fehlende featers 
nachimplementieren / anpassen, ...

von lanai (Gast)


Lesenswert?

Mattes schrieb:
> Der Grund warum ich in Embedded Linux einsteigen will ist, dass es mich
> zu einem interessiert und ich gern später in diesem Bereich arbeiten
> würde. Daher ist es sicherlich nicht verkehrt, wenn man ein paar
> Projekte vorzeigen kann.
Du könntest auch mit dem Gnublin anfangen.
Beitrag "GNUBLIN www.gnublin.org"
Da wird auch aktiv hier im Forum entwickelt. Der Raspberry 
Pi/Beagle-Board/Panda-Board/Mini6410/STM32-Discovery/weiß-der-Geier kann 
auch noch später kommen. ;-)

Lies dir den Thread mal durch und wann es den Raspberry Pi gibt, weiß 
wohl keiner. Und vor allem weiß man nicht wann man ihn bekommt.

von Mattes (Gast)


Lesenswert?

Ja das habe ich schon alles gelesen. Wie gesagt ich arbeite gerade etwas 
mit Fedora um mir die Grundlagen im Umgang mit einem Linux-System zu 
erarbeiten.

von W.S. (Gast)


Lesenswert?

Joachim Drechsel schrieb:
> Welche Vorteile bietet eigentlich ein OS auf eine Mikrocontroller ?

Erstmal gar keinen Vorteil... es sei denn:

a) das betreffende BS bietet Dienste, die man sonst nur mühselig zu 
implementieren imstande ist, bzw. die mehr Mannstunden erfordern, als 
man selber hat. Beispiele: ein Filesystem bieten, ein GDI bieten das mit 
komplizierter Grafikhardware umgehen kann, komplizierte Dinge für einen 
erledigen wie TrueType skalieren, Jpeg dekodieren und skalieren, ein 
Menü mit Z-Ordnung bieten, eine Eventverwaltung bieten, Standardhardware 
(V24, USB usw.) verwalten und so weiter. Das sind alles Dinge, die man 
auch selber machen kann, aber die in Form eines sauber auf die 
betreffende Hardware abgestimmten BS einem sehr viel Arbeit abnehmen, so 
daß man sich auf sein eigentliches Problem konzentrieren kann.

b) wenn man zu blöd ist, seine Firmware so zu planen und so zu 
schreiben, daß sie funktioniert ohne sich selber zu blockieren, dann ist 
so ein Scheduler mit preemptivem Multitasking offenbar hilfreich.

Man kann dabei aber auch kapitale Böcke schießen und darauf sogar noch 
stolz sein. Lest euch mal Adam Dunkels (Contiki et. al.) tolle Erfindung 
der "Protothreads" durch. Ein Tollhaus.

Und nochwas speziell zu Linux:
_\|/_ schrieb:
> Ohne ein komplettes Verständnis, wie
> ein Linux eigentlich funktioniert, kommst du bei Problemen nicht weiter.

Deshalb ist ja auch Windows CE besser, weil eben besser durchdacht: Man 
braucht eben nur das API zur Kenntnis zu nehmen, also die dokumentierte 
Schnittstelle zur Anwendungssoftware. das "komplette Verständnis" wie 
das BS eigentlich funktioniert, also wie es all die Aufgaben erledigt, 
die dahinter stecken, braucht man nicht zu pauken. Es gibt das API, 
worauf man sich verlassen kann. Das ist bei Linux alles anders, da wird 
vom Anwendungsprogrammierer verlangt, daß er sich um die Innereien des 
BS Gedanken machen soll. Eigentlich ne Dreistigkeit, sowas. Ein BS 
sollte seinem Benutzer (wozu vor allem erst mal der 
Anwendungsprogrammierer zählt) Dienstleistungen und Sicherheit in Form 
eines verläßlichen API bieten - und ihn nicht dazu auffordern, erstmal 
alle Innereien verstehen zu sollen.

W.S.

von Karol B. (johnpatcher)


Lesenswert?

W.S. schrieb:
> Es gibt das API,
> worauf man sich verlassen kann. Das ist bei Linux alles anders, da wird
> vom Anwendungsprogrammierer verlangt, daß er sich um die Innereien des
> BS Gedanken machen soll.
Ich lehne mich mal ein wenig aus dem Fenster: Warum sollte sich ein 
Anwendungsprogrammierer im Falle von Linux "Gedanken um die Innereien 
des BS" machen? Ich behaupte ja mal, dass dies z.B. im Falle von Android 
nicht der Fall ist. Und mir ist klar, dass hier noch Java (bzw. eine 
Abwandlung davon) mit von der Partie ist.

Aber ich glaube du hast hier den Fehler gemacht und den 
Anwendungsprogrammierer mit demjenigen verwechselt, der das Ganze System 
zusammenbaut und das Betriebssystem darauf zum Laufen bringt. Der 
Threadersteller ist aber genau daran interessiert. Da muss man wohl auch 
auf Seiten von Windows CE entsprechendes Vorwissen mitbringen. Und ich 
behaupte jetzt einfach mal, dass es nicht unbedingt transparenter als im 
Falle Linux ist.

Der Unterschied für den Anwendungsprogrammierer liegt höchstens darin, 
dass man im Falle von Linux (bzw. *nix) halt direkt mit den 
entsprechenden System Calls arbeitet, während man bei Windows CE über 
die von Microsoft bereitgestellt API auf Ressourcen, die das 
Betriebssystem verwaltet, zugreift. Wie diese API letztendlich 
implementiert ist, spielt dann keine Rolle mehr. Diese kann sich sogar 
problemlos von Zeit zu Zeit (bzw. von Version zu Version) ändern ohne 
das Verhalten von Anwendungen (fundamental) zu beeinflussen. Dem 
Anwendungsprogrammierer dürfte das wohl ziemlich egal sein, solange es 
eine vernünftige Dokumentation gibt. Hinzu kommt, dass viele 
Anwendungsprogrammierer sowieso weder mit der von Windows 
bereitgestellten API noch mit System Calls im Falle von Linux zu tun 
haben. Das wird bei entsprechenden Hochsprachen einfach 
"wegabstrahiert".

von W.S. (Gast)


Lesenswert?

Karol Babioch schrieb:
> Dem
> Anwendungsprogrammierer dürfte das wohl ziemlich egal sein,

Wie bitte?
Du hast ne seltsame Sichtweise, die ich nicht teile. Vielleicht liegt 
das an deiner Auffassung davon, was ein Anwendungsprogrammierer ist. 
Vielleicht meinst du Leute, die im Wesentlichen nur Scripte schreiben - 
oder etwas mit den in diverse Anwendungen eingebauten 
Programmiermöglichkeiten machen, wie z.B. VBA für MS-Office-Programme 
oder ULP für Eagle oder LUA und so weiter.

Ich rede hier von Anwendungen wie z.B. die Betriebssoftware für nen 
Spektrumanalyser oder ein Industriemeßgerät irgendeinen speziellen Zweck 
und dergleichen. Vor etwa 10 Jahren gab's mal ne Austauschaktion bei 
Agilent: Da konnte man sich seinen Oszillografen updaten lassen: von 
Win98 auf WinXP. Bloß damit du mal nen Eindruck bekommst, wo überall 
Windows drin ist und was die dort aufsetzende Anwendungsprogrammierung 
beinhaltet.

Es ist hier zwar offtopic, aber ich erwähne es doch, damit du verstehst, 
was ich meine: Ich hatte vor vielen Jahren mir eine Applikation mit EVC 
für meinen Jornada geschrieben (WinCE3) und exakt dieses Programm - 
auf linuxisch dasselbe Binary, also exakt dieselbe EXE läuft anstandslos 
auf dem Colibri-Board (mit embedded Windows 7 drauf) von der letzten 
Messe. Auf allen Versionen zwischendurch (WinCE 4.2, 5.0, WinMobile 6.5) 
läuft es auch. Der Grund dafür ist, daß das API von Windows CE bzw. 
Mobile eben ein verläßliches API ist, egal wie sehr sich das Innere des 
BS inzwischen weiterentwickelt hat. Naja, sowas setzt natürlich einen 
gewissen Weitblick bei der Definition des API voraus - bei Microsoft 
vorhanden, bei der Linuxgemeinde nicht.

Ich versuche es nochmal ein bissel zugespitzt und provokativ:
Zeig mir doch bitte mal die Datei "linux.h", mit deren Einbindung ich 
dann eine - selbstverständlich grafische - Anwendung schreiben kann, die 
auf allen Linuxen gleichermaßen gut läuft, egal ob dieses Linux nun 10 
Jahre alt ist oder brandneu oder ob grad KDE oder Gnome oder ne andere 
Oberfläche dabei ist. Geht nicht? Richtig, geht nicht!

Natürlich hat man es als Anwendungsprogrammierer mit dem API 
(Application Program Interface) des BS zu tun - und zwar sehr. Selbst 
wenn man mit Delphi oder Visual Basic Anwendungen schreibt, kommt man 
nicht um das API herum - es sei denn, man schreibt nur sehr simple 
Dinge, die kaum über das "Hello World" hinauskommen. Das Framework nimmt 
einem ne Menge an Oberflächengestaltung und Ereignisbehandlung ab, aber 
nicht den eigentlichen Nutzinhalt.

Aber zurück zum Thema der embedded (RT)OS'se:
Entweder ist ein Betriebssystem sehr viel mehr als nur so ein 
jämmerlicher Scheduler, dann bietet es dem Schreiber der Firmware für 
das betreffende Gerät auch Leistungen, die den Einsatz lohnend machen
 - oder -
es ist eben nur ein mehr oder weniger jämmerlicher Scheduler, der mehr 
an Aufwand erzeugt als er an Nutzen bringt. Ich denke, wir hätten's 
damit abgehandelt, was die RTOS'se betrifft.

Tja, und zum eigentlichen Thema von Mattes: wenn es ne klare und 
überschaubare Sache wäre mit dem Embedded Linux, dann würde ich mich 
auch dafür interessieren. Klar heißt in diesem Fall: Läßt sich mit Keil 
für ARM's oder Softune für Fujitsu's unter Windows compilieren und kommt 
mit dokumentiertem API und ner Doku über das zu schreibende BSP nebst zu 
schreibendem Loader - eben so wie WinCE. Auf den Platformbuilder könnte 
man ja notfalls verzichten und alles zu Fuß tun (wie unkomfortabel!) 
aber sowas wie Shellskripte oder gar zwangsweise Benutzung von GNU sind 
außen vor. Ich hatte diese bescheuerte Diskussion schon mal mit den 
Jüngern von ECOS, die auch die große Klappe hatten, aber es immer noch 
nicht fertig gebracht haben, die Compiler von Fujitsu benutzen zu 
können.

W.S.

von Joachim D. (Firma: JDCC) (scheppertreiber)


Lesenswert?

Mit dem Windows-API habe ich genug zu tun.

Es dürfte, sollten da mal die Quellen offengelegt werden, den Tod
der Open-Source-Bewegung begründen (die Junks lachen sich tot).
Was MS da zusammenstoppelt ist schlicht ein Witz.

Soweit es irgendwie geht vermeide ich Windows-API-Aufrufe, den
irgendwann einmal fälligen Umstieg auf Linux oder ein andereres OS
verbaue ich mir möglichst nicht.

Zum Thema IDE ist eigentlich nur zu bemerken, ein makefile tut es
völlig. Ähnlich der Compiler, er hat den Code zu übersetzen - sonst
nichts. Ich verwende C als Werkzeug um meine Ideen maschinenkompatibel
zu machen, mehr macht das nicht.

Das ganze Bling-Bling drumherum, wer's mag ...

Richtig nervig sind allerdings falsche bis sehr lässige Dokus über
APIs. Da tut sich MS auch nicht gerade hervor.

Mit Linux habe ich mal gespielt, bin aber da (leider) noch nicht so
weit da mitreden zu können. Es ist aber Opensource, dh ich habe
zumindest die theoretische Chance mal nachzusehen was ein Aufruf
überhpaut macht. Ich finde, die MS-Sources sollten zwangsweise
veröffentlicht werden (schon aus Sicherheitsgründen. Weiß wer, was
so in der "Cloud" passiert ?).

von Karol B. (johnpatcher)


Lesenswert?

W.S. schrieb:
> Vielleicht liegt
> das an deiner Auffassung davon, was ein Anwendungsprogrammierer ist.
Ich gebe zu, dass dieser Begriff sehr weit gefasst werden kann. 
Allerdings wirst du nicht von der Hand weisen können, dass eben auch der 
"typische" Android-App-Entwickler ein Anwendungsprogrammierer ist. Und 
der muss nun mal nicht wirklich etwas vom Betriebssystem verstehen, um 
eine "Standard"-App zu schreiben. Klar kann man den 
Anwendungsprogrammierer auch am anderen Ende ansiedeln und als jemanden 
definieren der Bibliotheken für Hochsprachen schreibt. Spätestens dann 
bedarf es Wissen um das Betriebssystem.

W.S. schrieb:
> Der Grund dafür ist, daß das API von Windows CE bzw.
> Mobile eben ein verläßliches API ist, egal wie sehr sich das Innere des
> BS inzwischen weiterentwickelt hat.
Ich formuliere es mal ein wenig produktiv und als Frage: Vielleicht hat 
sich das Innere des BS gar nicht so viel weiter entwickelt ;).

W.S. schrieb:
> Naja, sowas setzt natürlich einen
> gewissen Weitblick bei der Definition des API voraus - bei Microsoft
> vorhanden, bei der Linuxgemeinde nicht.
Das ist der Satz in deinem Beitrag mit dem ich meine größten Probleme 
habe. Auch bei Linux verändert man nicht aus Spaß an der Freude die API 
(sofern man das so nennen mag). Allerdings ist man nicht so versteift 
darauf, die Welt als Konstante zu definieren wie es eben Microsoft tut. 
Die Leute aus Redmond sind doch tatsächlich der Meinung, dass sie 
plattformübergreifend (Windows, Windows CE und was es noch so für 
Auswüchse im Laufe der Geschichte Microsofts gab) jedem eine in Stein 
gemeißelte API anbieten können.

Das ist - zumindest meiner Erfahrung nach - einfach nicht möglich sobald 
ein System komplexer wird. Und ein Betriebssystem ist nun mal verdammt 
komplex. Klar kann man durch entsprechende Weitsicht unnötige Änderungen 
auf ein Minimum begrenzen, aber ab einem gewissen Punkt hindert es 
einfach nur noch den Fortschritt. Ich denke, wenn man sich die 
Entwicklung von Windows im Vergleich zu Linux ansieht (und ich rede 
jetzt bloß vom Kernel), dann kann Linux in puncto unterstützte 
Architekturen und angebotene Features über die Zeit hinweg ganz getrost 
als Gewinner bezeichnen. Klar geht damit ab und zu ein Bruch der API 
einher.

Dafür gibt es im Vergleich zu Windows aber echten und schnelllebigen 
Fortschritt innerhalb des Kernels. Als Beispiel sei das Dateisystem 
genannt. Während Windows nach wie vor auf NTFS als Standarddateisystem 
setzt, welches laut Wikipedia bereits 1993 (!) eingeführt worden ist, 
hat sich bei Linux einiges getan. Erst mit Windows 8 wird es ein neues 
Dateisystem geben. Und man mag es kaum glauben: Damit einher geht ein 
Bruch in Sachen Kompatibilität. Und das sogar bei einem "stinknormalen" 
Dateisystem, welches sich über VFS 
(https://en.wikipedia.org/wiki/Virtual_file_system) wunderbar 
abstrahieren lässt.

Und zum Thema Microsoft und Weitsicht. Microsoft hat es in seiner 
unendlichen Weitsicht doch tatsächlich geschafft, dass das komplette 
Grafiksystem im Kernel-Modus läuft, um sein damals schon langsames 
Betriebssystem "aufzupeppen". Die Moral von der Geschichte: Jede Menge 
Exploits in Form von "manipulierten" Grafikdateien. Durch die simple 
Darstellung eines Icons kann der komplette PC "übernommen" werden. Nicht 
zuletzt wurde das z.B. von Stuxnet ausgenutzt. Gerade in Bezug auf 
Security kann man Microsoft wohl keine besondere Weitsicht zuschreiben.

Auch wenn du hier versuchst uns Konstanz als das Beste überhaupt unter 
zu jubbeln und ich zugeben muss, dass eine gewisse Konstanz eine gewisse 
Attraktivität ausstrahlt, kann eben niemand (nicht einmal Microsoft) in 
einem so schnelllebigen Umfeld wie der Informatik (insbesondere unter 
dem Aspekt der Betriebssysteme) eben jene Konstanz gewährleisten ohne 
sich lächerlich zu machen. Dafür bräuchte man Glaskugeln um in die 
Zukunft blicken zu können. Und selbst das würde nicht viel bringen. 
Viele der heute eingesetzten Techniken wären noch vor einigen Jahren 
überhaupt nicht denkbar gewesen. Unter anderem aufgrund von fehlendem 
Arbeitsspeicher, fehlender Rechenkapazität und vielem mehr.

Wer hätte schon vor 20 Jahren darauf gesetzt, dass jeder x-beliebige 
Rechner etliche Gigabyte an RAM mitbringt und eine einzige Applikation 
mehr als 4 Gigabyte an Arbeitsspeicher in Anspruch nehmen möchte. 
Microsoft jedenfalls nicht, sonst hätten sie nicht 2 Gigabyte pro 
Prozess für das Betriebssystem reserviert, sodass dem eigentlichen 
Prozess nur 2 Gigabyte übrig bleiben. Erst durch einen nachträglichen 
Eingriff lässt sich dieses Verhältnis auf 3 zu 1 reduzieren. Inwiefern 
also nennst du das Weitsicht?

Da gefällt mir der evolutionäre Verlauf von Linux deutlich besser. 
Manchmal kommt es eben zu Änderungen. Die lassen sich - davon bin ich 
fest überzeugt - auch gar nicht verhindern. Sonst behauptet man etwas 
von sich, dem man nicht gerecht werden kann.

W.S. schrieb:
> Zeig mir doch bitte mal die Datei "linux.h", mit deren Einbindung ich
> dann eine - selbstverständlich grafische - Anwendung schreiben kann, die
> auf allen Linuxen gleichermaßen gut läuft, egal ob dieses Linux nun 10
> Jahre alt ist oder brandneu oder ob grad KDE oder Gnome oder ne andere
> Oberfläche dabei ist. Geht nicht? Richtig, geht nicht!
Vermutlich hast du recht. Das könnte schwierig bis unmöglich werden. Auf 
der anderen Seite: Wieso sollte man aktuelle Systeme und "uralte" 
Systeme gleichermaßen unterstützen. In den zehn Jahren hat sich in 
Sachen Hardware eben einiges getan. Ich z.B. finde Entscheiden 
"Altbalast" abzuwerfen i.d.R. gut. So unterstützt das neuste GNOME bzw. 
KDE eben nicht mehr alle Grafikkarten. Dafür kann ich 
Designentscheidungen treffen, die mir sonst verwehrt blieben. Unter 
anderem eben 3-D Funktionen von Anfang an.

Übrigens ist es im Falle Windows doch nicht anders. Jede halbwegs 
aktuelle Anwendung benötigt mindestens Windows XP. In vielen Fällen dann 
auch noch in gepatchter Form, SP 2 aufwärts. Wenn alles so utopisch 
wäre, wie du es uns hier aufzeigst, dann müssten doch auch sämtliche 
Vorgänger unterstützt werden ;).

W.S. schrieb:
> Natürlich hat man es als Anwendungsprogrammierer mit dem API
> (Application Program Interface) des BS zu tun - und zwar sehr.
Wie gesagt: Es kommt wohl auf die Sichtweise bzw. Definition eines 
Anwendungsprogrammierers an. Sobald man Sprachen wie Java und 
Skriptsprachen wie z.B. Python nutzt, wird eben vieles (bzw. alles) 
verborgen. Und gerade mit diesen beiden Sprachen lässt sich doch einiges 
anstellen.

Übrigens möchte ich noch anmerken, dass Linux das mir einzig bekannte 
Betriebssystem ist, welches von "ganz klein" bis "ganz groß" eingesetzt 
wird. So hat es seinen festen Platz in der Welt der eingebetteten 
Systeme gefunden. Unter anderem eben in unseren Smartphones und Routern. 
Platz hat es gefunden auf unseren PCs. Weiter geht es über "normale" 
Server bis eben hin zum High-Performance Computing (HPC). Und das alles 
mit der selben Codebasis, im Prinzip ganz ungewollt und vor allem ohne 
Zwang.

Das nenne ich persönlich Erfolg! Vor allem aber sagt es mir, dass Linux 
genau das richtige Entwicklungsmodell umsetzt.

Windows hingegen hat seinen Stammplatz auf PCs. Selbst bei "normalen" 
(d.h. typischen) Servern wird Windows schon stark (bis komplett) von 
anderen dominiert (hauptsächlich eben Linux). Im HPC Bereich hat 
Microsoft absolut gar nichts zu bieten. Windows HPC Server ist im Besten 
Fall ein Witz. Ernst nehmen kann man es jedenfalls nicht. Und selbst das 
von dir so gelobte Windows CE teilt mit dem "großen" Windows nicht 
wirklich etwas - zumindest aber keine gemeinsame Codebasis.

Und ich will jetzt hier Linux gar nicht besonders toll und super 
aussehen lassen. Aber deine Aussagen bedurften einfach einiger 
Gegenargumente.

Was die Vielfalt von Werkzeugen in der Open-Source Welt angeht: Gerade 
das ist doch das Schöne. Mag sein, dass es den Einstieg erschwert, aber 
dafür bieten sich halt Möglichkeiten, die man mit "Schema F" nicht 
hinbekommt. Ich jedenfalls halte den o.g. Umstand, dass man Linux 
"überall" findet für keinen Zufall!

von abc (Gast)


Lesenswert?

wer linkt den unter linux direkt gegen die linux.h / pardo includiert 
diese?

vermutlich die wenigsten. ausser du willst wirklich irgend welche hw 
mehr oder weniger direkt ansprechen. dann sind vermutlich noch einige 
andere header files notwendig sowie kentnisse darüber was der treiber da 
eigentlich haben will.

unter linux heist das zauberwort posix.

und das Programme von vor 10 jahren ohne murren laufen spricht auch 
nicht gerade für sich. kann nur zwei (drei) sachen bedeuten. Die API hat 
sich in der zeit nicht weiterentwickelt, und nichts neues ist 
dazugekommen. Es wurden immer nur dazugepackt und versucht auf teufel 
komm raus an den alten ggf mitlerweile total überholten verkorksten 
schnittstellen am laufen zu halten. oder deine Anwendung setzt nur auf 
den teil der API auf der sich in der zeit nicht verändert hat.

und die schnittstellen M$ kenn ich nur vom Desktop. aber dort gibt es 
teils kleine aber feine unterschiede zwischen den Versionen (z.B. Vista 
 W7 bzw 32  64)

von Karol B. (johnpatcher)


Lesenswert?

Joachim Drechsel schrieb:
> Es dürfte, sollten da mal die Quellen offengelegt werden, den Tod
> der Open-Source-Bewegung begründen (die Junks lachen sich tot).
> Was MS da zusammenstoppelt ist schlicht ein Witz.
Auch wenn ich mich mit Windows und der API viel zu wenig auskenne, 
gefällt mir die Vorstellung doch recht gut ;).

Joachim Drechsel schrieb:
> Richtig nervig sind allerdings falsche bis sehr lässige Dokus über
> APIs. Da tut sich MS auch nicht gerade hervor.
Wie gesagt: Ich habe kaum Erfahrung mit Windows und der dazugehörigen 
API. Aber ich habe kein Problem damit Microsoft einzugestehen, dass ihre 
Dokumentation brauchbar ist. Jedenfalls habe ich keine negativen 
Erfahrungen damit gemacht. Ganz im Gegenteil.

Joachim Drechsel schrieb:
> Ich finde, die MS-Sources sollten zwangsweise
> veröffentlicht werden (schon aus Sicherheitsgründen. Weiß wer, was
> so in der "Cloud" passiert ?).
Das ist aber ein fundamental anderes Problem. Was in der "Cloud" 
passiert weißt du sowieso nicht. Ob da nun Open-Source-Software 
eingesetzt wird oder nicht. Aus dieser Perspektive betrachtet ist das 
Modewort "Cloud" sowieso höchst problematisch.

Wobei ich die Grundidee für absolut richtig halte. Gerade bei Behörden 
und ähnlichen Institutionen sollte Open-Source-Software verpflichtend 
sein. Zum Glück gibt es Bestrebungen wie LiMux, welche sich hoffentlich 
über kurz oder lang bezahlt machen und dafür Sorge tragen, dass das 
ganze Thema breiter und öfter diskutiert wird. Die Vorstellung das 
unsere Daten über Systeme laufen, welche nicht überprüft werden können 
(und vor allem dürfen) halte ich in gewissem Maße für angsteinflößend.

von abc (Gast)


Lesenswert?

zur Docu M$: solange es sich um Sachen handelt die jeder braucht kann 
ich da durchaus zustimmen.
sobald es aber exotisch wird fangen die Lücken an. da dient dann nur 
noch ein Kommentar in einer Header file aus dem DDK als hinweis was das 
"ding" bedeuten könnte, bis zu nicht dokumentierten wegen aus dem netz 
irgend ein Problem zu lösen, bis zu kommentaren im netz das man das was 
sich m$ an der stelle gedacht hat leider nicht so funktioniert und man 
das doch am besten gleich vergessen sollte.

von Strubi (Gast)


Lesenswert?

Es gibt seit Jahren ja einige böse Zungen, die wagen zu behaupten, dass 
Windows gar kein OS ist. Wie auch immer, es gibt bei Windows (inkl. CE 
und Konsorten) einige Dinge, die nicht ins Kernel gehören.
Im Konzept eines Kernels gibt es keine "linux.h". Genau die klare 
Trennung von Userspace und Kernel verbietet das. Wie ja schon jemand 
gesagt hat: Stichwort Posix, Filesysteme und ioctls. Meinetwegen auch 
Erweiterungen wie /proc, sys, usw. Ist alles gut dokumentiert, und 
funktioniert seit Jahren um vielfaches portabler als der Microsoft-Kram. 
Ich muss auch nicht anfangen, irgendwelche Plattform Kits zu 
installieren, mit denen der Compiler dann doch nicht richtig tut, nur um 
eine andere ARM-Architektur zu unterstützen.

Es mag geunkt werden, dass unter Linux ein gewisser Wildwuchs an 
grafischen Oberflächen herrscht. Dem gegenüber steht aber wiederum 
Android mit einer sehr klaren API. So kann sich auch jeder entscheiden, 
welches Toolkit für ihn das beste ist und muss sich nicht durch 
Windows-Geschlurf wie MFC einschränken lassen.

Wenn es um Design stabiler Systeme geht, die nicht abstürzen sollen, 
kann ich von WinCE einfach nur abraten. Das Konzept ist aus vieler Sicht 
"broken by design". Vielleicht für einen PC-User nicht von Bedeutung, 
aber für ein medizinisches Gerät schon...

von Leidgeprüfter Linuxuser (Gast)


Lesenswert?

> Wenn es um Design stabiler Systeme geht, die nicht abstürzen sollen,
> kann ich von WinCE einfach nur abraten. Das Konzept ist aus vieler Sicht
> "broken by design". Vielleicht für einen PC-User nicht von Bedeutung,
> aber für ein medizinisches Gerät schon...

Da muss ich aber erst recht von Linux abraten.
Mattes (Gast) - wenn es nicht sein muss, dann mache diskret weiter oder 
spiele etwas mit VM herum. Davon bekommst Du keine grauen Haare...

Embedded Linux als Einstieg - viel Spaß.

von W.S. (Gast)


Lesenswert?

Strubi schrieb:
> Wenn es um Design stabiler Systeme geht, die nicht abstürzen sollen,
> kann ich von WinCE einfach nur abraten.

Nanana, mein Lieber. Mein steinalter Organizer mit WinCE 3.0 drauf läuft 
nun schon seit Jahren ohne Unterbrechung durch und das mit täglicher 
Nutzung einschließlich Ausprobieren von selbstgeschriebenen Anwendungen. 
Die blöde DSL-Box hingegen, wo angeblich ein Linux drin werkelt, muß ich 
gelegentlich mal von der Steckdose trennen, weil sie schlichtweg 
abgestürzt ist. Soviel zum Thema Stabilität.

Ist aber hier nicht das Thema. Wir reden doch eigentlich über das 
Entwickeln von Anwendungen - oder nennen wir es mal lieber Firmware für 
Mikrocontroller. Sowas kann man selten bis nie nativ auf dem Zielsystem 
tun, sondern man benutzt zumeist einen PC, wo die Firmware für das 
Zielsystem geschrieben und übersetzt wird, um dann in das Zielsystem 
"gebrannt" zu werden. Gelle?

Sachlich ist es dabei völig wurscht, ob man dafür nen MAC, nen Windows 
PC, ne HP-Unix-Station oder nen Linux-Rechner benutzt. Hauptsache, man 
hat den/die Compiler für den eigentlichen Code, Linker nebst 
Bibliotheken für das Zielsystem, Ressourcen-Zeug für alles Grafische 
usw. auf der betreffenden Entwicklunsplattform vorhanden. Also, auf 
meinem hier nicht näher bezeichneten Rechner habe ich das alles (von 
Fujitsu) vorhanden. Es müßte also ausreichen, das dokumentierte API des 
gewünschten Betriebssystemes in den Quellen der Anwendung zu benutzen. 
Solche Beiträge wie:
_\|/_ schrieb:
> Ohne ein komplettes Verständnis, wie
> ein Linux eigentlich funktioniert, kommst du bei Problemen nicht weiter.

sind eigentlich nur ne Offenbarung des Pfusches. Wenn ich z.B. auf dem 
Screen ein Rechteck mit Farbe füllen will, dann brauche ich dazu den 
passenden (dokumentierten) API-Aufruf. Wie der im Inneren des BS 
funktioniert, ist Obliegenheit des Betriebssystem-Schreibers. Pfusch 
ist, wenn man ein BS in die freie Wildbahn entläßt, ohne eine saubere 
Schnittstelle nebst deren Doku vorzuhalten.

Kurzum: Aus meiner Sicht ist nicht das "komplette Verständnis", sondern 
nur die verläßliche API-Doku das Wesentliche.

Je mehr Meinungen zu diesem Thema ich hier in diesem Forum sehe, desto 
mehr komme ich zu dem Schluß, daß typische Linuxer die Dinge zu sehr aus 
der Sicht des Rechner-Sklaven sehen. Sagen wir lieber "Administrator" 
dazu, das klingt netter, ist aber exakt dasselbe. Oft wird sogar von 
"Userland" geredet, als ob dies ein ferner Kontinent sei, mit dem man 
nix zu tun hat. Mir ist klar, daß diese Befindlichkeiten aus der 
Unix-Historie kommen, wo zwischen den zahlenden Usern und den (von den 
Usern angeschnarrten) Admis "Legen sie mir mal Band 17 auf" eine dicke 
Betonwand war. Und so wie die User sich einen Dreck scherten darum, wie 
die Admis den Mainframe am Laufen hielten (das hat gefälligst zu 
funktionieren, ist ja teuer genug..) haben die Admis sich nicht um die 
Anwendungen der User gekümmert. Und dieser Geist steckt immer noch drin. 
90% aller Linux-Beiträge in diesem Forum handeln von Innereien des BS, 
aber nicht von Anwendungen. Eigentlich ein trauriges Kapitel.

W.S.

von Lukas K. (carrotindustries)


Lesenswert?

W.S. schrieb:
> Pfusch
> ist, wenn man ein BS in die freie Wildbahn entläßt, ohne eine saubere
> Schnittstelle nebst deren Doku vorzuhalten.
Du Scheinst wohl ein verzerrtes Bild von dem zu Haben was ein 
Betriebssystem ist. Linux ist ein Betriebssystemkern, mehr aber auch 
nicht. Coreutils, Shell, *libc, Toolkits sind gewissermaßen nur 
schmückendes Beiwerk. Dein Beispiel 'Rechteck Malen' hat mit dem OS an 
sich nichts zu tun, es ist auch nicht dessen Aufgabe, Funktionen zum 
Malen von Rechtecken anzubieten. Darum haben sich Grafikbibliotheken zu 
kümmern.
Auf die Qualität der Windows-API wurde hier ja schon mehrfach 
eingegangen.
Wenn http://de.wikipedia.org/wiki/Winapi#Programmbeispiel für dich eine 
gelungene API ist... (OK, ist Win32, CE wird auch nicht besser sein) 
Vergleiche das mal mit dem GTK+-Hallowelt.

Wenn man sich die OS-Sprösslinge der letzten Jahre ansieht:
Android             : Linux
WebOS               : Linux
Bada                : Linux
Meego               : Linux
iOs                 : OS X (BSD)
Blackberry Tablet OS: QNX
WP7                 : Windows CE
Fällt was auf?

Auf der anderen Seite der Datenverbindung sieht die *NIX / nicht 
*NIX-Verteilung ähnlich aus. Wohl nicht ganz ohne Grund.

von Karol B. (johnpatcher)


Lesenswert?

W.S. schrieb:
> Soviel zum Thema Stabilität.
Da habe ich aber ganz andere Erfahrungen gemacht. Meine beiden Windows 
CE Geräte (Dell Axim x51v sowie HTC Blackstone) waren beide "relativ" 
häufig neu zu starten. Zum Einen wurden sie unerträglich langsam, sofern 
man sie mal einige Tage laufen hat lassen, zum Anderen haben sie sich 
auch gerne mal aufgehängt. Beide Geräte hatten übrigens einen 
Reset-Button, welcher mit dem Stylus betätigt werden konnte. Mein 
aktuelles Android Smartphone jedenfalls hat einen solche nicht. Und den 
Akku musste ich auch noch nicht all zu oft herausziehen ;). Auch sind 
meine Router und Access Points (und davon sind hier einige im Betrieb) 
nicht tot zu kriegen. Die haben typische Laufzeiten von einigen hundert 
Tagen. Unterbrochen wird die Laufzeit eigentlich nur durch das Flashen 
von Firmware-Updates.

Wie du schon sagtest: Solche Aussagen sind i.A. nicht viel wert. Da 
bringt jeder seine Vorurteile mit und bewertet das je nach favorisiertem 
System wohl auch ein wenig anders. Angefangen uns Windows als besonders 
stabil zu verkaufen hast aber du. Insofern wollte ich dem Ganzen mit 
meinen Erfahrungen entgegenwirken. Ich wäre mit Vergleichen bezüglich 
der Stabilität ein wenig vorsichtiger. Einfach zu behaupten System "x" 
ist stabiler bleibt genau das was es ist: Eine Behauptung. Dies unter 
objektiven Gesichtspunkten zu beweisen ist dann nämlich gar nicht so 
einfach. Außerdem sagt die Stabilität eines Systems nicht unbedingt 
etwas über die Qualität des Designs aus. Wenn überhaupt, dann sagt es 
etwas über die Qualität der konkreten Implementierung ab. Und ich glaube 
hier braucht sich Linux im Großen und Ganzen nicht zu verstecken.

W.S. schrieb:
> Wir reden doch eigentlich über das
> Entwickeln von Anwendungen - oder nennen wir es mal lieber Firmware für
> Mikrocontroller.
Naja, ursprünglich ging es um das Einarbeiten in Linux im Umfeld von 
Embedded Devices. Das ist schon ein bisschen mehr als "nur" das 
Programmieren von Mikrocontrollern.

W.S. schrieb:
> Solche Beiträge wie:
> _\|/_ schrieb:
>> Ohne ein komplettes Verständnis, wie
>> ein Linux eigentlich funktioniert, kommst du bei Problemen nicht weiter.
>
> sind eigentlich nur ne Offenbarung des Pfusches.
Das ist beim allerbesten Willen nicht nachzuvollziehen. Der 
Threadersteller will wohl - eher oder später - mit eingebetteten 
Systemen auf Basis von Linux umgehen können. Da muss man halt davon 
ausgehen, dass man auch entsprechendes Wissen um Linux hat.

Das wäre im Falle von Windows nicht anders. Wenn ich ein eingebettetes 
System auf Basis von Windows aufbauen will, dann muss ich mich genauso 
mit dem Bootloader-Prozess auseinandersetzen, wissen wie ich Treiber 
schreibe und mit dem Betriebssystem kommuniziere. Wenn ich weiß wie die 
einzelnen Komponenten zusammenspielen, dann erleichtert es das Ganze 
natürlich enorm.

Von reiner Anwendungsprogrammierung jedenfalls war hier nie die Rede. 
Zumindest solange nicht bis du angefangen hast irrwitzige und zum Teil 
falsche Aussagen zu treffen, um uns Windows CE als Wunderwerk der 
Technik zu präsentieren.

W.S. schrieb:
> Kurzum: Aus meiner Sicht ist nicht das "komplette Verständnis", sondern
> nur die verläßliche API-Doku das Wesentliche.
Klar ist eine gute Dokumentation hilfreich. Aber ein Verständnis davon 
zu haben was ganz grundsätzlich ablaufen muss, und wie dies im konkreten 
Fall (zum Beispiel bei Linux) funktioniert hat auch noch niemanden 
geschadet. Die Aussage ist wohl eher so zu verstehen, dass jemand der 
noch nie etwas mit Linux am Hut hatte, ganz bestimmt in Probleme laufen 
wird, wenn er sich an eingebettete Systeme wagt. Das ist im Falle 
Windows auch nicht anders - Dokumentation hin oder her. Zur 
Dokumentation von Microsoft hatte ich ja meinen Teil gesagt. Ich habe 
kein Problem damit einzugestehen, dass diese gut ist. Microsoft hat eben 
das nötige Kleingeld, um Leute dafür einzustellen, dass sie 
Dokumentationen schreiben. Andere, die wohl mehr Erfahrung mit den von 
Microsoft zur Verfügung gestellten Dokumentationen zu tun haben, haben 
diese allerdings auch kritisiert. Dazu kann ich keine kompetente Meinung 
abgeben.

W.S. schrieb:
> Oft wird sogar von
> "Userland" geredet, als ob dies ein ferner Kontinent sei, mit dem man
> nix zu tun hat.
Also entweder du stellst gerade eindeutig unter Beweis, dass du nicht 
einmal weißt was es mit "Userland" auf sich hat, oder aber du machst 
hier einen Vergleich, den zumindest ich nicht verstehe. Userland 
bezeichnet i.d.R. Programme, die nicht im Kontext des Betriebssystems 
ablaufen (siehe https://en.wikipedia.org/wiki/User_space). Damit einher 
gehen unter Anderem weniger Privilegien. Das Microsoft dieses Konzept 
absolut falsch umgesetzt hat, habe ich ja hoffentlich oben anschaulich 
an einem Beispiel erklärt. Dort wird nach wie vor (!) das komplette 
grafische Subsystem im Kernel-Mode betrieben. Ursprünglich war dies so 
strukturiert worden, um einen Geschwindigkeitsvorteil zu erhalten. Das 
die Computer sowieso schnell genug werden würden, hat Microsoft in 
seiner unendlichen Weisheit wohl nicht richtig einschätzen können. 
Jedenfalls gehen damit Exploits einher wie ihn eben unter anderem 
Stuxnet ausgenutzt hat. Die simple Darstellung von manipulierten 
Grafikdateien reicht dann schon aus, um das System zu übernehmen.

W.S. schrieb:
> Und dieser Geist steckt immer noch drin.
> 90% aller Linux-Beiträge in diesem Forum handeln von Innereien des BS,
> aber nicht von Anwendungen. Eigentlich ein trauriges Kapitel.
Das ist eine absolut nichtssagende Aussage. Wenn die Leute sich mit den 
Innereien des Betriebssystems auseinandersetzen, dann ist doch daran 
nichts auszusetzen. Wenigstens können sie das im Falle von Linux absolut 
uneingeschränkt tun. Bei Windows ist dies zum Einen technisch kaum 
machbar und zum Anderen wohl auch strafbar. Wenn überhaupt, dann ist 
Letzteres ein trauriges Kapitel, aber ganz sicher nicht, dass sich Leute 
mit Linux (und dessen Innereien) auseinander setzen.

Übrigens hat man nicht unbedingt das Gefühl, dass du oben stehende 
Beiträge überhaupt gelesen hast. Oder aber du bist sehr schnell im 
Verdrängen und Vergessen. Auf die o.g. Argumente eingegangen bist du 
jedenfalls nicht!

von lanai (Gast)


Lesenswert?

W.S. schrieb:
> Kurzum: Aus meiner Sicht ist nicht das "komplette Verständnis", sondern
> nur die verläßliche API-Doku das Wesentliche.
Die API ist unter Linux sehr viel stabiler als ihr Ruf. Lediglich im 
Kernel/Treiber ändert es sich mal was. Wenn du aber z.B. den Zugriff auf 
/dev/ttyS[0-999] ändern willst, wirst du das wohl nie in den 
Vanilla-Kernel bekommen.

Dein Rechteck-malen erledigt sich über Toolkits, Qt, GTK usw. Klingt 
ziemlich nach gefährlichem Halbwissen.
Win CE ist imho eine grausame Diva und wird von MS auch gerne 
kleingehalten damit am große Win verdient werden kann. Den Desktop hat 
MS, wohl auch noch recht lange, aber im Embedded-und 
Industrie-PC-Bereich ist Linux mehr als nur schwer am Kommen. Würde MS 
XP/WES 2009 weiterführen, hätte ich mir eher Sorgen um Linux und meinen 
Job gemacht.

von 123 (Gast)


Lesenswert?

Nu ja die stabilität von Linux oder Win CE auf einer HW Steht und fällt 
mit der qualität der Treiber. Bei Tragbaren Geräten spielt da noch das 
Power Management eine rolle. Viele abstürtze hänger spielen dann gerade 
mit dem Power Management und spezielen Ladezuständen zusammen, die 
verdammt schwer zu reproduziehren sind.

und es gibt unterschiede in der windows CE entwicklung.

der erste setzt ein fix und fertig zusammengeschnürtes Windows CE Board 
support Package für eine fix definierte HW ein. Er ist der reine 
anwendungsentwickler, der nur über die WinAPI mit dem OS kommuniziert.
Will er auf eine neue HW wechslen braucht er eine HW für die auch ein 
Windows CE Board support Packsage existiert und ausgeliefert wird.

Der 2. arbeitet bei dem HW Hersteller und baut so ein Windows CE Board 
support Package zusammen. Stellt die Komponenten zusammen, schreibt die 
Treiber, ...

von W.S. (Gast)


Lesenswert?

Irgendwie hab ich den Eindruck, daß  hier so langsam die Argumente 
ausgehen und durch Anfeindungen ersetzt werden. Ist nicht hilfreich, 
sondern stößt sowohl mich als auch eventuelle Mitleser eher ab. Meint 
ihr, die ihr mich so wortreich zitiert haben, daß durch verstärkte 
Rechthaberei und Prinzipienreiterei andere Leute animiert werden, sich 
mit Linux zu befassen?

Ob nun die reine Torvaldsche Lehre besagt, daß ein Grafiksystem nicht in 
den Kernel gehört oder in irgendeine Stelle im BS, ist mir herzlich 
wurscht. Fakt ist, daß man das mit nem WinCE dabei hat und daß man mit 
nem nackten Linux bzw. einem nackten Embedded Linux genau das nicht 
dabei hat, was in allen Anwendungen, die mit nem menschlichen Wesen in 
Kontakt kommen, von größter Wichtigkeit ist: Grafik und Oberfläche.

Aus Linux-Sicht gehört die grafische Obefläche also nicht ins Linux, 
sondern hat über sonstige Software realisiert zu werden, ja? Nun denn. 
Ich sehe das ganz anders:  Wenn einer einen Router oder sonstwas baut, 
was allenfalls ferngewartet wird, dann ist das Fehlen dieser 
Betriebssystem-Leistungen ja OK, weil sowieso kein Display dran ist. Für 
alle anderen Fälle ist aber Grafik angesagt und wenn sie nicht im BS 
dabei ist, dann hat man 3 Probleme: OS und Grafiksystem und als drittes 
ne Event-Verwaltung, die zwischen beiden vermitteln muß. (Nebengedanke 
von mir: Linux weglassen und nur die Grafik implementieren, die ja per 
oben nachlesbarer Definition ohnehin nicht zum BS dazugehört)

Mir kommt da sofort die Prinzipfrage hoch: Wozu braucht man in einem 
Gerät überhaupt ein WinCE oder Linux oder QNX? Immerhin stellen die alle 
ihre Hardwareanforderungen, die man erstmal löhnen muß. Im Gegenzug 
erwartet man Leistungen, die den Aufwand rechtfertigen. Vielleicht ist 
es hilfreicher, hier mal die von einem Embedded Linux erwartbaren 
Leistungen zusammenzutragen, um wieder auf nen sachlichen Boden zu 
kommen. Also, Leute, kommt auf den Anfang zurück:

Mattes schrieb:
> ich möchte mich gerne in Embedded Linux einarbeiten und komme aber aus
> der Windows-Welt. Jetzt weiss ich nicht so richtig, wie ich einsteigen
> soll.

Was also bietet ein Embedded Linux an Leistungen und was nicht?

Ich versuche mal als Anfang ein noch leeres Gerüst:
- Scheduler ?
- virtueller Speicher ?
- Massenspeicher, Filesysteme ?
- Ethernet ?
- Event-Verwaltung ? (denkt an die Knöpfe am Gerät)
- Fonts ?
- Grafik ?
- Drucken und Gerätekontexte ?  (denkt an den Kassenbon)
- Uhr, Kalender, Timer ?
- USB ?
- ...und was noch?

und die nächste Frage: Wie steigt man ein, also wie kriegt man ein 
Embedded Linux zusammengebaut?
- wo läßt es sich bilden außer auf nem Linux-PC?
- läßt es sich mit anderen Toolchains als GNU überhaupt bilden?
- wie gestaltet sich die Konfiguration?
- gibt es sowas wie Board-Support-Packages für die uC, die hier in 
diesem Forum am beliebtesten sind?

Ich denke mal, über diese Fragen zu diskutieren und hilfreiche Antworten 
zu schreiben, macht mehr Sinn als Flames zu verfassen.

W.S.

von Lukas K. (carrotindustries)


Lesenswert?

W.S. schrieb:
> - Scheduler ?
T'ürlich doch
> - virtueller Speicher ?
dito
> - Massenspeicher, Filesysteme ?
dito
> - Ethernet ?
selbstverständlich
> - Event-Verwaltung ? (denkt an die Knöpfe am Gerät)
Knopf->Eingabegerät
> - Fonts ?
$grafikbibliothek, z.B. cairo mit pango, das rendert auch für uns 
Europäer seltsam anmutende Schriften
> - Grafik ?
$grafikbibliothek, z.B. cairo, UI dann mit GTK/QT Als Backend der 
Framebuffer
> - Drucken und Gerätekontexte ?  (denkt an den Kassenbon)
Bondrucker wird wohl RS232 oder so sein, kein Problem
> - Uhr, Kalender, Timer ?
klar doch
> - USB ?
host und device
> - ...und was noch?
Die gewohnte Umgebung.

W.S. schrieb:
> nackten Embedded Linux genau das nicht
> dabei hat,
Dann verwende eben eine der zahlreichen Embedded-Distros.

W.S. schrieb:
> Aus Linux-Sicht gehört die grafische Obefläche also nicht ins Linux,
Nebenbei: Windows ist das einzige (Wenn man es mal von Museumsstücken 
wie Mac OS Classic absieht) OS, bei dem die Grafik derart tief im Kernel 
steckt. Microsoft hat ja auch 'ne halbe Ewigkeit gebraucht um einen 
Windows Server ohne GUI rauszuhauen.

von Rad neu erfinden (Gast)


Lesenswert?

Joachim Drechsel schrieb:
> Welche Vorteile bietet eigentlich ein OS auf eine Mikrocontroller ?

Vernünftige IP und USB Stacks, Speicherschutz, lokale und remote 
Filesysteme, fertige Treiber und so weiter und so fort.

von Karol B. (johnpatcher)


Lesenswert?

W.S. schrieb:
> Irgendwie hab ich den Eindruck, daß  hier so langsam die Argumente
> ausgehen und durch Anfeindungen ersetzt werden.
Du hast noch auf so gut wie keines reagiert. Insofern sind wir noch weit 
entfernt von dem Punkt an dem uns die Argumente ausgehen.

W.S. schrieb:
> Ob nun die reine Torvaldsche Lehre besagt, daß ein Grafiksystem nicht in
> den Kernel gehört oder in irgendeine Stelle im BS, ist mir herzlich
> wurscht.
Und mit dieser Aussage hast du dich nun endgültig als jemand geoutet der 
von Betriebssystemen und den zu Grunde liegenden Ideen und Konzepten 
nicht wirklich eine Ahnung hat. "Das" Grafiksystem setzt sich - wie es 
in der Informatik eben üblich ist - aus vielen kleineren Systemen 
zusammen. Treiber für die Hardware z.B. gehören sehr wohl in den Kernel. 
Das Problem ist nur, dass Microsoft eben auch andere Teile in den Kernel 
gepackt hat, welche da nicht unbedingt hingehören.

Und das ist weniger eine "Torvaldsche Lehre" als viel mehr gesunder 
Menschenverstand. Ein Exploit in der Form wie ihn Stuxnet verwendet hat 
(nämlich die simple Darstellung einer manipulierten Bilddatei) dürfte 
unter Linux jedenfalls nicht zur System-Übernahme führen. Und ich 
kritisiere hier nur den Umstand, dass hier Dinge im Kernel-Modus laufen, 
die es nicht unbedingt müssen.

Ob mit dem Betriebssystem nun ein grafisches System mitgeliefert wird 
oder nicht, hat damit absolut nichts zu tun. Da kann ich deine 
Ausführungen sogar nachvollziehen und halte es aus Sicht von Microsoft 
nicht für verkehrt, wenn sie ein einheitliches System mitliefern. Nur 
kann man ein solches System eben genauso gut im Userland implementieren 
und muss es nicht mit Kernel Privilegien betreiben! Microsoft hat sich 
aber aus Geschwindigkeits-Gründen bewusst dafür entschieden. Ein Fehler 
mit fatalen Folgen.

Aber auf diesen Punkt bist du nach wie vor nicht eingegangen. Vermutlich 
auch deshalb nicht, weil deine Definition von "Userland" falsch ist 
(siehe oben).

W.S. schrieb:
> Ich denke mal, über diese Fragen zu diskutieren und hilfreiche Antworten
> zu schreiben, macht mehr Sinn als Flames zu verfassen.
Ich sehe hier keine Flames. Ich sehe hier jemanden, der uns die Vielfalt 
der Linux-Welt schlecht reden will und uns Windows CE als Non-Plus-Ultra 
verkaufen will. Gleichzeitig aber stellt derjenige aber unter Beweis, 
dass sein Verständnis von der dahinter steckenden Technik nicht 
vorhanden bzw. falsch ist und auf jegliche Kommentare, welche die 
Funktionsweise von Windows (CE) in Frage stellen nicht eingeht.

Lukas K. schrieb:
> Microsoft hat ja auch 'ne halbe Ewigkeit gebraucht um einen
> Windows Server ohne GUI rauszuhauen.
Und diesen in typischer Microsoft Manier als etwas verkauft, dass es 
bisher noch nicht gegeben hat ;).

von Joachim D. (Firma: JDCC) (scheppertreiber)


Lesenswert?

Rad neu erfinden schrieb:
> Vernünftige IP und USB Stacks, Speicherschutz, lokale und remote
> Filesysteme, fertige Treiber und so weiter und so fort.

Prinzipiell könnte ich das auch statisch hinzulinken.

"Torvaldsche Lehre": Ist auch nicht die reine Lehre ;)
Halt eine Sicht der Dinge unter vielen.

Sinn und Zweck eines OS ist die Verwaltung der Betriebsmittel,
Klickibunti gehört nicht dazu. MS hat die Definition einen OS
erweiter, nicht aus technischem, eher aus kaufmännischem Kalkül.
Ein BWLer mag das verstehen und nachvollziehen können ...

Mir persönlich ist das OS egal, es hat zu funktionieren und mir
Dinge bereitzustellen die mir das Leben erleichtern - nicht mehr
aber auch nicht weniger. Kann es das ist es ok. Kann es das nicht
gehört es in den großen Rundordner.

Bashing ? Egal in welcher Richtung, an Glaubensfragen werde ich
mich nicht aufreiben. Es würde auch zu nichts führen.

von birne (Gast)


Lesenswert?

Na wartet bis Apple den Embedded-Markt für sich entdeckt..

von 123 (Gast)


Lesenswert?

Grafik:
wie schon angesprochen der Framebuffer als schnittstelle zwischen der 
reinen monitor representation und dem GUI framework. Was auch immer das 
sein mag. von Komerziell bis open source bis zu was selbst gestrikten.

Font:
freeType

Eingabe:
über /dev/Input und den dazugehörigen Treibern. tsLib, ...

Es ist immer die frage gegen was vergleicht man Linux. gegen Windows CE 
als bord Support Package oder gegen die selbstbau variante.

Linux hat sicher viele möglichkeiten irgend etwas zu realisieren. Es 
gibt  z.B. nicht nur ein GUI framework. sondern verschiedene. man hat 
zwar dann die qual der wahl. aber man kann ggf das gleiche für linux, 
win CE, tragbar / stationär verwenden. Bzw andere kriterien mit 
ansetzen, Speicherverbrauch, Lizenz, Kosten, verbrauchte rechenleistung, 
...

Ein Embedded Linux wird selten auf einem fix und fertig definierten 
board betrieben, das man von der stange kaufen kann. es gibt hier immer 
irgend welche anpassungen. z.B. LCD Farbtiefe, auflösung, wie sieht das 
Interface aus, 8bit 16bit 20bit? VSync, Paralel, seriel, ... Was für 
einen touch screen hab ich? resistiv oder kapazitiv? Ich habe da ich auf 
die sourcen zugriff habe die möglichkeit hier einzugreifen und 
anzupassen.

von temp (Gast)


Lesenswert?

An diesem Thread kann man schön sehen: Je weniger Ahnung die Leute 
haben, desto größere Töne spucken sie....
Wenn man sich in embedded Linux einarbeiten will, dann von Grund auf. 
Ohne zu wissen wie der ganze Boot-Vorgang mit Einbindung der Hardware, 
Filesysteme u.s.w. geht, wird das am Ende sowieso nichts. Und da wird 
das Frustpotential schon ganz schön hoch. Man kann sich nicht nur an den 
gedeckten Tisch setzen und auf die schimpfen die für Umsonst rackern. 
Wer halt für embedded Linux zu blöd ist, der soll sich ce oder was 
anderes vorgefertigtes kaufen und damit glücklich werden. Wer's drauf 
hat, kann Zeit gegen Geld für Lizenzen  aufwiegen und sehen was besser 
ist. Und viele von denen, die auf eigener Hardware ein emb. Linux mit 
Grafik u.s.w aufgesetzt haben, werden das nicht als Kochrezept nach 
außen tragen.

von W.S. (Gast)


Lesenswert?

Was seid ihr doch für oberflächliche Leute. Bei euren Beiträgen wird mir 
schlecht. Ich greif mal 2 heraus:

Lukas K. schrieb:
>> - Event-Verwaltung ? (denkt an die Knöpfe am Gerät)
> Knopf->Eingabegerät
...kopfschüttel


Lukas K. schrieb:
>> - Drucken und Gerätekontexte ?  (denkt an den Kassenbon)
> Bondrucker wird wohl RS232 oder so sein, kein Problem

So? Daß Druckdaten über irgendeine verdammte Verbindung zum Drucker 
geschafft werden müssen, ist so was von low level und 
selbstverständlich, daß ich das garnicht angesprochen habe. Guckt mal 
auf den letzten Kassenbon und fragt euch wie das da draufkommt, was ihr 
dort sehen könnt. Etwa printf nach stdout? Nee. Hier geht es um 
Grafikdruck und nicht um ne RS232. "Bondrucker wird wohl RS232 oder so 
sein" - was für eine ausgemachte Blindheit!

Also ich schließe mal, daß ein Embedded Linux nicht drucken kann. 
Allenfalls kann es das, was woanders gedruckt wurde, weiterleiten.

Ganz offensichtlich habt ihr Linuxer immer noch keine Vorstellung von 
dem, was ich hier mal als "Grafik" bezeichnet habe: also grafisches 
Userinterface (Desktop auf'm Moni) und grafische Peripheriebedienung 
(Kassenbon aus dem Drucker).

Beim Desktop sieht man bunte Kringels, aber das ist ja nicht der Kern 
des Geschäftes. Hinter jedem Kringel steht ein Stück Programm, ein 
Thread. All diese Threads müssen interagieren, dazu das Eventsystem. Und 
sie müssen verwaltet werden. Das ist der Job des Schedulers, also des 
innersten Kerns des BS. Genau deshalb ist die Verwaltung des Desktop 
eine zentrale Aufgabe des BS-Kernels, die all das umfaßt, was man auch 
für alle anderen Treads (Dienste bzw. Demons) tun muß und darüber hinaus 
auch noch deren visuelle Darstellung und Wiederherstellung organisieren.

Und auch der hier versteht nix:
"Grafik:
wie schon angesprochen der Framebuffer als schnittstelle zwischen der
reinen monitor representation und dem GUI framework."

Der Framebuffer ist Nebensache, die Verwaltung der Elemente, sprich 
Threads, ist der Kern der Sache.

Versucht doch endlich mal, so was einfaches zu begreifen!

Fazit: Von einem Embedded Linux kann man keinen grafischen Desktop 
erwarten. Ist ja auch ne Aussage.

Aber mir wird das hier langsam zu blöd.

W.S.

von Lukas K. (carrotindustries)


Lesenswert?

W.S. schrieb:
> . Etwa printf nach stdout? Nee. Hier geht es um
> Grafikdruck und nicht um ne RS232.
Im Handbuch des Druckers werden wohl die Escapesequenzen des Druckers 
beschrieben sein, dann passt das schon mit printf nach /dev/ttyS0.

W.S. schrieb:
> Also ich schließe mal, daß ein Embedded Linux nicht drucken kann.
Gar kein Linux kann drucken. Dafür gibt es CUPS/lpr o.ä.

W.S. schrieb:
> Fazit: Von einem Embedded Linux kann man keinen grafischen Desktop
> erwarten. Ist ja auch ne Aussage.
Ich erwarte von keinem Embedded-System einen grafischen Desktop. Er 
stört sogar.

W.S. schrieb:
>> Knopf->Eingabegerät
> ...kopfschüttel
-v, bitte

EDIT: Für einen zufällig ausgewählten Bondrucker von EPSON gibt es keine 
Treiber für CE, für Linux auch nicht. Nur für Desktop-Windowse.

von Karol B. (johnpatcher)


Lesenswert?

W.S. schrieb:
> Ganz offensichtlich habt ihr Linuxer immer noch keine Vorstellung von
> dem, was ich hier mal als "Grafik" bezeichnet habe: also grafisches
> Userinterface (Desktop auf'm Moni) und grafische Peripheriebedienung
> (Kassenbon aus dem Drucker).

Du scheint selber das ein oder andere Verständnisproblem zu haben. Auf 
meine Punkte bist du jedenfalls nach wie vor nicht eingegangen. Ich 
nehme mir mal das Recht heraus und behaupte, dass du damit akzeptierst, 
dass ich zumindest nicht Unrecht habe ;).

Übrigens deuten deine Erläuterugen auf weitere Verständnisprobleme hin.

W.S. schrieb:
> . Hinter jedem Kringel steht ein Stück Programm, ein
> Thread. All diese Threads müssen interagieren, dazu das Eventsystem. Und
> sie müssen verwaltet werden. Das ist der Job des Schedulers, also des
> innersten Kerns des BS.
Ein Programm ist nicht mit einem Thread gleichzusetzen. Ein Thread ist 
eine Abstrahierung eines Abhandlungsstranges innerhalb eines Prozesses 
und wird unter anderem auch als "leichtgewichtiger Prozess" bezeichnet. 
Von Threads zu sprechen macht eigentlich nur Sinn, wenn es davon mehr 
als einen gibt. Und das ist absolut keine Notwendigkeit für ein 
Programm.

W.S. schrieb:
> Der Framebuffer ist Nebensache, die Verwaltung der Elemente, sprich
> Threads, ist der Kern der Sache.
Siehe dazu meine obige Ausführung zu Threads. Wie die "Verwaltung der 
Elemente" implementiert ist spielt überhaupt keine Rolle. Völlig egal, 
ob das nun ein Thread innerhalb eines einzigen Prozesses ist, oder aber 
eventuell mehrere Prozesse, welche mit einander kommunizieren. Das sind 
in gewisser Maßen Freiheitsgrade bei der Implementierung, die es, wenn 
überhaupt, in der Dokumentation zu vermerken gibt. Über die 
Funktionalität des Systems sagt das noch nichts aus.

Um den "Kern der Sache" zu bestimmen, kommt es halt drauf an, was genau 
man sich anschaut. Die "Verwaltung der Elemente" in der Form, die du 
meinst, ist eben nicht im Kernel selbst unterzubringen, sondern im sog. 
Userland. Demnach würde ich es nicht als Kern der Sache bezeichnen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.