Pytanie:
Jaka jest różnica między „aplikacją” a „procesem” w systemie OS X?
user46942
2014-05-18 14:19:54 UTC
view on stackexchange narkive permalink

W miarę jak coraz częściej bawię się ogólnie poprawkami AppleScript i OS X, dochodzę do tego pytania:

Jaka jest różnica między tymi dwoma słowami pod względem wewnętrznych operacji OS X - np. czy niektóre procesy działają „wewnątrz” aplikacji (lub odwrotnie), czy też dwa procesy działają jako część jednej „aplikacji” pod względem interakcji użytkownika z GUI (lub odwrotnie)?

Poza tym - pochodzę z środowiska Microsoft Windows. Czy „aplikacja” i „proces” mają jakikolwiek związek z „usługą” w systemie OS X (dane „usługa” i „program” to różne rzeczy w systemie Windows) i czy rzeczywiście istnieje trzecia kategoria w systemie OS X nazywana „usługą” jako dobrze?

Pięć odpowiedzi:
jksoegaard
2014-05-18 16:25:03 UTC
view on stackexchange narkive permalink

Standardowym podejściem do tych terminów jest stwierdzenie, że „aplikacja” to określony, statyczny program w pamięci. Jest to fragment kodu przechowywany na dysku twardym, płycie CD-ROM lub w innym miejscu.

Z drugiej strony „proces” to konkretna instancja działającego programu. To znaczy. jest rejestrowany przez system operacyjny jako wykonujący się lub mogący być uruchamiany, kiedy tylko system operacyjny ma na to ochotę.

Jeśli weźmiesz na przykład Calculator.app, jest to pojedyncza aplikacja, jednak możesz mieć wiele aplikacji Kalkulator procesy, jeśli uruchomisz program wiele razy.

Jak napisał chananelb, możliwe jest również posiadanie procesów, które nie są „tylko” zwykłymi aplikacjami, które zostały uruchomione. Mogą to być na przykład procesy jądra lub po prostu zwykłe procesy generujące podprocesy do wykonania określonych zadań.

Jeśli chodzi o usługi, odpowiedź chananelb prowadzi cię w złym kierunku. Jego odpowiedź mówi o tym, co nazywa się „usługą” w systemie Mac OS X ... ale zapytałeś o to, co nazywa się „usługą” w systemie Windows.

Odpowiednikiem usługi Windows jest demon na Mac OS X (i inne systemy wywodzące się z Uniksa).

Demony są zwykle kategoryzowane przez działanie w „tle”, tj. Bez bezpośredniej interakcji użytkownika za pośrednictwem graficznego lub nie-graficznego interfejsu użytkownika. Różnica jest jednak nieco niewyraźna, ponieważ Daemon może na przykład mieć interfejs sieciowy do interakcji z użytkownikiem.

Demony w systemie Mac OS X są kontrolowane przez program launchd, który jest odpowiedzialny na przykład za uruchamianie demonów podczas rozruchu i pozwalanie użytkownikowi na uruchamianie i zatrzymywanie demonów na żądanie.

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

Zgodnie z Przewodnikiem programowania aplikacji dla komputerów Mac,

Używasz Cocoa do pisania aplikacji na OS X.

Na podstawie w tej definicji aplikacje powinny być pakowane w pakiety aplikacji :

Pakiety aplikacji są jednymi z najczęściej popularne typy pakietów tworzonych przez programistów. Pakiet aplikacji przechowuje wszystko, czego aplikacja wymaga do pomyślnego działania.

Na tej samej stronie jest napisane:

Uwaga: Chociaż pakiety są jednym ze sposobów pakowania kodu wykonywalnego, nie są one jedynym obsługiwanym sposobem. Skrypty powłoki UNIX i narzędzia wiersza poleceń nie używają struktury pakietów, podobnie jak statyczne i dynamiczne biblioteki współdzielone.

Na tej podstawie powiedziałbym, że Apple nie bierze pod uwagę narzędzi wiersza poleceń takie jak ls jako „aplikacje”. Byłyby to programy wykonywalne lub pliki wykonywalne.


proces to dowolny wystąpienie wykonywanego programu komputerowego. Proces można utworzyć, uruchamiając aplikację lub plik wykonywalny systemu Unix. (Skrypty powłoki byłyby rodzajem pliku wykonywalnego, w którym / bin / sh lub inna powłoka interpretuje skrypt.)

„Proces” oznacza to samo w systemie Windows (patrz zakładka Proces w Menedżerze zadań Windows).


Usługa ma trzy różne znaczenia w systemie Mac OS X:

  • Może odnosić się do demona, co jest analogiczne do usługi Windows. Są to trwałe procesy działające w tle całego systemu, które nie należą do sesji żadnego użytkownika.

  • Może odnosić się do funkcji specyficznej dla systemu Mac OS X, która ułatwia przenoszenie dane między aplikacjami. Na przykład dostępna jest usługa „Utwórz nową karteczkę”, która umożliwia konwersję zaznaczenia tekstu na karteczkę samoprzylepną.

  • Może być również używany w ogólnym angielskim znaczeniu tego słowa, na przykład w Launch Services. Launch Services to interfejs API do otwierania aplikacji i może na przykład zdecydować, która aplikacja jest odpowiednia do obsługi określonego rodzaju pliku.

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

Aplikacja jest procesem, który może tworzyć podprocesy (znane jako dzieci), ale niektóre procesy są tworzone przez sam system operacyjny i mogą nie mieć za sobą „aplikacji”. To jest (według mojego rozumienia) sposób w jaki unix działa w ogóle (intro unixa - procesy).

Dzięki jksoegaard, poniższe nie ma znaczenia, źle odczytałem pytanie. Jestem trochę nowy - czy mogę go usunąć, czy zostawić?

Usługi w systemie OS X są nieco podobne do przycisku udostępniania w Androidzie - to sposób na wysłanie porcji danych bezpośrednio z obecną aplikację na inną.

Prostym przykładem jest tekst - podświetlenie tekstu i kliknięcie prawym przyciskiem myszy pokaże menu kontekstowe z usługami na dole, a przejście do tego menu pokaże Ci, które inne aplikacje na twoim Macu mogą używać ten tekst na coś (np. podsumowanie, wyszukiwanie w internecie (Chrome), Spotlight itp.).

Możesz modyfikować usługi w panelu preferencji klawiatury w zakładce „Skróty” i tworzyć własne w Automatorze, zobacz ten artykuł Ars Technica, aby uzyskać więcej informacji.

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

Aplikacja: program komputerowy wykonujący użyteczną pracę niezwiązaną z samym komputerem; oprogramowanie, które wykonuje określoną funkcję dla użytkownika. Przykłady obejmują edytory tekstu, przeglądarki internetowe, programy do prezentacji i systemy księgowe.

Proces: seria instrukcji wykonywanych przez komputer w wielozadaniowym systemie operacyjnym. Wiele procesów jest wykonywanych jednocześnie. Z punktu widzenia użytkownika procesy mogą być programami lub częściami programów (takimi jak procedura edycji i procedura drukowania w edytorze tekstu, który może drukować podczas edycji).

Zauważ, że te dwa elementy nie są t koniecznie wykluczają się wzajemnie. Mówiąc najprościej, aplikacja to pakiet procesów, które dla użytkownika są widoczne jako jeden.

Definicje z: Słownik terminów związanych z Internetem i komputerami

To nie są terminy używane w OSX - OS X ma znacznie bardziej szczegółowe definicje, które musi znać OP
Generale, tak. Dotyczy OSX? Całkowicie. Samo pytanie jest na tyle szerokie, że te definicje można w pełni zastosować. Proces to proces, a aplikacja to aplikacja, zgodnie z powyższą definicją, niezależnie od tego, czy używasz systemu Windows, czy OSX. Określenia specyficzne dla OSX „launchagents, launchdaemons, etc” nie są konieczne, aby odpowiedzieć na pytanie; co więcej, mogą wprowadzać w błąd. Moja odpowiedź jest jasna i prosta. Pozdrowienia.
W przypadku Applescript istnieje bardzo ścisła definicja aplikacji - aw OSX nazwałabym tylko pakiety aplikacji w pakietach jako Aplikacje (nie mogę znaleźć wszystkich dokładnych dokumentów referencyjnych Apple w tej chwili, więc nie mogę jeszcze napisać odpowiedzi)
John Keates
2016-09-23 18:15:30 UTC
view on stackexchange narkive permalink

W OSX aplikacja to aplikacja, której możesz używać jako użytkownik.Z drugiej strony proces to każdy działający binarny plik wykonywalny, obejmujący również aplikacje.Jedna aplikacja może mieć uruchomionych wiele procesów itp.



To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...