glibc เวอร์ชั่นใหม่สามารถใช้กับเคอร์เนลเก่าได้หรือไม่?


18

เห็นได้ชัดว่า glibc สามารถคอมไพล์ด้วย--enable-kernelเพื่อสนับสนุนเคอร์เนลเวอร์ชันที่เก่ากว่า อย่างไรก็ตามฉันไม่สามารถค้นหาข้อมูลเกี่ยวกับเคอร์เนลเวอร์ชันใดบ้างที่รองรับกับ glibc รุ่นใดรุ่นหนึ่ง เป็นการดีที่ฉันต้องการดูเมทริกซ์ความเข้ากันได้สำหรับทุก glibc (2.x) และเคอร์เนล (2.6.x) มันมีอยู่หรือไม่

หากไม่มีอยู่อาจเป็นเพราะ glibc ทุกรุ่น (ในช่วง 5 ปีที่ผ่านมา) สนับสนุนเมล็ดทั้งหมดตั้งแต่ 2.6.0?

(Arch = x86-64 หากมีความสำคัญ)

คำตอบ:


7

สำหรับบางรุ่นglibcอีเมลประกาศแจ้งว่าเคอร์เนลเวอร์ชันใดที่ใช้งานร่วมกันได้

glibc    Released      Kernel
----------------------------------------------------------

2.27     2 Feb 2018    (same as 2.26?)
2.26     2 Aug 2017    3.2
2.25     5 Feb 2017    (same as 2.24?)

2.24     4 Aug 2016    on i[4567]86 and x86_64  ->  2.6.32
2.24     4 Aug 2016    on other platforms       ->  3.2

มันอาจจะเป็นไปได้ที่จะขยายตารางข้างต้นโดยการติดตามลงและการอ่านมากขึ้นของอีเมลประกาศสำหรับเก่า (หรือใหม่กว่า) glibcรุ่น

สำหรับการอ้างอิง:

Linux distribution    glibc version

Debian 9 Stretch      2.24
Debian 10 Buster      2.27 (as of March 2018).

Ubuntu 16.04          2.23
Ubuntu 16.10          2.24
Ubuntu 17.04          2.24
Ubuntu 17.10          2.26
Ubuntu 18.04          2.27

แหล่งที่มา:
ไลบรารี GNU C (glibc)
ไลบรารี GNU C รุ่น 2.27 พร้อมใช้งานแล้ว
ไลบรารี GNU C รุ่น 2.26 พร้อมใช้งานแล้วขณะนี้
ไลบรารี GNU C เวอร์ชัน 2.25 พร้อมใช้งานแล้วตอนนี้
ไลบรารี GNU C เวอร์ชัน 2.24 พร้อมใช้งานแล้ว
DistroWatch.com: Ubuntu



4

ตามREADMEของโครงการคุณสามารถใช้ glibc กับ 2.4 kernels แต่คุณจะสูญเสียฟังก์ชันการทำงานบางอย่าง:

เมื่อทำงานกับเคอร์เนลของ Linux GNU C Library เวอร์ชัน 2.4 มีไว้สำหรับใช้กับเคอร์เนล Linux รุ่น 2.6.0 และใหม่กว่าเป็นหลัก เรารองรับเฉพาะการใช้การใช้ NPTL ของ pthreads ซึ่งตอนนี้เป็นการกำหนดค่าเริ่มต้น ไลบรารี C ส่วนใหญ่จะยังคงทำงานบนเคอร์เนล Linux ที่เก่ากว่าและหลายโปรแกรมจะไม่ต้องการให้เคอร์เนล 2.6 ทำงานอย่างถูกต้อง อย่างไรก็ตาม pthreads และฟังก์ชั่นที่เกี่ยวข้องจะไม่สามารถใช้งานได้กับเมล็ดเก่าและเราไม่แนะนำให้ใช้ glibc 2.4 กับเคอร์เนล Linux ก่อนหน้า 2.6

โปรดทราบว่า--enable-kernel=VERSIONหมายถึง:

คอมไพล์เพื่อความเข้ากันได้กับเคอร์เนลที่เก่ากว่า VERSION

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.