ลินุกซ์ 6.7 ออกมาแล้วและนี่คือข่าวของมัน

Tux มาสคอตของ Linux Kernel

เคอร์เนล Linux เป็นแกนหลักของระบบปฏิบัติการ Linux (OS) และเป็นอินเทอร์เฟซพื้นฐานระหว่างฮาร์ดแวร์ของคอมพิวเตอร์และกระบวนการต่างๆ

เมื่อเร็ว ๆ นี้ Linus Torvalds เปิดตัวเคอร์เนลใหม่ของ Linux เวอร์ชัน 6.7ซึ่งนำเสนอหลังจากการพัฒนาสองเดือนและการเปลี่ยนแปลงที่โดดเด่นที่สุดอย่างหนึ่งคือการรวมระบบไฟล์ Bcachefs การหยุดรองรับสถาปัตยกรรม Itanium ความสามารถของ Nouveau ในการทำงานกับเฟิร์มแวร์ GSP-R รองรับการเข้ารหัส TLS ใน NVMe-TCP ความสามารถในการใช้ข้อยกเว้นใน BPF เหนือสิ่งอื่นใด

เคอร์เนล Linux เวอร์ชันใหม่ 6.7 ประกอบด้วยการแก้ไข 15291 รายการ และประมาณ 45% ของการเปลี่ยนแปลงทั้งหมดที่นำมาใช้เกี่ยวข้องกับไดรเวอร์อุปกรณ์ 14% ของการเปลี่ยนแปลงเกี่ยวข้องกับการอัพเดตโค้ดเฉพาะสำหรับสถาปัตยกรรมฮาร์ดแวร์ 13% เกี่ยวข้องกับสแต็กเครือข่าย 5% เกี่ยวข้องกับระบบไฟล์ และ 3% เกี่ยวข้องกับ ระบบย่อยเคอร์เนลภายใน

ขนาดแพตช์คือ 72 MB (การเปลี่ยนแปลงส่งผลต่อไฟล์ 13.467 ไฟล์, เพิ่มโค้ด 906.147 บรรทัด และลบ 341.048 บรรทัด)

ความแปลกใหม่หลักของเคอร์เนล Linux 6.7

การรวมระบบไฟล์ Bcachefs

Linux 6.7 ใช้โค้ดระบบไฟล์ Bcachefs ซึ่งพยายามเพื่อให้ได้ประสิทธิภาพ ความน่าเชื่อถือ และความสามารถในการปรับขนาดของ XFS รวมกับองค์ประกอบของฟังก์ชันการทำงานขั้นสูงที่พบใน Btrfs และ ZFS

บีแคชเซฟ รองรับฟีเจอร์ต่างๆ เช่น การรวมหลายอุปกรณ์ บนพาร์ติชั่นเดียว การออกแบบไดรฟ์หลายชั้น (ชั้นล่างสุดที่มีข้อมูลที่ใช้บ่อยโดยอิงจาก SSD ที่รวดเร็ว และชั้นบนสุดที่มีข้อมูลจากฮาร์ดไดรฟ์ที่ใช้งานน้อย) การจำลองแบบ (RAID 1/10) การแคช, การบีบอัดข้อมูลแบบโปร่งใส (โหมด LZ4, gzip และ ZSTD), การตัดสถานะ, การตรวจสอบความสมบูรณ์โดยใช้เช็คซัม, ความสามารถในการจัดเก็บรหัสแก้ไขข้อผิดพลาด Reed-Solomon (RAID 5/6), การจัดเก็บข้อมูลในรูปแบบที่เข้ารหัส (ใช้ ChaCha20 และ Poly1305) . ในแง่ของประสิทธิภาพ Bcachefs นำหน้า Btrfs และระบบไฟล์อื่นๆ ขึ้นอยู่กับกลไกการคัดลอกเมื่อเขียนและแสดงให้เห็นถึงความเร็วในการทำงานใกล้เคียงกับ Ext4 และ XFS

การปรับปรุงใน Btrfs

บนลินุกซ์ 6.7 มีการใช้งานโหมดโควต้าแบบง่ายสำหรับ Btrfs ซึ่งช่วยให้มีประสิทธิภาพดีขึ้นโดยการติดตามส่วนขยายเฉพาะในพาร์ติชั่นย่อยที่พวกมันถูกสร้างขึ้นซึ่ง ทำให้การคำนวณง่ายขึ้นอย่างมากและปรับปรุงประสิทธิภาพ แต่ไม่อนุญาตให้แชร์ส่วนขยายระหว่างหลายพาร์ติชั่นย่อย นอกจากนี้ ยังมีการเพิ่มโครงสร้างข้อมูล Stripe Tree ใหม่ให้กับ Btrfs ซึ่งเหมาะสำหรับการแมปส่วนขยายแบบลอจิคัลในสถานการณ์ที่การแมปทางกายภาพไม่ตรงกันระหว่างอุปกรณ์ต่างๆ ปัจจุบันแฟบริคถูกนำมาใช้ในการใช้งาน RAID0 และ RAID1 สำหรับอุปกรณ์บล็อกแบบแบ่งโซน

การยุติการสนับสนุนสถาปัตยกรรม Itanium (ia64)

ที่ รองรับสถาปัตยกรรม ia64 ที่ใช้ในโปรเซสเซอร์ Intel Itanium, มันคืออะไรเราถูกระงับโดยสมบูรณ์ในปี 2021. Intel เปิดตัวโปรเซสเซอร์ Itanium ในปี 2001 แต่สถาปัตยกรรม ia64 ไม่สามารถแข่งขันกับ AMD64 ได้ สาเหตุหลักมาจากประสิทธิภาพที่สูงขึ้นของ AMD64 และการเปลี่ยนจากโปรเซสเซอร์ 86 บิต x32 ที่ราบรื่นยิ่งขึ้น  Linus Torvalds แสดงความเต็มใจที่จะกลับมาสนับสนุน ia64 ไปยังเคอร์เนล แต่ใช่เฉพาะในกรณีที่มีผู้ดูแลที่สามารถแสดงให้เห็นถึงการสนับสนุนคุณภาพสูงเท่านั้น สำหรับแพลตฟอร์มนี้ออกจากเคอร์เนลหลักเป็นเวลาอย่างน้อยหนึ่งปี

การโยกย้ายการเปลี่ยนแปลงอย่างต่อเนื่องจากสาขา Rust-for-Linux

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

การปรับปรุงในการใช้งานคิว FIFO 

ใน Linux 6.7 เวอร์ชันใหม่นี้ การใช้กลไก FIFO แบบน้ำหนักเบา การเชื่อมต่อเดี่ยวที่ต้องใช้ Spinlock สำหรับการแยกคิวในบริบทของกระบวนการเท่านั้น และจ่ายให้กับการเพิ่มอะตอมมิกในคิวในทุกบริบท นอกจากนี้ บัฟเฟอร์แบบวงกลม objpool ยังถูกเพิ่มด้วยการใช้งานที่ปรับขนาดได้ของคิวประสิทธิภาพสูงเพื่อจัดสรรและส่งคืนอ็อบเจ็กต์

รองรับการเข้ารหัส TLS สำหรับ NVMe-TCP

บนลินุกซ์ 6.7 ไดรเวอร์ NVMe-TCP (ซึ่งช่วยให้คุณเข้าถึงไดรฟ์ NVMe ผ่านเครือข่าย) เพิ่มการรองรับการเข้ารหัสช่องทางการส่งข้อมูลโดยใช้ TLS (ใช้ KTLS และกระบวนการเบื้องหลัง) ในพื้นที่ผู้ใช้ tlshd สำหรับการเจรจาการเชื่อมต่อ

ปรับปรุงประสิทธิภาพของตัวกำหนดเวลาแพ็คเกจ

เพิ่มประสิทธิภาพตัวกำหนดเวลาแพ็คเกจ fqซึ่งทำให้สามารถเพิ่มประสิทธิภาพได้ 5% ภายใต้ภาระหนักในการทดสอบ tcp_rr (คำขอ/การตอบสนอง TCP) และเพิ่มขึ้น 13% ด้วยโฟลว์แพ็กเก็ต UDP แบบไม่จำกัด

การนำตัวเลือกการรับรองความถูกต้อง TCP มาใช้

เพิ่มการสนับสนุนลงในสแต็ก TCP สำหรับส่วนขยาย TCP-AO ที่อนุญาตให้ตรวจสอบส่วนหัว TCP โดยใช้รหัส MAC โดยใช้อัลกอริทึม HMAC-SHA1 และ CMAC-AES-128 ที่ทันสมัยยิ่งขึ้นแทนตัวเลือก TCP-MD5 ที่มีอยู่ก่อนหน้านี้ตามอัลกอริทึม MD5 ดั้งเดิม .

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

  • เพิ่มการตั้งค่าใหม่แล้ว «cpuset.cpus.exclusive" และ "cpuset.cpus.exclusive มีประสิทธิภาพ» ถึง cpuset สำหรับการผูก CPU พิเศษ
  • ระบบย่อย BPF ใช้การสนับสนุนข้อยกเว้น ซึ่งถูกประมวลผลเป็นทางออกฉุกเฉินจากโปรแกรม BPF พร้อมด้วยความสามารถในการคลายสแต็กเฟรมได้อย่างปลอดภัย นอกจากนี้ โปรแกรม BPF ยังอนุญาตให้ใช้ตัวชี้ kptr ในการเชื่อมต่อกับ CPU
  • สำหรับสถาปัตยกรรม ARM32 และ S390x มีการเพิ่มการรองรับชุดคำสั่ง BPF ชุดปัจจุบัน (cpuv4)
  • สำหรับสถาปัตยกรรม RISC-V คุณสามารถใช้โหมดตรวจสอบ Shadow-Call Stack ที่มีอยู่ใน Clang 17 ซึ่งได้รับการออกแบบมาเพื่อป้องกันการเขียนทับที่อยู่ผู้ส่งของฟังก์ชันในกรณีที่บัฟเฟอร์ล้นบนสแต็ก
  • มีการเพิ่มโหมดการสแกนหน้าหน่วยความจำอัจฉริยะใหม่ให้กับกลไกสำหรับการรวมหน้าหน่วยความจำที่เหมือนกัน (
  • AppArmor ได้เพิ่มความสามารถในการควบคุมการเข้าถึงกลไก io_uring และสร้างเนมสเปซของผู้ใช้ ซึ่งช่วยให้คุณสามารถเลือกที่จะอนุญาตการเข้าถึงความสามารถเหล่านี้เฉพาะบางกระบวนการเท่านั้น
  • เพิ่ม VM Certification API เพื่อตรวจสอบความสมบูรณ์ของกระบวนการเริ่มต้น VM
  • ระบบ LoongArch รองรับการจำลองเสมือนโดยใช้ไฮเปอร์ไวเซอร์ KVM
  • เพิ่มการรองรับเบื้องต้นสำหรับเฟิร์มแวร์ GSP-RM ให้กับโมดูลเคอร์เนล Nouveau ซึ่งใช้ใน GPU NVIDIA RTX 20+ เพื่อย้ายการเริ่มต้นและการควบคุมการดำเนินการจาก GPU ไปยังด้านข้างของไมโครคอนโทรลเลอร์ GSP

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