Frage:
Was ist der Unterschied zwischen "Anwendung" und "Prozess" in OS X?
user46942
2014-05-18 14:19:54 UTC
view on stackexchange narkive permalink

Da ich mich zunehmend mit der Optimierung von AppleScript und OS X im Allgemeinen beschäftige, komme ich zu der Frage:

Was ist der Unterschied zwischen diesen beiden Wörtern in Bezug auf die inneren Operationen von OS X - z. Arbeiten einige Prozesse "innerhalb" von Anwendungen (oder umgekehrt) oder arbeiten zwei Prozesse als Teil einer "Anwendung" in Bezug auf die Interaktion des Benutzers mit der GUI (oder umgekehrt)?

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

Fünf antworten:
jksoegaard
2014-05-18 16:25:03 UTC
view on stackexchange narkive permalink

Die Standardmethode für die Annäherung an diese Begriffe besteht darin, zu sagen, dass eine "Anwendung" ein spezifisches statisches Speicherprogramm ist. Es ist ein Teil des Codes, der auf einer Festplatte, einer CD-ROM oder anderswo gespeichert ist.

Ein "Prozess" ist andererseits eine bestimmte Instanz eines laufenden Programms. Das heißt, Es wird vom Betriebssystem als ausgeführt registriert oder kann ausgeführt werden, wann immer das Betriebssystem dies wünscht.

Wenn Sie beispielsweise Calculator.app verwenden, handelt es sich um eine einzelne Anwendung. Sie können jedoch mehrere Calculator verwenden Prozesse, wenn Sie das Programm mehrmals starten.

Wie Chananelb schrieb, ist es auch möglich, Prozesse zu haben, die nicht "nur" normale Anwendungen sind, die gestartet wurden. Das können zum Beispiel Kernel-Prozesse oder einfach gewöhnliche Prozesse sein, die Unterprozesse für bestimmte Aufgaben erzeugen.

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

Das Gegenstück zu einem Windows-Dienst ist ein Daemon Mac OS X (und andere von Unix abgeleitete Systeme).

Dämonen werden normalerweise kategorisiert, indem sie im "Hintergrund" ausgeführt werden, dh ohne direkte Benutzerinteraktion über eine grafische oder nicht grafische Benutzeroberfläche. Die Unterscheidung ist jedoch etwas verschwommen, da ein Daemon beispielsweise eine Weboberfläche für die Benutzerinteraktion haben könnte.

Daemons unter Mac OS X werden vom Programm launchd gesteuert, das beispielsweise für das Starten von Daemons verantwortlich ist beim Booten und Ermöglichen, dass der Benutzer Dämonen auf Anfrage startet und stoppt.

200_success
2014-05-18 23:20:56 UTC
view on stackexchange narkive permalink

Gemäß dem Mac App Programming Guide

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

Basierend Nach dieser Definition sollten Anwendungen in Anwendungspakete gepackt werden:

Anwendungspakete gehören zu den häufigsten gängige Arten von Bundles, die von Entwicklern erstellt wurden. Das Anwendungspaket speichert alles, was die Anwendung für einen erfolgreichen Betrieb benötigt.

Auf derselben Seite wird Folgendes angezeigt:

Hinweis: Obwohl Bundles eine Möglichkeit zum Packen von ausführbarem Code darstellen, werden sie nicht nur unterstützt. UNIX-Shell-Skripte und Befehlszeilentools verwenden weder die Bundle-Struktur noch statische und dynamische gemeinsam genutzte Bibliotheken.

Auf dieser Grundlage würde ich sagen, dass Apple keine Befehlszeilentools berücksichtigt B. ls als "Anwendungen". Dies wären ausführbare Programme oder ausführbare Programme .


Ein Prozess ist ein beliebiger Instanz eines Computerprogramms, das ausgeführt wird. Ein Prozess kann durch Ausführen einer Anwendung oder einer ausführbaren Unix-Datei erstellt werden. (Shell-Skripte sind eine Art ausführbare Datei, in der / bin / sh oder eine andere Shell das Skript interpretiert.)

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


Service hat unter Mac OS X drei verschiedene Bedeutungen:

  • Es könnte verweisen zu einem Daemon, der einem Windows-Dienst entspricht. Hierbei handelt es sich um persistente systemweite Hintergrundprozesse, die nicht zur Sitzung eines Benutzers gehören.

  • Es kann sich um eine Mac OS X-spezifische Funktion handeln, die die Übertragung erleichtert Daten zwischen Anwendungen. Beispielsweise gibt es einen Dienst zum Erstellen neuer Haftnotizen, mit dem Sie eine Textauswahl in eine Haftnotiz konvertieren können.

  • Es kann auch im allgemeinen 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 die Verarbeitung einer bestimmten Art von Datei geeignet ist.

chananelb
2014-05-18 14:40:41 UTC
view on stackexchange narkive permalink

Eine Anwendung ist ein Prozess, der Unterprozesse (sogenannte untergeordnete Prozesse) erzeugen kann. Einige Prozesse werden jedoch vom Betriebssystem selbst erzeugt und haben möglicherweise keine 'Anwendung' an 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 ein bisschen neu - lösche ich es oder lasse ich es?

Dienste in OS X ähneln etwas der Share-Schaltfläche in Android - es ist eine Möglichkeit für Sie, einen Datenblock direkt von der zu senden aktuelle App zu einer anderen.

Ein einfaches Beispiel ist Text. Wenn Sie Text hervorheben und mit der rechten Maustaste klicken, wird das Kontextmenü mit den Diensten unten angezeigt. Wenn Sie in dieses Menü bohren, sehen Sie, welche anderen Apps auf Ihrem Mac verwendet werden können diesen Text für etwas (z. B. zusammenfassen, Web durchsuchen (Chrome), Spotlight usw.).

Sie können Dienste im Bereich "Tastatureinstellungen" auf der Registerkarte "Verknüpfungen" ändern und Ihre eigenen in Automator erstellen. Weitere Informationen finden Sie in diesem Ars Technica-Artikel.

njboot
2014-05-18 17:08:56 UTC
view on stackexchange narkive permalink

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 hierfür 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 Sicht des Benutzers können Prozesse Programme oder Teile von Programmen sein (wie die Bearbeitungsroutine und die Druckroutine in einem Textverarbeitungsprogramm, die während der Bearbeitung drucken können).

Beachten Sie, dass die beiden nicht Dies muss sich nicht unbedingt gegenseitig ausschließen. Einfach ausgedrückt handelt es sich bei einer Anwendung jedoch um eine Reihe von Prozessen, die für den Benutzer als einer erscheinen.

Definitionen aus: Wörterbuch der Internet- und Computerbegriffe

Dies sind nicht die in OSX verwendeten Begriffe - OS X hat viel spezifischere Definitionen, die das OP wissen muss
Allgemein, ja. Anwendbar auf OSX? Vollständig. Die Frage selbst ist breit genug, damit diese Definitionen perfekt anwendbar sind. 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 zur Beantwortung der Frage nicht erforderlich. Darüber hinaus können sie irreführend sein. Meine Antwort ist klar und unkompliziert. Grüße.
Für Applescript gibt es eine sehr strenge Definition von Anwendung - und in OSX würde ich nur gepackte Anwendungspakete als Anwendungen bezeichnen (ich kann derzeit nicht alle genauen Apple-Referenzdokumente finden, kann also noch keine Antwort schreiben).
John Keates
2016-09-23 18:15:30 UTC
view on stackexchange narkive permalink

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



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...