Forum: Mikrocontroller und Digitale Elektronik Linux auf 8 bit µC?


von Markus22 (Gast)


Lesenswert?

Kann man tatsächlich Linux auf einem günstigen 8 bit µC laufen lassen?
Was sind da die Minimalanforderungen?

Wie ist das eigentlich mit der Software für Linux, ob bei einem AVR oder 
ARM. Kann man sämtliche Linux Software einfach für die AVR/ARM Plattform 
compilieren?

von Kaj (Gast)


Lesenswert?


von (prx) A. K. (prx)


Lesenswert?

Markus22 schrieb:
> Kann man tatsächlich Linux auf einem günstigen 8 bit µC laufen lassen?

Im Prinzip schon. Du hängst extern DRAM und eine SD-Card dran, schreibst 
einen ARM-Emulator und fertig.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Markus22 schrieb:
> Kann man tatsächlich Linux auf einem günstigen 8 bit µC laufen lassen?

Es gab tatsächlich mal ein Linux, das auf der 8088 CPU (8/16bit) und 
dem Umfeld eines IBM PC lief(EL Linux? irgendwie so hiess das), und es 
gibt auch immer noch jemanden, der auf einem AVR Linux bootet - aber der 
braucht 2 Stunden, bis der Prompt erscheint, weil der AVR einen 16-bit 
Prozessor emuliert.
Ein echtes Linux benötigt auch eine MMU, die bei den normalen MCs nicht 
dabei ist. uCLinux allerdings verzichtet auf die MMU und läuft minimal 
auf Systemen mit 2MB Flash und 2MB RAM und kleinen 16 bit Prozessoren 
wie dem MC68EZ328, wie er z.B. in alten Palm PDAs verbaut ist. Viele 
Router arbeiten auch damit, meistens mit Abarten wie Monta Vista Linux 
o.ä.
Arbeiten darauf ist eingeschränkt, weil sehr wenig Platz im RAM ist, um 
Tools und Programme aus dem Flash ins RAM zu dekomprimieren. Gut 
arbeiten lässt sich z.B. mit 2MB Flash und 8MB RAM, wie es auf meinem 
uCSimm gemacht ist. Der hat auch Ethernet und was der Siedler sonst noch 
braucht.

: Bearbeitet durch User
von (prx) A. K. (prx)


Lesenswert?

Matthias Sch. schrieb:
> Es gab tatsächlich mal ein Linux, das auf der 8088 CPU (8/16bit) und
> dem Umfeld eines IBM PC lief(EL Linux?

Tatsächlich. http://elks.sourceforge.net/

: Bearbeitet durch User
von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

A. K. schrieb:
> Tatsächlich. http://elks.sourceforge.net/

Cool, danke A.K. - genau das war es.

von runni (Gast)


Lesenswert?

http://www.disi.unige.it/person/DoderoG/minix/info-20.htm

ggf. auf einem 16biter wie 80188 (8bit IO)

von Markus22 (Gast)


Lesenswert?

Hier ist ein Cortex-M0 Emulator für ein 8-bit ATtiny85:
http://dmitry.gr/index.php?r=05.Projects&proj=08.%20uM0

Matthias Sch. schrieb:
> aber der
> braucht 2 Stunden, bis der Prompt erscheint, weil der AVR einen 16-bit
> Prozessor emuliert.

Echt süß! :D

von Kaj (Gast)


Lesenswert?

Markus22 schrieb:
> Echt süß! :D

Und ich glaube 8 Stunden bis das System vollstaendig da ist. 
Konsolenbefehle brauchen gut ne Minute bis die fertig sind :D
Steht aber alles in den Links die ich gepostet habe.

Gruesse

von Stefanus (Gast)


Lesenswert?

Linux erfordert eine 32bit CPU und eine MMU, also wären ARM Controller 
(wie der Raspberry Pi) die Mindestausstattung.

Die Projekte mit 8bit Mikrocontroller emulieren solche Systeme. Also 
läuft das Linux dann in einer virtuellen Maschine, die auf den 8bit 
Controller läuft. Das ist nur was für Masochisten.

von Kaj (Gast)


Lesenswert?

Stefanus schrieb:
> Das ist nur was für Masochisten
Es kam nirgendwo die Frage, ob man das auch wirklich Produktiv nutzen 
kann. Und darum geht es bei solchen Projekten in der Regel auch gar 
nicht, sonder darum, einfach zu zeigen das es moeglich ist.
Das ist genauso sinnfrei wie ein Auto mit ueber 1000PS zu bauen (oder 
wie einige Oel-Multis das vorhaben, mit 5000PS), und warum wird es 
trotzdem gemacht? Um zu zeigen das es geht.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Vielleicht eher der Vergleich:
Ein Auto zu bauen mit 1PS...

von Markus (Gast)


Lesenswert?

Stefanus schrieb:
> Linux erfordert eine 32bit CPU und eine MMU, also wären ARM Controller
> (wie der Raspberry Pi) die Mindestausstattung.

Mit uClinux geht es auch ohne MMU. Das ist durchaus verwendbar.

Markus

von Jojo S. (Gast)


Lesenswert?

und da man für solche Leistungen eher Mitleid als Bewunderung erntet 
sollte man seine Zeit wirklich nicht damit verschwenden.

von Chris D. (myfairtux) (Moderator) Benutzerseite


Lesenswert?

Linux läuft zwar irgendwie ... aber für kleine Controller gibt es 
bessere Betriebssysteme.

Wenn es halbwegs POSIX-konform sein muss, böte sich bspw. NuttX an. Das 
skaliert sehr gut vom kleinen AVR bis zu großen STM32 und 
Linux-Programme, die auf Standard-Libs aufsetzen, sollten 
durchkompilieren.

Und wenn man möchte, bekommt man noch eine GUI für wenig Aufwand dazu. 
Darüberhinaus ist das unter einer BSD-Lizenz verfügbar, darf also CS 
sein.

www.nuttx.org

von Fpgakuechle K. (Gast)


Lesenswert?

Chris D. schrieb:
> Linux läuft zwar irgendwie ... aber für kleine Controller gibt es
> bessere Betriebssysteme.
>
> Wenn es halbwegs POSIX-konform sein muss, böte sich bspw. NuttX an. Das
> skaliert sehr gut vom kleinen AVR bis zu großen STM32 und
> Linux-Programme, die auf Standard-Libs aufsetzen, sollten
> durchkompilieren.

Das Problem ist die völlig sinnfreie Spezifikation "Ich will Linux auf 8 
bit". Zuerst ist mal die hardware ("8 bit") genauer zu beschreiben:
-ein uC allein taugt garnix da braucht es noch
 --dateneingabe (tty, rs232-rx, Sensoren, i2c, ...)
 --daten ausgabe (console, rs232-tx, vga, ...) und
 --datenspeicher (flash,sdcard,hdd,ramdisk)

und anschliessend die Anwendung (Linux)
-processcontrolle
-tastaturlogging
-out-port switching
-messagesystem (irq, mailbox)
-ressourcenverwALTUNG (Speicherallokierung, Filesystem)
-single/ muliuser
-single/ multitask

Dann kann man sagen welches OS hier passt egal ob vorhanden oder was zu
selberschreiben. Der Klassiker für 8bit computer ist übrigens CP/M von 
1974.

MfG

von Klausb (Gast)


Lesenswert?

Nur zur Information.

Auf dem IBM PC (8088) lief das UNIX Derivat AIX.

Es lief besser und schneller als das IBM-DOS.

Sogar Multi-Task fähig.

von (prx) A. K. (prx)


Lesenswert?

Klausb schrieb:
> Auf dem IBM PC (8088) lief das UNIX Derivat AIX.

Dafür war mindestens ein 386 fällig. Und für den gab es recht viele 
Unixe. Für den 8088 gab es beispielsweise Xenix von Microsoft(!).

: Bearbeitet durch User
von Klausb (Gast)


Lesenswert?

Lieber prx,
der 8088 reichte, ich habe jetzt noch (zur Erinnerung) die Disketten für 
den IBM-PC-8088 im Schrank.
Ist halt schon fast 30 Jahre her. Bin halt auch noch Sammler.

von (prx) A. K. (prx)


Lesenswert?

Klausb schrieb:
> der 8088 reichte,

Dann ist das hier falsch?
http://en.wikipedia.org/wiki/IBM_AIX#IBM_PS.2F2_series
Ich habe das nämlich auch so in Erinnerung wie es dort steht.

: Bearbeitet durch User
von Klausb (Gast)


Angehängte Dateien:

Lesenswert?

Ich veruch mal Dich mit den Fotos zu überzeugen.
AIX gab es für viele IBM Rechner Familien.

von (prx) A. K. (prx)


Lesenswert?

Steht da irgendwo AIX? Das ist PC/ix, nicht AIX.
http://de.wikipedia.org/wiki/Interactive_Unix#PC.2Fix

> AIX gab es für viele IBM Rechner Familien.

Und ich hatte mit allen 3 zu tun. Aber mit AIX/386 nur kurz.

: Bearbeitet durch User
von Klausb (Gast)


Lesenswert?

Ok. Das a-dvanced fehlt.
Es ist auf jedenfall ein UNIX Derivat.

von Carsten S. (dg3ycs)


Lesenswert?

Klausb schrieb:
> Ok. Das a-dvanced fehlt.
> Es ist auf jedenfall ein UNIX Derivat.

Ja, wohl die Vorgängerversion von AIX, die dann durch die 
"weiterentwickelte" (Advanced) Version abgelöst wurde.
IMHO handelte es sich bei IX ohne A noch um eine Version die in erster 
Linie als Alternatives System neben einem anderen Betriebssystem gedacht 
war, ähnlich wie heute öfter Linux und Windows auf einem REchner 
anzutreffen und wahlweise gestartet werden können...

Ist aber "vor" meiner ZEit gewesen, 1984 habe ich gerade gelernt meinen 
Namen zu malen (Einschulung 1985) und die allerersten Spiele auf dem 
Büro C64 meines Onkels zu spielen.

Gruß
Carsten

: Bearbeitet durch User
von Svenska (Gast)


Lesenswert?

Zusammenfassung:

In einer Emulation kann man Linux auch auf einem 8 Bit Mikrocontroller 
laufen lassen, an sich benötigt es einen 32-Bit-Prozessor, aber nicht 
zwingend einen mit MMU.

Für 8 Bit-CPUs ist mir nur ein unixoides System bekannt, nämlich UZI 
(Z80) bzw. UZI180 (Z180).

von (prx) A. K. (prx)


Lesenswert?

Carsten Sch. schrieb:
> Ja, wohl die Vorgängerversion von AIX, die dann durch die
> "weiterentwickelte" (Advanced) Version abgelöst wurde.

Namen sind Schall und Rauch. PC/ix war extern gebautes Auftragsprodukt, 
AIX/386 war das ebenfalls. Aber von verschiedenen Firmen. Verwandschaft 
bestand über die Abstammung von Unix. Beides waren für IBM keine 
strategischen Produkte.

Die aufkommenden RISC-Prozessoren hätte IBM ja auch beinahe verpennt, 
und das obwohl eine der beiden historischen Ursprünge davon eben bei IBM 
in den 70ern lag. Noch über weite Teile der 80er durfte aber nichts die 
Mainframes gefährden, und billige leistungsfähige mehrbenutzerfähige 
Systeme hätten aus Sicht der Strategen die kleineren Mainframes 
angeknabbert.

Dass der Markt von Grafik-Workstations für CAD&Co komplett an IBM vorbei 
laufen könnte merkten sie grad noch rechtzeitig. Mit der 6150 kam dann 
der erste Anlauf, schnell zurecht gezimmert und eher grauslich. Erst mit 
den POWER-Prozessoren und AIX 3 wurde es ernst. Und das war dann das 
soundsovielte Unix-Derivat, das man bei IBM kriegen konnte, mit nicht 
auffällig viel Verwandtschaft zu den Vorgängern. Und das erste wirklich 
strategische und erfolgreiche Produkt dieser Richtung.

: Bearbeitet durch User
von Tiramisu (Gast)


Lesenswert?

Zur weiteren Anreicherung unnuetzen Wissen noch
vier weitere Bemerkungen von einem Oldi ;-)
- vor Linux gab es (Unix und) Minix. Erste Minixversionen
liefen auf einem 8088, die Prozesse durften 64KB maximal
beanspruchen, ELKS kam danach.
- vor Minix spielte der ein oder andere Unix-Nerd in den 80ern
mit XINU. Da gab es auch eine Apple II Portierung und 2-3
zellulosebasierte P-books, die die Datenstrukturen beschreiben.
- IMHO ist Andre Fachats GeckOS (Anfang 90er, vor Linux) -- mit
einem an ein UNIX-API -- angelehntes Wunderwerk, welches auf
dem C64 lief (der echte Hacker programmiert in Assembler)
- OS/9 (nene, nicht das Apple OS) hatte Anfang der 80er
Multitasking/Multiuser und eine an Unix angelehnte API (und
Kommandozeile). Lief auf einem 6809er (8Bit-er, und es gibt
6309 Varianten). Wird heute noch bei Tandy Color Computer
Liebhabern benutzt. Anfang der 80er wurde OS/9 viel im
anspruchsvollen Realtimesegment verwendet.

von Fpgakuechle K. (Gast)


Lesenswert?

Coherent startetet 1980 und lief auch auf 8088, in der ct wurden 
regelmäßig  Anzeigen geschaltet. BSD sollte nicht unerwähnt bleicen, 
auch wenn es erst ab 386 lief.

Und all die systeme booten schneller als die oben erwähnten stunden für 
ein (unangepasstes) Linux.

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.