Forum: Mikrocontroller und Digitale Elektronik unterschiedliche Versionen von uclinux?


von Harald (Gast)


Lesenswert?

Hallo,

wenn jemand von "embedded linux" spricht, ist dann automatisch das 
uclinux damit gemeint, oder gibt es verschiedene linux-systeme für 
mikrocontroller? Wenn ja, welche?

von Sigint 112 (sigint)


Lesenswert?

Unter "Embedded Linux" versteht man eingebettete Linuxsysteme. Das 
dürften alles Systeme sein, bei denen der Benutzer nichts mit dem System 
direkt zu tun hat. Das Linux übernimmt also eine Steuer- und 
Regelaufgabe. Das µCLinux ist relativ weit verbreitet, aber nicht das 
einzige Linux für Embedded Anwendungen. Es existieren diverse 
Echtzeit-Linuxversionen welche eingesetzt werden können. Zudem kann der 
normale Linux-Kernel in Embedded Systeme eingesetzt werden. Siehe die 
ARM oder MIPS Mikroprozessoren.

Gruß,
  SIGINT

von Robert S. (razer) Benutzerseite


Lesenswert?

Das µCLinux ist doch für kleinere µCs ausgelegt, die keine MMU haben. 
Lieg ich damit richtig?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Damit ja.

von Hans W. (hans_wurst)


Lesenswert?

Robert S. schrieb:
> Das µCLinux ist doch für kleinere µCs ausgelegt, die keine MMU haben.

Für uCLinux es es sehr zu empfehlen eine MMU zu haben! (Oder eher sogar 
unabdingbar?)
Wenn der Controller keine MMU hat, besser ein OS wie FreeRTOS (usw.) 
verwenden.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

> Für uCLinux es es sehr zu empfehlen eine MMU zu haben! (Oder eher sogar
> unabdingbar?)

Nein. ucLinux setzt keine MMU voraus. Gerade das zeichnet ucLinux aus.

von Hans W. (hans_wurst)


Lesenswert?

Achso? Habe ich das dann wohl falsch verstanden. Wann sollte man denn 
dann eher zu uCLinux und wann zu FreeRTOS greifen?

Oder liegt mein Fehler eher darin, dass uCLinux nicht gleich 
embeddedLinux ist?

Zumindest bei Atmel kenne ich es so, dass bei der AP7000-Serie (mit MMU) 
ein embeddeLinux verwendet werden kann und bei der UC3-Serie (ohne MMU) 
nur Systeme wie FreeRTOS.

von ichwieder (Gast)


Lesenswert?

>Oder liegt mein Fehler eher darin, dass uCLinux nicht gleich
>embeddedLinux ist?
Jein, ein uClinux kann/wird auch embedded sein, aber ein embedded Linux 
ist eines, bei dem der Nutzer mit dem Linux an sich so gut wie nichts zu 
tun hat.
Die meisten Geräte auf denen ein embedded Linux läuft, haben eine 
serielle Konsole, da hat man dann sehr wohl direkten Zugriff aufs Linux, 
aber den brauchen nur Freaks und der "normale" User kommt nichtmal auf 
die Idee dass es sowas gibt (siehe z.B. Asus Netzwerk Festplatten, sehr 
interessante Teile).

Wenn du dir einen passenden Kernel compilierst, eine Shell und ein paar 
Tools, sowie die nötigen libs dazu, das dann irgendwie auf einem 
Controller gestartet bekommst (z.B. die Asus Platte, da is das wirklich 
Easy, oder eine NLSU2, ...) dann hast du ein embedded Linux.

Wenn du das ganze dann so machst, dass es entweder direkt von uClinux 
kommt oder so zusammenbaust und programmierst dass es damit 
übereinstimmt (was aber mehr als sinnlos ist), dann hast du ein uClinux.

RTOS Sachen würde ich generell nur darauf packen, wo ein einzelnes C 
Programm zu aufwendig werden würde aber ein Linux nichtmehr sinnvoll 
läuft.

Die MMU ist wie gesagt nicht nötig, weit verbreiteter Aberglaube 
grins, genauso wie es auch Linux für 286er gibt :)

von ichwieder (Gast)


Lesenswert?

>RTOS Sachen würde ich generell nur darauf packen, wo ein einzelnes C
>Programm zu aufwendig werden würde aber ein Linux nichtmehr sinnvoll
>läuft.

Ganz vergessen, hierzu noch:
... läuft, oder man wirklich genau dieses oder das RTOS für seine 
Anwednung braucht.

von Axel (Gast)


Lesenswert?

>Die MMU ist wie gesagt nicht nötig, weit verbreiteter Aberglaube
>grins, genauso wie es auch Linux für 286er gibt

Richtiges Linux braucht immer eine MMU.

Für die Prozessoren ohne MMU gibt es extra ucLinux, allerdings fehlen da 
eben eine Menge Schutzmechanismen um Speicherbereiche gegenseitig zu 
schützen, etc. Von daher ist das Multitasking mit uCLinux etwas 
kritisch, weil ein wildgewordenes Programm alle Speicherbereiche 
erreichen kann und somit tatsächlich den ganzen Kernel abschiessen.

Mit MMU verhindert das die MMU, weil die Prozesse physikalisch nur 
Zugriff auf die Speicherbereiche haben, wo sie das auch dürfen.

Gruss
Axel

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.