การเปิดตัวเคอร์เนล Linux 5.19

หลังจากสองเดือนของการพัฒนา Linus Torvalds ได้เปิดตัว Linux kernel 5.19 การเปลี่ยนแปลงที่โดดเด่นที่สุด ได้แก่ การรองรับสถาปัตยกรรมโปรเซสเซอร์ LoongArch, การรวมแพทช์ "BIG TCP", โหมดตามความต้องการใน fscache, การลบโค้ดเพื่อรองรับรูปแบบ a.out, ความสามารถในการใช้ ZSTD สำหรับการบีบอัดเฟิร์มแวร์, อินเทอร์เฟซสำหรับ การจัดการการลบหน่วยความจำออกจากพื้นที่ผู้ใช้ เพิ่มความน่าเชื่อถือและประสิทธิภาพของตัวสร้างตัวเลขสุ่มหลอก รองรับ Intel IFS (In-Field Scan), AMD SEV-SNP (Secure Nested Paging), Intel TDX (Trusted Domain Extensions) และ ARM ส่วนขยาย SME (ส่วนขยายเมทริกซ์ที่ปรับขนาดได้)

ในการประกาศ Linus กล่าวว่ามีแนวโน้มมากที่สุดที่เคอร์เนลรุ่นถัดไปจะมีหมายเลข 6.0 เนื่องจากสาขา 5.x ได้สะสมรุ่นมากพอที่จะเปลี่ยนหมายเลขแรกในหมายเลขเวอร์ชัน การเปลี่ยนแปลงหมายเลขดำเนินการด้วยเหตุผลด้านความสวยงามและเป็นขั้นตอนอย่างเป็นทางการที่ช่วยบรรเทาความรู้สึกไม่สบายเนื่องจากการสะสมปัญหาจำนวนมากในซีรีส์

Linus ยังกล่าวอีกว่าเขาใช้แล็ปท็อป Apple ที่ใช้สถาปัตยกรรม ARM64 (Apple Silicon) กับสภาพแวดล้อม Linux ที่ใช้การกระจาย Asahi Linux เพื่อสร้างการเปิดตัว ไม่ใช่เวิร์กสเตชันหลักของ Linus แต่เขาใช้แพลตฟอร์มนี้เพื่อทดสอบความเหมาะสมสำหรับงานเคอร์เนล และเพื่อให้แน่ใจว่าเขาสามารถสร้างเคอร์เนลรุ่นต่างๆ ขณะเดินทางโดยมีแล็ปท็อปน้ำหนักเบาอยู่ในมือ ก่อนหน้านี้ เมื่อหลายปีก่อน Linus มีประสบการณ์ในการใช้อุปกรณ์ของ Apple เพื่อการพัฒนา ครั้งหนึ่งเขาเคยใช้พีซีที่ใช้ ppc970 CPU และแล็ปท็อป Macbook Air

เวอร์ชันใหม่ประกอบด้วยการแก้ไข 16401 รายการจากนักพัฒนา 2190 ราย (ในรุ่นล่าสุดมีการแก้ไข 16206 รายการจากนักพัฒนา 2127 ราย) ขนาดแพตช์คือ 90 MB (การเปลี่ยนแปลงส่งผลต่อไฟล์ 13847 ไฟล์, เพิ่มโค้ด 1149456 บรรทัด, ลบ 349177 บรรทัด) ประมาณ 39% ของการเปลี่ยนแปลงทั้งหมดที่นำมาใช้ใน 5.19 เกี่ยวข้องกับไดรเวอร์อุปกรณ์ ประมาณ 21% ของการเปลี่ยนแปลงเกี่ยวข้องกับการอัปเดตโค้ดเฉพาะสำหรับสถาปัตยกรรมฮาร์ดแวร์ 11% เกี่ยวข้องกับสแต็กเครือข่าย 4% เกี่ยวข้องกับระบบไฟล์ และ 3% เกี่ยวข้องกับระบบย่อยเคอร์เนลภายใน

นวัตกรรมที่สำคัญในเคอร์เนล 5.19:

  • ระบบย่อยของดิสก์ I/O และระบบไฟล์
    • ระบบไฟล์ EROFS (Enhanced Read-Only File System) ซึ่งมีไว้สำหรับใช้กับพาร์ติชันแบบอ่านอย่างเดียว ได้รับการแปลงเพื่อใช้ระบบย่อย fscache ซึ่งจัดให้มีการแคชข้อมูล การเปลี่ยนแปลงนี้ได้ปรับปรุงประสิทธิภาพของระบบที่มีการเปิดใช้งานคอนเทนเนอร์จำนวนมากจากอิมเมจที่ใช้ EROFS อย่างมีนัยสำคัญ
    • โหมดการอ่านตามความต้องการได้ถูกเพิ่มให้กับระบบย่อย fscache ซึ่งใช้ในการออปติไมซ์ EROFS โหมดใหม่ช่วยให้คุณสามารถจัดระเบียบแคชการอ่านจากอิมเมจ FS ที่อยู่ในระบบโลคัล ตรงกันข้ามกับโหมดการทำงานที่มีให้ในตอนแรกซึ่งมุ่งเน้นไปที่การแคชในระบบไฟล์ในเครื่องของข้อมูลที่ถ่ายโอนผ่านระบบไฟล์เครือข่าย โหมด "ตามต้องการ" จะมอบหมายหน้าที่ในการดึงข้อมูลและเขียนลงในแคชไปยังอุปกรณ์แยกต่างหาก กระบวนการพื้นหลังที่ทำงานในพื้นที่ผู้ใช้
    • XFS จัดเตรียมความสามารถในการจัดเก็บแอ็ตทริบิวต์เพิ่มเติมนับพันล้านรายการใน i-node จำนวนส่วนขยายสูงสุดสำหรับหนึ่งไฟล์เพิ่มขึ้นจาก 4 พันล้านเป็น 247 มีการใช้งานโหมดสำหรับการอัปเดตแอตทริบิวต์ไฟล์ขยายหลายไฟล์แบบอะตอมมิกในคราวเดียว
    • ระบบไฟล์ Btrfs ได้เพิ่มประสิทธิภาพการทำงานด้วยการล็อค ซึ่งทำให้ประสิทธิภาพเพิ่มขึ้นประมาณ 7% เมื่อเขียนโดยตรงในโหมด nowait ประสิทธิภาพการทำงานในโหมด NOCOW (ไม่มีการคัดลอกเมื่อเขียน) เพิ่มขึ้นประมาณ 3% โหลดแคชของเพจเมื่อรันคำสั่ง "ส่ง" ลดลง ขนาดหน้าย่อยขั้นต่ำลดลงจาก 64K เป็น 4K (สามารถใช้หน้าย่อยที่เล็กกว่าหน้าเคอร์เนลได้) มีการเปลี่ยนจากการใช้ Radix Tree ไปเป็นอัลกอริธึม XArrays
    • มีการเพิ่มโหมดลงในเซิร์ฟเวอร์ NFS เพื่อขยายการรักษาสถานะการล็อคที่กำหนดโดยไคลเอนต์ที่หยุดตอบสนองต่อคำร้องขอ โหมดใหม่ช่วยให้คุณสามารถชะลอการล้างการล็อคได้นานถึงหนึ่งวัน เว้นแต่ไคลเอนต์อื่นจะร้องขอการล็อคที่แข่งขันกัน ในโหมดปกติ การบล็อกจะถูกล้าง 90 วินาทีหลังจากที่ไคลเอ็นต์หยุดการตอบสนอง
    • ระบบย่อยการติดตามเหตุการณ์ใน fanotify FS ใช้แฟล็ก FAN_MARK_EVICTABLE ซึ่งคุณสามารถปิดใช้งานการปักหมุด i-nodes เป้าหมายในแคช ตัวอย่างเช่น เพื่อละเว้นสาขาย่อยโดยไม่ต้องปักหมุดส่วนต่างๆ ในแคช
    • ไดรเวอร์สำหรับระบบไฟล์ FAT32 ได้เพิ่มการรองรับในการรับข้อมูลเกี่ยวกับเวลาของการสร้างไฟล์ผ่านการเรียกระบบ statx ด้วยการใช้ stat() เวอร์ชันที่มีประสิทธิภาพและใช้งานได้มากขึ้น ซึ่งจะส่งคืนข้อมูลเพิ่มเติมเกี่ยวกับไฟล์
    • มีการเพิ่มประสิทธิภาพที่สำคัญกับไดรเวอร์ exFAT เพื่อให้สามารถทำการล้างกลุ่มของเซกเตอร์พร้อมกันได้เมื่อโหมด 'dirsync' ทำงาน แทนที่จะทำการล้างเซกเตอร์ต่อเซกเตอร์ตามลำดับ ด้วยการลดจำนวนคำขอบล็อกหลังจากการเพิ่มประสิทธิภาพ ประสิทธิภาพในการสร้างไดเร็กทอรีจำนวนมากบนการ์ด SD จึงเพิ่มขึ้นมากกว่า 73-85% ขึ้นอยู่กับขนาดคลัสเตอร์
    • เคอร์เนลรวมการอัปเดตการแก้ไขครั้งแรกสำหรับไดรเวอร์ ntfs3 เนื่องจาก ntfs3 ถูกรวมไว้ในเคอร์เนล 5.15 เมื่อเดือนตุลาคมปีที่แล้ว ไดรเวอร์จึงยังไม่ได้รับการอัปเดตและการสื่อสารกับนักพัฒนาก็ขาดหายไป แต่ขณะนี้นักพัฒนาได้กลับมาเผยแพร่การเปลี่ยนแปลงต่อแล้ว แพทช์ที่นำเสนอขจัดข้อผิดพลาดที่นำไปสู่การรั่วไหลของหน่วยความจำและการหยุดทำงาน แก้ไขปัญหาเกี่ยวกับการดำเนินการ xfstests ทำความสะอาดโค้ดที่ไม่ได้ใช้ และแก้ไขการพิมพ์ผิด
    • สำหรับ OverlayFS ได้มีการนำความสามารถในการแมป ID ผู้ใช้ของระบบไฟล์ที่เมาท์ ซึ่งใช้เพื่อจับคู่ไฟล์ของผู้ใช้เฉพาะบนพาร์ติชันต่างประเทศที่เมาท์กับผู้ใช้อื่นบนระบบปัจจุบัน
  • บริการหน่วยความจำและระบบ
    • เพิ่มการรองรับเบื้องต้นสำหรับสถาปัตยกรรมชุดคำสั่ง LoongArch ที่ใช้ในโปรเซสเซอร์ Loongson 3 5000 ซึ่งใช้ RISC ISA ใหม่ ซึ่งคล้ายกับ MIPS และ RISC-V สถาปัตยกรรม LoongArch มีให้เลือกสามรูปแบบ: Stripped-down 32-bit (LA32R), Regular 32-bit (LA32S) และ 64-bit (LA64)
    • ลบโค้ดเพื่อรองรับรูปแบบไฟล์ปฏิบัติการ a.out ซึ่งเลิกใช้แล้วในรีลีส 5.1 รูปแบบ a.out เลิกใช้แล้วบนระบบ Linux มานานแล้ว และการสร้างไฟล์ a.out ไม่ได้รับการสนับสนุนโดยเครื่องมือสมัยใหม่ในการกำหนดค่าเริ่มต้นของ Linux ตัวโหลดสำหรับไฟล์ a.out สามารถนำไปใช้งานได้ทั้งหมดในพื้นที่ผู้ใช้
    • การสนับสนุนตัวเลือกการบูตเฉพาะ x86 ถูกยกเลิกแล้ว: nosp, nosmap, nosmep, noexec และ noclflush)
    • การสนับสนุนสถาปัตยกรรม CPU h8300 ที่ล้าสมัย (Renesas H8/300) ซึ่งไม่มีการสนับสนุนมานานแล้ว ได้ถูกยกเลิกแล้ว
    • ความสามารถเพิ่มเติมที่เกี่ยวข้องกับการตอบสนองต่อการตรวจจับการแยกล็อค (“การแยกล็อค”) ที่เกิดขึ้นเมื่อเข้าถึงข้อมูลที่ไม่สอดคล้องกันในหน่วยความจำ เนื่องจากข้อเท็จจริงที่ว่าเมื่อดำเนินการคำสั่งอะตอมมิก ข้อมูลจะข้ามสองบรรทัดแคชของ CPU การอุดตันดังกล่าวส่งผลให้ประสิทธิภาพลดลงอย่างมาก หากก่อนหน้านี้ ตามค่าเริ่มต้น เคอร์เนลจะส่งคำเตือนพร้อมข้อมูลเกี่ยวกับกระบวนการที่ทำให้เกิดการบล็อก ตอนนี้กระบวนการที่เป็นปัญหาจะถูกชะลอลงอีกเพื่อรักษาประสิทธิภาพของส่วนที่เหลือของระบบ
    • เพิ่มการรองรับกลไก IFS (In-Field Scan) ที่ใช้ในโปรเซสเซอร์ Intel ซึ่งช่วยให้คุณสามารถรันการทดสอบวินิจฉัย CPU ระดับต่ำที่สามารถระบุปัญหาที่ตรวจไม่พบโดยเครื่องมือมาตรฐานตามรหัสแก้ไขข้อผิดพลาด (ECC) หรือบิตพาริตี . การทดสอบที่ทำอยู่ในรูปแบบของเฟิร์มแวร์ที่ดาวน์โหลดได้ ซึ่งออกแบบคล้ายกับการอัพเดตไมโครโค้ด ผลการทดสอบมีให้ผ่านทาง sysfs
    • เพิ่มความสามารถในการฝังไฟล์ bootconfig ลงในเคอร์เนล ซึ่งช่วยให้นอกเหนือจากตัวเลือกบรรทัดคำสั่ง เพื่อกำหนดพารามิเตอร์ของเคอร์เนลผ่านไฟล์การตั้งค่า การฝังจะดำเนินการโดยใช้ตัวเลือกการประกอบ 'CONFIG_BOOT_CONFIG_EMBED_FILE=»/PATH/TO/BOOTCONFIG/FILE»' ก่อนหน้านี้ bootconfig ถูกกำหนดโดยการแนบไปกับอิมเมจเริ่มต้น การรวมเข้ากับเคอร์เนลทำให้สามารถใช้ bootconfig ในการกำหนดค่าโดยไม่ต้องมี initrd
    • ความสามารถในการดาวน์โหลดเฟิร์มแวร์ที่ถูกบีบอัดโดยใช้อัลกอริธึม Zstandard ได้ถูกนำมาใช้แล้ว มีการเพิ่มชุดของไฟล์ควบคุม /sys/class/firmware/* ลงใน sysfs ทำให้คุณสามารถเริ่มต้นการโหลดเฟิร์มแวร์จากพื้นที่ผู้ใช้ได้
    • อินเทอร์เฟซ I/O แบบอะซิงโครนัส io_uring นำเสนอแฟล็กใหม่ IORING_RECVSEND_POLL_FIRST ซึ่งเมื่อตั้งค่าแล้ว จะส่งการดำเนินการเครือข่ายก่อนเพื่อประมวลผลโดยใช้การโพล ซึ่งสามารถประหยัดทรัพยากรในสถานการณ์ที่การประมวลผลการดำเนินการโดยมีความล่าช้าบ้างเป็นที่ยอมรับได้ io_uring ยังเพิ่มการสนับสนุนสำหรับการเรียกระบบ socket() เสนอแฟล็กใหม่เพื่อทำให้การจัดการตัวอธิบายไฟล์ง่ายขึ้น เพิ่มโหมด "multi-shot" สำหรับการยอมรับการเชื่อมต่อหลายรายการพร้อมกันในการเรียก Accept() และเพิ่มการดำเนินการสำหรับการส่งต่อ NVMe สั่งการไปยังอุปกรณ์โดยตรง
    • สถาปัตยกรรม Xtensa ให้การสนับสนุนเครื่องมือดีบัก KCSAN (Kernel Concurrency Sanitizer) ซึ่งออกแบบมาเพื่อตรวจจับสภาวะการแข่งขันภายในเคอร์เนลแบบไดนามิก เพิ่มการรองรับโหมดสลีปและโปรเซสเซอร์ร่วมด้วย
    • สำหรับสถาปัตยกรรม m68k (Motorola 68000) มีการใช้เครื่องเสมือน (ตัวจำลองแพลตฟอร์ม) ที่ใช้ตัวจำลอง Android Goldfish
    • สำหรับสถาปัตยกรรม AArch64 ได้มีการนำการรองรับส่วนขยาย Armv9-A SME (Scalable Matrix Extension) มาใช้แล้ว
    • ระบบย่อย eBPF อนุญาตให้จัดเก็บพอยน์เตอร์ที่พิมพ์ในโครงสร้างแผนที่ และยังเพิ่มการรองรับสำหรับพอยน์เตอร์แบบไดนามิก
    • มีการเสนอกลไกการเรียกคืนหน่วยความจำเชิงรุกใหม่ที่รองรับการควบคุมพื้นที่ผู้ใช้โดยใช้ไฟล์ memory.reclaim การเขียนตัวเลขลงในไฟล์ที่ระบุจะพยายามลบจำนวนไบต์ที่สอดคล้องกันออกจากชุดที่เกี่ยวข้องกับ cgroup
    • ปรับปรุงความแม่นยำของการใช้หน่วยความจำเมื่อบีบอัดข้อมูลในพาร์ติชั่นสลับโดยใช้กลไก zswap
    • สำหรับสถาปัตยกรรม RISC-V มีการรองรับการรันไฟล์ปฏิบัติการแบบ 32 บิตบนระบบ 64 บิต มีการเพิ่มโหมดเพื่อผูกคุณลักษณะที่จำกัดเข้ากับเพจหน่วยความจำ (เช่น เพื่อปิดใช้งานการแคช) และมีการใช้ฟังก์ชัน kexec_file_load() .
    • การดำเนินการรองรับระบบ Armv32T และ Armv4 แบบ 5 บิตได้รับการปรับให้เข้ากับเคอร์เนลหลายแพลตฟอร์มสากลที่เหมาะกับระบบ ARM ที่แตกต่างกัน
  • การจำลองเสมือนและความปลอดภัย
    • ระบบย่อย EFI ใช้ความสามารถในการถ่ายโอนข้อมูลลับไปยังระบบแขกอย่างเป็นความลับ โดยไม่ต้องเปิดเผยข้อมูลดังกล่าวกับระบบโฮสต์ ข้อมูลถูกจัดเตรียมผ่านไดเร็กทอรี security/coco ใน securityfs
    • โหมดการป้องกันการล็อคซึ่งจำกัดการเข้าถึงเคอร์เนลของผู้ใช้รูทและบล็อกเส้นทางบายพาส UEFI Secure Boot ได้ขจัดช่องโหว่ที่อนุญาตให้การป้องกันถูกข้ามโดยการจัดการดีบักเกอร์เคอร์เนล
    • รวมไปถึงแพตช์ที่มุ่งปรับปรุงความน่าเชื่อถือและประสิทธิภาพของตัวสร้างตัวเลขสุ่มหลอก
    • เมื่อสร้างโดยใช้ Clang 15 จะมีการใช้กลไกในการสุ่มโครงสร้างเคอร์เนล
    • กลไก Landlock ซึ่งช่วยให้คุณสามารถจำกัดการโต้ตอบของกลุ่มกระบวนการกับสภาพแวดล้อมภายนอก ให้การสนับสนุนกฎที่อนุญาตให้คุณควบคุมการดำเนินการดำเนินการเปลี่ยนชื่อไฟล์
    • ระบบย่อย IMA (Integrity Measuring Architecture) ซึ่งได้รับการออกแบบมาเพื่อตรวจสอบความสมบูรณ์ของส่วนประกอบระบบปฏิบัติการโดยใช้ลายเซ็นดิจิทัลและแฮช ได้เปลี่ยนไปใช้โมดูล fs-verity สำหรับการตรวจสอบไฟล์
    • ตรรกะของการดำเนินการเมื่อปิดใช้งานการเข้าถึงระบบย่อย eBPF ที่ไม่มีสิทธิพิเศษมีการเปลี่ยนแปลง - ก่อนหน้านี้คำสั่งทั้งหมดที่เกี่ยวข้องกับการเรียกระบบ bpf() ถูกปิดใช้งานและเริ่มต้นจากเวอร์ชัน 5.19 การเข้าถึงคำสั่งที่ไม่นำไปสู่การสร้างวัตถุจะเหลืออยู่ . ลักษณะการทำงานนี้จำเป็นต้องมีกระบวนการที่มีสิทธิ์ในการโหลดโปรแกรม BPF แต่กระบวนการที่ไม่มีสิทธิ์จะสามารถโต้ตอบกับโปรแกรมได้
    • เพิ่มการรองรับส่วนขยาย AMD SEV-SNP (Secure Nested Paging) ซึ่งให้การทำงานที่ปลอดภัยกับตารางเพจหน่วยความจำแบบซ้อน และป้องกันการโจมตี "undeSErVed" และ "SEVerity" บนโปรเซสเซอร์ AMD EPYC ซึ่งช่วยให้สามารถข้าม AMD SEV (Secure Encrypted Virtualization) ) กลไกการป้องกัน
    • เพิ่มการรองรับกลไก Intel TDX (Trusted Domain Extensions) ซึ่งช่วยให้คุณบล็อกความพยายามของบุคคลที่สามในการเข้าถึงหน่วยความจำที่เข้ารหัสของเครื่องเสมือน
    • ไดรเวอร์ virtio-blk ที่ใช้ในการจำลองอุปกรณ์บล็อกได้เพิ่มการรองรับ I/O โดยใช้การโพล ซึ่งจากการทดสอบพบว่าลดเวลาแฝงลงประมาณ 10%
  • ระบบย่อยของเครือข่าย
    • แพ็คเกจนี้ประกอบด้วยชุดแพตช์ TCP ขนาดใหญ่ที่ช่วยให้คุณสามารถเพิ่มขนาดแพ็กเก็ตสูงสุดของแพ็กเก็ต TCP เป็น 4GB เพื่อเพิ่มประสิทธิภาพการทำงานของเครือข่ายศูนย์ข้อมูลภายในความเร็วสูง การเพิ่มขนาดแพ็กเก็ตที่คล้ายกันด้วยขนาดฟิลด์ส่วนหัว 16 บิตนั้นทำได้โดยการใช้แพ็กเก็ต "จัมโบ้" ขนาดในส่วนหัว IP ซึ่งตั้งค่าเป็น 0 และขนาดจริงจะถูกส่งใน 32 บิตแยกต่างหาก ฟิลด์ในส่วนหัวที่แนบมาแยกต่างหาก ในการทดสอบประสิทธิภาพ การตั้งค่าขนาดแพ็คเก็ตเป็น 185 KB จะเพิ่มปริมาณงานขึ้น 50% และลดเวลาแฝงในการถ่ายโอนข้อมูลลงอย่างมาก
    • ทำงานอย่างต่อเนื่องในการรวมเครื่องมือเข้ากับสแต็กเครือข่ายเพื่อติดตามสาเหตุของการทิ้งแพ็กเก็ต (รหัสเหตุผล) รหัสเหตุผลจะถูกส่งเมื่อหน่วยความจำที่เกี่ยวข้องกับแพ็กเก็ตว่าง และอนุญาตในสถานการณ์ต่างๆ เช่น การละทิ้งแพ็กเก็ตเนื่องจากข้อผิดพลาดของส่วนหัว การตรวจจับการปลอมแปลง rp_filter การตรวจสอบผลรวมไม่ถูกต้อง หน่วยความจำไม่เพียงพอ กฎ IPSec XFRM ถูกทริกเกอร์ หมายเลขลำดับ TCP ที่ไม่ถูกต้อง ฯลฯ
    • เพิ่มการรองรับการเชื่อมต่อ MPTCP (MultiPath TCP) แบบถอยกลับเพื่อใช้ TCP ปกติในสถานการณ์ที่ไม่สามารถใช้คุณสมบัติ MPTCP บางอย่างได้ MPTCP เป็นส่วนขยายของโปรโตคอล TCP สำหรับการจัดระเบียบการดำเนินการของการเชื่อมต่อ TCP พร้อมการส่งแพ็กเก็ตพร้อมกันไปตามหลายเส้นทางผ่านอินเทอร์เฟซเครือข่ายที่แตกต่างกันที่เกี่ยวข้องกับที่อยู่ IP ที่แตกต่างกัน เพิ่ม API เพื่อควบคุมสตรีม MPTCP จากพื้นที่ผู้ใช้
  • Оборудование
    • เพิ่มโค้ดมากกว่า 420 บรรทัดที่เกี่ยวข้องกับไดรเวอร์ amdgpu ซึ่งประมาณ 400 บรรทัดเป็นไฟล์ส่วนหัวที่สร้างขึ้นอัตโนมัติสำหรับข้อมูลการลงทะเบียน ASIC ในไดรเวอร์ AMD GPU และอีก 22.5 บรรทัดให้การใช้งานเริ่มต้นของการสนับสนุนสำหรับ AMD SoC21 ขนาดไดรเวอร์รวมสำหรับ GPU AMD เกินโค้ด 4 ล้านบรรทัด นอกจาก SoC21 แล้ว ไดรเวอร์ AMD ยังรองรับ SMU 13.x (System Management Unit) การสนับสนุนที่อัปเดตสำหรับ USB-C และ GPUVM และเตรียมพร้อมเพื่อรองรับ RDNA3 (RX 7000) และ CDNA (AMD Instinct) รุ่นต่อไป แพลตฟอร์ม
    • ไดรเวอร์ i915 (Intel) ได้ขยายขีดความสามารถที่เกี่ยวข้องกับการจัดการพลังงาน เพิ่มตัวระบุสำหรับ GPU Intel DG2 (Arc Alchemist) ที่ใช้กับแล็ปท็อป ซึ่งให้การสนับสนุนเบื้องต้นสำหรับแพลตฟอร์ม Intel Raptor Lake-P (RPL-P) เพิ่มข้อมูลเกี่ยวกับกราฟิกการ์ด Arctic Sound-M) ABI ที่ปรับใช้สำหรับเอ็นจิ้นการคำนวณ เพิ่มสำหรับ การ์ด DG2 รองรับรูปแบบ Tile4 สำหรับระบบที่ใช้สถาปัตยกรรมไมโคร Haswell จะมีการรองรับ DisplayPort HDR
    • ไดรเวอร์ Nouveau ได้เปลี่ยนไปใช้ตัวจัดการ drm_gem_plane_helper_prepare_fb การจัดสรรหน่วยความจำแบบคงที่ถูกนำไปใช้กับโครงสร้างและตัวแปรบางตัว สำหรับการใช้โอเพ่นซอร์สโมดูลเคอร์เนลโดย NVIDIA ในนูโว งานจนถึงขณะนี้อยู่ที่การระบุและกำจัดข้อผิดพลาด ในอนาคต มีการวางแผนใช้เฟิร์มแวร์ที่เผยแพร่เพื่อปรับปรุงประสิทธิภาพของไดรเวอร์
    • เพิ่มไดรเวอร์สำหรับคอนโทรลเลอร์ NVMe ที่ใช้ในคอมพิวเตอร์ Apple ที่ใช้ชิป M1

ในเวลาเดียวกันมูลนิธิซอฟต์แวร์เสรีลาตินอเมริกาได้ก่อตั้งเวอร์ชันของเคอร์เนลฟรี 5.19 - Linux-libre 5.19-gnu ซึ่งล้างองค์ประกอบของเฟิร์มแวร์และไดรเวอร์ที่มีส่วนประกอบหรือส่วนของโค้ดที่ไม่ฟรีซึ่งมีขอบเขตคือ จำกัดโดยผู้ผลิต รุ่นใหม่จะล้างไดรเวอร์สำหรับ pureLiFi X/XL/XC และ TI AMx3 Wkup-M3 IPC อัปเดตโค้ดการทำความสะอาดหยดใน Silicon Labs WFX, AMD amdgpu, Qualcomm WCNSS Peripheral Image Loader, Realtek Bluetooth, Mellanox Spectrum, Marvell WiFi-Ex, Intel AVS, IFS, ไดรเวอร์ pu3-imgu และระบบย่อย การประมวลผลไฟล์แผนผังอุปกรณ์ Qualcomm AArch64 ได้ถูกนำมาใช้แล้ว เพิ่มการรองรับรูปแบบการตั้งชื่อส่วนประกอบ Sound Open Firmware ใหม่ หยุดการทำความสะอาดไดรเวอร์ ATM Ambassador ซึ่งถูกลบออกจากเคอร์เนล การจัดการการทำความสะอาดหยดใน HDCP และ Mellanox Core ถูกย้ายไปยังแท็ก kconfig แยกกัน

ที่มา: opennet.ru

เพิ่มความคิดเห็น