Operating Systems in Internet of Things
1. Definition
Sistem operasi IoT adalah istilah yang relatif baru dan didefinisikan secara fleksibel. Literatur tentang taksonomi dan pengembangan sistem operasi IoT masih kurang. Sistem operasi IoT adalah perangkat lunak yang menyediakan saluran interaksi antara pengguna dan perangkat IoT dan mengelola semua sumber daya perangkat keras dan perangkat lunak. Mirip dengan sistem operasi biasa seperti Unix dan Windows. Perbedaannya terletak pada arsitektur perangkat keras dan keterbatasan sumber daya dari sistem host. Sistem operasi yang dirancang khusus untuk aplikasi IoT dan dapat berjalan dengan sumber daya minimal yang tersedia di perangkat IoT disebut sistem operasi IoT. Sistem operasi IoT adalah ekstensi dari sistem operasi untuk sistem tertanam. Sistem operasi IoT memastikan konektivitas antara aplikasi IoT dan sistem tertanam. Sistem operasi IoT adalah evolusi dari sistem operasi tertanam, tetapi IoT memiliki batasan dan persyaratan tambahan untuk dipertimbangkan. Sistem operasi yang disematkan telah ditingkatkan atau diperbarui untuk menyertakan fitur khusus IoT. Sistem operasi IoT yang umum adalah TinyOS, Contiki, mbedOS, Ubuntu Core, Yocto, Windows 10 untuk IoT.
- 2. Functions of an IoT Operating System
Sebuah sistem teknis membutuhkan sebuah sistem operasi. Hal ini karena sistem operasi adalah interface utama di mana pengguna berinteraksi dengan komputer dan mengelola bagaimana program bekerja di dalam sistem komputer yang menangani proses penting di belakang layar seperti manajemen sumber daya perangkat keras, pengiriman interface pengguna, eksekusi program aplikasi, dan pengiriman layanan. Tidak seperti sistem operasi desktop, tujuan umum sistem operasi IoT dirancang untuk bekerja dengan sumber daya terbatas, namun menawarkan alat pengembangan yang cepat, standarisasi, perawatan yang mudah, dukungan untuk berbagai platform perangkat keras, dan program aplikasi,
portabilitas, dan Internet global. Fungsi yang dilakukan oleh sistem operasi IoT
adalah sebagai berikut
Provides a Hardware Abstraction Layer (HAL)
HAL dapat didefinisikan sebagai perangkat lunak yang secara langsung bergantung pada perangkat keras yang mendasarinya. Dalam istilah yang lebih kompleks, lapisan abstrak dari perangkat keras (HAL) dapat didefinisikan sebagai pemrograman atau lapisan kode yang memungkinkan komunikasi umum antara perangkat lunak dan komponen perangkat keras dari suatu sistem. Hal ini mengurangi pekerjaan pengembang aplikasi. HAL menjembatani kesenjangan antara perangkat keras dan perangkat lunak. Jika tidak, pengembang harus membuat hardcode driver, kernel, atau API untuk setiap perangkat keras. Abstraksi perangkat keras yang disediakan oleh sistem operasi IoT memberi pengembang akses langsung ke semua perangkat yang dikendalikan oleh sistem operasi (Bluetooth, kamera, output video, audio, sensor, penyimpanan, dll.).
Power Management
Teknik manajemen daya terintegrasi telah diterapkan pada SoC (System One Chips) oleh beberapa produsen mikrokontroler yang dapat masuk ke mode sleep atau standby untuk menghemat daya. Mikrokontroler (MCU) menghentikan komputasi saat dalam keadaan diam. Namun, data saat ini disimpan dan semua fungsi periferal dihentikan. Sistem operasi dapat secara efisien mengelola status tidur ini dan memantau konsumsi daya periferal atau sensor yang terpasang. Perangkat IoT yang beroperasi terus menerus untuk waktu yang sangat lama dapat memanfaatkan teknik hemat daya ini.
Concurrency Management
Perangkat IoT saat ini mendukung pengaturan multi-core atau multi-prosesor. Hal tersebut berarti bahwa komputasi paralel juga merupakan bagian penting dari embedded system. Metode pemrograman paralel tradisional yang digunakan oleh sistem operasi umum mengalami peningkatan dan keterbatasan sumber daya. Oleh karena itu, algoritma yang memprioritaskan persyaratan ini harus diimplementasikan dalam sistem operasi IoT. Konkurensi kurang penting untuk mengontrol periferal atau membaca data dari sensor. Menggunakan eksekusi asinkron yang digerakkan oleh peristiwa atau IO kolektif adalah solusi yang layak.
Namun, ketika menyangkut sistem pemrosesan data dan sinyal, sistem operasi harus mengelola paralelisme proses.
User Interface
OS menyediakan interface antara pengguna dan perangkat. Beberapa distribusi berbasis Linux yang tersedia untuk IoT pada awalnya melakukan booting ke terminal, dan disini kita dapat memanggil GUI. Seperti pada sistem operasi NOOBS untuk Raspberry Pi, GUI dapat dimulai dengan mengetikkan command startx‟ di terminal. Sebagian besar vendor IoT OS menggunakan interface grafis mengingat banyaknya penggemar atau amatir sebagai pengguna. Operasi input dan output juga dapat didiskusikan di bawah judul ini. Input ke perangkat IoT mungkin melalui interface USB atau pin GPIO. Sebagian besar papan pengembangan IoT menyediakan output video lengkap. Dengan perangkat keras tambahan, board IoT juga dapat mendukung input layar sentuh, contohnya dapat dilihat di sistem POS atau ATM.
Memory Management:
OS pada IoT memiliki tanggung jawab untuk mengelola memori utama pada perangkat yang dihubungkannya. Fungsinya untuk melacak status saat ini di setiap lokasi memori, apakah itu dialokasikan atau gratis. Ini mengukur bagaimana memori dialokasikan atas proses, memutuskan mana yang mendapat memori, kapan mereka menerimanya, dan berapa banyak mereka bebas [18].
2.6 Process Scheduling
Mengenai OS IoT, Penjadwalan proses hanya mengacu pada pengelolaan proses yang saat ini ada di memori sistem. Dalam istilah yang sangat sederhana, ia memutuskan urutan pelaksanaan sesuatu [19]. Penjadwalan memprioritaskan proses, memuatnya ke dalam antrian siap sistem dan kemudian mengirimkannya untuk dieksekusi. Penjadwalan jangka pendek, menengah, dan panjang dapat diimplementasikan oleh sistem operasi [18].
2.7 Shared Libraries
Sistem operasi menyediakan beberapa pustaka utilitas untuk pengembang, yang tersedia untuk semua platform pengembangan dan bahasa pemrograman yang didukung. Pustaka yang terhubung secara dinamis ini dapat digunakan oleh
sejumlah program aplikasi tanpa membuat salinan di memori utama. Banyak memori dapat disimpan dengan cara ini dan sangat cocok untuk lingkungan IoT yang terbatas sumber daya. Pengembang dapat menggunakan perpustakaan bersama ini dan mengurangi biaya komputasi. Fungsionalitas seperti utilitas logging, TCP/IP, kriptografi, sinkronisasi waktu disediakan oleh perpustakaan bersama [19]. Contoh lain adalah perpustakaan SELinux yang menyediakan keamanan dalam sistem Linux [20].
2.8 Hardware Virtualization
Motif utama di balik virtualisasi perangkat IoT adalah untuk perangkat IoT yang berbeda dan fungsi layanan dengan beberapa aplikasi. Virtualisasi memungkinkan sumber daya perangkat keras yang terbatas untuk dibagikan di antara banyak pengguna [19]. Ini memastikan penggunaan sumber daya yang tersedia secara efisien dan membatasi akses ke kelompok pengguna tertentu. Dalam arti yang lebih luas, virtualisasi juga mencakup buruh pelabuhan dan kontainer, menciptakan lingkungan aplikasi yang aman yang dapat digunakan melalui cloud atau jaringan lokal [21].
3 Parameters for the Choice of an IoT Operating System
Parameter berikut harus dipertimbangkan sebelum membuat pemilihan sistem operasi IoT
3.1 Reliability and Stability
OS yang diinstal pada perangkat IoT tidak boleh mogok secara tiba-tiba. Perangkat IoT seharusnya berjalan tanpa mati, untuk waktu yang sangat lama. Jika OS mogok atau menunjukkan gangguan, men-debug perangkat lunak sistem setelah penerapan adalah pekerjaan yang sulit untuk dilakukan. OS yang memiliki dukungan dari vendor atau komunitas pengguna aktif harus dipilih.
3.2 Footprint
Perangkat IoT terikat untuk beroperasi dengan sumber daya yang terbatas. OS diharapkan memiliki memori, daya, dan persyaratan pemrosesan yang rendah [12]. Algoritma penjadwalan dan manajemen proses juga harus sesuai dengan paradigma IoT.
3.3 Scalability
Skalabilitas di sini mengacu pada kemampuan untuk memperluas OS untuk beroperasi pada dua jenis perangkat IoT – node dan gateway. Dengan cara ini, arsitek dan administrator sistem hanya perlu berurusan dengan satu OS, yang berjalan di semua jenis perangkat. Skalabilitas juga dapat berarti kemampuan OS untuk meningkatkan dari waktu ke waktu melalui pembaruan. OS yang dapat memiliki skalabilitas yang baik dapat digunakan dengan mudah.
3.4 Portability
Portabilitas berarti sistem dapat dijalan di berbagai environment yang berbeda tanpa menulis ulang kodenya kembali.Hal ini memberikan fleksibilitas untuk berpindah di antara platform perangkat keras IoT tanpa perlu mengubah OS. Disarankan juga untuk memiliki beberapa standar interface untuk portabilitas aplikasi yang baik, untuk meminimalkan pemeliharaan, serta menyediakan kemampuan untuk terhubung dengan mudah ke perangkat lain di Internet.
3.5 Modularity
Di luar kernel, setiap fungsionalitas dapat dirancang sebagai tambahan pada sistem operasi sehingga versi minimal dari OS dapat dijalankan berdasarkan situasi tertentu. Arsitektur modular memberikan kemungkinan untuk mengganti atau menambahkan komponen kernel secara dinamis pada saat dijalankan. Dalam kernel modular, komponen yang menyediakan fungsionalitas serupa akan disimpan dalam file yang disebut modul dan dapat dimuat ketika sistem membutuhkan fungsionalitas itu. Perangkat IoT akan membutuhkan sistem operasi modular yang memisahkan kernel inti dari middleware, protokol, dan aplikasi.
3.6 Hardware agnostic operation
Ada beberapa platform perangkat keras IoT yang tersedia di pasar. Dengan mengingat hal ini, penting bahwa OS mendukung platform perangkat keras yang berbeda – mengarah ke standarisasi dan kemudahan dalam penerapan.
3.7 Network Connectivity & Protocol Support
Internet of Things adalah model perangkat “terhubung”. Dengan kata lain, OS harus mendukung konektivitas dan protokol jaringan yang berbeda, seperti Ethernet, Wi- Fi, BLE, IEEE 802.15.4, TCP/IP, dll. [1]. OS IoT akan memungkinkan pengembang untuk memilih tumpukan protokol khusus yang diperlukan untuk aplikasi, sehingga
menghemat memori pada perangkat dan mengurangi biaya. Ini dapat membantu meningkatkan perangkat yang ada ke opsi konektivitas baru tanpa mengubah code base inti OS itu sendiri.
3.8 Security
Sistem operasi harus menyediakan lapisan keamanan pertama untuk sistem IoT. Hal ini karena perangkat yang terus berkomunikasi melalui Internet rentan terhadap ancaman dan serangan. OS dapat memiliki add-on yang membawa keamanan ke perangkat dengan cara enkripsi, manajemen sertifikasi SSL/TLS, rutinitas otentikasi pengguna, VPN, dan firewall.
3.9 Eco-system and Application Development
Pada tahap pengembangan dan debugging, kesesuaian OS dapat memberikan dampak yang besar terhadap kecepatan pengembangan dan deliver ke market. Jika OS ramah pengembang, penyebaran aplikasi IoT dapat dilakukan dengan lebih efisien. Selain lingkungan dasar C, penggunaan bahasa pemrograman dan library lain sangat diperlukan, misalnya python, C++ dan STL, tetapi itu sangat tergantung pada toolchain pengembangan yang diadopsi oleh pengembang atau organisasi.
Referensi:
https://id.wikipedia.org/wiki/Lapisan_abstraksi_perangkat_keras
https://machinelearningmastery.com/exploring-the-python-ecosystem/
https://p4tkpertanian.kemdikbud.go.id/mengenal-konsep-dasar-sistem-operasi/
Comments :