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?
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.
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.
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
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.
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.
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
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
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
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(!).
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.
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
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).
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.
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.
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.