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

  • Inilah Penemuan Fosil Hadrosaurus yang Ungkap Bahwa Penyakit Langka Manusia Sudah Ada Sejak Zaman Prasejarah
  • Inilah Penemuan Terbaru yang Mengungkap Bahwa Sunburn Ternyata Disebabkan Oleh Kerusakan RNA
  • Inilah Alasan Kenapa Manusia Lebih Sering Hamil Satu Bayi daripada Kembar Menurut Penelitian Terbaru
  • Inilah Syarat dan Cara Pendaftaran IMEI Internasional Mulai Mei 2026
  • Bocoran Spek Samsung Galaxy S27 Ultra Nih, Kamera 3X Hilang + Teknologi AI
  • Inilah Perbedaan Motorola G47 dan Motorola G45, Cuma Kamera 108 Megapiksel Doang?
  • Update Baru Google Gemini: Bisa Bikin File Word, PDF, Excel secara Otomatis
  • Rekomendasi Motor Listrik 2026 Anti Mogok!
  • Ini Loh Honda Vision 110, Motor Baru Seharga Beat & Rangka eSAF Khusus Pasar Eropa
  • Inilah Mobil-Mobil Paling Cocok Transisi ke Bioetanol E20 dan Biodiesel B50!
  • Inilah Ternyata Batas Minimal Daya Cas Mobil Listrik di Rumah
  • DJP Geser Batas Akhir Lapor Pajak Sampai 31 Mei 2026
  • PKB Tanggapi Dingin Usul Yusril Ihza Mahendra Soal Parliamentary Treshold 13 Kursi
  • LPTNU Kritik Keras Rencana Penutupan Prodi: Kenapa Tidak Komprehensi & Berbasis Problematika Nyata?
  • Gus Rozin PWNU Jawa Tengah Setuju Cak Imin, Konflik PBNU bikin Warga Kesal dan Tidak Produktif
  • Pengamat: Prabowo Harus Benahi KAI, Aktifkan juga Jalur Kereta Lama & Baru
  • Sekjend PBNU: Jadwal Muktamar Usulan PWNU Sejalan Hasil Rapat Pleno & Rais Aam
  • PKB Desak Hukuman Maksimal Kasus Little Aresha & Evaluasi Total Sistem Penitipan Anak secara Nasional
  • PKB Usul Modernisasi Sistem Kereta dan CCTV di Kabin Masinis, Setuju?
  • Menteri PPA Arifah Fauzi Minta Maaf Soal Polemik Pindah Gerbong Wanita di KRL
  • Cara Kirim Robux Mudah di Roblox Beli Skin Shirt Preview
  • Kronologi kasus dugaan penyebaran konten asusila oleh anak anggota DPRD Kutai Barat?
  • Inilah Alasan Kenapa Gelembung Air di Luar Angkasa Bisa Jadi Eksperimen Fisika yang Keren Banget
  • Inilah Contoh Naskah Doa Upacara Hardiknas 2026 yang Syahdu dan Penuh Makna
  • Inilah 10 Peringkat SMP di Daerah Istimewa Yogyakarta Berdasarkan Hasil TKA TKAD 2025/2026 Terbaru
  • Inilah Cara Download FF Beta Versi Terbaru 2026, Lengkap Dengan Cara Daftar Advanced Server Resmi
  • Inilah Cara Menghilangkan YouTube Shorts di Beranda Biar Nggak Menghambat Scrolling Kalian!
  • Inilah Kabar Gembira Program Magang Nasional 2026, Kuota Naik Drastis Jadi 150 Ribu Peserta!
  • Inilah House of Amartha: Mengenal Bisnis Thariq Halilintar di Balik Pernikahan Mewah El Rumi dan Syifa Hadju
  • Inilah Cara Kuliah S1-S2-S3 Gratis dan Cepat Lewat Beasiswa BIB Kemenag Jalur Akselerasi 2026
  • How to build a high-performance private photo cloud with Immich and TrueNAS SCALE
  • How to Build an Endgame Local AI Agent Setup Using an 8-Node NVIDIA Cluster with 1TB Memory
  • How to Master Windows Event Logs to Level Up Your Cybersecurity Investigations and SOC Career
  • How to Build Ultra-Resilient Databases with Amazon Aurora Global Database and RDS Proxy for Maximum Uptime and Performance
  • How to Build Real-Time Personalization Systems Using AWS Agentic AI to Make Every User Feel Special
  • How to Clone Your Voice for Free and Create Unlimited AI Audio
  • How to Deploy Your Google AI Studio Web App Using Hostinger
  • How to Create Viral Motivational YouTube Videos Using Only Free AI
  • How to Create High-End Cinematic Ads and Viral Content with Seedance 2.0
  • How OpenAI is Taking the Lead Again with GPT 5.5 and Codex
  • 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

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