Perangkat lunak tertanam adalah jenis perangkat lunak khusus yang mengontrol, memantau, dan mengelola fungsionalitas perangkat keras dan sistem. Tidak seperti perangkat lunak komputer untuk keperluan umum yang dijalankan pada PC dan perangkat seluler, perangkat lunak tertanam beroperasi secara terbatas dan terdedikasi serta merupakan bagian integral dari perangkat keras yang dikontrolnya.
Kejadian dan Evolusi Perangkat Lunak Tertanam
Konsep sistem tertanam dan perangkat lunak terkait dimulai pada tahun 1960an. Komputer Panduan Apollo, direkayasa oleh Charles Stark Draper di MIT dan digunakan dalam misi pendaratan di bulan Apollo, dianggap sebagai sistem tertanam pertama. Perangkat lunak tertanam mengalami lompatan besar pada tahun 1971 ketika insinyur Intel Ted Hoff memproduksi mikroprosesor pertama, Intel 4004, yang memungkinkan lonjakan penerapan sistem tertanam. Penyebutan pertama perangkat lunak tertanam mulai muncul dalam literatur teknis pada pertengahan 1980an, bertepatan dengan peningkatan aplikasi mikrokontroler.
Mendalami Perangkat Lunak Tertanam
Perangkat lunak yang tertanam merupakan bagian integral dari berbagai sistem mulai dari peralatan rumah tangga, peralatan medis, pengontrol industri, hingga mobil dan pesawat terbang. Ini dirancang untuk melakukan tugas atau tugas tertentu dalam sistem yang lebih besar, seringkali dengan batasan komputasi waktu nyata. Karena 'tertanam', ia memiliki persyaratan ketat untuk keandalan, efisiensi, dan kekompakan.
Berbeda dengan aplikasi desktop tradisional, yang memungkinkan menjalankan berbagai aplikasi pada PC, aplikasi perangkat lunak tertanam biasanya memiliki fungsi tunggal. Mereka berjalan saat perangkat dihidupkan, dan memonopoli semua sumber daya perangkat.
Perangkat lunak ini sering kali ditulis dalam bahasa tingkat tinggi seperti C, C++, atau Python, meskipun bahasa assembly masih dapat digunakan untuk kecepatan atau respons waktu nyata. Biasanya, perangkat lunak dikompilasi silang pada sistem berbeda (host) untuk dijalankan pada perangkat target yang disematkan.
Roda Gigi di Balik Perangkat Lunak Tertanam
Perangkat lunak tertanam bekerja secara sinergi dengan sistem tertanam, mikroprosesor, atau mikrokontroler, serta perangkat periferal. Mikroprosesor atau mikrokontroler menjalankan perangkat lunak, dan berinteraksi dengan dunia fisik melalui periferal seperti sensor, aktuator, dan antarmuka komunikasi.
Perangkat lunak ini mengikuti urutan operasi yang telah ditentukan dan dikodekan selama pembuatannya. Tergantung pada kompleksitasnya, ia mungkin menggunakan sistem operasi real-time (RTOS) atau dapat dijalankan secara bare-metal tanpa sistem operasi.
Fitur Utama Perangkat Lunak Tertanam
Perangkat lunak tertanam menunjukkan beberapa karakteristik penting yang membedakannya dari jenis perangkat lunak lainnya:
-
Operasi Waktu Nyata: Banyak sistem tertanam memiliki persyaratan waktu nyata. Perangkat lunak harus merespons peristiwa atau masukan dalam waktu yang tetap.
-
Stabilitas dan Keandalan: Karena sering kali menjalankan fungsi-fungsi penting, maka harus beroperasi tanpa kegagalan dalam jangka waktu lama.
-
Efisiensi Memori: Sistem tertanam sering kali memiliki memori terbatas, sehingga perangkat lunak harus menggunakan sumber daya secara hemat.
-
Efisiensi tenaga: Banyak sistem tertanam bertenaga baterai, sehingga memerlukan penggunaan daya yang efisien.
-
Fungsi Khusus: Perangkat lunak tertanam dirancang untuk melakukan tugas tertentu, berbeda dengan perangkat lunak tujuan umum.
Jenis Perangkat Lunak Tertanam
Perangkat lunak tertanam dapat diklasifikasikan secara luas berdasarkan berbagai aspek. Berikut representasi tabelnya:
Berdasarkan Fungsionalitas | Berdasarkan Kompleksitas | Berdasarkan Kinerja |
---|---|---|
Perangkat Lunak Kontrol | Sederhana (Tugas Tunggal) | Waktu sebenarnya |
Perangkat Lunak Pemantauan | Sedang (Multi-tugas) | Non-waktu nyata |
Perangkat Lunak Pengolahan Data | Kompleks (berbasis RTOS) | – |
Pemanfaatan, Permasalahan, dan Solusi Perangkat Lunak Tertanam
Perangkat lunak tertanam memiliki banyak aplikasi, mulai dari peralatan penggunaan sehari-hari, sistem hiburan, peralatan medis, otomasi industri, sistem transportasi, telekomunikasi, hingga aplikasi luar angkasa yang penting.
Namun, merancang dan mengimplementasikan perangkat lunak tertanam menimbulkan beberapa tantangan, termasuk sumber daya yang terbatas, ketergantungan perangkat keras, persyaratan waktu nyata, dan standar keselamatan dan keamanan yang ketat. Untuk memitigasi hal ini, para insinyur menerapkan strategi seperti desain sistem yang cermat, algoritma yang efisien, pengujian yang ketat, dan proses validasi.
Perbandingan dengan Istilah Serupa
Ketentuan | Keterangan |
---|---|
Firmware | Jenis perangkat lunak tertanam yang disimpan dalam memori non-volatil seperti ROM atau memori flash. Ini memberikan kontrol tingkat rendah untuk perangkat keras spesifik perangkat. |
Perangkat Lunak Sistem Waktu Nyata | Perangkat lunak yang menjamin kemampuan tertentu dalam batas waktu tertentu. Sebagian besar sistem tertanam yang kritis menggunakan ini. |
Perangkat Lunak Sistem | Perangkat lunak bertanggung jawab untuk mengelola dan mengendalikan perangkat keras komputer, mengaktifkan perangkat lunak aplikasi. Ini mencakup sistem operasi, driver perangkat, dan utilitas. Ini lebih luas daripada perangkat lunak yang tertanam, karena dapat digunakan untuk tujuan umum atau tertanam. |
Perspektif Masa Depan dan Teknologi Perangkat Lunak Tertanam
Masa depan perangkat lunak tertanam dibentuk oleh tren seperti IoT (Internet of Things), AI dan Pembelajaran Mesin, Sistem Cyber-Fisik, dan Edge Computing. Kemajuan di bidang ini akan menghasilkan sistem tertanam yang semakin cerdas, otonom, dan terhubung.
Server Proxy dan Perangkat Lunak Tertanam
Server proxy dapat berinteraksi dengan sistem tertanam dalam berbagai cara. Mereka dapat membantu perangkat tertanam terhubung dengan aman ke internet, melindunginya dari paparan langsung ke jaringan eksternal, lalu lintas penyeimbangan beban, dan data cache untuk pengambilan lebih cepat. Oleh karena itu, perangkat lunak yang tertanam perlu dirancang untuk menangani aspek-aspek ini, yang sering kali melibatkan pemrograman jaringan dan elemen keamanan siber.