Linux auf 8 bit µC?

Gast #3468847
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?
(Firma: matzetronics) #3468853
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.
Gast #3468924
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.
Gast #3468947
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.
Moderator Persönliche Seite #3468977
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
Gast #3469004
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
#3469410
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
Gast #3469760
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).
#3469799
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.
Gast #3469808
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.
Gast #3469839
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren