Domanda:
Qual è la differenza tra "Applicazione" e "Processo" in OS X?
user46942
2014-05-18 14:19:54 UTC
view on stackexchange narkive permalink

Man mano che mi diletto sempre più con AppleScript e OS X tweaking in generale, arrivo a questa domanda:

Qual è la differenza tra queste due parole in termini di operazioni interne di OS X - ad es. alcuni processi operano "all'interno" delle applicazioni (o viceversa) o due processi operano come parte di una "applicazione" in termini di ciò che l'utente interagisce con la GUI (o viceversa)?

Inoltre, provengo originariamente da uno sfondo di Microsoft Windows. "Applicazione" e "processo" hanno qualche relazione con "servizio" in OS X, (dato "servizio" e "programma" sono cose diverse in Windows), ed esiste effettivamente una terza categoria in OS X chiamata "servizio" come bene?

Cinque risposte:
#1
+5
jksoegaard
2014-05-18 16:25:03 UTC
view on stackexchange narkive permalink

Il modo standard di avvicinarsi a questi termini è dire che un '"applicazione" è un programma statico specifico in memoria. È un pezzo di codice memorizzato su un disco rigido, un CD-ROM o altrove.

Un "processo" d'altra parte è un'istanza specifica di un programma in esecuzione . Cioè è registrato dal sistema operativo come in esecuzione o in grado di essere eseguito ogni volta che il sistema operativo lo desidera.

Se prendi ad esempio Calculator.app, è una singola applicazione, tuttavia puoi avere più calcolatrici processi se avvii il programma più volte.

Come ha scritto chananelb, è anche possibile avere processi che non sono "solo" applicazioni ordinarie che sono state avviate. Potrebbe trattarsi, ad esempio, dei processi del kernel, o semplicemente dei processi ordinari che generano sottoprocessi per svolgere compiti specifici.

Per quanto riguarda i servizi, la risposta di I chananelb ti porta nella direzione sbagliata. La sua risposta ti parla di quello che viene chiamato un "servizio" in Mac OS X ... ma hai chiesto di quello che viene chiamato un "servizio" in Windows.

La controparte di un servizio di Windows è un demone su Mac OS X (e altri sistemi derivati ​​da Unix).

I demoni sono normalmente classificati in esecuzione in "background", cioè senza interazione diretta dell'utente attraverso un'interfaccia utente grafica o non grafica. La distinzione è un po 'sfocata, dato che un demone potrebbe ad esempio avere un'interfaccia web per l'interazione con l'utente.

I demoni su Mac OS X sono controllati dal programma launchd, che è responsabile, ad esempio, dell'avvio dei demoni all'avvio e consentendo all'utente di avviare e arrestare i daemon su richiesta.

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

Secondo la Guida alla programmazione delle app per Mac,

Usi Cocoa per scrivere app per OS X.

Basato in base a tale definizione, le applicazioni dovrebbero essere pacchettizzate in Pacchetti di applicazioni :

I pacchetti di applicazioni sono uno dei più tipi comuni di bundle creati dagli sviluppatori. Il bundle dell'applicazione memorizza tutto ciò che l'applicazione richiede per il corretto funzionamento.

Sulla stessa pagina, dice:

Nota: Sebbene i bundle siano un modo per impacchettare il codice eseguibile, non sono l'unico modo supportato. Gli script di shell UNIX e gli strumenti della riga di comando non utilizzano la struttura del bundle, né le librerie condivise statiche e dinamiche.

Sulla base di ciò, direi che Apple non considera gli strumenti della riga di comando come ls come "applicazioni". Sarebbero programmi eseguibili o eseguibili.


Un processo è qualsiasi istanza di un programma per computer in esecuzione. Un processo può essere creato eseguendo un'applicazione o un eseguibile Unix. (Gli script della shell sarebbero una specie di eseguibile in cui / bin / sh o un'altra shell interpreta lo script.)

"Processo" significa la stessa cosa in Windows (vedi la scheda Processo nel Task Manager di Windows).


Servizio ha tre diversi significati in Mac OS X:

  • Potrebbe fare riferimento a un demone, che è analogo a un servizio Windows. Si tratta di processi in background persistenti a livello di sistema che non appartengono alla sessione di alcun utente.

  • Potrebbe fare riferimento a una funzionalità specifica di Mac OS X che facilita il trasferimento di dati tra le applicazioni. Ad esempio, esiste un servizio "Crea nuova nota adesiva" che ti consente di convertire una selezione di testo in una nota adesiva.

  • Può essere utilizzato anche nel senso generico inglese del termine, come in Servizi di avvio. Launch Services è un'API per aprire le applicazioni e può, ad esempio, decidere quale sia l'applicazione appropriata per gestire un particolare tipo di file.

#3
+2
chananelb
2014-05-18 14:40:41 UTC
view on stackexchange narkive permalink

Un'applicazione è un processo che può generare sottoprocessi (noti come figli) ma alcuni processi vengono generati dal sistema operativo stesso e potrebbero non avere una "applicazione" di per sé dietro di loro. Questo è (per quanto ne so) il modo in cui unix funziona in generale (intro di unix - processi).

Grazie jksoegaard, quanto segue è irrilevante, ho letto male la domanda. Sono un po 'nuovo: lo elimino o lo lascio?

I servizi in OS X sono in qualche modo simili al pulsante di condivisione in Android: è un modo per inviare una parte di dati direttamente dal app corrente a un'altra.

Un semplice esempio è il testo: evidenziare del testo e fare clic con il pulsante destro del mouse ti mostrerà il menu contestuale con i servizi in basso, mentre esplorando quel menu ti verrà mostrato quali altre app sul tuo Mac possono usare quel testo per qualcosa (ad esempio riassumere, cercare sul web (Chrome), Spotlight, ecc.).

Puoi modificare i servizi nel pannello delle preferenze della tastiera nella scheda "Scorciatoie" e crearne uno personalizzato in Automator, vedi questo articolo di Ars Technica per maggiori informazioni.

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

Applicazione: un programma per computer che esegue un lavoro utile non correlato al computer stesso; un software che svolge una particolare funzione per l'utente. Gli esempi includono programmi di elaborazione testi, browser Web, programmi di presentazione e sistemi di contabilità.

Processo: una serie di istruzioni che un computer esegue in un sistema operativo multitasking. Molti processi vengono eseguiti contemporaneamente. Dal punto di vista dell'utente, i processi possono essere programmi o parti di programmi (come la routine di modifica e la routine di stampa in un elaboratore di testi che può stampare durante la modifica).

Nota che i due non sono ' t necessariamente che si escludono a vicenda. In poche parole, tuttavia, un'applicazione è un insieme di processi in bundle che, all'utente, appaiono come uno solo.

Definizioni da: Dizionario di termini Internet e computer

Questi non sono i termini usati in OSX - OS X ha definizioni molto più specifiche che sono ciò che l'OP deve sapere
Generale, sì. Applicabile a OSX? Completamente. La domanda in sé è sufficientemente ampia perché queste definizioni siano perfettamente applicabili. Un processo è un processo e un'applicazione è un'applicazione, come definito sopra, indipendentemente dal fatto che tu stia utilizzando Windows o OSX. I termini specifici di OSX "launchagents, launchdaemon, ecc" non sono necessari per rispondere alla domanda; inoltre, possono essere fuorvianti. La mia risposta è chiara e semplice. Saluti.
Per Applescript esiste una definizione molto rigorosa di Applicazione - e in OSX chiamerei solo pacchetti di applicazioni in pacchetto come Applicazioni (al momento non riesco a trovare tutti i documenti di riferimento Apple esatti, quindi non posso ancora scrivere una risposta)
#5
  0
John Keates
2016-09-23 18:15:30 UTC
view on stackexchange narkive permalink

Per OSX, un'applicazione è un'app che puoi utilizzare come utente.Un processo d'altra parte è qualsiasi eseguibile binario in esecuzione, che comprende anche le app.Un'app potrebbe avere più processi in esecuzione, ecc.



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...