www.vorhilfe.de
- Förderverein -
Der Förderverein.

Gemeinnütziger Verein zur Finanzierung des Projekts Vorhilfe.de.
Hallo Gast!einloggen | registrieren ]
Startseite · Mitglieder · Impressum
Forenbaum
^ Forenbaum
Status VH e.V.
  Status Vereinsforum

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Suchen
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Linux, UNIX, BSD, POSIX" - embedded Systems
embedded Systems < Linux, UNIX, BSD, POSIX < Betriebssysteme < Praxis < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Linux, UNIX, BSD, POSIX"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

embedded Systems: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 11:33 Fr 04.06.2010
Autor: anna_h

Aufgabe
1) der parallelportadapter des PCs besitzt auf dem IO-Bus drei Ports. Nennen und beschreiben Sie diese kurz.
2) Was macht die Funktion ioctrol?
3)Was ist das init_module? Wie testen Sie dieses Modul gezielt?
4) Was ist das cleanup_module? Wie testen Sie dieses Modul gezielt?
5) Was versteht man unter copy_to_user?
6) Wie heißt das Gegenstück zu copy_to_user?
7) Beim testen ist die Datei /proc/devices wertvoll. Welche Information bietet diese Datei?

Ich bin ein absoluter Embedded Anfänger. Ich habe grob geschätzte 1000 Fragen. Wenn ich die obigen gelöst hätte, könnte ich mir schon einiges erschliessen.
google und so helfen mir leider nicht wirklich.
meine bisherigen Lösungen wären:
zu 2) fängt per switch-case Ergebnisse ab. z.B. CD_ROM-Laufwerk auf/zu
zu 6) copy_from_user

ich hoffe ihr könnt mir helfen

        
Bezug
embedded Systems: Antwort
Status: (Antwort) fertig Status 
Datum: 13:43 Fr 04.06.2010
Autor: rainerS

Hallo!

> 1) der parallelportadapter des PCs besitzt auf dem IO-Bus
> drei Ports. Nennen und beschreiben Sie diese kurz.
>  2) Was macht die Funktion ioctrol?
>  3)Was ist das init_module? Wie testen Sie dieses Modul
> gezielt?
>  4) Was ist das cleanup_module? Wie testen Sie dieses Modul
> gezielt?
>  5) Was versteht man unter copy_to_user?
>  6) Wie heißt das Gegenstück zu copy_to_user?
>  7) Beim testen ist die Datei /proc/devices wertvoll.
> Welche Information bietet diese Datei?

>

>  Ich bin ein absoluter Embedded Anfänger. Ich habe grob
> geschätzte 1000 Fragen. Wenn ich die obigen gelöst
> hätte, könnte ich mir schon einiges erschliessen.
> google und so helfen mir leider nicht wirklich.

Der Verlag OReilly bietet sein Buch Linux-Gerätetreiber []Online an.

Du kannst manche der Fragen mit einem Linux-System leichter beantworten.

Zum Beispiel Frage 1: schau dir die Ausgabe des Kommandos

  cat /proc/ioports

an. Da gibt es drei Zeilen, bei denen parport steht; das sind die drei Ports. Genaueres findest du im genannten Buch []hier.

>  meine bisherigen Lösungen wären:
>  zu 2) fängt per switch-case Ergebnisse ab. z.B.
> CD_ROM-Laufwerk auf/zu

Meinst du nicht die Funktion ioctl ?

Diese Funktion ruft gerätespezifische Operationen auf. Welche das sind, hängt vom Gerät ab; der Gerätetreiber definiert die möglcihen Operationen. Beim CD-Laufwerk können das, wie du schreibst Öffnen/Schließen des Luafwerksschachts sein. Siehe []hier.

>  zu 6) copy_from_user

Richtig.

Hier geht es um die Unterscheidung zwischen Userspace (das ist der Speicher in dem die Programme arbeiten) und Kernelspace (das ist der Speicher, mit dem der Linuxkern arbeitet). Diese beiden Bereiche sind streng getrennt. Bei einem Systemaufruf übergibt das aufrufende Programm einen Verweis auf den Speicher im Userspace. Damit der Kern ungestört mit den Daten etwas anfangen kann, wird mit copy_from_user ein Datenblock vom Userspace in den Kernelspace kopiert. Vor dem Rücksprung in das Programm selbst wird das Ergebnis mit copy_to_user zurückkopiert. Was da genau kopiert wird, hängt vom Systemaufruf ab.

Zu 3 und 4 siehe []hier. Vereinfacht gesagt, führt init_module alle für die Funktion eines ladbaren Moduls notwendigen Initialisierungen aus, und cleanup_module räumt auf, damit das Modul wieder entfernt werden kann.

Zu 7: Hast du dir den Inhalt angeschaut (cat /proc/devices) ? Da steht für jeden Gerätetreiber eine Nummer drin, unter der der Treiber bekannt ist.

  Viele Grüße
    Rainer


Bezug
                
Bezug
embedded Systems: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 15:03 Fr 04.06.2010
Autor: anna_h

Danke für deine Antwort. Aber was ist bei 3) und 4) gemeint mit "Wie testen Sie dieses Modul gezielt?

Bezug
                        
Bezug
embedded Systems: Antwort
Status: (Antwort) fertig Status 
Datum: 16:46 Fr 04.06.2010
Autor: rainerS

Hallo!

> Danke für deine Antwort. Aber was ist bei 3) und 4)
> gemeint mit "Wie testen Sie dieses Modul gezielt?

Die Frage verstehe ich auch nicht, denn sie klingt so, als seien init_module und cleanup_module spezielle Module. Für mich sind das spezielle Funktionen in einem ladbaren Kernel-Modul.

Ich würde die Frage in zwei Teilen angehen:

1. Wie könntest du überhaupt so etwas testen?
2. Wie testest du diese spezielle Funktion? Dazu musst diese Funktion ja benutzt werden. Wann wird die Funktion benutzt, wie stellst du diese Situation her?

  Viele Grüße
    Rainer

Bezug
        
Bezug
embedded Systems: Frage (überfällig)
Status: (Frage) überfällig Status 
Datum: 15:37 Fr 04.06.2010
Autor: anna_h

Aufgabe
Es sind leider noch weitere Fragen aufgetaucht.
Ich soll wiedergeben was folgende Befehle machen.
a) xx=$(ls | tr [:upper:] [:lower:]
   echo $ xx
b) kill -SIGKILL 7619
c) echo $ ( wc -L L-L )
d)echo eins zwei drei >mydat
   read < mydat a b c
  echo $c
e) ls -ls | sort -k 9 -r
f) ( cd src && tar cf - . ) | ( cd dest && tar xvf -)

bei a) denke ich das Dateien in die Variable xx geschrieben werden. Diese wird mit echo ausgegeben. Aber das ist ja nicht alles oder?

Bei den anderen bin ich noch weiter von der Lösung weg. Ich habe die Befehle zur gesuchgt und auch gefunden. So weiß ich z.B. das cd das aktuelle Vereichnis wechelt. Leider kann ich aber mit keinem der Befehle was genaues anfangen.

Danke schonmaöl für eure Hilfe :-)

Bezug
                
Bezug
embedded Systems: Antwort
Status: (Antwort) fertig Status 
Datum: 16:43 Fr 04.06.2010
Autor: rainerS

Hallo!

> Es sind leider noch weitere Fragen aufgetaucht.
>  Ich soll wiedergeben was folgende Befehle machen.
>  a) xx=$(ls | tr [:upper:] [:lower:]
> echo $ xx
>  b) kill -SIGKILL 7619
>  c) echo $ ( wc -L L-L )
>  d)echo eins zwei drei >mydat
>     read < mydat a b c
> echo $c
>  e) ls -ls | sort -k 9 -r
>  f) ( cd src && tar cf - . ) | ( cd dest && tar xvf -)
>  bei a) denke ich das Dateien in die Variable xx
> geschrieben werden. Diese wird mit echo ausgegeben. Aber
> das ist ja nicht alles oder?

Nicht ganz. Was genau ist "ls" ?

Dann ist noch dieses Kommando tr, das einzelne Zeichen ersetzt. Genauer gesagt, die beiden Parameter sind jeweils eine Liste von Zeichen, und jedes Zeichen das in der ersten Liste an einer bestimmente Position vorkommt, wird durch das Zeichen an der leichen Position in der zweiten Liste ersetzt. In diesem speziellen Fall ist die erste Liste [:upper:], die Liste aller Großbuchstaben, und die zweite [:lower:], die Liste aller Kleinbuchstaben. Bei diesem Aufruf ersetzt also tr alle Großbuchstaben in der Eingabe durch die entsprechenden Kleinbuchstaben.

> Bei den anderen bin ich noch weiter von der Lösung weg.
> Ich habe die Befehle zur gesuchgt und auch gefunden. So
> weiß ich z.B. das cd das aktuelle Vereichnis wechelt.
> Leider kann ich aber mit keinem der Befehle was genaues
> anfangen.

Ist dir denn klar, was die verschiedenen Sonderzeichen bedeuten, also

|         pipe
( ... )   subshell
$( ... )  Kommando-Substitution
&&        AND-Liste
<         Eingabe-Umleitung
>         Ausgabeumleitung

Das musst du wissen, damit du die Kommandos richtig zu Kommandozeilen zusammensetzen kannst.

  Viele Grüße
    Rainer

Bezug
                
Bezug
embedded Systems: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 16:49 Fr 04.06.2010
Autor: rainerS

Hallo!

[]Hier findest du eine Übersicht über die verschiedenen Funktionen der Shell.

  Viele Grüße
    Rainer

Bezug
                        
Bezug
embedded Systems: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 14:30 Mo 07.06.2010
Autor: anna_h

Das Problem ist das ich mir die Bedeutung der einzelnen Zeichen unklar ist.

bei
xx=$(ls | tr [:upper:] [:lower:]
echo $ xx
zum Beispiel. da gucke ich in die Befehlsliste:
ls = zeigt den Verzeichnisinhalt an
| = Pipe
tr = ersetzt vorgegebene Zeichen durch andere Zeichen
aber was das sein soll, keine Ahnung. uns wie man das in einklag bringen soll (also was macht die Summe der Befehle) ist mir auch ein Rätsel

Bezug
                                
Bezug
embedded Systems: Antwort
Status: (Antwort) fertig Status 
Datum: 20:27 Mo 07.06.2010
Autor: rainerS

Hallo!

> Das Problem ist das ich mir die Bedeutung der einzelnen
> Zeichen unklar ist.
>  
> bei
> xx=$(ls | tr [:upper:] [:lower:]
> echo $ xx
>   zum Beispiel. da gucke ich in die Befehlsliste:
>  ls = zeigt den Verzeichnisinhalt an
>  | = Pipe
> tr = ersetzt vorgegebene Zeichen durch andere Zeichen
>  aber was das sein soll, keine Ahnung. uns wie man das in
> einklag bringen soll (also was macht die Summe der Befehle)
> ist mir auch ein Rätsel

Hast du dir die Links mal angeschaut, die ich angegeben habe?

Eine Pipe ist eine Abkürzung für die Hintereinanderausführung von Programmen mit Weiterleitung der Daten. Soll heißen: die Ausgabe des ersten Kommandos (hier: ls) wird direkt als Eingabe des zweiten Kommandos (hier: tr) verwendet. Der Effekt ist, dass die Kette beider Kommandos sich so verhält wie ein einziges Kommando.

Die Konstruktion xx=$(Kommandokette) weist den gesamten Ausgabetext der Kommandokette der Variablen xx zu. Genauer gesagt, es passieren zwei Dinge:

Durch

  $(Kommandokette)

wird die Kommandokette ausgeführt und statt dessen der Ausgabetext eingesetzt, sodass nach diesem Schritt so etwas wie

  xx=Ausgabetext

dasteht, womit der Variablen xx der Text zugewiesen wird.

Probier doch einfach mal aus, 1. was ls ausgibt, 2. was passiert, wenn du nur tr [:upper:] [:lower:] aufrufst und einfach ein paar Zeilen eingibst.

Viele Grüße
   Rainer

Bezug
                                        
Bezug
embedded Systems: Frage (überfällig)
Status: (Frage) überfällig Status 
Datum: 16:59 Do 17.06.2010
Autor: anna_h

Kannst du mir nochmal weiterhelfrn.
Also d) kann man einfach abtippen, und man sieht ungefähr was es macht.
Aber bei den anderen bin ich totlal hilflos.

Bezug
                                                
Bezug
embedded Systems: Fälligkeit abgelaufen
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 17:20 Sa 19.06.2010
Autor: matux

$MATUXTEXT(ueberfaellige_frage)
Bezug
                
Bezug
embedded Systems: Fälligkeit abgelaufen
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 16:20 So 06.06.2010
Autor: matux

$MATUXTEXT(ueberfaellige_frage)
Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Linux, UNIX, BSD, POSIX"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
ev.vorhilfe.de
[ Startseite | Mitglieder | Impressum ]