إصدار مكتبة النظام Glibc 2.36

بعد ستة أشهر من التطوير ، تم نشر إصدار مكتبة GNU C (glibc) 2.36 ، والتي تتوافق تمامًا مع متطلبات معايير ISO C11 و POSIX.1-2017. يتضمن الإصدار الجديد إصلاحات من 59 مطورًا.

من بين التحسينات التي تم تنفيذها في Glibc 2.36:

  • تمت إضافة دعم لتنسيق نقل عنوان DT_RELR (النقل النسبي) الجديد، والذي يسمح لك بتقليل حجم عمليات النقل النسبية في الكائنات المشتركة والملفات القابلة للتنفيذ المرتبطة في وضع PIE (الملفات التنفيذية المستقلة عن الموضع). يتطلب استخدام الحقل DT_RELR في ملفات ELF دعمًا لخيار "-z pack-relative-relocs" في الرابط، والذي تم تقديمه في إصدار binutils 2.38.
  • للمنصة Linux تم تنفيذ وظائف pidfd_open و pidfd_getfd و pidfd_send_signal، مما يوفر الوصول إلى وظائف pidfd التي تساعد في التعامل مع حالات إعادة استخدام PID لتحديد العمليات التي تصل إلى الملفات المراقبة بدقة أكبر (يرتبط pidfd بعملية محددة ولا يتغير، بينما يمكن ربط PID بعملية أخرى بعد انتهاء العملية الحالية المرتبطة بهذا PID).
  • للمنصة Linux تمت إضافة الدالة process_madvise()، مما يسمح لعملية بتنفيذ استدعاء النظام madvise() نيابةً عن عملية أخرى، مع تحديد العملية المستهدفة باستخدام pidfd. يمكن استخدام madvise() لإبلاغ النواة بتفاصيل استخدام الذاكرة لتحسين إدارة الذاكرة للعملية؛ على سبيل المثال، يمكن للنواة استخدام المعلومات المُقدمة لبدء تحرير ذاكرة إضافية حرة. قد يكون استدعاء madvise() من قِبل عملية أخرى ضروريًا في الحالات التي تكون فيها المعلومات اللازمة للتحسين غير معروفة للعملية الحالية ويتم تنسيقها بواسطة عملية تحكم خلفية منفصلة، ​​والتي يمكنها بدء تحرير الذاكرة غير المستخدمة من العمليات بشكل مستقل.
  • للمنصة Linux أُضيفت الدالة process_mrelease() لتسريع تحرير الذاكرة من العمليات التي تُنهي عملها. في الظروف العادية، لا يكون تحرير الموارد وإنهاء العمليات فوريًا، وقد يتأخر لأسباب مختلفة، مما يُعيق عمل أنظمة الإنذار بضغط الذاكرة في مساحة المستخدم، مثل oomd (المُقدمة من systemd). باستدعاء process_mrelease، تستطيع هذه الأنظمة بدء استعادة الذاكرة من العمليات التي تُنهى قسرًا بشكل أكثر قابلية للتنبؤ.
  • تمت إضافة دعم خيار "no-aaaa" إلى التنفيذ المدمج لمحلل DNS، والذي يسمح لك بتعطيل إرسال طلبات DNS لسجلات AAAA (تحديد عنوان IPv6 حسب اسم المضيف)، بما في ذلك عند تنفيذ NSS وظائف مثل getaddrinfo()، لتبسيط تشخيص المشكلة. لا يؤثر هذا الخيار على معالجة روابط عنوان IPv6 المحددة في /etc/hosts واستدعاءات getaddrinfo() مع علامة AI_PASSIVE.
  • للمنصة Linux تمت إضافة الدوال fsopen و fsmount و move_mount و fsconfig و fspick و open_tree و mount_setattr، مما يوفر الوصول إلى واجهة برمجة تطبيقات جديدة لنواة النظام لإدارة عملية ربط أنظمة الملفات وفقًا لمساحات أسماء الربط. تتيح هذه الدوال معالجة منفصلة لمراحل الربط المختلفة (معالجة الكتلة الرئيسية، والحصول على معلومات نظام الملفات، والربط، والاتصال بنقطة الربط)، والتي كانت تُنفذ سابقًا باستخدام الدالة mount() العامة. تُمكّن هذه الدوال المنفصلة من سيناريوهات ربط أكثر تعقيدًا، وتسمح بإجراء عمليات منفصلة مثل إعادة تكوين الكتلة الرئيسية، وتفعيل الخيارات، وتغيير نقطة الربط، والانتقال إلى مساحة اسم مختلفة. علاوة على ذلك، تتيح المعالجة المنفصلة تحديدًا دقيقًا لأسباب رموز الخطأ، وتحديد مصادر متعددة لأنظمة الملفات متعددة الطبقات، مثل overlayfs.
  • يوفر localedef الدعم لمعالجة ملفات تعريف اللغة المتوفرة بترميز UTF-8 بدلاً من ASCII.
  • تمت إضافة وظائف لتحويل ترميزات mbrtoc8 وc8rtomb متعددة البايت إلى مواصفات ISO C2X N2653 وC++20 P0482R6.
  • تمت إضافة دعم لنوع char8_t المحدد في مسودة معيار ISO C2X N2653.
  • تمت إضافة وظائف arc4random وarc4random_buf وarc4random_uniform التي توفر أغلفة عبر استدعاء نظام getrandom والواجهة /dev/urandom التي تُرجع أرقامًا شبه عشوائية عالية الجودة.
  • عند العمل على المنصة Linux تمّ تفعيل دعم بنية مجموعة تعليمات LoongArch (ISA)، المستخدمة في معالجات Loongson 3 5000. تُطبّق هذه البنية مجموعة تعليمات RISC جديدة تُشبه MIPS وRISC-V. حاليًا، يتوفر الدعم فقط لإصدار 64 بت من LoongArch (LA64). يتطلب ذلك على الأقل binutils 2.38 وGCC 12 ونواة النظام. Linux 5.19.
  • تم إهمال آلية الارتباط المسبق، بالإضافة إلى متغيرات البيئة LD_TRACE_PRELINKING وLD_USE_LOAD_BIAS وإمكانات الرابط المرتبطة بها، وستتم إزالتها في إصدار مستقبلي.
  • تمت إزالة الكود الخاص بالتحقق من إصدار النواة Linux ومعالجة متغير البيئة LD_ASSUME_KERNEL. يتم تحديد الحد الأدنى لإصدار النواة المدعوم أثناء تجميع Glibc عبر حقل NT_GNU_ABI_TAG ELF.
  • على المنصة Linux تم إيقاف دعم متغير البيئة LD_LIBRARY_VERSION.

المصدر: opennet.ru

شراء استضافة موثوقة للمواقع مع حماية DDoS وخوادم VPS VDS 🔥 اشترِ استضافة مواقع ويب موثوقة مع حماية من هجمات DDoS، وخوادم VPS وVDS | ProHoster