Glibc 2.36, Linux için yeni özellikler, iyileştirmeler ve daha fazlasıyla geliyor

Altı aylık geliştirmenin ardından, ISO C2.36 ve POSIX.11-1 standartlarının gereksinimlerine tam olarak uyan ve yeni sürümün 2017 geliştiriciden düzeltmeler içerdiği glibc 59'nın yeni sürümünün piyasaya sürüldüğü açıklandı.

Glibc'ye aşina olmayanlar, bunun ne olduğunu bilmeliler. bir GNU C kütüphanesi, yaygın olarak glibc olarak bilinen standart GNU C çalışma zamanı kitaplığıdır. Kullanıldığı sistemlerde bu C kütüphanesi sistem çağrılarını ve diğer temel işlevleri sağlar ve tanımlar, hemen hemen tüm programlar tarafından kullanılır. 

Glibc 2.36'ün başlıca yeni özellikleri

Sunulan bu yeni versiyonda, yeni bir göreli yer değiştirme adresi formatı için destek eklendi PIE (Konumdan Bağımsız Yürütülebilir Dosyalar) modunda, paylaşılan nesnelerdeki ve bağlantılı yürütülebilir dosyalardaki göreli yer değiştirmelerin boyutunu azaltmanıza olanak tanıyan DT_RELR. DT_RELR alanının ELF dosyalarında kullanılması, binutils 2.38'de tanıtılan bağlayıcıdaki "-z pack-relative-relocs" seçeneği için destek gerektirir.

Yeni sürümde öne çıkan bir diğer değişiklik ise Linux için işlevler pidfd_open, pidfd_getfd ve pidfd_send_signal pidfd işlevine erişim sağlamak için uygulandı izlenen dosyalara erişen işlemleri daha doğru bir şekilde tanımlamak için PID yeniden kullanım durumlarının ele alınmasına yardımcı olur (pidfd belirli bir işlemle ilişkilendirilir ve değişmezken, işlem sona erdikten sonra PID başka bir işleme eklenebilir). PID).

Bunun yanı sıra, ayrıca Linux'ta process_madvise() gelirO bir işlemin başka bir işlem adına bir madvise() sistem çağrısı yürütmesine izin verir, pidfd kullanarak hedef süreci belirleme. madvise() aracılığıyla, işlemin bellek yönetimini optimize etmek için bellekle çalışmanın özellikleri hakkında çekirdeğe bilgi verebilirsiniz, örneğin, iletilen bilgilere dayanarak, çekirdek ek boş bellek bırakmaya başlayabilir.

fonksiyonun eklendiği de belirtilmelidir. Yürütmesini sonlandıran bir işlem için belleğin serbest bırakılmasını hızlandırmanıza izin veren process_mrelease(). Normal şartlar altında, kaynak serbest bırakma ve işlem sonlandırma anlık değildir ve çeşitli nedenlerle gecikebilir, bu da oomd (systemd tarafından sağlanır) gibi kullanıcı alanı erken uyarı sistemlerine müdahale eder. process_mrelease'i çağırarak, bu sistemler, zorla sonlandırılan işlemler için bellek alımlarını daha öngörülebilir bir şekilde başlatabilir.

Öte yandan, eklendiği not edildi. "no-aaaa" seçeneği için destek entegre uygulanmasına AAAA kayıtları için DNS istekleri göndermeyi devre dışı bırakmanıza izin veren DNS çözümlemesi (ana bilgisayar adına göre bir IPv6 adresi belirleme), sorun gidermeyi basitleştirmek için getaddrinfo() gibi NSS işlevlerini çalıştırırken bile. Bu seçenek, /etc/hosts içinde tanımlanan IPv6 adres bağlamalarının ve AI_PASSIVE bayrağıyla getaddrinfo() çağrılarının işlenmesini etkilemez.

Linux için fonksiyonlar eklendi fsopen, fsmount, move_mount, fsconfig, fspick, open_tree ve mount_setattr paragraf dosya sistemlerinin nasıl monte edildiğini kontrol etmek için yeni bir çekirdek API'sine erişim sağlayın mount ad alanlarını temel alır. Önerilen işlevler, daha önce ortak mount() işlevi kullanılarak gerçekleştirilen farklı montaj adımlarının (süper bloğu işleme, dosya sistemi hakkında bilgi alma, montaj, bağlama noktasına ekleme) ayrı ayrı işlenmesine izin verir.

Eklendi fonksiyonlar arc4random, arc4random_buf ve arc4random_uniform sistem çağrısında bağlamalar sağlamak için rastgele ve arayüz / Dev / urandom, yüksek kaliteli sözde rasgele sayılar döndürüyor.

Linux üzerinde çalışırken, mimari için destek sağlanır. talimat setinden uzun kemer Loongson 3 5000 işlemcilerde kullanılır ve MIPS ve RISC-V'ye benzer yeni bir RISC ISA uygulanır. Mevcut haliyle, yalnızca uyumluluk mevcuttur 64-bit varyantlı LoongArch'tan (LA64). Çalıştırmak için en az binutils 2.38, GCC 12 ve Linux çekirdeği 5.19 gerekir.

Öne çıkan diğer değişikliklerden:

  • Ön bağlantı mekanizmasının yanı sıra ilişkili LD_TRACE_PRELINKING ve LD_USE_LOAD_BIAS ortam değişkenleri ve bağlayıcı özellikleri kullanımdan kaldırılmıştır ve gelecekteki bir sürümde kaldırılacaktır.
  • Linux çekirdek sürümünü kontrol etmek ve LD_ASSUME_KERNEL ortam değişkenini işlemek için kod kaldırıldı. Glibc derlenirken desteklenen minimum çekirdek sürümü, NT_GNU_ABI_TAG ELF alanı tarafından belirlenir.
  • LD_LIBRARY_VERSION ortam değişkeni, Linux platformunda kullanımdan kaldırılmıştır.

Son olarak, bu konuda daha fazla bilgi edinmek istiyorsanız, ayrıntılara başvurabilirsiniz. Aşağıdaki bağlantıda.


Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: Miguel Ángel Gatón
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.