เคอร์เนลลินุกซ์ 6.18 เปิดตัวแล้ว นี่คือสิ่งใหม่ที่มาพร้อมกับเวอร์ชันนี้
เคอร์เนลลินุกซ์ 6.18 นำการสนับสนุนสถาปัตยกรรมที่ขยายมากขึ้น, การอัปเดต BPF, ฟีเจอร์ใหม่ของไฟล์-แฮนด์ใน namespace และการเปิดใช้งานฮาร์ดแวร์ครอบคลุมทั้ง CPU, GPU และเซ็นเซอร์ต่าง ๆ
Linus Torvalds เพิ่งประกาศการเปิดตัวอย่างเป็นทางการของเคอร์เนล Linux รุ่นใหม่ 6.18
“ดังนั้นฉันต้องยอมรับว่าฉันคงจะมีความสุขมากกว่านี้ถ้าเสียงของการแก้บั๊กในสัปดาห์สุดท้ายของการปล่อยมันน้อยลงเล็กน้อย แต่ถึงแม้จะมีการแก้ไขเพิ่มขึ้นเล็กน้อยกว่าที่ฉันหวังไว้ ก็ไม่มีอะไรที่ทำให้ฉันรู้สึกว่าต้องใช้เวลามากกว่านี้ในการปรับปรุง ดังนั้นเวอร์ชัน 6.18 จึงถูกติดแท็กและส่งออกเรียบร้อยแล้ว”
คุณลักษณะสำคัญใน Linux 6.18
ในภาพรวม ลินุกซ์เคอร์เนล 6.18 ได้นำเสนอทางเลือกการเข้ารหัสใหม่ที่ใช้ PSP สำหรับการเชื่อมต่อ TCP, การจัดสรรและสลับ slab ที่เร็วขึ้น, การปรับปรุงด้านการรับข้อมูล UDP อย่างมีนัยสำคัญ, อุปกรณ์แคชถาวรแบบ device-mapper, namespaces ที่สามารถจัดการผ่าน file handles, รองรับ Accurate ECN ใน TCP, และโปรแกรม BPF ที่ลงนามแล้ว รวมถึงการเปลี่ยนแปลงเล็กๆ น้อยๆ ในเคอร์เนลหลักและไดรเวอร์หลายรายการ
หนึ่งในการเปลี่ยนแปลงที่สำคัญคือการแนะนำ "sheaves" ในตัวจัดสรร SLUB กล่าวอย่างง่าย ๆ ก็คือ เคอร์เนลตอนนี้เก็บแคชต่อ CPU ของวัตถุหน่วยความจำขนาดเล็ก ดังนั้นการจัดสรรและการคืนหน่วยความจำส่วนใหญ่สามารถทำได้ในเครื่องโดยตรงโดยไม่ต้องซิงโครไนซ์ระหว่าง CPU ซึ่งช่วยลดความขัดแย้งในเส้นทางการทำงานที่ร้อนแรงและเพิ่มความเร็วทั้งการจัดสรรและการคืนหน่วยความจำ ทำให้ประสิทธิภาพดีขึ้นสำหรับงานที่พึ่งพา RCU อย่างหนัก
ประสิทธิภาพการสลับหน่วยความจำเป็นอีกหนึ่งด้านที่กำลังพัฒนา Linux 6.18 นำเสนอเฟสแรกของงาน "ตารางสลับ" ซึ่งแนะนำการนามธรรมใหม่ที่ใช้เป็นแบ็กเอนด์สำหรับแคชสลับ เป้าหมายคือทำให้การค้นหาและการจัดการสลับมีประสิทธิภาพมากขึ้น โดยเฉพาะเมื่อมีแรงกดดันจากหน่วยความจำ
ด้วยเหตุนี้ เกณฑ์มาตรฐานที่รายงานในบันทึกการรวมระบบแสดงให้เห็นถึงการเพิ่มขึ้นของปริมาณงานและคำขอต่อวินาทีในอัตรา 5–20% สำหรับงานที่เป็นตัวแทน รวมถึงมีพฤติกรรมที่ดีขึ้นภายใต้ความกดดันสำหรับการจัดสรรหน้าขนาดใหญ่
ในด้านการจัดเก็บข้อมูล อุปกรณ์แมปเปอร์เป้าหมายใหม่ dm-pcache ช่วยให้หน่วยความจำถาวร — เช่น อุปกรณ์ที่ใช้ CXL หรือรองรับ DAX — สามารถใช้เป็นแคชความเร็วสูงหน้าต่ออุปกรณ์บล็อกที่ช้ากว่า ซึ่งทำให้ผู้วางระบบสามารถใช้หน่วยความจำถาวรในระดับเคอร์เนลเป็นชั้นกลางระหว่าง DRAM และ SSD หรือดิสก์ได้โดยไม่จำเป็นต้องใช้โค้ดเฉพาะในพื้นที่ผู้ใช้
ในเวลาเดียวกัน เซิร์ฟเวอร์ NFS ได้รับตัวเลือกให้ปิดการเก็บแคช I/O ของตัวเองทั้งหมด ฟังดูขัดแย้งกับสัญชาตญาณ แต่สำหรับเซิร์ฟเวอร์ขนาดใหญ่ที่มีการใช้งานหนักหรืออินสแตนซ์คลาวด์ขนาดเล็ก การข้ามการเก็บแคชฝั่งเซิร์ฟเวอร์อาจช่วยปรับปรุงความสามารถในการปรับขนาดจริงและหลีกเลี่ยงการแย่งใช้หน่วยความจำในเครื่อง
การจัดการกระบวนการและพื้นที่ชื่อได้รับการปรับปรุงความสะดวกในการใช้งานอย่างชัดเจน เคอร์เนลรองรับ pidfd ซึ่งเป็นตัวจัดการไฟล์ดีสคริปเตอร์ไปยังกระบวนการตั้งแต่ Linux 5.1 และสิ่งเหล่านี้พิสูจน์ว่ามีประโยชน์มากสำหรับการจัดการกระบวนการอย่างมั่นคง
เคอร์เนล Linux 6.18 ขยายแนวคิดเดียวกันไปยัง namespaces: ตอนนี้ userspace สามารถเข้ารหัสและถอดรหัสตัวระบุ namespace โดยใช้ API ที่มีอยู่แล้ว name_to_handle_at() และ open_by_handle_at() ซึ่งทำให้สามารถอ้างถึง namespaces ได้อย่างสม่ำเสมอตลอดอายุการใช้งานของระบบ เปรียบเทียบได้อย่างน่าเชื่อถือ และส่งต่อได้โดยไม่ต้องจัดสรรทรัพยากรเพิ่มเติม
เครือข่ายเห็นการเปลี่ยนแปลงที่สำคัญหลายประการเมื่อการเปิดตัวเวอร์ชันใหม่เพิ่มการรองรับเบื้องต้นสำหรับ Accurate Explicit Congestion Notification ซึ่งขยาย ECN แบบดั้งเดิมโดยอนุญาตให้มีการตอบสนองที่ละเอียดมากขึ้นเกี่ยวกับจำนวนเครื่องหมายความแออัดที่พบต่อ RTT
ในส่วนของ UDP เส้นทางการรับข้อมูลได้รับการปรับปรุงใหม่เพื่อลดความขัดแย้งและใช้การล็อกที่รองรับ NUMA รวมถึงโครงสร้างข้อมูลที่ดีขึ้น; การทดสอบที่อ้างถึงในบันทึกการเปลี่ยนแปลงรายงานว่ามีประสิทธิภาพการรับ UDP เพิ่มขึ้นประมาณ 50% โดยมีผลลัพธ์ที่ดีขึ้นมากเมื่ออยู่ในสภาวะเสมือนโจมตีที่ซ็อกเก็ตเพียงไม่กี่ตัวรับอัตราแพ็กเกจสูงมาก
นอกจากนี้ ขนาดบัฟเฟอร์รับของซ็อกเก็ตเริ่มต้นก็ถูกเพิ่มขึ้นเป็น 4 MB และงานก่อนหน้านี้เกี่ยวกับการแชร์บัฟเฟอร์ภายในโดยตรง (dibs) ได้ถูกรวมเข้าด้วยกัน ทำให้สามารถปรับขนาดได้ดีขึ้นสำหรับเครือข่ายที่มีปริมาณข้อมูลสูง
ความปลอดภัยและการเข้ารหัสในการรับส่งข้อมูลได้รับการเสริมความเข้มแข็งด้วยการสนับสนุนสำหรับการเชื่อมต่อ TCP ที่เข้ารหัสแบบ PSP PSP ซึ่งเป็นโปรโตคอลที่พัฒนาโดย Google อยู่ในตำแหน่งกลางระหว่าง IPsec และ TLS: มีความคล้ายคลึงทางสถาปัตยกรรมกับทั้งสอง แต่ถูกออกแบบมาเพื่อการลดภาระการประมวลผลบนฮาร์ดแวร์อย่างเข้มข้น รวมถึงโหมดการทำท่อ ส่งผลให้เหมาะสมสำหรับการใช้งานในศูนย์ข้อมูลซึ่งมีเอ็นจินช่วยประมวลผลทั่วไป
ซับซิสเต็ม BPF สามารถโหลดโปรแกรม BPF ที่มีลายเซ็นเข้ารหัสได้ ตอนนี้ การเปลี่ยนแปลงหลักคือโครงสร้างพื้นฐาน: เคอร์เนลสามารถตรวจสอบลายเซ็นของโปรแกรมในขณะที่โหลด นอกจากนี้ ซับซิสเต็มการตรวจสอบยังคงพัฒนาต่อไปเพื่อรองรับหลาย LSM อย่างแข็งแกร่ง ในขณะที่เคอร์เนล Linux 6.18 ปรับปรุงการจัดการเหตุการณ์เมื่อเปิดใช้งานโมดูลความปลอดภัยของ Linux หลายตัวพร้อมกัน
ในด้านการจำลองเสมือน รุ่นนี้ได้นำเสนอไดรเวอร์ virtio SPI ที่ช่วยให้ hypervisor สามารถเปิดเผยอุปกรณ์ SPI ไปยังเครื่องเสมือนโดยตรงผ่านกลไก virtio มาตรฐาน บนโฮสต์ x86 ฟีเจอร์ SEV-SNP CipherText Hiding จะพร้อมใช้งาน ซึ่งช่วยป้องกันไม่ให้ CPU ที่ไม่ได้รับอนุญาตเข้าถึงหน่วยความจำส่วนตัวของ guest เห็นแม้แต่ข้อความที่เข้ารหัสในหน่วยความจำนั้น
ทางด้าน KVM ตอนนี้สามารถให้บริการ shadow stack และการติดตามสาขาแบบอ้อมบนฮาร์ดแวร์ของ Intel และ shadow stack บน AMD ทำให้ผู้ใช้สามารถเข้าถึงการป้องกันการไหลของการควบคุมสมัยใหม่ได้
ระบบไฟล์และชั้นบล็อกมีทั้งงานพัฒนาฟีเจอร์และงานทำความสะอาด ส่วนเป้าหมายใหม่ของ dm-pcache ก็เข้ามาที่นี่เช่นกัน โดยให้แคชแบบถาวรก่อนอุปกรณ์บล็อก Ext4 ยังคงมีการปรับปรุงให้ทันสมัยขึ้น โดยรองรับ ID ที่สงวนไว้เพิ่มเติมและมีอินเทอร์เฟซ ioctl ใหม่สำหรับเรียกดูและแก้ไขพารามิเตอร์ของ superblock ขณะที่ส่วนสุดท้ายของตัวเลือกการกำหนดค่าแยกของ ext3 ถูกลบออก
OverlayFS ได้รับการสนับสนุนการเปรียบเทียบตัวอักษรแบบไม่สนใจตัวใหญ่ตัวเล็ก และระบบไฟล์ FUSE สามารถรองรับการคัดลอกช่วงข้อมูลขนาดใหญ่ได้โดยตรง แยกกันไป ตัวเลือก XFS ที่เลิกใช้งานเป็นกลุ่มถูกปิดการใช้งานโดยค่าเริ่มต้น ตัวเลือกการเมานต์ที่ล้าสมัยถูกลบทิ้ง และ fsck ออนไลน์ถูกเปิดใช้งานโดยค่าเริ่มต้นและไม่ถือว่าเป็นฟีเจอร์ทดลองแล้ว เคอร์เนล Linux 6.18 ยังลบระบบไฟล์ Bcachefs ออกทั้งหมด และบางระบบไฟล์ได้นำการใช้ bitmap แบบไม่ล็อกใหม่มาใช้เพื่อลดความขัดแย้งบน metadata ที่แชร์กัน
สุดท้าย ในเรื่องการรองรับฮาร์ดแวร์ การอัปเดตรุ่นนี้นำไดรเวอร์ใหม่หรือปรับปรุงสำหรับ GPU หลายรุ่น (รวมถึงรุ่น Mali ล่าสุดและบล็อกกราฟิก SoC เพิ่มเติม), สะพานและจอแสดงผล, SoC ฝังตัว, การ์ดเครือข่าย, ตัวควบคุมและตัวควบคุมแรงดันไฟฟ้า, เซ็นเซอร์ I/O อุตสาหกรรม, ตัวควบคุมพื้นที่จัดเก็บข้อมูล, USB PHY และรีพีทเตอร์, อุปกรณ์เสียง, รวมถึงตัวควบคุมอินพุตและแรงสั่นสะเทือน
สำหรับผู้ที่กระหายอยากคอมไพล์เคอร์เนล Linux 6.18 ด้วยตัวเอง ตอนนี้สามารถดาวน์โหลดได้ที่ kernel.org ตามปกติ ผู้ใช้ดิสโทรแบบ rolling-release จะเป็นกลุ่มแรกที่ได้รับเคอร์เนลใหม่ โดยคาดว่าการอัปเดตจะพร้อมใช้งานในรีโปของพวกเขาในสัปดาห์ถัดไป
