Glibc 2.36 hadir dengan fitur baru untuk Linux, peningkatan, dan lainnya

Setelah enam bulan pengembangan, rilis versi baru glibc 2.36 diumumkan, yang sepenuhnya memenuhi persyaratan standar ISO C11 dan POSIX.1-2017 dan di mana versi baru mencakup koreksi dari 59 pengembang. .

Bagi yang belum familiar dengan Glibc, pasti tahu apa itu perpustakaan GNU C, umumnya dikenal sebagai glibc adalah pustaka runtime GNU C standar. Pada sistem yang digunakan, pustaka C ini yang menyediakan dan mendefinisikan panggilan sistem dan fungsi dasar lainnya, ini digunakan oleh hampir semua program. 

Fitur baru utama Glibc 2.36

Dalam versi baru yang disajikan ini, disorot bahwa menambahkan dukungan untuk format alamat relokasi relatif baru DT_RELR, yang memungkinkan Anda untuk mengurangi ukuran relokasi relatif di objek bersama dan executable terkait dalam mode PIE (Position Independent Executables). Penggunaan bidang DT_RELR dalam file ELF memerlukan dukungan untuk opsi "-z pack-relative-relocs" di tautan, yang diperkenalkan di binutils 2.38.

Perubahan lain yang menonjol di versi baru adalah itu untuk Linux fungsinya pidfd_open, pidfd_getfd, dan pidfd_send_signal diimplementasikan untuk menyediakan akses ke fungsionalitas pidfd yang membantu menangani situasi penggunaan kembali PID untuk lebih akurat mengidentifikasi proses mengakses file yang dipantau (pidfd dikaitkan dengan proses tertentu dan tidak berubah, sedangkan PID dapat dilampirkan ke proses lain setelah proses berakhir). proses saat ini terkait dengan ini PID).

Selain itu, juga di Linux datang process_madvise()Bahwa memungkinkan suatu proses untuk mengeksekusi panggilan sistem madvise() atas nama proses lain, mengidentifikasi proses target menggunakan pidfd. Melalui madvise(), Anda dapat menginformasikan kernel tentang karakteristik bekerja dengan memori untuk mengoptimalkan manajemen memori proses, misalnya, berdasarkan informasi yang diteruskan, kernel dapat mulai melepaskan memori bebas tambahan.

Juga dicatat bahwa fungsinya telah ditambahkan process_mrelease(), yang memungkinkan Anda mempercepat pelepasan memori untuk proses yang mengakhiri eksekusinya. Dalam keadaan normal, pelepasan sumber daya dan penghentian proses tidak seketika dan dapat ditunda karena berbagai alasan, mengganggu sistem peringatan dini ruang pengguna seperti oomd (disediakan oleh systemd). Dengan memanggil process_mrelease, sistem ini dapat lebih dapat diprediksi memulai pengambilan memori untuk proses yang dihentikan secara paksa.

Di sisi lain, dicatat bahwa itu telah ditambahkan dukungan untuk opsi "tidak-aaaa" menuju implementasi terintegrasi dari Resolusi DNS, yang memungkinkan Anda menonaktifkan pengiriman permintaan DNS untuk catatan AAAA (menentukan alamat IPv6 dengan nama host), bahkan saat menjalankan fungsi NSS seperti getaddrinfo(), untuk menyederhanakan pemecahan masalah. Opsi ini tidak memengaruhi penanganan pengikatan alamat IPv6 yang ditentukan di /etc/hosts dan panggilan ke getaddrinfo() dengan flag AI_PASSIVE.

Untuk Linux, menambahkan fungsi fsopen, fsmount, move_mount, fsconfig, fspick, open_tree, dan mount_setattr ayat menyediakan akses ke API kernel baru untuk mengontrol bagaimana sistem file dipasang berdasarkan ruang nama mount. Fungsi yang diusulkan memungkinkan pemrosesan terpisah dari langkah pemasangan yang berbeda (memproses superblok, mendapatkan informasi tentang sistem file, pemasangan, melampirkan ke titik pemasangan), yang sebelumnya dilakukan menggunakan fungsi mount() umum.

Ditambahkan fungsinya arc4random, arc4random_buf dan arc4random_uniform untuk memberikan binding pada panggilan sistem secara acak dan antarmuka / dev / urandom, mengembalikan nomor pseudo-acak berkualitas tinggi.

Saat berjalan di Linux, dukungan untuk arsitektur disediakan. dari set instruksi Loong Arch digunakan dalam prosesor Loongson 3 5000 dan ISA RISC baru yang serupa dengan MIPS dan RISC-V diimplementasikan. Dalam bentuknya saat ini, hanya kompatibilitas yang tersedia dengan varian 64-bit dari LoongArch (LA64). Ini membutuhkan setidaknya binutils 2.38, GCC 12, dan kernel Linux 5.19 untuk dijalankan.

Dari perubahan lain yang menonjol:

  • Mekanisme pra-penautan, serta variabel lingkungan LD_TRACE_PRELINKING dan LD_USE_LOAD_BIAS terkait serta fitur penaut, tidak digunakan lagi dan akan dihapus pada rilis mendatang.
  • Kode yang dihapus untuk memeriksa versi kernel Linux dan menangani variabel lingkungan LD_ASSUME_KERNEL. Versi kernel minimum yang didukung saat mengkompilasi Glibc ditentukan oleh bidang ELF NT_GNU_ABI_TAG.
  • Variabel lingkungan LD_LIBRARY_VERSION tidak digunakan lagi pada platform Linux.

Akhirnya, jika Anda tertarik untuk mengetahui lebih banyak tentangnya, Anda dapat berkonsultasi dengan detailnya Di tautan berikut.


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.