Pengembang banyak berbicara tentang “kekekalan”. Di luar dunia teknis, hal itu biasanya berarti sesuatu yang negatif: tidak bergerak, tidak fleksibel, dan mengakar. Namun, di bidang teknis, fitur-fitur ini menjadi keuntungan dan berarti bahwa suatu sistem dapat diandalkan dan dapat direproduksi.
Seperti banyak konsep dan tren dalam teknologi, ini bukanlah hal baru. Bahasa Inggris NixOS (lebih lanjut tentang hal ini nanti) telah ada selama lebih dari dua puluh tahun, dan Sistem Operasi Chrome mungkin merupakan sistem operasi (OS) yang paling banyak digunakan. Namun, adopsi kontainer yang meluas dengan Buruh pelabuhan lebih dari 10 tahun yang lalu membawa konsep ini ke perhatian yang lebih luas.
Biasanya, Anda mendefinisikan kontainer dalam file teks, dan runtime kontainer mengubah definisi tersebut menjadi layanan yang berjalan. Ini berarti relatif mudah untuk mematikan, membuat ulang, dan menyalakan ulang kontainer berdasarkan definisi tersebut. Tidak peduli berapa kali Anda membuat ulang dan menyalakan ulang, Anda dapat mengandalkannya agar tetap sama — tidak dapat diubah.
Tim pengembangan sekarang menggunakan kontainer secara luas, dikelola dan diatur oleh alat seperti Bahasa Inggris KubernetesKontainer mengambil konsep kekekalan dalam beberapa hal.
Masih ada sistem operasi dan banyak perangkat lunak lain yang menyertainya. Segala sesuatu harus tidak dapat diubah untuk memiliki sistem operasi yang sepenuhnya dapat dipercaya, andal, dan dapat direproduksi.
Hal ini mungkin terdengar ekstrem bagi kita yang menggunakan Windows, macOS, atau sebagian besar distribusi Linux secara teratur. Namun, mulai dari perangkat dan server edge hingga mesin desktop yang Anda dan saya gunakan setiap hari, sistem operasi yang tidak dapat diubah kini memasuki realitas praktis.
Mengapa hal ini terjadi sekarang? Seperti yang dikatakan oleh manajer produk Ubuntu Core Canonical, Gabriel Aguiar Noury, hal ini terjadi karena semakin banyaknya regulasi keamanan siber dari pemerintah di seluruh dunia.Peraturan ini umumnya memberi tahu pembuat dan pengembang perangkat bahwa segala sesuatunya akan berubah,” kata Noury. “Kita perlu lebih patuh. Kita perlu memastikan bahwa setiap elemen dalam produk kita memiliki rencana keamanan, yang mencakup pemeliharaan keamanan.”
Uni Eropa memperkenalkan regulasi keamanan siber pada tahun 2019, dan Noury menambahkan bahwa batas waktu kepatuhan terhadap undang-undang tersebut menarik banyak minat. “Peraturan keamanan siber Uni Eropa mulai mendapat perhatian, dan pada tahun 2027, kami akan mulai mematuhinya. Jadi saat ini, kami berada dalam periode di mana kami harus membuat perangkat yang kami luncurkan sesuai dengan peraturan tersebut. Dan, gagasan tentang kekekalan berperan dalam hal itu.”
Nix dan NixOS
Nix adalah sistem operasi tertua yang masih aktif dan tidak dapat diubah. Orang sering menggunakan “Nix” dan “NixOS” secara bergantian, tetapi keduanya berbeda. Nix adalah pengelola paket yang digunakan untuk membangun dan menginstal dependensi kecil, seperti OpenSSL, ke dependensi yang lebih besar, seperti Firefox atau rangkaian alat bahasa pemrograman.
Seperti yang dikatakan Valentin Gagarin, bagian dari tim pengelola Nix: “Nix memiliki banyak arti bagi banyak orang. Namun pada dasarnya, Nix sangatlah sederhana.”
Hampir setiap paket yang Anda instal tidak berdiri sendiri dan menggunakan pohon dependensinya sendiri yang kompleks. Untuk menangani hal ini dan tetap tidak dapat diubah, saat Anda membuat dan menginstal paket dengan Nix, paket tersebut menyimpan hash kriptografi dari semua hal yang digunakan untuk menginstal dependensi tersebut pada saat instalasi.
Jika Anda menginstal dependensi lagi nanti, Nix membuat hash baru, yang berarti Anda dapat beralih kembali ke versi yang berfungsi jika ada masalah. “Nix menghubungkan hubungan antara berkas dalam sistem berkas yang menjadi bagian dari satu biner aplikasi dan merekamnya dengan cara yang tidak dapat diubah,” kata Gagarin. “Setiap kali Anda ingin mentransfer berkas-berkas ini ke tempat lain, menarik salah satu ujungnya akan membuat Anda mendapatkan semuanya alih-alih hancur.”
NixOS melangkah lebih jauh. Anda dapat menentukan keseluruhan sistem operasi dari paket-paket di manajer paket Nix dan konfigurasi paket-paket tersebut. Konfigurasi tersebut bergantung pada paket-paket yang Anda instal, tetapi dapat mencakup perangkat boot, pesan login, akun pengguna, dan banyak lagi. Selain itu, Nix mengeksekusi setiap proses yang membuat berkas-berkas ini dalam sandbox yang terisolasi, yang selanjutnya meningkatkan keamanan.
Bagi siapa pun yang pernah menggunakan manajemen perangkat seluler (MDM) atau sesuatu yang serupa untuk meluncurkan citra sistem yang konsisten di sejumlah mesin, ini mungkin tidak terdengar begitu revolusioner, tetapi NixOS tidak mengharuskan pengiriman file citra besar berukuran beberapa gigabyte melalui jaringan, itu hanya file teks yang dibuat saat peluncuran.
Sekali lagi, seperti halnya pengelola paket, Anda dapat melakukan rollback jika terjadi masalah. NixOS memungkinkan Anda untuk beralih di antara konfigurasi sistem operasi yang berbeda dalam waktu yang dibutuhkan untuk membangun sistem tersebut. Hal yang sama berlaku jika proses instalasi terganggu. Saat melakukan boot ulang, sistem akan dikembalikan ke kondisi terakhir yang baik, dan Anda dapat mencoba lagi.
Nix telah mengembangkan ide-ide ini sejak lama meskipun aplikasinya terdengar modern. Aplikasi ini telah ada selama lebih dari 20 tahun dan lebih tua dari Docker dan Git.
Seperti yang ditambahkan Gagarin, itu bahkan bukan yang pertama.Nix juga bukan upaya pertama untuk mengubah paket Linux. Nix memiliki pendahulu, yang pada dasarnya melakukan hal yang sama tetapi lebih rumit dan kurang dapat diakses oleh khalayak Linux umum. Dan menurut saya yang membuat Nix berbeda adalah kesederhanaan konseptualnya. Dan masih ada dibandingkan dengan banyak yang lain.”
Komunitas dan bisnis
Komunitas Nix bersifat open-source dan didanai oleh donasi, dengan sekitar 800 kontributor aktif setiap bulannya. Namun tren modern untuk kekekalan dan seberapa baik Nix cocok dengannya belum mengabaikan bisnis, meskipun Gagarin mengakui bahwa ia tidak sepenuhnya yakin tentang asal-usul peningkatan minat tersebut.
Tiga produk komersial paling menarik berdasarkan NixOS adalah Sistem TertentuBahasa Indonesia: bunga liliDan Kotak Pengembang. Semuanya masih dalam tahap awal, tetapi mereka dan alat-alat seperti mereka menyadari bahwa mungkin dunia pengembangan yang “lebih sederhana” menggunakan container runtime seperti Docker tidak sesederhana yang dijanjikan dan menawarkan alternatif.
Inti Ubuntu
Ketika banyak orang berpikir tentang Linux, mereka berpikir tentang Ubuntu dari ResmiSulit untuk mendapatkan angka yang realistis, karena sebagian besar sumber melaporkan penggunaan desktop, sedangkan, pada kenyataannya, pusat data dan server adalah tempat Linux berkuasa.
Penawaran Canonical yang tidak dapat diubah, Inti Ubuntutidak ditujukan untuk pengguna desktop tetapi untuk perangkat edge. Ini adalah perangkat komputasi kecil yang kini dapat ditemukan di mana-mana, mulai dari mobil hingga robot hingga kota pintar dan industri. Sering kali hanya menjalankan beberapa layanan pada papan tertanam kecil, perangkat edge biasanya dikelola dari jarak jauh, dalam skala besar, dan menjalankan fungsi penting yang mengutamakan keamanan dan keandalan. Kasus penggunaan yang sempurna untuk sistem operasi yang tidak dapat diubah.
Noury menjelaskan kasus penggunaan. “Pikirkan tentang sistem operasi inti dan elemen inti perangkat Anda. Elemen-elemen tersebut tidak boleh berubah selama pengoperasian normal, dan Anda tidak perlu merawatnya.”
Sebaliknya, Ubuntu Core memungkinkan Anda fokus pada komponen fungsional unik untuk kasus penggunaan Anda dan percaya bahwa komponen tersebut tidak akan berubah tanpa masukan Anda. “Saat Anda memasang kios digital, perangkat rumah pintar, atau robot yang berjalan di jalur produksi, Anda ingin fokus mengatasi masalah dan memastikan bahwa komponen yang Anda andalkan tidak akan berubah hingga Anda menggantinya,” imbuh Noury.
Pakaian pastur Format Snap dan Toko Snap mirip dengan pengelola paket Nix. Menginstal dependensi dari Snap Store berisi semua dependensi pada saat instalasi, dengan perlindungan tambahan yang melindungi sistem operasi host dari aplikasi yang “di-snapped”.
Bagi setiap pengguna macOS, ini mungkin terdengar seperti menginstal dari App Store, tetapi karena pengguna Linux lebih terbiasa membangun perangkat lunak saat mereka menginstalnya, ini merupakan pendekatan yang lebih baru dan yang memecah belah komunitas Linux.
Ubuntu Core bekerja secara berbeda dari NixOS. Alih-alih melakukan konfigurasi dengan file teks, Anda menggunakan serangkaian model untuk menentukan komponen inti dari sistem operasi, seperti arsitektur, basis sistem operasi, snap dan versi snap yang akan diinstal, dan tingkat keamanan yang akan digunakan.
Setelah itu, Anda dapat meluncurkan, membangun, dan memasang citra di berbagai mesin. Jika Anda menggunakan Canonical Multipass alat ini, Anda juga dapat membuat, menguji, dan membangun gambar secara lokal di mesin virtual sebelum meluncurkannya dan menelusuri gambar yang telah dibangun sebagai dasar gambar Anda.
Meskipun Ubuntu Desktop tetap tidak dapat diubah, ia juga memiliki toko Snap untuk tingkat kekekalan tertentu, dan postingan ini dari seorang insinyur Canonical merinci bagaimana itu bisa bekerja.
Fedora Silverblue dan Sistem Operasi Vanilla
Dari salah satu nama besar lainnya dalam distribusi Linux, Bahasa Indonesia: Fedorapenawaran yang tidak dapat diubah, Biru keperakanmenggabungkan elemen NixOS dan Ubuntu Core. Untuk aplikasi grafis yang lebih besar, Silverblue menggunakan Pak dataryang bekerja serupa dengan Snap Store (dan App Store), mendistribusikan aplikasi sebagai satu bundel mandiri.
Alat pengembang digunakan Alat Bxyang pada gilirannya menggunakan kontainer untuk memungkinkan pengembang memiliki serangkaian dependensi yang berfungsi per proyek tanpa memengaruhi sistem operasi dasar. Namun, tidak ada berkas konfigurasi yang menghubungkan semuanya seperti pada NixOS dan Ubuntu Core.
Sistem Operasi Vanili mirip. Seluruh sistem operasi tidak kekal, tetapi bagian-bagian utamanya kekal. Sistem operasi memiliki pendekatannya sendiri terhadap pengelola paket dalam bentuk Apxyang menginstal paket ke dalam kontainer, mengisolasi semuanya dari sistem operasi host dan, sekali lagi, memudahkan peralihan antar versi.
Selain instalasi individual, Anda juga dapat menentukan lingkungan pengembang berdasarkan distribusi Linux lainnya dengan Apx, yang memposisikan Vanilla OS sebagai semacam hub Linux. Ia juga menangani pembaruan sistem secara berbeda, membuat partisi sementara (sekali lagi, berdasarkan gambar kontainer) untuk pembaruan yang hanya dapat digunakan setelah berhasil melakukan boot ulang (versi macOS terbaru melakukan hal serupa).
Terakhir, jika Anda ingin ekstra hati-hati dan tidak dapat diubah, Anda dapat membuat seluruh sistem berkas menjadi hanya-baca, yang berarti semuanya harus berjalan dalam kontainer.
Baik Fedora Silverblue maupun Vanilla OS tidak melakukan hal-hal ekstrem yang tidak dapat diubah seperti yang dilakukan NixOS, tetapi mereka membuat bagian yang paling penting dan rentan menjadi tidak dapat diubah.
Siapa yang bisa dipercaya?
Kepercayaan merupakan aspek utama dalam diskusi ini. Keunggulan sistem operasi yang tidak dapat diubah adalah sistem tersebut dapat dipercaya dan aman. Namun, mengapa Anda harus memercayainya?
Seperti kata Noury, “kekekalan tidak selalu berarti keamanan.” Pada dasarnya, pencegahannya adalah dengan mengizinkan Anda menguji dan mengembalikan jika ada masalah, dan biasanya, layanan berjalan dalam sandbox yang terisolasi (bisa berupa kontainer atau yang lainnya), yang berarti bahwa layanan nakal apa pun dapat memiliki dampak minimal pada hal lain.
Untuk penawaran komersial seperti Ubuntu Core atau NixOS yang didukung secara komersial, pengelola biasanya memantau basis data Common Vulnerabilities and Exposures (CVE) untuk memastikan rilis bebas dari kerentanan. Namun, sumber-sumber ini masih jauh dari sempurna dan tidak menyoroti bug, jadi pengembang tetap perlu melakukan pengujian mereka sendiri — yang untungnya, sistem operasi yang tidak dapat diubah mempermudah pengujian.
Masa depan yang tidak bisa diubah
Seperti yang telah saya bahas di seluruh artikel ini, bahkan jika Anda tidak ingin menggunakan sistem operasi yang sepenuhnya tidak dapat diubah seperti NixOS dan semua peringatan yang menyertainya, meningkatnya kebutuhan akan keamanan pada perangkat konsumen modern berarti bahwa banyak sistem operasi yang Anda gunakan sebagian memang tidak dapat diubah, terutama dalam hal menginstal pembaruan.
Salah satu artikel terbaru saya membahas Homebrewpengelola paket untuk macOS (dan sekarang Linux), dan itu menambahkan tingkat kekekalan pada penginstalan aplikasi, tergantung pada cara Anda menggunakannya.
Meskipun komunitas di sekitar sistem operasi yang tidak dapat diubah yang disebutkan dalam artikel ini telah bekerja keras untuk membangun sistem yang dapat diakses dan digunakan semaksimal mungkin, sistem operasi yang sepenuhnya tidak dapat diubah masih lebih rumit daripada sistem operasi “konvensional”. Anda perlu memahami bahwa satu aplikasi tidak selalu sama dengan satu instalasi dan cara beralih di antara keduanya. Karena banyaknya instalasi, instalasi tersebut juga dapat menghabiskan lebih banyak ruang disk, yang mudah terlupakan.
Saya tidak yakin bahwa sistem operasi yang sepenuhnya tidak dapat diubah adalah masa depan sistem operasi saat ini, tetapi beberapa konsep dan prinsipnya pasti demikian. Mereka merupakan contoh klasik tentang bagaimana, terkadang, dibutuhkan waktu 20 tahun atau lebih bagi sebuah konsep teknis untuk menemukan waktunya.