Jenis perangkat lunak
Pada hampir semua platform komputer, perangkat lunak dapat dikelompokkan menjadi beberapa kategori yang luas.
Tujuan, atau domain penggunaan
Berdasarkan tujuan, perangkat lunak komputer dapat dibagi menjadi:
- Software aplikasi, yang menggunakan sistem komputer untuk melakukan fungsi-fungsi khusus atau memberikan hiburan fungsi luar operasi dasar komputer itu sendiri. Ada banyak jenis perangkat lunak aplikasi, karena berbagai tugas yang dapat dilakukan dengan komputer modern begitu besar - Lihat Daftar perangkat lunak.
- Sistem perangkat lunak yang dirancang untuk langsung beroperasi perangkat keras komputer, untuk menyediakan fungsionalitas dasar yang dibutuhkan oleh pengguna dan perangkat lunak lainnya, dan untuk menyediakan platform untuk menjalankan aplikasi perangkat lunak. Sistem perangkat lunak termasuk:
- Sistem operasi, yang penting koleksi dari perangkat lunak yang mengelola sumber daya dan menyediakan layanan umum untuk perangkat lunak lain yang menjalankan "di atas" mereka. Program pengawas, boot loader, kerang dan sistem jendela adalah bagian inti dari sistem operasi. Dalam prakteknya, sistem operasi datang dibundel dengan software tambahan (termasuk perangkat lunak aplikasi) sehingga pengguna dapat berpotensi melakukan beberapa pekerjaan dengan komputer yang hanya memiliki sistem operasi.
- Device driver, yang beroperasi atau mengontrol jenis tertentu perangkat yang terpasang pada komputer. Setiap perangkat memerlukan setidaknya satu driver perangkat yang terkait; karena komputer biasanya memiliki minimal setidaknya satu perangkat input dan perangkat output setidaknya satu, komputer biasanya membutuhkan lebih dari satu driver perangkat.
- Utilitas, yang merupakan program komputer yang dirancang untuk membantu pengguna dalam pemeliharaan dan perawatan komputer mereka.
- Virus atau malware, program komputer yang dikembangkan untuk membahayakan dan mengganggu komputer. Dengan demikian, malware tidak diinginkan. Malware terkait erat dengan kejahatan yang berhubungan dengan komputer, meskipun beberapa program berbahaya mungkin telah dirancang sebagai lelucon praktis.
Alam, atau domain eksekusi
Aplikasi desktop seperti browser web dan Microsoft Office, serta aplikasi smartphone dan tablet (disebut "apl"). (Ada dorongan di beberapa bagian dari industri perangkat lunak untuk menggabungkan aplikasi desktop dengan aplikasi mobile, sampai batas tertentu. Windows 8, dan kemudian Ubuntu Touch, mencoba untuk memungkinkan gaya aplikasi antarmuka pengguna untuk digunakan pada desktop dan laptop, ponsel dan tablet hibrida yang sama.)
Skrip JavaScript adalah buah perangkat lunak tradisional tertanam di halaman web yang dijalankan secara langsung di dalam web browser ketika di-load halaman web tanpa perlu untuk sebuah plugin browser web. Perangkat lunak yang ditulis dalam bahasa pemrograman lain juga dapat dijalankan dalam web browser jika perangkat lunak baik diterjemahkan ke JavaScript, atau jika sebuah plugin browser web yang mendukung bahasa yang terinstal; contoh yang paling umum yang kedua adalah ActionScript script, yang didukung oleh Adobe Flash plugin.
Perangkat lunak server, termasuk:
Aplikasi web, yang biasanya dijalankan
Perangkat lunak server, termasuk:
- Aplikasi web, yang biasanya berjalan pada web server dan menampilkan halaman web yang dihasilkan secara dinamis untuk web browser, misalnya menggunakan PHP, Java, atau ASP.NET, atau bahkan JavaScript yang berjalan pada server. Di zaman modern ini sering termasuk beberapa JavaScript untuk dijalankan dalam web browser juga, dalam hal ini mereka biasanya dijalankan sebagian di server, sebagian di web browser.
- Plugin dan ekstensi perangkat lunak yang meluas atau memodifikasi fungsi lain bagian dari perangkat lunak, dan memerlukan bahwa perangkat lunak dapat digunakan untuk fungsi;
- Perangkat lunak tertanam tinggal sebagai firmware dalam tertanam sistem, perangkat yang didedikasikan untuk menggunakan satu atau beberapa menggunakan seperti mobil dan televisi (walaupun beberapa tertanam perangkat seperti chipset nirkabel dapat sendiri menjadi bagian dari sistem komputer biasa, bebas-tertanam seperti PC atau smartphone). Dalam konteks sistem benam ada kadang-kadang ada perbedaan yang jelas antara sistem perangkat lunak dan perangkat lunak aplikasi. Namun, beberapa sistem embedded menjalankan tertanam sistem operasi, dan sistem ini mempertahankan perbedaan antara sistem perangkat lunak dan perangkat lunak aplikasi (meskipun biasanya akan hanya ada satu, tetap, aplikasi yang selalu berlari).
- Pengendali adalah jenis perangkat lunak tertanam yang menceritakan prosesor sendiri bagaimana untuk mengeksekusi kode mesin, sehingga benar-benar tingkat yang lebih rendah daripada mesin kode khusus, relatif tidak jelas.[5] itu biasanya milik produsen prosesor, dan setiap update perangkat lunak pengendali pemasyarakatan diperlukan disediakan oleh mereka untuk pengguna (yang jauh lebih murah daripada pengiriman penggantian prosesor hardware). Dengan demikian programmer yang biasa tidak akan mengharapkan untuk pernah berurusan dengan hal itu.