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

หลังจากสองเดือนของการพัฒนา Linus Torvalds ได้เปิดตัวเคอร์เนล Linux 6.3 การเปลี่ยนแปลงที่โดดเด่นที่สุด ได้แก่ การล้างข้อมูลแพลตฟอร์ม ARM และไดรเวอร์กราฟิกที่ล้าสมัย การรวมการรองรับภาษา Rust อย่างต่อเนื่อง ยูทิลิตี้ hwnoise การสนับสนุนโครงสร้างต้นไม้สีแดงดำใน BPF โหมด BIG TCP สำหรับ IPv4 เกณฑ์มาตรฐาน Dhrystone ในตัว ความสามารถในการปิดใช้งาน การดำเนินการใน memfd, รองรับการสร้างไดรเวอร์ HID โดยใช้ BPF, มีการเปลี่ยนแปลง Btrfs เพื่อลดการกระจายตัวของกลุ่มบล็อก

เวอร์ชันใหม่ยอมรับการแก้ไข 15637 รายการจากนักพัฒนา 2055 ราย; ขนาดแพตช์ - 76 MB (การเปลี่ยนแปลงได้รับผลกระทบ 14296 ไฟล์ เพิ่มโค้ด 1023183 บรรทัด ลบ 883103 บรรทัด) สำหรับการเปรียบเทียบ ในเวอร์ชันก่อนหน้า มีการเสนอการแก้ไข 16843 รายการจากนักพัฒนา 2178 คน ขนาดแพตช์ - 62 MB. ประมาณ 39% ของการเปลี่ยนแปลงทั้งหมดในเคอร์เนล 6.3 เกี่ยวข้องกับไดรเวอร์อุปกรณ์ ประมาณ 15% ของการเปลี่ยนแปลงเกี่ยวข้องกับการอัพเดตโค้ดเฉพาะสำหรับสถาปัตยกรรมฮาร์ดแวร์ 10% เกี่ยวข้องกับสแต็กเครือข่าย 5% กับระบบไฟล์ และ 3 % ไปยังระบบย่อยเคอร์เนลภายใน

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

  • บริการหน่วยความจำและระบบ
    • มีการล้างโค้ดที่เกี่ยวข้องกับบอร์ด ARM เก่าและไม่ได้ใช้อย่างมีนัยสำคัญ ซึ่งได้ลดขนาดของแหล่งเคอร์เนลลง 150 บรรทัด ลบแพลตฟอร์ม ARM เก่ากว่า 40 แพลตฟอร์ม
    • ใช้ความสามารถในการสร้างไดรเวอร์สำหรับอุปกรณ์อินพุตด้วยอินเทอร์เฟซ HID (Human Interface Device) ที่ดำเนินการในรูปแบบของโปรแกรม BPF
    • การพอร์ตต่อจากสาขาของ Rust-for-Linux ของฟังก์ชันเพิ่มเติมที่เกี่ยวข้องกับการใช้ Rust เป็นภาษาที่สองสำหรับการพัฒนาไดรเวอร์และโมดูลเคอร์เนล การสนับสนุน Rust ไม่ได้เปิดใช้งานตามค่าเริ่มต้น และไม่ส่งผลให้ Rust ถูกรวมไว้เป็นการพึ่งพาการสร้างเคอร์เนลที่จำเป็น ฟังก์ชันการทำงานที่นำเสนอในรีลีสก่อนหน้านี้ได้รับการขยายด้วยการรองรับประเภท Arc (การใช้งานพอยน์เตอร์พร้อมจำนวนการอ้างอิง), ScopeGuard (การล้างข้อมูลจะดำเนินการเมื่ออยู่นอกขอบเขต) และ ForeignOwnable (ให้การเคลื่อนย้ายพอยน์เตอร์ระหว่างโค้ด C และ Rust) . ลบโมดูล 'ยืม' ออกจากแพ็คเกจ 'จัดสรร' (พิมพ์ 'วัว' และลักษณะ 'ToOwned') มีข้อสังเกตว่าสถานะการรองรับ Rust ในเคอร์เนลใกล้จะเริ่มยอมรับโมดูลแรกที่เขียนด้วย Rust ลงในเคอร์เนลแล้ว
    • Linux โหมดผู้ใช้ (เรียกใช้เคอร์เนลเป็นกระบวนการของผู้ใช้) บนระบบ x86-64 รองรับโค้ดที่เขียนใน Rust เพิ่มการรองรับสำหรับการสร้าง Linux โหมดผู้ใช้โดยใช้เสียงดังกราวพร้อมเปิดใช้งานการเพิ่มประสิทธิภาพเวลาลิงก์ (LTO)
    • เพิ่มยูทิลิตี้ hwnoise เพื่อติดตามความล่าช้าที่เกิดจากพฤติกรรมของฮาร์ดแวร์ ความเบี่ยงเบนของเวลาการดำเนินการ (Jitter) ถูกกำหนดเมื่อการประมวลผลขัดจังหวะถูกปิดใช้งาน ซึ่งเกินหนึ่งไมโครวินาทีใน 10 นาทีของการคำนวณ
    • โมดูลเคอร์เนลได้รับการเพิ่มพร้อมกับการใช้งานเกณฑ์มาตรฐาน Dhrystone ที่สามารถใช้เพื่อประเมินประสิทธิภาพของ CPU ในการกำหนดค่าโดยไม่มีส่วนประกอบของพื้นที่ผู้ใช้ (ตัวอย่างเช่น ในขั้นตอนการพอร์ตสำหรับ SoC ใหม่ที่ใช้เฉพาะการโหลดเคอร์เนล)
    • เพิ่มตัวเลือกบรรทัดคำสั่งเคอร์เนล "cgroup.memory=nobpf" เพื่อปิดการใช้งานบัญชีการใช้หน่วยความจำสำหรับโปรแกรม BPF ซึ่งจะมีประโยชน์สำหรับระบบที่มีคอนเทนเนอร์แยก
    • สำหรับโปรแกรม BPF มีการเสนอการใช้งานโครงสร้างข้อมูลต้นไม้สีแดง-ดำ ซึ่งใช้ kfunc + kptr (bpf_rbtree_add, bpf_rbtree_remove, bpf_rbtree_first) แทนการเพิ่มประเภทการแมปใหม่
    • ในกลไกของลำดับที่รีสตาร์ทได้ (rseq, ลำดับที่รีสตาร์ทได้) ความเป็นไปได้ของการส่งผ่านตัวระบุการดำเนินการแบบขนาน (ID การทำงานพร้อมกันของแมปหน่วยความจำ) ที่ระบุด้วยหมายเลข CPU ได้ถูกเพิ่มเข้าไปในกระบวนการ Rseq มีวิธีการดำเนินการอย่างรวดเร็วในระดับปรมาณู ซึ่งถ้าขัดจังหวะโดยเธรดอื่น จะถูกล้างข้อมูลและลองใหม่
    • โปรเซสเซอร์ ARM รองรับคำสั่ง SME 2 (Scalable Matrix Extension)
    • สำหรับสถาปัตยกรรม s390x และ RISC-V RV64 มีการรองรับกลไก "BPF trampoline" ซึ่งช่วยลดค่าโสหุ้ยเมื่อโอนสายระหว่างเคอร์เนลและโปรแกรม BPF
    • บนระบบที่มีโปรเซสเซอร์ซึ่งใช้สถาปัตยกรรม RISC-V มีการใช้คำสั่ง "ZBB" เพื่อเร่งความเร็วการทำงานของสตริง
    • สำหรับระบบที่ใช้สถาปัตยกรรมชุดคำสั่ง LoongArch (ใช้ในโปรเซสเซอร์ Loongson 3 5000 และใช้ RISC ISA ใหม่ที่คล้ายกับ MIPS และ RISC-V) รองรับการสุ่มพื้นที่ที่อยู่เคอร์เนล (KASLR) การย้ายตำแหน่งเคอร์เนลในหน่วยความจำ (การย้ายตำแหน่ง ) จุดหยุดฮาร์ดแวร์และกลไก kprobe
    • กลไก DAMOS (Data Access Monitoring-based Operation Schemes) ซึ่งช่วยให้คุณเพิ่มหน่วยความจำตามความถี่ของการเข้าถึงหน่วยความจำ รองรับตัวกรองเพื่อแยกพื้นที่หน่วยความจำบางส่วนจากการประมวลผลใน DAMOS
    • Nolibc ไลบรารี C มาตรฐานขั้นต่ำใช้การรองรับสถาปัตยกรรม s390 และชุดคำสั่ง Arm Thumb1 (นอกเหนือจากการรองรับ ARM, AArch64, i386, x86_64, RISC-V และ MIPS)
    • Objtool ได้รับการปรับให้เหมาะสมเพื่อเพิ่มความเร็วในการสร้างเคอร์เนลและลดการใช้หน่วยความจำสูงสุดระหว่างการสร้าง (เมื่อสร้างเคอร์เนลในโหมด "allyesconfig" จะไม่มีปัญหากับการบังคับยุติกระบวนการในระบบที่มี RAM ขนาด 32 GB)
    • การสนับสนุนการประกอบเคอร์เนลโดยคอมไพเลอร์ Intel ICC ถูกยกเลิก ซึ่งใช้งานไม่ได้มาเป็นเวลานานและไม่มีใครแสดงความปรารถนาที่จะแก้ไข
  • ระบบย่อยของดิสก์ I/O และระบบไฟล์
    • tmpfs รองรับการแม็พ ID ผู้ใช้ระบบไฟล์ที่เมาท์ ซึ่งใช้เพื่อแม็พไฟล์ของผู้ใช้เฉพาะบนพาร์ติชันนอกที่เมาท์กับผู้ใช้รายอื่นบนระบบปัจจุบัน
    • ใน Btrfs เพื่อลดการกระจายตัวของกลุ่มบล็อก ขอบเขตจะถูกแบ่งตามขนาดเมื่อจัดสรรบล็อก เช่น กลุ่มของบล็อกใดๆ จะถูกจำกัดไว้ที่ขนาดเล็ก (สูงสุด 128KB) ขนาดกลาง (สูงสุด 8MB) และขอบเขตขนาดใหญ่ การใช้งาน Raid56 ได้รับการปรับโครงสร้างใหม่ รหัสที่ออกแบบใหม่สำหรับการตรวจสอบเช็คซัม มีการเพิ่มประสิทธิภาพการทำงานเพื่อเพิ่มความเร็วในการส่งได้ถึง 10 เท่าโดยการแคช utime สำหรับไดเร็กทอรีและเรียกใช้คำสั่งเมื่อจำเป็นเท่านั้น การดำเนินการ fiemap เร็วขึ้น 10 เท่าโดยข้ามการตรวจสอบลิงก์ย้อนกลับสำหรับข้อมูลที่แชร์ (สแน็ปช็อต) การดำเนินการกับข้อมูลเมตาจะเร่งขึ้น XNUMX% โดยเพิ่มประสิทธิภาพการค้นหาคีย์ในโครงสร้าง b-tree
    • ปรับปรุงประสิทธิภาพของ ext4 FS โดยอนุญาตให้หลายกระบวนการดำเนินการ I/O โดยตรงไปยังบล็อกที่จัดสรรไว้ล่วงหน้าพร้อมกันโดยใช้การล็อก inode ที่ใช้ร่วมกันแทนการล็อกเฉพาะตัว
    • ใน f2fs มีการดำเนินการปรับปรุงการอ่านโค้ดให้ดียิ่งขึ้น แก้ไขปัญหาสำคัญที่เกี่ยวข้องกับการเขียนอะตอมและแคชขอบเขตใหม่
    • EROFS (Enhanced Read-Only File System) ออกแบบมาเพื่อใช้กับพาร์ติชันแบบอ่านอย่างเดียว ใช้ความสามารถในการผูกการดำเนินการบีบอัดไฟล์ที่บีบอัดกับ CPU เพื่อลดความล่าช้าในการเข้าถึงข้อมูล
    • ตัวกำหนดตารางเวลา BFQ I/O ได้เพิ่มการรองรับดิสก์ไดร์ฟแบบหมุนขั้นสูง เช่น ไดร์ฟที่ใช้ไดร์ฟควบคุมแยกกันหลายตัว (มัลติแอคชูเอเตอร์)
    • เพิ่มการรองรับการเข้ารหัสข้อมูลโดยใช้อัลกอริธึม AES-SHA2 ในการใช้งานไคลเอนต์และเซิร์ฟเวอร์ NFS
    • ระบบย่อย FUSE (Filesystems In User Space) ได้เพิ่มการรองรับสำหรับกลไกส่วนขยายคิวรี ซึ่งอนุญาตให้คุณใส่ข้อมูลเพิ่มเติมในคิวรี ตามคุณลักษณะนี้ การเพิ่มตัวระบุกลุ่มในคำขอ FS จะถูกนำไปใช้ ซึ่งจำเป็นต้องคำนึงถึงสิทธิ์การเข้าถึงเมื่อสร้างวัตถุใน FS (สร้าง, mkdir, symlink, mknod)
  • การจำลองเสมือนและความปลอดภัย
    • ไฮเปอร์ไวเซอร์ KVM สำหรับระบบ x86 เพิ่มการรองรับสำหรับไฮเปอร์คอล Hyper-V ที่ขยายเพิ่มเติม และให้การส่งต่อไปยังตัวจัดการที่ทำงานในสภาพแวดล้อมโฮสต์พื้นที่ผู้ใช้ การเปลี่ยนแปลงทำให้สามารถใช้การสนับสนุนสำหรับการเปิดตัวไฮเปอร์ไวเซอร์ Hyper-V ที่ซ้อนกัน
    • KVM ทำให้การจำกัดการเข้าถึงระบบของแขกไปยังเหตุการณ์ PMU (Performance Monitor Unit) ที่เกี่ยวข้องกับการวัดประสิทธิภาพทำได้ง่ายขึ้น
    • กลไก memfd ซึ่งช่วยให้คุณระบุพื้นที่หน่วยความจำผ่านตัวอธิบายไฟล์ที่ส่งผ่านระหว่างกระบวนการได้เพิ่มความสามารถในการสร้างพื้นที่ที่ห้ามการเรียกใช้โค้ด (memfd ที่ไม่สามารถเรียกใช้งานได้) และเป็นไปไม่ได้ที่จะตั้งค่าสิทธิ์การดำเนินการใน อนาคต.
    • มีการเพิ่มการดำเนินการ prctl PR_SET_MDWE ใหม่เพื่อบล็อกความพยายามในการรวมสิทธิ์การเข้าถึงหน่วยความจำที่อนุญาตให้เขียนและดำเนินการพร้อมกัน
    • การป้องกันการโจมตีของคลาส Spectre ได้รับการเพิ่มและเปิดใช้งานโดยค่าเริ่มต้น ตามโหมดอัตโนมัติ IBRS (Enhanced Indirect Branch Restricted Speculation) ที่เสนอในโปรเซสเซอร์ AMD Zen 4 ซึ่งช่วยให้คุณสามารถปรับใช้และปิดใช้งานการดำเนินการตามคำสั่งเชิงคาดเดาระหว่างการประมวลผลขัดจังหวะ , การเรียกระบบ และการสลับบริบท การป้องกันที่เสนอส่งผลให้ค่าใช้จ่ายต่ำกว่าเมื่อเทียบกับการป้องกัน Retpoline
    • แก้ไขช่องโหว่ที่อาจเลี่ยงการป้องกันการโจมตี Spectre v2 เมื่อใช้เทคโนโลยีมัลติเธรดพร้อมกัน (SMT หรือ Hyper-Threading) และเกิดจากการปิดใช้งานกลไก STIBP (Single Thread Indirect Branch Predictors) เมื่อเลือกโหมดการป้องกัน IBRS
    • สำหรับระบบที่ใช้ ARM64 จะมีการเพิ่มเป้าหมายการสร้าง "virtconfig" ใหม่ ซึ่งเมื่อเลือกแล้ว จะเปิดใช้งานเฉพาะชุดส่วนประกอบเคอร์เนลขั้นต่ำที่จำเป็นในการบูตในระบบเวอร์ชวลไลเซชัน
    • เพิ่มการสนับสนุนสำหรับการกรองการเรียกระบบโดยใช้กลไก seccomp สำหรับสถาปัตยกรรม m68k
    • เพิ่มการรองรับสำหรับอุปกรณ์ CRB TPM2 (Command Response Buffer) ในตัวของโปรเซสเซอร์ AMD Ryzen ที่ใช้เทคโนโลยี Microsoft Pluton
  • ระบบย่อยของเครือข่าย
    • มีการเพิ่มอินเทอร์เฟซ netlink เพื่อกำหนดค่าเลเยอร์ย่อยของ PLCA (Physical Layer Collision Avoidance) ซึ่งกำหนดไว้ในข้อกำหนด IEEE 802.3cg-2019 และใช้ในเครือข่ายอีเธอร์เน็ต 802.3cg (10Base-T1S) ที่ปรับให้เหมาะสมสำหรับการเชื่อมต่ออุปกรณ์ IoT และระบบอุตสาหกรรม การใช้ PLCA ปรับปรุงประสิทธิภาพบนเครือข่ายอีเทอร์เน็ตสื่อที่ใช้ร่วมกัน
    • การสนับสนุน API "ส่วนขยายไร้สาย" สำหรับการจัดการอินเทอร์เฟซไร้สาย WiFi 7 (802.11be) ถูกยกเลิกแล้ว เนื่องจาก API นี้ไม่ครอบคลุมการตั้งค่าที่จำเป็นทั้งหมด เมื่อพยายามใช้ API "ส่วนขยายแบบไร้สาย" ซึ่งยังคงได้รับการสนับสนุนเป็นชั้นจำลอง คำเตือนจะแสดงขึ้นสำหรับอุปกรณ์ปัจจุบันส่วนใหญ่
    • มีการจัดทำเอกสารรายละเอียดเกี่ยวกับ netlink API (สำหรับนักพัฒนาเคอร์เนลและสำหรับนักพัฒนาแอปพลิเคชันพื้นที่ผู้ใช้) มีการใช้ยูทิลิตี้ ynl-gen-c เพื่อสร้างรหัส C ตามข้อกำหนด YAML ของโปรโตคอล Netlink
    • เพิ่มการสนับสนุนสำหรับตัวเลือก IP_LOCAL_PORT_RANGE ลงในซ็อกเก็ตเครือข่ายเพื่อลดความซับซ้อนของการกำหนดค่าการเชื่อมต่อขาออกผ่านตัวแปลที่อยู่โดยไม่ต้องใช้ SNAT เมื่อใช้ที่อยู่ IP เดียวกันบนหลายโฮสต์ IP_LOCAL_PORT_RANGE อนุญาตให้แต่ละโฮสต์ใช้ช่วงพอร์ตเครือข่ายขาออกของตัวเอง และบนเกตเวย์เพื่อส่งต่อแพ็กเก็ตตามหมายเลขพอร์ต
    • สำหรับ MPTCP (MultiPath TCP) จะใช้ความสามารถในการประมวลผลสตรีมแบบผสมที่ใช้โปรโตคอล IPv4 และ IPv6 MPTCP เป็นส่วนขยายของโปรโตคอล TCP สำหรับการจัดระเบียบการทำงานของการเชื่อมต่อ TCP ด้วยการส่งแพ็กเก็ตพร้อมกันไปตามเส้นทางต่างๆ ผ่านอินเทอร์เฟซเครือข่ายต่างๆ ที่เชื่อมโยงกับที่อยู่ IP ที่แตกต่างกัน
    • สำหรับ IPv4 มีความเป็นไปได้ในการใช้ส่วนขยาย BIG TCP ซึ่งช่วยเพิ่มขนาดแพ็กเก็ต TCP สูงสุดถึง 4 GB เพื่อเพิ่มประสิทธิภาพการทำงานของเครือข่ายภายในความเร็วสูงของศูนย์ข้อมูล การเพิ่มขนาดแพ็กเก็ตที่มีฟิลด์ส่วนหัว 16 บิตทำได้โดยการใช้แพ็กเก็ต "จัมโบ้" ที่มีขนาดส่วนหัวของ IP ตั้งค่าเป็น 0 และขนาดจริงที่ส่งในฟิลด์ 32 บิตแยกต่างหากในส่วนหัวที่แนบแยกต่างหาก
    • มีการเพิ่มพารามิเตอร์ sysctl default_rps_mask ใหม่ ซึ่งคุณสามารถตั้งค่าคอนฟิกูเรชัน RPS (Receive Packet Steering) เริ่มต้น ซึ่งมีหน้าที่รับผิดชอบในการกระจายการประมวลผลของทราฟฟิกขาเข้าทั่วทั้งคอร์ CPU ที่ระดับตัวจัดการการขัดจังหวะ
    • เลิกสนับสนุนวินัยการเข้าคิวเพื่อจำกัดการรับส่งข้อมูล CBQ (การเข้าคิวตามคลาส), ATM (วงจรเสมือน ATM), dsmark (ตัวทำเครื่องหมายบริการที่แตกต่าง), tcindex (ดัชนีควบคุมการจราจร) และการรับส่งข้อมูล RSVP (โปรโตคอลการจองทรัพยากร) วินัยเหล่านี้ถูกละทิ้งไปนานแล้วและไม่มีใครยินดีสนับสนุนต่อไป
  • Оборудование
    • ลบไดรเวอร์กราฟิกที่ใช้ DRI1 ทั้งหมด: i810 (กราฟิกการ์ดรวม Intel 8xx เก่า), mga (Matrox GPU), r128 (ATI Rage 128 GPU รวมถึง Rage Fury, XPERT 99 และ XPERT 128 การ์ด), savage (S3 Savage GPU), sis ( Crusty SiS GPU), tdfx (3dfx Voodoo) และ via (VIA IGP) ซึ่งเลิกใช้แล้วในปี 2016 และไม่รองรับ Mesa ตั้งแต่ปี 2012
    • ลบไดรเวอร์ framebuffer (fbdev) ที่ล้าสมัย omap1, s3c2410, tmiofb และ w100fb
    • มีการเพิ่มไดรเวอร์ DRM สำหรับ VPU (Versatile Processing Unit) ที่รวมอยู่ในซีพียู Intel Meteor Lake (รุ่นที่ 14) ซึ่งออกแบบมาเพื่อเร่งการมองเห็นของคอมพิวเตอร์และการดำเนินการเรียนรู้ของเครื่อง ไดรเวอร์ถูกใช้งานโดยใช้ระบบย่อย "accel" ซึ่งมุ่งให้การสนับสนุนสำหรับตัวเร่งการประมวลผล ซึ่งสามารถจัดหาได้ทั้งในรูปแบบของ ASIC แยกต่างหากและบล็อก IP ภายใน SoC และ GPU
    • ไดรเวอร์ i915 (Intel) ขยายการรองรับการ์ดกราฟิกแยก Intel Arc (DG2/Alchemist) แนะนำการสนับสนุนเบื้องต้นสำหรับ GPU Meteor Lake และรวมถึงการสนับสนุน Intel Xe HP 4tile GPU
    • ไดรเวอร์ amdgpu เพิ่มการรองรับเทคโนโลยี AdaptiveSync และความสามารถในการใช้ Secure Display กับจอแสดงผลหลายจอ อัปเดตการรองรับ DCN 3.2 (Display Core Next), SR-IOV RAS, VCN RAS, SMU 13.x และ DP 2.1
    • เพิ่มการสนับสนุนสำหรับแพลตฟอร์ม SM8350, SM8450 SM8550, SDM845 และ SC8280XP ไปยังไดรเวอร์ msm (GPU Qualcomm Adreno)
    • ไดรเวอร์ Nouveau เลิกรองรับการโทร ioctl แบบเก่าแล้ว
    • เพิ่มการสนับสนุนการทดลองสำหรับ NPU VerSilicon (VeriSilicon Neural Network Processor) ในไดรเวอร์ etnaviv
    • มีการใช้ไดรเวอร์ pata_parport สำหรับไดรฟ์ IDE ที่เชื่อมต่อผ่านพอร์ตขนาน ไดรเวอร์ที่เพิ่มเข้ามาทำให้สามารถลบไดรเวอร์ PARIDE เก่าออกจากเคอร์เนลและอัปเกรดระบบย่อย ATA ได้ ข้อจำกัดของไดรเวอร์ใหม่คือไม่สามารถเชื่อมต่อเครื่องพิมพ์และดิสก์พร้อมกันผ่านพอร์ตขนานได้
    • เพิ่มไดรเวอร์ ath12k สำหรับการ์ดไร้สายที่ใช้ชิป Qualcomm ที่รองรับ Wi-Fi 7 เพิ่มการรองรับการ์ดไร้สายที่ใช้ชิป RealTek RTL8188EU
    • เพิ่มการรองรับ 46 บอร์ดที่ใช้สถาปัตยกรรม ARM64 รวมถึง Samsung Galaxy tab A (2015), Samsung Galaxy S5, BananaPi R3, Debix Model A, EmbedFire LubanCat 1/2, Facebook Greatlakes, Orange Pi R1 Plus, Tesla FSD และอุปกรณ์ต่างๆ ขึ้นอยู่กับ SoC Qualcomm MSM8953 (Snapdragon 610), SM8550 (Snapdragon 8 Gen 2), SDM450 และ SDM632, กล่องทีวี Rockchips RK3128, RV1126 Vision, RK3588, RK3568, RK3566, RK3588 และ RK3328, TI K3 (AM642/AM 654/AM68 69 / น.XNUMX).

ในเวลาเดียวกัน มูลนิธิซอฟต์แวร์เสรีแห่งละตินอเมริกาได้สร้างความแตกต่างของเคอร์เนล 6.3 ฟรีอย่างสมบูรณ์ - Linux-libre 6.3-gnu ซึ่งปราศจากองค์ประกอบเฟิร์มแวร์และไดรเวอร์ที่มีส่วนประกอบหรือส่วนของรหัสที่ไม่ฟรี ขอบเขตถูกจำกัดโดย ผู้ผลิต ในรีลีส 6.3 นั้น Blob ถูกล้างข้อมูลในไดรเวอร์ ath12k, aw88395 และ peb2466 ใหม่ รวมถึงในไฟล์ devicetree ใหม่สำหรับอุปกรณ์ qcom ที่ใช้ AArch64 อัปเดตโค้ดทำความสะอาดหยดใน amdgpu, xhci-rcar, qcom-q6v5-pas, sp8870, av7110 ไดรเวอร์และระบบย่อย รวมถึงในไดรเวอร์สำหรับการ์ด DVB พร้อมการถอดรหัสซอฟต์แวร์และในไฟล์ BPF ที่คอมไพล์แล้ว หยุดการล้างไดรเวอร์ mga, r128, tm6000, cpia2 และ r8188eu เมื่อถูกลบออกจากเคอร์เนล ปรับปรุงการทำความสะอาดหยดไดรเวอร์ i915

ที่มา: opennet.ru

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