Skip to content

emka.web.id

menulis pengetahuan – merekam peradaban

Menu
  • Home
  • Tutorial
  • Search
Menu

Proposal Linux Menambahkan getrandom() Ke vDSO Untuk Performa Lebih Baik

Posted on July 29, 2022

Jason Donenfeld dari ketenaran WireGuard yang baru-baru ini menghabiskan banyak pekerjaan untuk meningkatkan kode kernel “acak” Linux telah mengirimkan proposal untuk menambahkan dukungan getrandom() ke vDSO untuk kinerja yang lebih baik dalam upaya memenuhi kebutuhan pengembang ruang pengguna dengan lebih baik .
Saat membaca Phoronix, Jason Donenfeld mempelajari GNU C Library yang menambahkan fungsi arc4random. Pada gilirannya, Donenfeld memulai diskusi di milis Glibc dengan pandangan yang berbeda dan pertanyaan tentang tujuannya.
Saya benar-benar bertanya-tanya apakah ini ide yang bagus, apakah ini sesuatu yang diinginkan glibc, dan apakah itu desain yang layak untuk dilakukan dalam jangka panjang.
Pertama, untuk kasus penggunaan apa ini benar-benar membantu? Pada perubahan terbaru pada kernel Linux — sekarang telah di-backport hingga 4.9! — getrandom() dan /dev/urandom sangat cepat dan beroperasi pada status per-cpu tanpa kunci. Tentu Anda menghindari syscall dengan melakukan itu di ruang pengguna, tetapi apakah itu penting? Siapa sebenarnya yang diuntungkan dari ini?
Dilihat seperti itu, sepertinya banyak kerumitan yang sia-sia, dan kerumitan yang pada akhirnya akan menyebabkan bug dan berbagai kekhilafan.
Misalnya, kernel melakukan reseed sendiri ketika mesin virtual bercabang menggunakan pengenal yang diteruskan ke kernel melalui ACPI. Itu juga meremajakan dirinya sendiri pada resume sistem, baik dari tidur S3 biasa tetapi juga, yang lebih penting, dari hibernasi. Dan secara umum, sebagai penengah entropi, kernel jauh lebih siap untuk menentukan kapan masuk akal untuk melakukan reseed.
Glibc, di sisi lain, dapat menggunakan beberapa heuristik dan membuat beberapa keputusan — pada fork, setelah 16 MiB, dan sejenisnya — tetapi secara umum ini kurang, dibandingkan dengan susunan informasi yang jauh lebih luas di kernel
memiliki.
Anda melewatkan ini dengan arc4random, dan jika informasi itu _is_ diekspor ke userspace entah bagaimana di masa depan, akan sangat bagus untuk mendesain antarmuka userspace di samping kernel.
Untuk alasan itu, diskusi sebelumnya tentang memiliki beberapa pembuatan nomor acak di libc ruang pengguna telah diarahkan untuk melakukan ini di vDSO, entah bagaimana, di mana kernel dapat menjadi bagian tak terpisahkan dari upaya itu.
Dilihat dari perspektif ini, menggunakan paradigma lama OpenBSD mungkin agak membatasi. Mengapa tidak bekerja bersama, antara kernel dan libc, untuk melihat apakah kita dapat menghasilkan sesuatu yang lebih baik, sebelum menetapkan antarmuka dengan semantik yang sulit untuk berjalan kembali nanti?
Apa adanya, sulit untuk merekomendasikan bahwa siapa pun benar-benar menggunakan fungsi ini. Tetap gunakan getrandom (2), yang sebagian besar memiliki semantik yang menguntungkan.
Ya, saya mengerti: menyenangkan membuat generator angka acak, dan begitu banyak proyek mencari cara untuk membuat yang lain entah bagaimana. Tetapi kecenderungan untuk melakukannya terasa seperti penyakit pengotak komputer yang aneh, bukan sesuatu yang pernah membantu ekosistem secara keseluruhan.
Jadi saya bertanya-tanya: siapa yang sebenarnya membutuhkan ini, dan mengapa? Seperti apa persyaratan kinerjanya, dan mengapa getrandom (2) tidak mencukupi? Dan apakah ini benar-benar pendekatan terbaik untuk diambil? Jika ini adalah sesuatu yang diperlukan, bagaimana perasaan Anda tentang bekerja sama dalam pendekatan vDSO? Atau mungkin tidak ada yang benar-benar membutuhkan ini sejak awal?
Dan kedua, apakah glibc bisa *tidak* melakukan ini, atau kapal itu berlayar penuh, dan saya benar-benar ketinggalan dengan tidak menjadi bagian dari diskusi itu setiap kali hal itu terjadi? Itu menghasilkan banyak bolak-balik diskusi antara Donenfeld dan pengembang toolchain GNU seputar kebutuhan kinerja mereka dan apa yang menyebabkan mereka mengerjakan fungsi arc4random untuk Glibc yang telah lama tersedia di BSD.
Dalam upaya untuk mengatasi kebutuhan kinerja acak mereka dengan lebih baik, hari ini Donenfeld telah mengusulkan penerapan getrandom() di vDSO. VDSO tentu saja menjadi perpustakaan objek bersama dinamis virtual yang secara otomatis dipetakan oleh kernel ke dalam ruang alamat untuk semua perangkat lunak ruang pengguna. Dengan menambahkan getrandom() ke vDSO, kinerja dapat ditingkatkan secara signifikan di atas overhead panggilan sistem. Jason menulis dalam permintaan komentar itu:
Sejauh ini dalam hasil pengujian saya, kinerjanya cukup bagus, dan tampaknya berfungsi. Tapi ini sangat, sangat muda, kode yang belum matang, cocok untuk RFC dan tidak lebih, jadi harap naga. Lihat milis untuk detail teknis lebih lanjut jika tertarik.
Selain itu, Jason Donenfeld telah menyederhanakan desain arc4random ke kode Glibc dan yang telah digabungkan ke Git. Penyederhanaan desain ini untuk keamanan yang lebih baik dengan fungsi arc4random baru dengan memanggil getrandom() setiap kali daripada menyangga entropi 16MiB di ruang pengguna, jadi ada beberapa overhead kinerja dengan penyederhanaan ini setidaknya untuk saat ini.

Itulah berita seputar Proposal Linux Menambahkan getrandom() Ke vDSO Untuk Performa Lebih Baik, semoga bermanfaat. Disadur dari Phoronix.com.

Terbaru

  • Cara Menonaktifkan SpayLater & Spinjam: Panduan Lengkap & Anti Ribet!
  • Panik Lupa Passcode iPhone? Jangan Reset! Ini Cara Ampuhnya
  • Printer Ngambyuk! Cara Ampuh Atasi Error 709 di Windows 11
  • Apakah Koin Shopee Bisa Buat Bayar Shopee PayLater?
  • Strategi Lolos PTN: Bongkar Tuntas Pembobotan UTBK Berdasarkan Jurusan!
  • Apa itu Meta AI WhatsApp Business?
  • POCO X6 Pro: Monster Gaming di Kelas Menengah? Ini Review Jujur Kami!
  • Denda Lazada PayLater 80 Ribu: Kenapa Begitu? Ini Penjelasan Biaya Keterlambatan!
  • Cara Ampuh Atasi Error Yandex: Video Gak Bisa Diputar?
  • Pinjol Bikin Susah Ajukan BRI? Ini Dampaknya!
  • Aplikasi Byond BSI Error: Kenapa Hari Ini? Kapan Masalah Ini Selesai?
  • Apa itu QRIS BCA? Panduan Lengkap & Cara Kerjanya Buat Kalian!
  • Kenapa Aplikasi Bima Tri Gak Bisa Dibuka & Login? Ini Dia Penyebab & Solusinya!
  • Berapa Nilai Denda Telat Bayar Shopee Paylater?
  • Pengertian Paylater
  • Download Video Syakirah Viral Full Album: Lengkap & Mudah!
  • Apa itu USN IG (User Session Number Instagram)?
  • Transaksi Gagal Pakai SpayLater? Ini Dia Penyebab & Cara Mengatasinya!
  • Cara Bedain Bukti Transfer Asli & Palsu
  • Kaget Ada SMS Tagihan SPAYLATER! Ini Penjelasan Lengkapnya
  • Cara Mengatasi Error AD Domain Services Down
  • Akun SpayLater Kalian Nonaktif? Ini Dia Penyebab & Cara Mengatasinya!
  • Mengatasi Error: “Maaf, Layanan Spinjam Belum Tersedia untukmu”
  • Cara Mengatasi Komputer Restart Mendadak & Error Tak Terduga
  • Apa itu Apple Studio Display ?
  • Apakah AdGuard DNS Aman Buat Android Kalian?
  • Kenapa Kuota Nasional Tri Tidak Bisa Dipakai Padahal Masih Banyak?
  • Kenapa Saldo Rekening BNI Bisa Minus?
  • Apa itu Apple iPhone Lipat ‘Clamshell’?
  • ToonMe, Cara Ubah Foto Jadi Kartun Disney Gemoy
  • Linux News Roundup February 2026
  • How to Install JellyFin Media Server on Samsung TV with TizenOS
  • Why OneNote Clears Your Notes
  • AMD NPU Monitoring on Linux: A Beginner’s Guide to AI Chip Tracking!
  • How to Fix AMD Adrenalin’s Game Detection Issues on Windows
  • Cara Membuat Podcast dari PDF dengan NotebookLlama dan Groq
  • Tutorial Membuat Sistem Automatic Content Recognition (ACR) untuk Deteksi Logo
  • Apa itu Google Code Wiki?
  • Cara Membuat Agen AI Otomatis untuk Laporan ESG dengan Python dan LangChain
  • Cara Membuat Pipeline RAG dengan Framework AutoRAG
  • Apa itu Spear-Phishing via npm? Ini Pengertian dan Cara Kerjanya yang Makin Licin
  • Apa Itu Predator Spyware? Ini Pengertian dan Kontroversi Penghapusan Sanksinya
  • Mengenal Apa itu TONESHELL: Backdoor Berbahaya dari Kelompok Mustang Panda
  • Siapa itu Kelompok Hacker Silver Fox?
  • Apa itu CVE-2025-52691 SmarterMail? Celah Keamanan Paling Berbahaya Tahun 2025
Beli Morning Star Kursi Gaming/Kantor disini: https://s.shopee.co.id/805iTUOPRV
Beli Pemotong Rumput dengan Baterai IRONHOOF 588V Mesin Potong Rumput 88V disini https://s.shopee.co.id/70DBGTHtuJ

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