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?
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
Das µCLinux ist doch für kleinere µCs ausgelegt, die keine MMU haben. Lieg ich damit richtig?
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.
> 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.
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.
>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 :)
>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.
>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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.