Skip to content

emka.web.id

writing knowledge, recording civilization

Menu
  • Home
  • Tutorial
  • Search
Menu

SteamOS, Kapan dapat Update?

Posted on May 13, 2024

Sejak peluncuran Steam Deck pada tahun 2022, para pengguna telah menikmati portabilitas gaming berbasis Linux. Seiring perkembangan sistem, berbagai peningkatan di balik layar terus dilakukan. Artikel ini membahas tentang pembaruan sistem dengan fokus pada tantangan yang dihadapi dan bagaimana solusinya.

SteamOS menggunakan skema partisi A/B untuk pembaruan sistemnya. Tata letak ini berarti memelihara dua partisi terpisah, A dan B, di mana partisi utama menyimpan sistem operasi saat ini dan partisi sekunder dicadangkan untuk pembaruan sistem. Gambar OS aktual bersifat atomik dan diterapkan menggunakan RAUC dan Casync.

Sistem ini bekerja dengan sangat baik. Saat menerbitkan gambar baru, kami dapat memastikan bahwa semua pengguna akhir akan menerima pembaruan yang persis sama, bahkan jika mereka menonaktifkan bendera read-only dan mengedit beberapa file (komplikasi muncul dengan file di /etc dan /var yang tidak tidak berubah, tetapi itu cerita untuk lain waktu).

Namun, kami mengidentifikasi beberapa poin utama yang dapat ditingkatkan di Casync:
Menghitung seed gambar saat ini dilakukan dengan cepat dan merupakan operasi single-thread. Pada Steam Deck, ini biasanya berarti bahwa ketika Anda menekan tombol “terapkan pembaruan”, hampir satu menit penuh dihabiskan untuk membagi dan melakukan hash seluruh gambar yang sedang digunakan, dengan satu inti CPU pada penggunaan 100%.

Mengingat cara kerja Casync, memperkirakan ukuran unduhan pada perangkat memerlukan penggunaan CPU satu menit yang sama.

Casync tidak mengizinkan beberapa operasi HTTP(S) GET paralel, setidaknya tidak tanpa menerapkan patch downstream. Bahkan setelah menulis ulang logika unduhan untuk menggunakan curl multi, masih ada keinginan untuk meningkatkan waktu keseluruhan yang diperlukan untuk menerapkan pembaruan sistem.

Jika unduhan terputus, upaya berikutnya akan dimulai kembali dari awal. Hal ini dapat dihindari dengan juga menggunakan tujuan sebagai seed, dengan mengorbankan dua kali lipat jumlah waktu yang dihabiskan pada fase “persiapan”.

Rilis publik terbaru Casync adalah pada tahun 2017 dan, meskipun belum resmi, rasanya pengembangan terhenti. Beberapa patch yang kami tulis di masa lalu masih dibiarkan sebagai PR terbuka tanpa daya tarik apa pun dari pengelola (ini terjadi pada tahun 2021).

Pada titik itu pilihan kami pada dasarnya adalah sebagai berikut:

  • Mencari pengganti drop-in untuk Casync yang mengatasi kekurangan yang disebutkan di atas.
  • Memberikan patch tambahan untuk meningkatkan Casync, meskipun semua patch tersebut kemungkinan besar hanya akan berakhir di downstream.
  • Ganti Casync dengan alat yang berbeda sama sekali.


Pilihan ketiga hanya merupakan tindakan terakhir karena itu akan memerlukan penandaan titik pemisah antara gambar lama dan baru. Artinya pengguna akhir harus melalui dua pembaruan sistem back to back di luar kotak, setidaknya sampai pabrik mulai memproduksi Steam Deck baru dengan gambar dasar yang melewati titik pemisah itu.

Untungnya kami menemukan Desync, yang merupakan implementasi ulang dari sebagian besar Casync, dan memastikan untuk menjadi pengganti drop-in Casync dalam “banyak kasus penggunaan”. Proyek ini sedang dalam pengembangan aktif dan, yang terpenting, ada beberapa poin penjualan menarik di README proyek, seperti dukungan beberapa permintaan HTTP(S) paralel dan chunking multi-threaded.
Setelah beberapa evaluasi yang cermat, kami memutuskan bahwa beralih ke Desync pada akhirnya akan membawa beberapa peningkatan.

Patch Upstream untuk Desync

Sebelum menyebutkan apa saja manfaat utama yang dibawa Desync, kita harus membicarakan tentang pekerjaan yang diperlukan bagi kita untuk benar-benar melakukan peralihan.

Seperti yang disebutkan sebelumnya, Desync adalah pengganti drop-in untuk Casync dalam “banyak kasus penggunaan”. Meskipun pasti memungkinkan Anda untuk menginstal pembaruan sistem yang dibuat dengan Casync dan sebaliknya, ada beberapa perbedaan utama dalam cara mereka menerapkan pembaruan yang memerlukan jumlah pekerjaan yang tidak sepele.

Peningkatan utama yang harus kami lakukan adalah:

  • Seed diperlakukan berbeda dibandingkan dengan Casync. Mengingat bahwa dengan pengguna Steam Deck diizinkan untuk menonaktifkan mode read-only, kami tidak memiliki jaminan bahwa file indeks yang telah dihitung sebelumnya Desync untuk seed akan benar. Untuk alasan ini kami harus menerapkan “rencana” yang telah ditentukan sebelumnya tentang cara menyusun pembaruan, opsi untuk meregenerasi indeks seed yang tidak valid, memvalidasi apa yang telah ditulis saat mengambil potongan dari seed, dan berusaha lebih keras jika potongan seed tidak valid.
  • Gambar tidak terletak di jalur URL tunggal, jadi kami harus menyertakan dukungan untuk pola glob dalam file konfigurasi.
  • Tambahkan kemampuan untuk memperkirakan ukuran unduhan pembaruan dengan cepat.
  • Tambahkan dukungan Desync di RAUC.

Manfaat Aktual

Setelah semua pekerjaan ini, apa manfaat nyata bagi pengguna akhir?
Sekarang secara signifikan lebih cepat untuk menerapkan pembaruan sistem. Seberapa “cepat” sangat tergantung pada ukuran pembaruan dan kecepatan koneksi Internet. Dari pengujian kami, biasanya proses pembaruan keseluruhan secara konsisten setidaknya 30%-50% lebih cepat.
Jika unduhan pembaruan gagal di tengah jalan, mis. jika ada kesalahan koneksi, upaya unduhan kedua akan dapat melanjutkan dengan cepat dari titik yang dicapai sebelumnya.
Persentase kemajuan unduhan lebih tepat dan lebih sering disegarkan.
Ini memungkinkan kami untuk dengan cepat memeriksa apakah gambar saat ini asli atau telah diubah. Berguna misalnya selama operasi reset pabrik untuk menghindari keharusan mengunduh gambar dari Internet kecuali diperlukan.
Menjelaskan dasar untuk memungkinkan di masa mendatang kemampuan bagi klien untuk memperkirakan ukuran unduhan pembaruan sistem dengan cepat.

Kapan Saya Dapat Mencobanya?

Sekarang juga! Perubahan ini telah disertakan dalam SteamOS 3.6, yang saat ini berada di saluran “Pratinjau”. Anda dapat memilih ikut serta dari Pengaturan > Sistem > Saluran Pembaruan Steam.
Harap dicatat bahwa saluran Pratinjau menyertakan fitur baru yang masih diuji, sehingga Anda mungkin mengalami masalah.

Terbaru

  • Trying my new Favourite Task Manager, TMOG on Omarchy Linux
  • ASRock Industrial AI Box A395: Is This the Best Compact Strix Halo System for Local AI?
  • Redox OS: A Rust-Based Microkernel Operating System (And How It Differs from Linux)
  • Canonical Is Bringing Back Ubuntu Core Desktop — This Time With a Clearer Plan
  • systemd Officially Adds Support for Rust Components
  • Rocky Linux Creator Builds a Brand-New “Not Linux” Kernel in 11 Days Using AI
  • Building a local AI agent in Workshop on Ubuntu 26.10
  • Omarchy 4.5 RC: 5 New Apps That Actually Look Useful
  • Worth It! Switching from Fedora KDE to Kubuntu
  • I’m Happy Using ‘Herdr’, The Fastest Growing Devtool written in Rust
  • Testing Goose on Omarchy Linux (App & CLI): The Open-Source Solution for Daily Task Automation
  • GNOME Founder Attacks Omarchy Founder as “Lazy, Racist, Ignorant”
  • Why I Stopped Using Plain Command Line Docker and Use Portainer 3.0 To Make My Home Projects Fun Again
  • Why I Switched to a Proper Firewall Box with OPNSense for My Homelab Stuff
  • Fixing Windows Error 0x80070005 Hyper-V Export Access Denied Error the Right Way
  • Fixing Hyper V Export Errors and Building a Better Virtual Machine Setup (error 0x80070002, 0x80070005)
  • Fixing the Dreaded Windows Audio Service Stuck on Stopping Error
  • Windows SIM Error, Unknown error 0xc1420127
  • How I’m Building a Cat Breeding Management App with Python Qt6 + Microsoft Litebox, in 1 Week
  • Why Windows Keeps Nuking Your GPU Drivers (And How to Take Back Control)
  • Why I Finally Ditched Mainstream Windows Cleaners (And Why I Use ‘Kudu’ Instead)
  • AI Made Everything Faster, Including Bad Decisions
  • Raspberry Pi Desktop Available of PC and Mac, Based on Debian 13
  • Why I Stopped Yelling at My PC When Error; Getting Windows 11 Voice Isolation and Access to Actually Work
  • Berobat Kanker ke Malaysia: Berapa Biayanya dan Apa Saja yang Perlu Disiapkan?
  • Stop Sending Every Prompt to the Biggest AI Model You Can Find
  • Stop Building AI Agents from Scratch: My Pick for the Best Native Windows Setup
  • Jev Is Faster and Cheaper, But I Still Recommend Clef. Here’s Why.
  • Weird XCP-NG Bug or Feature? Enable Maintenance Mode = Host Not Enough Memory
  • Vinix OS: Another OS That Want to Beat Linux, Try it!
  • Canonical: Ubuntu coming soon to Snapdragon X2 Series platforms
  • Finally, wolfSSL adds post-quantum algorithms!
  • How to Run Gemma Embedding Models Using Docker
  • Deploy Nginx Rootful Container with Podman
  • How to Sandboxing Browser on Linux Desktop with Flatpak
  • Liquid AI Unveils LFM3: A New Generation of Multimodal Foundation Models Built Small Device
  • Google DeepMind Unveils Genie 4: The Most Advanced Real-Time Interactive World Model Yet
  • Building Long-Running AI Agents with Pi Durable: An AI SRE Agent Example
  • Prompt AI: Impressionist Portrait Art of a Woman
  • Prompt AI: Stylish Man Walking Double Exposure Photo
  • Siapa Karisma Adys Safira? Profil Istri Axel Hadiningrat sing Lagi Rame Diomongke Warga
  • Alvin Tedjo menang jadi Wali Kota di Kanada, wong Indonesia kok iso dadi pemimpin kota gede?
  • Messi vs Ronaldo rebutan gelar Ballon d’Or of All Time, siapa yang paling jago menurut fans?
  • Ini Dia QR Link Dana Kaget 400K, 27 Oktober 2026
  • Fresh! Ini Biodata dan Fakta Unik dari Member No Na

©2026 emka.web.id | Design: Newspaperly WordPress Theme