Embedded Linux Einstieg

OP #2010232
Lesenswert?

Gruß an alle Leser

Ich möchte gerne mehr über das Thema "Embedded Linux" erfahren und mich 
da einarbeiten. Könnt ihr mir Ratschläge geben wie ich mich an diesem 
Gebiet herantasten kann. Ich dachte so an Internetseiten, Litaratur und 
Entwicklungsboards.

Ich bedanke mich schon im voraus für Eure Beiträge
Gast #2010284
Lesenswert?

>Ich möchte gerne mehr über das Thema "Embedded Linux" erfahren und mich
>da einarbeiten.

Dann arbeite dich vorzugsweise erst einmal in Linux
auf PC ein. Das geht ganz billig mit einer virtuellen
Maschine (VMware, VirtualBox, VirtualPC). Da kannst
du deine ersten Schritte mit Linux machen. Und wenns
dir nicht gefällt hats nichts ausser Zeit gekostet.
OP #2010286
Lesenswert?

Ah ok,

nur stellt sich mir die Frage wozu man Embedded-Linux in "diverse 
DSL-Router"( Autor: Christian H.) verwendet oder in anderer Hardware.
Was für Vorteile ergeben sich dabei wenn ich ein "komplettes 
Betriebssystem mit allem drum und dran" (Autor: A. K.) einsetze.
Gast #2010295
Lesenswert?

A. K. schrieb:
> Das eine ist ein komplettes Betriebssystem mit allem drum und dran, aber
> eher magerer Echtzeitfähigkeit. Das andere ein minimalistischer
> Echtzeitkernel ohne alles, was Betriebssysteme sonst ausmacht.
Naja, ohne GNU-Tools oder Busybox ist Linux auch ziemlich nackig... ;-)

holger schrieb:
>>Ich möchte gerne mehr über das Thema "Embedded Linux" erfahren und mich
>>da einarbeiten.
> Dann arbeite dich vorzugsweise erst einmal in Linux
> auf PC ein. Das geht ganz billig mit einer virtuellen
> Maschine (VMware, VirtualBox, VirtualPC)
Läuft Linux wirklich in einem VirtualPC? Das ist doch von MS?
#2010297
Lesenswert?

Tim S. schrieb:

> Was für Vorteile ergeben sich dabei wenn ich ein "komplettes
> Betriebssystem mit allem drum und dran" (Autor: A. K.) einsetze.

Weil alles drin ist was man braucht und man nix dafür zahlen muss. 
Router benötigen einen Rattenschwanz an Netzwerkfunktionen, wie eben 
Routing, DHCP, Webserver, Filterung, VPN usw, und all das ist in 
GNU/Linux von Haus aus drin bzw. dafür verfügbar. "Embedded" heisst da 
eigentlich nur, dass es eingedampft ist, also nur das drin ist was 
benötigt wird.

Ein DSL-Router ist auch nicht grad das, was man so unter einer 
kritischen Echtzeitanwendung versteht.
Gast #2010355
Lesenswert?

>Also ich hab bereits ubuntu auf meinem Rechner neben Windows instaliert.

Fein.

>Wie kann ich mich nun da reinarbeiten?
>Neue Software installieren ?

Ganz im Gegenteil. Alles deinstallieren was mit
Klickibunti zu tun hat. Und dann erstellst du per
kommandozeile mal einen neuen Ordner, kopierst
eine Datei, gibst einer Datei Zugriffsrechte,
erstellst User... Das ist Embedded Linux!
OP #2010428
Lesenswert?

Greifen wir einfach das Beispiel von Christian H. mit den DSL Routern 
auf.
Was macht nun das Betriebssystem in diesem Fall? Besteht dann die 
Möglichkeit den DSL Router an einem PC anzuschließen und so auf das 
Betriebssystem zuzugreifen und auf die Daten, die es verarbeitet?
Wie greift man generell auf diese Daten zu?

Fragen über Fragen.
#2010614
Lesenswert?

Hallo,
Tim S. schrieb:
> Was macht nun das Betriebssystem in diesem Fall?

Das Selbe, was ein Betriebssystem auch auf einem 'nicht embedded' System 
tut. Es stellt die Verbindung zwischen den Applikationen und der 
Hardware her (mal ganz plump gesagt) und bietet eine handvoll 
Basisfunktionalität (Netzwerk, serielle Schnittstelle, Speicherzugriffe, 
Filesystem, ...).

Weiterhin sind auf Routern noch Applikation, die auf das Betriebssystem 
aufsetzen (ppp-Client, dhcp-Client/Server, WEB-Server zur Konfiguration, 
VoIP-Client/Server, igmp-Proxy, Tools und Scripte zum Konfigurieren, 
...)

> Besteht dann die Möglichkeit den DSL Router an einem PC anzuschließen
> und so auf das Betriebssystem zuzugreifen und auf die Daten, die es
> verarbeitet?

Ja. Allerdings mögen die meisten Hersteller das nicht und verstecken die 
Schnittstellen bzw. beschneiden die Funktionalität. Aber dafür gibt's 
genügend WEB-Seiten die bei der Lösung dieser Probleme weiterhelfen.

> Wie greift man generell auf diese Daten zu?

Aus Entwicklersicht: Üblicherweise wird eine serielle Schnittstelle (mit 
Shell-Prompt bzw. debugger), eine Netzwerkschnittstelle (telnet, ssh, 
debugger) und für ganz harte Fälle (Bootloader debuggen, initial 
flashen) JTAG benutzt.

Ein Embedded Linux ist eigentlich nicht viel anders als PC-Linux, nur 
dass die Embedded Devices üblicherweise kein BIOS besitzen und Kernel 
und Applikationen ein wenig abgespeckt sind (busybox statt üblicher 
Basis-Tools, dropbear statt openssh, uclibc statt libc, Kernel nur mit 
den wirklich benötigten Treibern).
Die 'Grundinitialisierung' der Hardware wird hier von einem auf die 
Hardware angepassten Bootloader (UBoot, RedBoot, ...) erledigt, der 
anschliessend den Kernel lädt und startet. Dieser besitzt die für die 
jeweilige embedded Hardware passenden Treiber (zumindest um erst einmal 
auf das Filesystem zuzugreifen und die Applikationen zu starten bzw. 
Module nachzuladen).

Ist das Betriebssystem (meint der Kernel) erst einmal geladen, dann 
unterscheidet es sich eigentlich garnicht sooo sehr von einem PC-Linux.

Als Einstieg muss es ja nicht unbedingt ein Nicht-X86-Prozessor sein. 
Wenn Du auf Applikations-Ebene ansetzen möchtest reicht u.U. eine 
chroot-Umgebung (schau mal bei buildroot.uclibc.org vorbei). Dabei 
kannst Du genügen Erfahrungen zu den Unterschieden zw. 'richtigen' und 
embedded Umgebungen sammeln. Die dabei erstellten Images lassen sich 
wunderbar mit qemu austesten. Und bei Einsatz eines Cross-Compilers 
kannst Du auch Flash-Images für andere Hardware bauen.

Auch wenn Du hardwarenah einsteigen möchtest kannst Du Dich ja mit der 
Kernel-Programmierung (auf dem PC) auseinandersetzen. Die Erfahrungen, 
die Du dort sammelst, helfen Dir im auch embedded Umfeld weiter.

Und wenn's wirklich 'ne 'richtige' Nicht-X86-Hardware sein soll, dann 
schau doch mal bei OpenWRT oder OpenEmbedded vorbei. Dann kommt neben 
Kernel und Applikationen noch der Bootloader und die Cross-Toolchain 
hinzu, mit den Du Dich auseinandersetzen kannst.

Übrigens, die Applikationsentwicklung für embedded Linux-Devices kann 
zum Großteil auf einem normalen Linux-PC erfolgen (und sie erfolgt auch 
so), mit all dem Komfort, den diese Umgebung bietet.

timpi.

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