Berkenalan dengan Fedora Silverblue
Tags: linux, fedora, silverblue, indonesian
Published: 2023-01-15 19:47:21

Sebagai mahasiswa IT, saya tahu betul betapa pentingnya *tools* dan *libraries* dalam menyelesaikan tugas dan proyek kuliah saya. Demi tugas kuliah, saya harus menginstall berbagai macam *software* seperti Python dengan pip sebagai package manager-nya, Java, PHP, NodeJS, berbagai macam *database* seperti MySQL, Postgresql, Mariadb, dan bahkan *virtual machine*! Namun, beberapa *tools* itu hanya saya gunakan selama menempuh mata kuliah yang membutuhkan saja. Setelah saya menyelesaikan mata kuliah tersebut, saya tidak menggunakan *tools* dan *libraries* itu lagi. Hal ini dapat menyebabkan komputer saya menjadi berat dan lambat, atau istilahnya *bloated*. Oleh karena itu, saya sangat tertarik dengan salah satu sistem operasi berbasis Linux yang tidak biasa, yaitu ***Fedora Silverblue***!

## Apa Itu Fedora Silverblue?

![Fedora Silverblue logo](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n9vhe5snh2r41ls41u7d.png)

Fedora Silverblue adalah varian dari [Fedora Workstation](https://getfedora.org/workstation/) yang menerapkan prinsip "***Immutable OS***" yang berfokus pada kecepatan, keamanan, *atomic updates*, dan *immutability*. Fedora Silverblue adalah salah satu sistem operasi desktop generasi baru yang bertujuan untuk memberikan pengalaman yang lebih stabil dan efisien untuk pengguna.

> [Fedora Silverblue](https://docs.fedoraproject.org/en-US/fedora-silverblue/) is an immutable desktop operating system. It aims to be extremely stable and reliable. It also aims to be an excellent platform for developers and for those using container-focused workflows.

Apa yang dimaksud dari *immutable desktop operating system*? Artinya [root filesystem](https://opensource.com/life/16/10/introduction-linux-filesystems) yang berisi file dan direktori penting untuk sistem operasi berjalan dengan lancar hanya bisa dibaca saja (*read-only*). Ini berarti pengguna tidak bisa mengubah root filesystem secara langsung.

![Fedora Silverblue Root Filesystem](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ptm878jrxbwxy1yaw3lh.png)

## Teknologi OSTree

Mungkin Anda bertanya-tanya bagaimana cara meng-install *tools* dan *libraries* jika root filesystem hanya bisa dibaca saja. Pertama-tama, kita perlu memahami bagaimana cara kerja sistem Fedora Silverblue dibandingkan sistem operasi berbasis Linux tradisional lainnya, seperti Fedora Workstation, Ubuntu, Arch, dan sejenisnya.

Teknologi inti (*core technology*) yang digunakan oleh Fedora Silverblue adalah [OSTree](https://ostreedev.github.io/ostree/). OSTree digunakan untuk menyusun, men-deploy, dan meng-update Fedora Silverblue. Cara kerja OSTree mirip dengan *version control system* seperti Git, tetapi diterapkan pada seluruh filesystem dibandingkan hanya pada beberapa file saja. Teknologi OSTree ini diterapkan pada tool bernama [`rpm-ostree`](https://coreos.github.io/rpm-ostree/) yang digunakan pada Fedora Silverblue untuk mengelola *package* yang terinstall di filesystem. `rpm-ostree` meng-install package sebagai "*layer*" pada *image* yang sudah dibuat oleh `ostree`. Kedua teknologi ini menggantikan `dnf` yang digunakan pada Fedora Workstation sebagai *package manager*.

Setiap kali sebuah package di-install menggunakan perintah `rpm-ostree install [nama package]` di terminal, sebuah *image* baru dibuat dengan package tersebut ter-install di dalamnya. Alhasil, system perlu di-reboot untuk berpindah menggunakan image baru dengan package yang sudah ter-install tadi. Mekanisme ini memungkinkan package untuk di-install pada sistem operasi yang *immutable* seperti Fedora Silverblue tanpa mengubah root filesystem secara langsung, jadi sistem tersebut sangat stabil dan *reliable*.

![Daftar image yang dibuat oleh OSTree](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7bnpn63yctfsw37n1rrp.png)

## Mengelola Aplikasi atau *Software* Berbasis GUI

Untuk aplikasi atau *software* berbasis GUI (*Graphical User Interface*), sangat disarankan untuk meng-install menggunakan *package manager* [Flatpak](https://flatpak.org/). Untuk meng-install sebuah aplikasi pengguna dapat menjalankan perintah `flatpak install [nama aplikasi]` dan `flatpak update` untuk melakukan pembaruan.

![Install aplikasi atau software melalui terminal](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ss8vk7xo98wowwj0kcnz.png)

Selain melalui perintah di terminal, Pengguna dapat meng-install aplikasi yang diinginkan dengan mudah melalui GNOME Software, yang sudah terintegrasi dengan Flatpak di Fedora Silverblue. Mekanisme ini mirip seperti App Store pada macOS dan Windows Store pada Windows. 

![Install aplikasi atau software melalui Gnome Software](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3om12arurrxkv8d9wznr.png)

## Menjalankan Container dengan Toolbox

Bagi *software developer*, sangat disarankan untuk meng-install *tools* dan *libraries* yang dibutuhkan di dalam sebuah [container](https://www.redhat.com/en/topics/containers/) agar tidak mengotori root filesystem sehingga menjadi *bloated*. Dengan begitu, sistem akan tetap stabil dan memudahkan dalam melakukan *maintenance* desktop. Oleh karena itu, Fedora Silverblue menyediakan fitur bernama `toolbox`.

[`toolbox`](https://containertoolbx.org/) adalah sebuah tool untuk memudahkan pembuatan container untuk pengguna awam. Hal ini dilakukan dengan memanfaatkan *rootless container* dari [Podman](https://podman.io/) (Saya juga berencana membahas Podman pada blog selanjutnya.). `toolbox` memungkinkan pengguna untuk membuat container dengan mudah dan cepat yang dapat digunakan sebagai *development environment*, terpisah dari sistem operasi utama.


![Lingkungan toolbox terpisah dari sistem operasi utama (*host*)](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hhratj95qf4i7ask3zzd.png)

## Manfaat dari Fedora Silverblue dan "*Immutable OS*" Secara Umum

Root filesystem yang hanya dapat dibaca (*read-only*) dapat meningkatkan ketahanan terhadap kerusakan yang tidak sengaja oleh pengguna serta beberapa jenis *malware*. Satu-satunya cara untuk meng-update atau mengubah root filesystem adalah dengan menggunakan `rpm-ostree`. Manfaat lainnya adalah hampir mustahil bagi pengguna awam untuk membuat komputer mereka ke dalam kondisi tidak bisa *booting* atau tidak berfungsi dengan baik setelah secara sengaja atau tidak sengaja menghapus beberapa komponen sistem.

{% embed https://youtu.be/0506yDSgU7M %}