Was ist der Unterschied zwischen „Anwendung“ und „Prozess“ in OS X?

Da ich mich zunehmend mit AppleScript und OS X-Optimierungen im Allgemeinen herumbeschäftige, komme ich zu dieser Frage:

Was ist der Unterschied zwischen diesen beiden Wörtern in Bezug auf die internen Operationen von OS X – arbeiten z GUI-weise (oder umgekehrt)?

Außerdem - ich komme ursprünglich aus einem Microsoft Windows-Hintergrund. Haben „Anwendung“ und „Prozess“ irgendeine Beziehung zu „Dienst“ in OS X (da „Dienst“ und „Programm“ verschiedene Dinge in Windows sind), und gibt es in OS X tatsächlich eine dritte Kategorie namens „Dienst“? Gut?

Antworten (5)

Die übliche Herangehensweise an diese Begriffe ist zu sagen, dass eine "Anwendung" ein spezifisches, statisches Programm auf dem Speicher ist. Es ist ein Stück Code, das auf einer Festplatte, einer CD-ROM oder anderswo gespeichert ist.

Ein "Prozess" hingegen ist eine bestimmte Instanz eines laufenden Programms. Dh es wird vom Betriebssystem als ausführend oder ausführend registriert, wann immer das Betriebssystem dazu Lust hat.

Wenn Sie zum Beispiel Calculator.app nehmen, handelt es sich um eine einzelne Anwendung. Sie können jedoch mehrere Rechnerprozesse haben, wenn Sie das Programm mehrmals starten.

Wie chananelb schrieb, ist es auch möglich, dass Prozesse gestartet werden, die nicht "nur" gewöhnliche Anwendungen sind. Das können zum Beispiel Kernel-Prozesse oder einfach gewöhnliche Prozesse sein, die Unterprozesse erzeugen, um bestimmte Aufgaben zu erledigen.

In Bezug auf Dienstleistungen führt Sie die Antwort von I chananelb in die falsche Richtung. In seiner Antwort erfahren Sie, was in Mac OS X als "Dienst" bezeichnet wird ... aber Sie haben gefragt, was in Windows als "Dienst" bezeichnet wird.

Das Gegenstück zu einem Windows-Dienst ist ein Daemon auf Mac OS X (und anderen von Unix abgeleiteten Systemen).

Daemons werden normalerweise dadurch kategorisiert, dass sie im "Hintergrund" laufen, dh ohne direkte Benutzerinteraktion über eine grafische oder nicht-grafische Benutzeroberfläche. Die Unterscheidung ist jedoch etwas verschwommen, da ein Daemon beispielsweise eine Webschnittstelle für die Benutzerinteraktion haben könnte.

Daemons unter Mac OS X werden durch das launchd-Programm gesteuert, das beispielsweise dafür verantwortlich ist, Daemons beim Booten zu starten und es dem Benutzer zu ermöglichen, Daemons auf Anfrage zu starten und zu stoppen.

Laut Mac App Programming Guide ,

Sie verwenden Cocoa, um Apps für OS X zu schreiben.

Basierend auf dieser Definition sollten Anwendungen in Anwendungspakete gepackt werden :

Anwendungsbündel sind eine der häufigsten Arten von Bündeln, die von Entwicklern erstellt werden. Das Anwendungspaket speichert alles, was die Anwendung für einen erfolgreichen Betrieb benötigt.

Auf derselben Seite heißt es:

Hinweis: Obwohl Bundles eine Möglichkeit sind, ausführbaren Code zu packen, sind sie nicht die einzige Möglichkeit, die unterstützt wird. UNIX-Shell-Scripts und Befehlszeilentools verwenden die Bundle-Struktur nicht, ebensowenig statische und dynamische gemeinsam genutzte Bibliotheken.

Auf dieser Grundlage würde ich sagen, dass Apple Befehlszeilentools nicht als ls"Anwendungen" betrachtet. Sie wären ausführbare Programme oder ausführbare Dateien .


Ein Prozess ist jede Instanz eines Computerprogramms, die ausgeführt wird. Ein Prozess kann erstellt werden, indem entweder eine Anwendung oder eine ausführbare Unix-Datei ausgeführt wird. (Shell-Skripte wären eine Art ausführbare Datei, in der /bin/sheine andere Shell das Skript interpretiert.)

"Prozess" bedeutet dasselbe in Windows (siehe Registerkarte "Prozess" im Windows Task-Manager).


Dienst hat in Mac OS X drei verschiedene Bedeutungen:

  • Es könnte sich auf einen Daemon beziehen , der einem Windows-Dienst entspricht. Dies sind persistente systemweite Hintergrundprozesse, die zu keiner Benutzersitzung gehören.

  • Es könnte sich auf eine Mac OS X-spezifische Funktion beziehen, die die Übertragung von Daten zwischen Anwendungen erleichtert . Beispielsweise gibt es einen Dienst „Neue Haftnotiz erstellen“, mit dem Sie eine Textauswahl in eine Haftnotiz umwandeln können.

  • Es kann auch im generischen englischen Sinne des Wortes verwendet werden, wie in Launch Services . Launch Services ist eine API zum Öffnen von Anwendungen und kann beispielsweise entscheiden, welche Anwendung für eine bestimmte Art von Datei geeignet ist.

Eine Anwendung ist ein Prozess, der Unterprozesse (bekannt als untergeordnete Prozesse) hervorbringen kann, aber einige Prozesse werden vom Betriebssystem selbst hervorgebracht und haben möglicherweise keine „Anwendung“ per se hinter sich. Dies ist (nach meinem Verständnis) die Art und Weise, wie Unix im Allgemeinen funktioniert (Unix-Intro - Prozesse).

Danke jksoegaard, das Folgende ist irrelevant, ich habe die Frage falsch verstanden. Ich bin neu - soll ich es löschen oder es lassen?

Dienste in OS X ähneln in gewisser Weise der Share-Schaltfläche in Android – es ist eine Möglichkeit für Sie, einen Datenblock direkt von der aktuellen App an eine andere zu senden.

Ein einfaches Beispiel ist Text – wenn Sie etwas Text markieren und mit der rechten Maustaste klicken, wird Ihnen das Kontextmenü mit Diensten unten angezeigt. Wenn Sie in dieses Menü hineinbohren, wird Ihnen angezeigt, welche anderen Apps auf Ihrem Mac die Möglichkeit haben, diesen Text für etwas zu verwenden (z , Websuche (Chrome), Spotlight usw.).

Sie können Dienste im Tastatureinstellungsbereich auf der Registerkarte „Shortcuts“ ändern und Ihre eigenen in Automator erstellen . Weitere Informationen finden Sie in diesem Ars Technica-Artikel .

Anwendung: ein Computerprogramm, das nützliche Arbeiten ausführt, die nicht mit dem Computer selbst zusammenhängen; eine Software, die eine bestimmte Funktion für den Benutzer ausführt. Beispiele sind Textverarbeitungsprogramme, Webbrowser, Präsentationsprogramme und Buchhaltungssysteme.

Prozess: eine Reihe von Anweisungen, die ein Computer in einem Multitasking-Betriebssystem ausführt. Viele Prozesse werden gleichzeitig ausgeführt. Aus der Sicht des Benutzers können Prozesse Programme oder Teile von Programmen sein (wie beispielsweise die Editierroutine und die Druckroutine in einem Textverarbeitungsprogramm, das während des Editierens drucken kann).

Beachten Sie, dass sich die beiden nicht unbedingt gegenseitig ausschließen. Einfach ausgedrückt ist eine Anwendung jedoch ein gebündelter Satz von Prozessen, die für den Benutzer als einer erscheinen.

Definitionen aus: Wörterbuch der Internet- und Computerbegriffe

Dies sind nicht die Begriffe, die in OSX verwendet werden - OSX hat viel spezifischere Definitionen, die das OP wissen muss
Allgemein, ja. Gilt für OSX? Ganz und gar. Die Frage selbst ist breit genug, um diese Definitionen perfekt anwenden zu können. Ein Prozess ist ein Prozess, und eine Anwendung ist eine Anwendung, wie oben definiert, unabhängig davon, ob Sie Windows oder OSX ausführen. OSX-spezifische Begriffe „Launchagents, Launchdaemons usw.“ sind nicht erforderlich, um die Frage zu beantworten. außerdem können sie irreführend sein. Meine Antwort ist klar und einfach. Grüße.
Für Applescript gibt es eine sehr strenge Definition von Anwendung - und in OSX würde ich nur verpackte Anwendungspakete als Anwendungen bezeichnen (ich kann im Moment nicht alle genauen Apple-Referenzdokumente finden, kann also noch keine Antwort schreiben).

Für OSX ist eine Anwendung eine App, die Sie als Benutzer verwenden können. Ein Prozess hingegen ist jede laufende binäre ausführbare Datei, die auch Apps umfasst. In einer App können mehrere Prozesse ausgeführt werden usw.