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 Lenovo Legion Y70 (2026), HP Gaming yang Siap Guncang Pasar dengan Teknologi AI
  • Inilah Rekomendasi HP Oppo Murah Spek Mewah Tahun 2026 yang Nggak Bakal Bikin Kantong Kalian Jebol!
  • Inilah 15 Situs Nonton Film Gratis Legal 2026, Bye-Bye Iklan Ganggu dan Drama Situs Ilegal!
  • Inilah Beasiswa Bekraf Digital Talent 2026: Solusi Buat Kalian yang Mau Jago AI dan Makin Produktif
  • Inilah Cara Memilih Power Bank yang Aman Dibawa ke Pesawat Agar Tidak Disita Petugas
  • Inilah Bocoran Harga dan Spesifikasi Redmi K90 Max, HP Gaming Dimensity 9500 Termurah yang Segera Dirilis!
  • Inilah RedMagic Gaming Tablet 5 Pro, Monster Gaming dengan Layar 185Hz dan Chipset Snapdragon 8 Elite yang Bikin Melongo!
  • Inilah Kenapa IGRS Trending di X, Bocorkan Spoiler Penting Game 007 First Light Hingga Ending!
  • Inilah 5 HP Murah Terbaru dengan Baterai Jumbo yang Siap Masuk Indonesia 2026, Ada yang Sampai 7.800 mAh!
  • Inilah Alasan Kenapa Samsung Galaxy S27 Bakal Pakai 50 Persen Chipset Exynos, Qualcomm Mulai Ditinggalkan?
  • Inilah Vivo Y31d Pro, Smartphone “Badak” dengan Baterai 7000mAh dan Ketahanan Standar Militer
  • Inilah 11 Game Penghasil Saldo DANA Tercepat 2026, Cara Asyik Cari Cuan Sambil Rebahan!
  • Inilah Motorola Edge 70 Pro, HP Midrange Gahar dengan Baterai 6500 mAh yang Siap Meluncur!
  • Inilah Kode Redeem FF Max 15 April 2026, Buru Skin Undersea Splatter dan Item Eksklusif Bawah Laut Sekarang!
  • Inilah Bocoran Vivo X500 Series dan Kamera Vlogging Saku yang Bakal Bikin DJI Ketar-ketir!
  • Inilah 6 Rekomendasi HP Gaming Paling Murah April 2026, Main Game Berat Nggak Pake Lag!
  • Inilah Caranya Manfaatin SPayLater di Aplikasi ShopeePay Biar Keuangan Tetap Aman Saat Tanggal Tua
  • Inilah Perbedaan Durasi Reels IG dan FB Terbaru 2026, Ternyata Bisa Sampai 20 Menit Lho!
  • Inilah Cara Mengurus Surat Keterangan Bebas Narkoba (SKBN), Syarat Lengkap, Biaya, dan Lokasi Pembuatannya
  • Inilah Cara Pakai Panel Zurra v2 FF Aim Lock Headshot, Simak Fitur dan Risikonya Sebelum Pakai!
  • Inilah Alasan Kenapa Sesi Akhir UTBK 2026 Nggak Lebih Sulit dan Penjelasan Lengkap Sistem Penilaiannya
  • Inilah Kenapa Tidak Bisa Login WA Web dan Solusi Paling Ampuh Biar Langsung Connect Lagi
  • Inilah Cara Mengatasi MyTelkomsel Oops Terjadi Kesalahan, Jangan Panik Dulu!
  • Inilah Cara Mengisi SKP Satpol PP dan Pranata Trantibum 2026 di e-Kinerja My ASN, Dijamin Anti Ribet!
  • Inilah Cara Akses IPTV Playlist M3U Indonesia Terbaru 2026, Nonton Ribuan Channel Tanpa Biaya!
  • Tutorial SEO Anchor Link: Cara Dapat Ranking di Google Lewat Strategi Link Building yang Aman
  • Inilah Huawei Pura 90 Pro, HP Flagship dengan Desain Kamera Segitiga Unik dan Performa Kirin yang Makin Gahar
  • Inilah 5 Rekomendasi Kipas Tangan Portable Cas Tahan Lama Biar Kalian Tetap Adem Saat Cuaca Panas Ekstrem
  • Inilah MacBook Neo, Laptop Termurah Apple yang Ternyata Punya Performa Gaming Gila!
  • Inilah Daftar Tablet SIM Card 5G dengan Keyboard Terbaik 2026 untuk Kerja Remote
  • Is it Time to Replace Nano? Discover Fresh, the Terminal Text Editor You Actually Want to Use
  • How to Design a Services Like Google Ads
  • How to Fix 0x800ccc0b Outlook Error: Step-by-Step Guide for Beginners
  • How to Fix NVIDIA App Error on Windows 11: Simple Guide
  • How to Fix Excel Formula Errors: Quick Fixes for #NAME
  • How to use the Wan 2.7 AI model: A complete walkthrough
  • How to Run Minimax M2-7 Locally: A Step-by-Step Guide for Beginners
  • How to Build Self-Driving Codebases with Async Agents and NVIDIA Hardware
  • How to create a professional AI influencer using Apob AI
  • How to Use AI-Powered Tools to Level Up Your Stock Market Research Game with Claude Code
  • New Text Document
  • 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?

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