Dienst - Prozess - Programm

jwemcu

Aktives Mitglied
Thread Starter
Dabei seit
10.03.2013
Beiträge
484
Reaktionspunkte
13
Hi,
ich versteh grad was nicht, was ich hier lese (Buch über Netzwerk Grundlagen). Kann mir jemand den Unterschied erklären zwischen Dienst, Programm und Prozess? "Dienst" ganz allgemein (Zb FTP an Port 20/21, 22 SSH, 23 Telnet, 25 SMTP) denke ich mir als ein Synonym für Programm. Richtig? Ein Programm X "lauscht" (von innen) an Port Y würde dann heißen: Port Y nimmt Pakete entgegen, packt sie bis Layer III aus, schaut sie sich an und reicht sie an die Anwendungsvariablen von X weiter. Programm X rennt los, sobald diese Variable gefüllt ist? Ist das richtig? Was passiert genau, wenn man den Port "abschaltet"? Heisst das, er "antwortet" dann nicht mehr (auf Ping, Portscan usw) UND leitet die an seinem Port eintreffenden Pakete auch keinesfalls mehr an X durch?
Was ist der Unterschied zwischen Dienst, Programm und "Prozess"? Prozesse sehe ich ja in der Aktivitätsanzeige, ich hab dieses Fenster immer offen und würde gern verstehen, was ich da so sehe…
Lgr jwemcu
 
naja, also programme und dienste sind prozesse.
dienste laufen meist im hintergrund, haben keine benutzeroberfläche und lauschen, bis einer was von ihnen will.
ein programm oder app(lication) hat eine benutzeroberfläche und wird meistens im vordergrund ausgeführt.
 
fast:
Ich würde sagen
Dienst: Ein Programm welches im HIntergrund läuft. Meistens wird es automatisch gestartet und gestoppt (beim booten, Wechsel des Runlevels, herunterfahren etc). ein Dienst muss nichts mit dem Netzwerk zu tun haben, kann aber. Andere Möglichkeiten einen Dienst anzusprechen sind sharedRAM, Sockets, Dateien. Es gibt auch Dienste die z.B. auf Veränderungen im Dateisystem reagieren oder einfach Zeitgesteuert arbeiten.

Programm: Ein Programm ist ein Stück Software welches eine Aufgabe erfüllt. Klassischerweise nimmt es Eingaben entgegen, verarbeitet sie und packt das Ergebnis in eine Ausgabe.

Prozess: Ein aktives Dienst oder Programm welches vom Betriebssystem ausgeführt wird. Ein nicht gestartetes Programm oder ein nicht gestarteter Dienst ist also kein Prozess. Dafür kann ein Programm oder Dienst mehrfach gestartet werden was dann dazu führt das mehrere Prozesse laufen obwohl es nur ein Programm gibt.
Ein Programm muss nicht unbedingt eine Benutzeroberfläche haben. Die meisten unix-shell-tools haben keine.
Bsp: in der shell:
#cat /beispiel/datei | sort | uniq
Weder haben sort, cat oder uniq eine Benutzeroberfläche noch sind sie Dienste.
 
So in etwa sehe ich das auch, aber höchstwahrscheinlich gibt es keine präzisen Unterscheidungskriterien, es wird je nach Zusammenhang bezeichnet.
Im Alltagsgebrauch denke ich aber, daß man mit Programm die … tja, halt die, sagen wir mal: Abläufe bezeichnet, auf die man irgendwie direkten Zugriff hat, als Prozesse das, was diese eventuell aufrufen. Sowie die vielen UNIX-Systemprozesse, die im Hintergrund ablaufen, obwohl das natürlich auch Programme sind.
cat hat meiner pingeligen Meinung nach übrigens durchaus eine Benutzeroberfläche, nämlich die Shell. Da kann und muß man als Benutzer mit dem Programm kommunizieren. Ist halt keine grafische Oberfläche, sondern eine rein textliche.
Bei Diensten wird es etwas komplizierter dadurch, daß OS X ja 'Dienste' anbietet, als Zusatzaktivitäten in laufenden Programmen.
Wie gesagt: ich denke, man muß diese Begriffe immer im Zusammenhang sehen, sie unterliegen (zum Glück) keinen EU-Normen.
 
Zurück
Oben Unten