Glibc 2.36 มาพร้อมกับคุณสมบัติใหม่สำหรับ Linux, การปรับปรุงและอื่น ๆ

หลังจากหกเดือนของการพัฒนา มีการประกาศเปิดตัว glibc 2.36 เวอร์ชันใหม่ ซึ่งเป็นไปตามข้อกำหนดของมาตรฐาน ISO C11 และ POSIX.1-2017 อย่างสมบูรณ์ และเวอร์ชันใหม่มีการแก้ไขจากนักพัฒนา 59 คน .

สำหรับผู้ที่ไม่คุ้นเคยกับ Glibc ควรรู้ว่ามันคืออะไร ห้องสมุด GNU C, ที่เรียกกันทั่วไปว่า glibc เป็นไลบรารีรันไทม์มาตรฐานของ GNU C บนระบบที่ใช้ ไลบรารี C นี้ที่ จัดเตรียมและกำหนดการเรียกระบบและฟังก์ชันพื้นฐานอื่นๆ ซึ่งใช้โดยโปรแกรมเกือบทั้งหมด 

คุณสมบัติใหม่หลักของ Glibc 2.36

ในเวอร์ชั่นใหม่ที่นำเสนอนี้ขอเน้นว่า เพิ่มการรองรับรูปแบบที่อยู่การย้ายที่สัมพันธ์กันใหม่ DT_RELR ซึ่งช่วยให้คุณลดขนาดของการย้ายตำแหน่งสัมพัทธ์ในอ็อบเจ็กต์ที่ใช้ร่วมกันและไฟล์เรียกทำงานที่เชื่อมโยงในโหมด PIE (Position Independent Executables) การใช้ฟิลด์ DT_RELR ในไฟล์ ELF ต้องการการสนับสนุนสำหรับตัวเลือก "-z pack-relative-relocs" ใน linker ซึ่งแนะนำใน binutils 2.38

การเปลี่ยนแปลงอีกอย่างที่โดดเด่นในเวอร์ชันใหม่ก็คือ สำหรับ Linux ฟังก์ชั่น pidfd_open, pidfd_getfd และ pidfd_send_signal ถูกนำไปใช้เพื่อให้เข้าถึงฟังก์ชัน pidfd ซึ่งช่วยจัดการกับสถานการณ์การนำ PID กลับมาใช้ใหม่เพื่อระบุกระบวนการที่เข้าถึงไฟล์ที่ถูกตรวจสอบได้แม่นยำยิ่งขึ้น (pidfd เชื่อมโยงกับกระบวนการเฉพาะและไม่เปลี่ยนแปลงในขณะที่ PID สามารถแนบกับกระบวนการอื่นได้หลังจากสิ้นสุดกระบวนการ) กระบวนการปัจจุบันที่เกี่ยวข้องกับสิ่งนี้ พีไอดี).

นอกเหนือจากนั้น, นอกจากนี้ใน Linux ยังมาพร้อมกับ process_madvise()ที่ อนุญาตให้กระบวนการดำเนินการเรียกระบบ madvise() ในนามของกระบวนการอื่นระบุกระบวนการเป้าหมายโดยใช้ pidfd ผ่าน madvise() คุณสามารถแจ้งเคอร์เนลเกี่ยวกับคุณลักษณะของการทำงานกับหน่วยความจำเพื่อปรับการจัดการหน่วยความจำของกระบวนการให้เหมาะสม ตัวอย่างเช่น ตามข้อมูลที่ส่ง เคอร์เนลสามารถเริ่มปล่อยหน่วยความจำว่างเพิ่มเติมได้

นอกจากนี้ยังตั้งข้อสังเกตว่ามีการเพิ่มฟังก์ชั่น 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 สำหรับ ให้การเข้าถึงเคอร์เนล API ใหม่เพื่อควบคุมวิธีการเมาต์ระบบไฟล์ ขึ้นอยู่กับการเมานต์เนมสเปซ ฟังก์ชันที่เสนอช่วยให้สามารถประมวลผลขั้นตอนการติดตั้งต่างๆ แยกกันได้ (ประมวลผล superblock, รับข้อมูลเกี่ยวกับระบบไฟล์, การต่อเชื่อม, การต่อเข้ากับจุดต่อเชื่อม) ซึ่งก่อนหน้านี้ได้ดำเนินการโดยใช้ฟังก์ชันการเมานท์ทั่วไป ()

ถูกเพิ่มเข้ามา ฟังก์ชั่น arc4random, arc4random_buf และ arc4random_uniform เพื่อให้มีผลผูกพันในการเรียกระบบ สุ่ม และส่วนต่อประสาน / dev / urandomส่งคืนตัวเลขสุ่มเทียมคุณภาพสูง

เมื่อทำงานบน Linux จะมีการรองรับสถาปัตยกรรม จากชุดคำสั่ง ลุงอาร์ช ใช้ในโปรเซสเซอร์ Loongson 3 5000 และมีการใช้ RISC ISA ใหม่ที่คล้ายกับ MIPS และ RISC-V ในรูปแบบปัจจุบัน ใช้ได้เฉพาะความเข้ากันได้ พร้อมตัวแปร 64 บิต จากลุงอาร์ช (LA64) ต้องใช้ binutils 2.38, GCC 12 และ Linux kernel 5.19 เป็นอย่างน้อยจึงจะทำงานได้

การเปลี่ยนแปลงอื่น ๆ ที่โดดเด่น:

  • กลไกการลิงก์ล่วงหน้า ตลอดจนตัวแปรสภาพแวดล้อม LD_TRACE_PRELINKING และ LD_USE_LOAD_BIAS ที่เกี่ยวข้องและคุณลักษณะตัวเชื่อมโยง เลิกใช้แล้วและจะถูกลบออกในรุ่นต่อๆ ไป
  • ลบโค้ดเพื่อตรวจสอบเวอร์ชันเคอร์เนลของ Linux และจัดการตัวแปรสภาพแวดล้อม LD_ASSUME_KERNEL เวอร์ชันเคอร์เนลขั้นต่ำที่รองรับเมื่อคอมไพล์ Glibc ถูกกำหนดโดยฟิลด์ ELF NT_GNU_ABI_TAG
  • ตัวแปรสภาพแวดล้อม LD_LIBRARY_VERSION เลิกใช้แล้วบนแพลตฟอร์ม Linux

สุดท้ายนี้ หากคุณสนใจที่จะทราบข้อมูลเพิ่มเติม สามารถปรึกษารายละเอียดได้ ในลิงค์ต่อไปนี้.


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา