UNIX - Werkzeuge und UNIX-Schnittstelle

Praktikum

Aufgabenkomplex 2: 33 Punkte


Aufgabe 1 (10 Punkte)
---------------------
Erzeugen Sie ein "mypipe" Quell-RPM fuer die Aufgabe 2. Verpacken Sie folgende
Files in dem tar-File  mypipe.tar (Endung .tar):
         1. Script zum Installieren des Sourcekodepaketes unter einem 
            beliebigen Nutzer:      inst-source
         2. Script zum erzeugen des Binaerpaketes  unter einem 
            beliebigen Nutzer:      gen-bin
         3. Script zum Installieren des Binaerpaketes  unter einem 
            beliebigen Nutzer:       bin-install
         4. Sourcekodepaket entsprechend der unten genanneten Namenskonvention
               mypipe-0.1.1-0.src.rpm
        Die passende Umgebung fuer rpm sind durch die Sripte zu erzeugen.
        Es sollte also mindestens ein mypipe.c enthalten sein.
Vorgehen: * schreiben Sie das benoetigte SPEC-File,
          * stellen Sie die Quellen zusammen,
          * erstellen Sie ein Quell-Paket,
          * testen Sie das Binary-Paket
          * bei der Installation des Binary-Pakets soll das Program mypipe
            in das $HOME-Verzeichnis des ausfuehrenden Nutzers kopiert und 
            durch ~/mypipe aufgerufen werden, welches ohne weitere Argumente
                 Usage: mypipe "cmd1 args1" "cmd2 args2"
            ausgibt. 
            Hinweis: Benutzen Sie %post
RPM-Pakete muessen auf SuSE Linux 12.3 (x86_64) z.B. 
    mitte.informatik.hu-berlin.de funktionstuechtig sein und der
folgenden Namenskonvention folgen:
mypipe_0.1.1-0.src.rpm   (Quell -Paket)

Aufgabe 2: (8 Punkte)
---------------------
Fuktionalitaet von des C-Programs mypipe:

Aufruf mit keinem Argument Ausgabe von:
	Usage: mypipe "cmd1 args1" "cmd2 args2"
	
Aufruf mit 2 Argumenten in Quotas z.B.
	mypipe "ps aux" "wc -l"
liefert das Ergebnis, welches in der Shell dem Aufruf von 
             "ps aux | wc -l" entspricht.
mypipe soll natuerlich mit verschiedenen Kommandos funktionieren, 
die ueber STDIN und STDOUT kommunizieren koennen.

Fehlerbehandlung fuer folgende Faelle:
      * Unzulaessige Zahl von Argumenten (verschieden von 0, 2)
      * cmd1 oder cmd2 nicht ausfuehrbar (exec schlaegt fehl)

(Anregeung fuer Startpunkt:
https://www2.informatik.hu-berlin.de/~bell/Systemcalls/Beispiele/Prozesse/pwd-test.c)



Aufgabe 3: (10+5 Punkte)
------------------------

Schreiben Sie ein C-Programm, das auswertet, wie das Betriebsystem auf die Signale 
1, ..., 32 reagiert. Untersuchen Sie insbesondere, welche Signale durch einen Handler 
gefangen werden koennen, welche Defaultbehandlung durch den Kernel des
drunterliegenden OS erfolgt. Das Programm sollte fuer die Signale i= 1..32 die folgende 
Tabelle ausgeben:

normal:
                
SIGNAL| g | t | s |
===================
...
i     | X |   |   |

Zusatzaufgabe:

SIGNAL| g | t | s | c |
=======================
...
i     | X |   |   |   |

Im Tabellenkopf stehen;
SIGNAL -> Nummer des Signals, 
g      -> Kann das Signal gefangen werden?
t      -> terminate
s      -> stop
c      -> continue

In dem Eintrag pro Signal i werden die gueltigen Felder g, t, s, c angekreuzt.

Die Spalte c ist eine Zusatzaufgabe und ist etwas knifflig, da zuerst das
Signal fuer stop ermittelt werden muss, der entsprechende Prozess  angehalten wird
und dann erst ausprobiert werden kann, ob das entsprechende Signal fuer ihn  ein
"continue" bewirkt.


Abgabeformat:
-------------
Tar-File:
signal.tar
enthaelt:
signal/Makefile
signal/check_signals.c
signal/*

Das Makefile erstellt beim Aufruf von make das Exicutable signal/check_signals
und startet es auch gleich!

Anregung: 
---------
Diese Funktionen koennten nuetzlich sein:
kill, waitpid, fork

Bemerkung:
----------
Da nicht bekannt ist ob GOYA Zustzpunkte unterstuetzt, wird die Aufgabe mit 15
Punkten angegeben. Sollten Sie 10 davon erreichen haben Sie somit die volle
Punktzahl. Die 5 Punkte werden bei der Scheinvergabe  dann von der
Mindestpunktzahl wwwieder abgezogeen.

-----------------------------------------------------------------------------------


Abgabeformat aller Aufgaben

Abgabe aller Aufgaben als ein GOYA-File im TAR-Format  tgz
     /mypipe.tar   (tar-File mit Files fuer RPM-Quell-Paket 1. und 2.Aufgabe)
     /signal.tar   (tar-File 3.Aufgabe)
    



Abgabetermin:  10.06.2014  24:00 Uhr

 Zurück zur Gliederung 

Mo 26. Mai 12:12:58 CEST 2014 J-P Bell