Apa perbedaan antara 'Aplikasi' dan 'Proses' di OS X?

7

Ketika saya semakin mencoba-coba dengan tweaking AppleScript dan OS X secara umum, saya sampai pada pertanyaan ini:

Apa perbedaan antara kedua kata ini dalam hal operasi internal OS X - mis. apakah beberapa proses mengoperasikan aplikasi 'dalam' (atau vica versa), atau dua proses beroperasi sebagai bagian dari satu 'aplikasi' dalam hal apa yang berinteraksi dengan pengguna dengan GUI (atau, vica versa)?

Juga - Saya berasal dari latar belakang Microsoft Windows. Apakah 'aplikasi' dan 'proses' memiliki hubungan dengan 'layanan' di OS X, (diberikan 'layanan' dan 'program' adalah hal yang berbeda di Windows), dan apakah memang ada kategori ketiga di OS X yang disebut 'layanan' sebagai baik?

bmike
sumber

Jawaban:

5

Cara standar mendekati istilah-istilah ini adalah dengan mengatakan bahwa "aplikasi" adalah program statis khusus untuk penyimpanan. Ini adalah sepotong kode yang disimpan di hard drive, CD-ROM atau di tempat lain.

"Proses" di sisi lain adalah contoh spesifik dari a berlari program. Yaitu. itu terdaftar oleh sistem operasi sebagai pelaksana atau dapat dieksekusi setiap kali sistem operasi terasa seperti itu.

Jika Anda mengambil contoh Calculator.app, ini adalah satu aplikasi. Namun Anda dapat memiliki beberapa proses Kalkulator jika Anda memulai program beberapa kali.

Seperti yang ditulis chananelb, dimungkinkan juga untuk memiliki proses yang bukan "hanya" aplikasi biasa yang telah dijalankan. Itu bisa misalnya proses kernel, atau hanya proses biasa yang memunculkan subproses untuk melakukan tugas tertentu.

Mengenai layanan, jawaban saya chananelb membawa Anda ke arah yang salah. Jawabannya memberi tahu Anda tentang apa yang disebut "Layanan" di Mac OS X ... tetapi Anda bertanya tentang apa yang disebut "Layanan" di Windows.

Mitra untuk Layanan Windows adalah Daemon di Mac OS X (dan sistem turunan Unix lainnya).

Daemon biasanya dikategorikan dengan menjalankan di "latar belakang", yaitu tanpa interaksi pengguna langsung melalui antarmuka pengguna grafis atau non-grafis. Perbedaannya agak kabur, karena Daemon mungkin misalnya memiliki antarmuka web untuk interaksi pengguna.

Daemon pada Mac OS X dikendalikan oleh program launchd, yang bertanggung jawab untuk misalnya memulai daemon saat boot, dan membiarkan pengguna memulai dan menghentikan daemon sesuai permintaan.

jksoegaard
sumber
4

Menurut Panduan Pemrograman Aplikasi Mac ,

Anda menggunakan Kakao untuk menulis aplikasi untuk OS X.

Berdasarkan definisi itu, aplikasi harus dikemas dalam Bundel aplikasi :

Bundel aplikasi adalah salah satu jenis bundel yang paling umum dibuat oleh pengembang. Bundel aplikasi menyimpan semua yang diperlukan aplikasi untuk operasi yang berhasil.

Pada halaman yang sama, tertulis:

catatan: Meskipun bundel adalah salah satu cara mengemas kode yang dapat dieksekusi, mereka bukan satu-satunya cara yang didukung. Skrip shell UNIX dan alat baris perintah tidak menggunakan struktur bundel, begitu pula pustaka bersama statis dan dinamis.

Berdasarkan itu, saya akan mengatakan bahwa Apple tidak mempertimbangkan alat baris perintah seperti ls menjadi "aplikasi". Mereka akan menjadi program yang dapat dieksekusi atau executable .


SEBUAH proses adalah setiap instance dari program komputer yang sedang dijalankan. Suatu proses dapat dibuat dengan menjalankan aplikasi atau executable Unix. (Script Shell akan menjadi semacam dieksekusi di mana /bin/sh atau shell lain mengartikan skrip.)

"Proses" berarti hal yang sama di Windows (lihat tab Proses di Windows Task Manager).


Layanan memiliki tiga arti berbeda di Mac OS X:

  • Itu bisa merujuk ke a daemon , yang analog dengan Layanan Windows. Ini adalah proses latar belakang seluruh sistem yang persisten yang bukan milik sesi pengguna mana pun.

  • Bisa merujuk ke fitur spesifik Mac OS X itu memfasilitasi transfer data antar aplikasi . Misalnya, ada layanan "Buat Catatan Tempel Baru" yang memungkinkan Anda mengubah pilihan teks menjadi Catatan Tempel.

  • Ini juga dapat digunakan dalam arti umum kata dalam bahasa Inggris, seperti pada Luncurkan Layanan . Layanan Peluncuran adalah API untuk membuka aplikasi, dan dapat, misalnya, memutuskan aplikasi mana yang sesuai untuk menangani jenis file tertentu.

200_success
sumber
2

Aplikasi adalah proses yang dapat menelurkan sub-proses (dikenal sebagai anak-anak) tetapi beberapa proses dihasilkan oleh OS itu sendiri dan mungkin tidak memiliki 'aplikasi' sendiri di belakang mereka. Inilah (menurut pemahaman saya) cara unix bekerja secara umum (intro - proses unix).

Terima kasih jksoegaard, berikut ini tidak relevan, saya salah membaca pertanyaan. Saya agak baru - apakah saya menghapus atau meninggalkannya?

Layanan di OS X agak mirip dengan tombol berbagi di android - ini adalah cara bagi Anda untuk mengirim sepotong data langsung dari aplikasi saat ini ke yang berbeda.

Contoh yang mudah adalah teks - menyorot beberapa teks dan mengklik kanan akan menunjukkan kepada Anda menu konteks dengan layanan di bagian bawah, menelusuri ke dalam menu itu akan menunjukkan kepada Anda aplikasi lain di Mac mana yang memiliki kemampuan untuk menggunakan teks itu untuk sesuatu (misalnya meringkas , mencari web (Chrome), Spotlight, dll).

Anda dapat memodifikasi layanan di panel Preferensi Keyboard di bawah tab 'Pintasan' dan membuat sendiri di Automator lihat artikel Ars Technica ini untuk info lebih lanjut.

chananelb
sumber
0

Aplikasi: program komputer yang melakukan pekerjaan bermanfaat yang tidak terkait dengan komputer itu sendiri; perangkat lunak yang melakukan fungsi tertentu untuk pengguna. Contohnya termasuk program pengolah kata, browser web, program presentasi, dan sistem akuntansi.

Proses: serangkaian instruksi yang dieksekusi komputer dalam sistem operasi multitasking. Banyak proses dijalankan secara bersamaan. Dari sudut pandang pengguna, proses dapat berupa program atau bagian dari program (seperti rutinitas pengeditan dan proses pencetakan dalam pengolah kata yang dapat mencetak saat mengedit).

Perhatikan bahwa keduanya tidak harus saling eksklusif. Sederhananya, aplikasi adalah seperangkat proses yang dibundel, yang bagi pengguna, muncul sebagai satu proses.

Definisi dari: Kamus Istilah Internet dan Komputer

njboot
sumber
Ini bukan istilah yang digunakan dalam OSX - OS X memiliki definisi yang jauh lebih spesifik yang perlu diketahui OP
Mark
Jenderal, ya. Berlaku untuk OSX? Sama sekali. Pertanyaan itu sendiri cukup luas untuk definisi-definisi ini dapat diterapkan dengan sempurna. Proses adalah proses, dan aplikasi adalah aplikasi, sebagaimana didefinisikan di atas, terlepas dari apakah Anda menjalankan Windows atau OSX. Persyaratan khusus OSX 'launchagents, launchdaemons, dll' tidak diperlukan untuk menjawab pertanyaan; Selain itu, mereka mungkin menyesatkan. Jawaban saya jelas dan terus terang. Salam.
njboot
1
Untuk Applescript ada definisi Aplikasi yang sangat ketat - dan di OSX saya hanya akan memanggil bundel aplikasi yang Dikemas sebagai Aplikasi (saya tidak dapat menemukan semua dokumen referensi Apple saat ini sehingga tidak dapat menulis jawaban)
Mark
0

Untuk OSX, Aplikasi adalah aplikasi yang dapat Anda gunakan sebagai pengguna. Di sisi lain, proses menjalankan biner yang dapat dijalankan, juga mencakup aplikasi. Satu aplikasi mungkin memiliki beberapa proses berjalan dll.

John Keates
sumber