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

หลังจากสองเดือนของการพัฒนา Linus Torvalds ส่ง การปล่อยเคอร์เนล Linux 5.3. การเปลี่ยนแปลงที่โดดเด่นที่สุด: รองรับ AMD Navi GPU, โปรเซสเซอร์ Zhaoxi และเทคโนโลยีการจัดการพลังงาน Intel Speed ​​​​Select, ความสามารถในการใช้คำสั่ง umwait เพื่อรอโดยไม่ต้องใช้รอบ,
โหมด 'การหนีบการใช้งาน' ที่เพิ่มการโต้ตอบสำหรับ CPU ที่ไม่สมมาตร, การเรียกระบบ pidfd_open, ความสามารถในการใช้ที่อยู่ IPv4 จากซับเน็ต 0.0.0.0/8, ความเป็นไปได้ของการเร่งด้วยฮาร์ดแวร์ nftables, การสนับสนุน HDR ในระบบย่อย DRM, การรวม ACRN ไฮเปอร์ไวเซอร์

В ประกาศ Linus เวอร์ชันใหม่ได้เตือนนักพัฒนาทุกคนถึงกฎหลักในการพัฒนาเคอร์เนล โดยคงลักษณะการทำงานแบบเดียวกันสำหรับส่วนประกอบพื้นที่ผู้ใช้ การเปลี่ยนแปลงเคอร์เนลไม่ควรทำให้แอปพลิเคชันที่รันอยู่เสียหายหรือนำไปสู่การถดถอยในระดับผู้ใช้ ในกรณีนี้ การละเมิดพฤติกรรมไม่เพียงแต่ทำให้เกิดการเปลี่ยนแปลงใน ABI การลบโค้ดที่ล้าสมัย หรือลักษณะที่ปรากฏของข้อผิดพลาด แต่ยังรวมถึงผลกระทบทางอ้อมของการปรับปรุงที่เป็นประโยชน์ที่ทำงานอย่างถูกต้องด้วย ดังตัวอย่างที่มีให้เห็น ทิ้ง เป็นประโยชน์ การเพิ่มประสิทธิภาพ ในโค้ด Ext4 ซึ่งลดจำนวนการเข้าถึงไดรฟ์โดยการปิดใช้งานการอ่านตาราง inode ล่วงหน้าสำหรับคำขอ I/O ขนาดเล็ก

การปรับให้เหมาะสมที่สุดนำไปสู่ความจริงที่ว่า เนื่องจากกิจกรรมของดิสก์ลดลง เอนโทรปีสำหรับตัวสร้างตัวเลขสุ่ม getrandom() เริ่มสะสมช้าลง และในการกำหนดค่าบางอย่าง ภายใต้สถานการณ์บางอย่าง อาจสังเกตเห็นการค้างระหว่างการโหลดจนกระทั่งพูลเอนโทรปีถูก เต็มไปด้วย เนื่องจากการปรับให้เหมาะสมนั้นมีประโยชน์จริง ๆ จึงมีการอภิปรายกันในหมู่นักพัฒนาโดยเสนอให้แก้ไขปัญหาโดยการปิดการใช้งานโหมดการบล็อกเริ่มต้นของการเรียก getrandom() และเพิ่มแฟล็กเผื่อเลือกเพื่อรอเอนโทรปี แต่การเปลี่ยนแปลงดังกล่าวจะส่งผลกระทบต่อ คุณภาพของตัวเลขสุ่มในระยะเริ่มต้นของการโหลด

เวอร์ชันใหม่ประกอบด้วยการแก้ไข 15794 รายการจากนักพัฒนา 1974 ราย
ขนาดแพตช์ - 92 MB (การเปลี่ยนแปลงที่ได้รับผลกระทบ 13986 ไฟล์, เพิ่มโค้ด 258419 บรรทัด,
ลบ 599137 แถวแล้ว) ประมาณ 39% ของทั้งหมดนำเสนอใน 5.3
การเปลี่ยนแปลงเกี่ยวข้องกับไดรเวอร์อุปกรณ์ ประมาณ 12% ของการเปลี่ยนแปลงคือ
ทัศนคติต่อการอัปเดตโค้ดเฉพาะสำหรับสถาปัตยกรรมฮาร์ดแวร์ 11%
เกี่ยวข้องกับสแต็กเครือข่าย 3% สำหรับระบบไฟล์ และ 3% สำหรับภายใน
ระบบย่อยเคอร์เนล

หลัก นวัตกรรม:

  • บริการหน่วยความจำและระบบ
    • การพัฒนาฟังก์ชัน 'pidfd' อย่างต่อเนื่องเพื่อช่วยจัดการกับสถานการณ์การนำ PID มาใช้ซ้ำ (pidfd เชื่อมโยงกับกระบวนการเฉพาะและไม่มีการเปลี่ยนแปลง ในขณะที่ PID สามารถเชื่อมโยงกับกระบวนการอื่นได้หลังจากที่กระบวนการปัจจุบันที่เกี่ยวข้องกับ PID นั้นสิ้นสุดลง) ก่อนหน้านี้มันถูกเพิ่มเข้าไปในเคอร์เนล
      การเรียกของระบบ pidfd_send_signal() และแฟล็ก CLONE_PIDFD ในการเรียก clone() เพื่อรับ pidfd สำหรับใช้ใน idfd_send_signal() การใช้ clone() กับแฟล็ก CLONE_PIDFD อาจทำให้เกิดปัญหากับผู้จัดการฝ่ายบริการหรือระบบการยกเลิกกำลังหน่วยความจำไม่เพียงพอของแพลตฟอร์ม Android ในกรณีนี้ จะใช้การเรียก fork() หรือ clone() โดยไม่มี CLONE_PIDFD เพื่อเริ่มต้น

      Kernel 5.3 แนะนำการเรียกของระบบ pidfd_open()ซึ่งช่วยให้คุณได้รับ pidfd ที่ตรวจสอบได้สำหรับกระบวนการที่มีอยู่โดยพลการซึ่งไม่ได้สร้างขึ้นโดยการเรียก clone() ด้วยแฟล็ก CLONE_PIDFD เพิ่มการสนับสนุนสำหรับการสำรวจ pidfd โดยใช้ poll() และ epoll() ซึ่งช่วยให้ผู้จัดการกระบวนการติดตามการยุติกระบวนการตามอำเภอใจโดยไม่ต้องกลัวสภาพการแข่งขันหาก PID ถูกกำหนดให้กับกระบวนการใหม่ กลไกในการแจ้งเมื่อกระบวนการที่เกี่ยวข้องกับ pidfd สิ้นสุดลงจะคล้ายกับการแจ้งเตือนเมื่อกระบวนการย่อยสิ้นสุดลง

    • เพิ่มการรองรับกลไกการปักหมุดโหลดลงในตัวกำหนดเวลางาน (การหนีบการใช้งาน) ช่วยให้คุณสามารถยึดตามช่วงความถี่ต่ำสุดหรือสูงสุดได้ ขึ้นอยู่กับงานที่ใช้งานบน CPU กลไกที่นำเสนอจะเร่งความเร็วงานที่ส่งผลโดยตรงต่อคุณภาพของประสบการณ์ผู้ใช้โดยการรันงานเหล่านี้อย่างน้อยที่สุดที่ความถี่ล่างสุดของความถี่ "ที่ร้องขอ" งานที่มีลำดับความสำคัญต่ำที่ไม่ส่งผลกระทบต่องานของผู้ใช้จะเริ่มขึ้นโดยใช้ขีดจำกัดบนของความถี่ "อนุญาต" ขีดจำกัดถูกตั้งค่าผ่านแอ็ตทริบิวต์ sched_uclamp_util_min และ sched_uclamp_util_max ในการเรียกระบบ sched_setattr()
    • เพิ่มการรองรับเทคโนโลยีการจัดการพลังงาน เลือกความเร็วของ Intelมีอยู่ในเซิร์ฟเวอร์บางรุ่นที่ใช้โปรเซสเซอร์ Intel Xeon เทคโนโลยีนี้ช่วยให้คุณสามารถตั้งค่าประสิทธิภาพและการตั้งค่าทรูพุตของพาร์ติชันสำหรับคอร์ CPU ที่แตกต่างกัน ซึ่งช่วยให้คุณจัดลำดับความสำคัญของประสิทธิภาพสำหรับงานที่ทำบนคอร์บางตัว โดยเสียสละประสิทธิภาพบนคอร์อื่น ๆ
    • กระบวนการในพื้นที่ผู้ใช้ ได้รับ ความสามารถในการรอช่วงเวลาสั้น ๆ โดยไม่ต้องใช้ลูปโดยใช้คำสั่ง umwait คำสั่งนี้พร้อมกับคำสั่ง umonitor และ tpause จะมีให้ในชิป "Tremont" ที่กำลังจะมาถึงของ Intel และจะช่วยให้เกิดความล่าช้าที่ประหยัดพลังงานและไม่ส่งผลกระทบต่อประสิทธิภาพของเธรดอื่นเมื่อใช้ Hyper Threading
    • สำหรับสถาปัตยกรรม RISC-V มีการเพิ่มการรองรับเพจหน่วยความจำขนาดใหญ่
    • กลไกการติดตาม kprobes ได้เพิ่มความสามารถในการยกเลิกการอ้างอิงตัวชี้เคอร์เนลไปยังพื้นที่ผู้ใช้ ซึ่งสามารถใช้เพื่อ เช่น เพื่อประเมินเนื้อหาของโครงสร้างที่ส่งไปยังการเรียกของระบบ เพิ่มความสามารถในการติดตั้งการตรวจสอบที่ขั้นตอนการบูตแล้ว
    • เพิ่มตัวเลือก PREEMPT_RT ให้กับไฟล์กำหนดค่าสำหรับการทำงานแบบเรียลไทม์ ยังไม่ได้เพิ่มโค้ดเพื่อรองรับโหมดเรียลไทม์ลงในเคอร์เนล แต่การปรากฏตัวของตัวเลือกถือเป็นสัญญาณที่ดีว่ามหากาพย์ในระยะยาว บูรณาการ แพตช์ยึดตามเวลาจริงใกล้จะเสร็จสมบูรณ์แล้ว
    • เพิ่มการเรียกระบบ clone3() พร้อมการใช้งานอินเทอร์เฟซ clone() เวอร์ชันที่ขยายได้มากขึ้น ซึ่งช่วยให้ระบุจำนวนแฟล็กได้มากขึ้น
    • เพิ่มตัวจัดการ bpf_send_signal() ซึ่งช่วยให้โปรแกรม BPF สามารถส่งสัญญาณไปยังกระบวนการที่กำหนดเองได้
    • สำหรับเหตุการณ์ที่สมบูรณ์แบบในสภาพแวดล้อมไฮเปอร์ไวเซอร์ KVM มีการเพิ่มกลไกการกรองเหตุการณ์ใหม่ ช่วยให้ผู้ดูแลระบบสามารถกำหนดประเภทของเหตุการณ์ที่ได้รับอนุญาตหรือไม่ได้รับอนุญาตสำหรับการตรวจสอบบนฝั่งระบบแขก
    • เพิ่มความสามารถในการประมวลผลโปรแกรมด้วยลูปลงในกลไกการตรวจสอบแอปพลิเคชัน eBPF หากการดำเนินการของลูปถูกจำกัดและไม่สามารถนำไปสู่การเกินขีดจำกัดจำนวนคำสั่งสูงสุดได้
  • ระบบย่อยของดิสก์ I/O และระบบไฟล์
    • ขณะนี้ระบบไฟล์ XFS รองรับการบายพาสไอโหนดแบบมัลติเธรด (เช่น เมื่อตรวจสอบโควต้า) มีการเพิ่ม ioctls BULKSTAT และ INUMBERS ใหม่ ซึ่งให้การเข้าถึงคุณลักษณะที่ปรากฏในรูปแบบ FS รุ่นที่ห้า เช่น เวลาเกิดของไอโหนด และความสามารถในการตั้งค่าพารามิเตอร์ BULKSTAT และ INUMBERS สำหรับแต่ละกลุ่ม AG (กลุ่มการจัดสรร)
    • ใน Ext4 เพิ่มการสนับสนุน ช่องว่างในไดเร็กทอรี (บล็อกที่ไม่ได้เชื่อมโยง)
      มีการประมวลผลให้ ตั้งค่าสถานะ "i" (ไม่เปลี่ยนรูป) สำหรับไฟล์ที่เปิดอยู่ (ห้ามเขียนในสถานการณ์หากตั้งค่าสถานะในเวลาที่ไฟล์เปิดอยู่แล้ว)

    • Btrfs ให้คำจำกัดความของการใช้งาน crc32c อย่างรวดเร็วบนสถาปัตยกรรมทั้งหมด
    • ใน CIFS รหัสสำหรับการสนับสนุน smbdirect ได้ถูกลบออกเนื่องจากเป็นการพัฒนาแบบทดลอง SMB3 เพิ่มความสามารถในการใช้อัลกอริธึมการเข้ารหัสในโหมด GCM เพิ่มตัวเลือกการเมานต์ใหม่เพื่อแยกพารามิเตอร์โหมดจากรายการ ACE (Access Control Entry) เพิ่มประสิทธิภาพของการโทร open();
    • เพิ่มตัวเลือกให้กับ F2FS เพื่อจำกัดตัวรวบรวมขยะเมื่อทำงานในโหมด Checkpoint=disable เพิ่ม ioctl เพื่อลบช่วงบล็อกออกจาก F2FS ช่วยให้สามารถปรับขนาดพาร์ติชันได้ทันที เพิ่มความสามารถในการวางไฟล์สลับใน F2FS เพื่อให้ I/O โดยตรง เพิ่มการสนับสนุนสำหรับการปักหมุดไฟล์และการจัดสรรบล็อกสำหรับไฟล์ที่คล้ายกันสำหรับผู้ใช้ทุกคน
    • เพิ่มการสนับสนุนสำหรับการดำเนินการแบบอะซิงโครนัส sendmsg() และ recvmsg() ไปยังอินเทอร์เฟซสำหรับอินพุต/เอาท์พุตแบบอะซิงโครนัส io_uring;
    • เพิ่มการสนับสนุนการบีบอัดโดยใช้อัลกอริธึม zstd และความสามารถในการตรวจสอบอิมเมจ FS ที่ลงนามแล้วลงในระบบไฟล์ UBIFS
    • ตอนนี้ Ceph FS รองรับป้ายกำกับความปลอดภัย SELinux สำหรับไฟล์แล้ว
    • สำหรับ NFSv4 มีการใช้ตัวเลือกการเมาต์ใหม่ “nconnect=” ซึ่งกำหนดจำนวนการเชื่อมต่อที่สร้างกับเซิร์ฟเวอร์ การรับส่งข้อมูลระหว่างการเชื่อมต่อเหล่านี้จะถูกกระจายโดยใช้การทำโหลดบาลานซ์ นอกจากนี้ เซิร์ฟเวอร์ NFSv4 จะสร้างไดเร็กทอรี /proc/fs/nfsd/clients พร้อมข้อมูลเกี่ยวกับไคลเอ็นต์ปัจจุบัน รวมถึงข้อมูลเกี่ยวกับไฟล์ที่พวกเขาเปิด
  • การจำลองเสมือนและความปลอดภัย
    • เคอร์เนลมีไฮเปอร์ไวเซอร์สำหรับอุปกรณ์ฝังตัว ศอ.บตซึ่งเขียนขึ้นโดยคำนึงถึงความพร้อมสำหรับงานแบบเรียลไทม์และความเหมาะสมสำหรับการใช้งานในระบบที่มีความสำคัญต่อภารกิจ ACRN ให้ค่าใช้จ่ายน้อยที่สุด รับประกันเวลาแฝงต่ำ และการตอบสนองที่เพียงพอเมื่อโต้ตอบกับอุปกรณ์ รองรับการจำลองเสมือนของทรัพยากร CPU, I/O, ระบบย่อยเครือข่าย, การทำงานของกราฟิกและเสียง ACRN สามารถใช้รันเครื่องเสมือนแบบแยกหลายเครื่องในหน่วยควบคุมอิเล็กทรอนิกส์ แดชบอร์ด ระบบข้อมูลยานยนต์ อุปกรณ์ IoT สำหรับผู้บริโภค และเทคโนโลยีฝังตัวอื่นๆ
    • ในโหมดผู้ใช้ Linux เพิ่ม โหมดการเดินทางข้ามเวลา ซึ่งช่วยให้คุณชะลอหรือเร่งความเร็วเวลาในสภาพแวดล้อม UML เสมือน เพื่อให้แก้ไขข้อบกพร่องโค้ดที่เกี่ยวข้องกับเวลาได้ง่ายขึ้น นอกจากนี้ยังเพิ่มพารามิเตอร์อีกด้วย
      การเดินทางข้ามเวลาเริ่มต้น ซึ่งอนุญาตให้นาฬิกาของระบบเริ่มต้นจากช่วงเวลาที่ระบุในรูปแบบยุค

    • เมื่อระบุตัวเลือกบรรทัดคำสั่งเคอร์เนลใหม่ “init_on_alloc” และ “init_on_free” จะถูกเปิดใช้งาน การทำให้เป็นศูนย์ของพื้นที่หน่วยความจำที่จัดสรรและว่างจะถูกเปิดใช้งาน (เติมด้วยศูนย์สำหรับ malloc และว่าง) ซึ่งช่วยให้มีความปลอดภัยเพิ่มขึ้นเนื่องจากค่าใช้จ่ายในการเริ่มต้นเพิ่มเติม
    • เพิ่มไดรเวอร์ใหม่แล้ว virtio-iommu ด้วยการใช้งานอุปกรณ์พาราเวอร์ชวลไลซ์ที่ช่วยให้คุณสามารถส่งคำขอ IOMMU เช่น ATTACH, DETACH, MAP และ UNMAP ผ่านการขนส่ง virtio โดยไม่ต้องจำลองตารางเพจหน่วยความจำ
    • เพิ่มไดรเวอร์ใหม่แล้ว virtio-pmemแสดงถึงการเข้าถึงอุปกรณ์จัดเก็บข้อมูลที่แมปกับพื้นที่ที่อยู่ทางกายภาพ เช่น NVDIMM
    • ใช้ความสามารถในการแนบคีย์การเข้ารหัสกับผู้ใช้หรือเนมสเปซเครือข่าย (คีย์ไม่สามารถเข้าถึงได้ภายนอกเนมสเปซที่เลือก) รวมถึงปกป้องคีย์โดยใช้ ACL
    • ไปยังระบบย่อยการเข้ารหัสลับ เพิ่ม รองรับอัลกอริธึมการแฮชแบบไม่เข้ารหัสที่รวดเร็วมาก xxhashความเร็วซึ่งขึ้นอยู่กับประสิทธิภาพของหน่วยความจำ
  • ระบบย่อยของเครือข่าย
    • เปิดใช้งานการประมวลผลที่อยู่ IPv4 ในช่วง 0.0.0.0/8 ซึ่งก่อนหน้านี้ไม่สามารถใช้งานได้ การแนะนำเครือข่ายย่อยนี้ จะอนุญาต แจกจ่ายที่อยู่ IPv16 อีก 4 ล้านที่อยู่
    • ใน Netfilter สำหรับ nftables เพิ่ม รองรับกลไกการเร่งความเร็วด้วยฮาร์ดแวร์สำหรับการกรองแพ็กเก็ตผ่านการใช้ไดรเวอร์ที่เพิ่มเข้ามา API บล็อกการไหล. ตารางกฎทั้งหมดที่มีเชนทั้งหมดสามารถวางได้ที่ด้านข้างของอะแดปเตอร์เครือข่าย การเปิดใช้งานทำได้โดยการผูกแฟล็ก NFT_TABLE_F_HW เข้ากับตาราง รองรับเมตาดาต้าโปรโตคอลเลเยอร์ 3 และเลเยอร์ 4 แบบง่าย การยอมรับ/ปฏิเสธการดำเนินการ การแมปตาม IP และพอร์ตเครือข่ายผู้ส่ง/ผู้รับ และประเภทโปรโตคอล
    • เพิ่ม รองรับการติดตามการเชื่อมต่อในตัวสำหรับบริดจ์เครือข่ายซึ่งไม่จำเป็นต้องใช้เลเยอร์จำลอง br_netfilter
    • ใน nf_tables เพิ่ม รองรับโมดูล SYNPROXY ซึ่งจำลองการทำงานที่คล้ายกันจาก iptables และยังมีการนำความสามารถในการตรวจสอบกฎสำหรับตัวเลือกแต่ละตัวในส่วนหัว IPv4 มาใช้ด้วย
    • เพิ่มความสามารถในการแนบโปรแกรม BPF เข้ากับการเรียกของระบบ setsockopt() และ getsockopt() ซึ่งตัวอย่างเช่น อนุญาตให้คุณแนบตัวจัดการการเข้าถึงของคุณเองเข้ากับการโทรเหล่านี้ นอกจากนี้ยังมีการเพิ่มจุดโทรใหม่ (ขอสาย) ซึ่งคุณสามารถจัดระเบียบการโทรไปยังโปรแกรม BPF ได้หนึ่งครั้งสำหรับแต่ละช่วงเวลา RTT (เวลาไปกลับ เวลา ping)
    • สำหรับ IPv4 และ IPv6 เพิ่ม กลไกการจัดเก็บข้อมูลการกำหนดเส้นทาง Nexthop ใหม่ที่มีจุดมุ่งหมายเพื่อเพิ่มความสามารถในการปรับขนาดของตารางเส้นทาง การทดสอบแสดงให้เห็นว่าเมื่อใช้ระบบใหม่ ชุดเส้นทาง 743 เส้นทางถูกโหลดเข้าสู่เคอร์เนลในเวลาเพียง 4.3 วินาที
    • สำหรับบลูทูธ นำไปใช้ ฟังก์ชั่นที่จำเป็นเพื่อรองรับ LE ping;
  • Оборудование
    • เพิ่ม รองรับโปรเซสเซอร์ที่รองรับ x86 ของบริษัท จ้าวซินซึ่งพัฒนาขึ้นจากโครงการร่วมระหว่าง VIA Technologies และเทศบาลนครเซี่ยงไฮ้ ตระกูล CPU ZX สร้างขึ้นบนสถาปัตยกรรม x86-64 Isaiah เพื่อพัฒนาเทคโนโลยีอย่างต่อเนื่อง เวีย เซนทอร์;
    • ระบบย่อย DRM (Direct Rendering Manager) รวมถึงไดรเวอร์กราฟิก amdgpu และ i915 ได้เพิ่มการรองรับสำหรับการแยกวิเคราะห์ ประมวลผล และส่งข้อมูลเมตา HDR (ช่วงไดนามิกสูง) ผ่านทางพอร์ต HDMI ทำให้สามารถใช้แผง HDR และหน้าจอที่มีความสามารถในการ แสดงช่วงความสว่างเพิ่มเติม ;
    • ไดรเวอร์ amdgpu ได้เพิ่มการรองรับเบื้องต้นสำหรับ AMD NAVI GPU (RX5700) ซึ่งรวมถึงไดรเวอร์พื้นฐาน, รหัสการโต้ตอบหน้าจอ (DCN2), GFX และการสนับสนุนการคำนวณ (GFX10)
      SDMA 5 (System DMA0), การจัดการพลังงานและตัวเข้ารหัส/ตัวถอดรหัสมัลติมีเดีย (VCN2) amdgpu ยังปรับปรุงการรองรับการ์ดที่ใช้ GPU Vega12 และ Vega20 ซึ่งมีการเพิ่มหน่วยความจำและความสามารถในการจัดการพลังงานเพิ่มเติม

    • เพิ่มการรองรับการ์ดที่ใช้ VegaM GPU ให้กับไดรเวอร์ amdkfd (สำหรับ GPU แยก เช่น Fiji, Tonga, Polaris)
    • ในไดรเวอร์ DRM สำหรับการ์ดวิดีโอ Intel สำหรับชิป Icelake ดำเนินการ โหมดแก้ไขแกมมาแบบหลายส่วนใหม่ เพิ่มความสามารถในการส่งออกผ่าน DisplayPort ในรูปแบบ YCbCr4:2:0 เพิ่มเฟิร์มแวร์ใหม่แล้ว กูซี สำหรับ SKL, BXT, KBL, GLK และ ICL ความสามารถในการปิดหน้าจอในโหมดอะซิงโครนัสได้ถูกนำมาใช้แล้ว เพิ่ม รองรับการบันทึกและกู้คืนบริบทการเรนเดอร์สำหรับชิป Ironlake (gen5) และ gen4 (Broadwater - Cantiga) ซึ่งช่วยให้คุณกู้คืนสถานะ GPU จากพื้นที่ผู้ใช้เมื่อย้ายจากการดำเนินการชุดหนึ่งไปยังอีกชุดหนึ่ง
    • ไดรเวอร์ Nouveau ให้การตรวจจับชิปเซ็ต NVIDIA Turing TU116
    • ความสามารถของไดรเวอร์ DRM/KMS สำหรับตัวเร่งความเร็วหน้าจอ ARM Komeda (Mali D71) ได้รับการขยาย รองรับการปรับขนาด การแยก/รวมเลเยอร์ การหมุน การเขียนแบบเลื่อนออกไป AFBC, SMMU และรูปแบบการเข้ารหัสสี Y0L2, P010, YUV420_8/10BIT มี ถูกเพิ่ม;
    • ไดรเวอร์ MSM เพิ่มการรองรับซีรีส์ A540 GPU Adreno ที่ใช้ในโปรเซสเซอร์ Qualcomm รวมถึงการรองรับคอนโทรลเลอร์ MSM8998 DSI สำหรับ Snapdragon 835
    • เพิ่มไดรเวอร์สำหรับแผง LCD Samsung S6E63M0, Armadeus ST0700, EDT ETM0430G0DH6, OSD101T2045-53TS,
      Evervision VGG804821, FriendlyELEC HD702E, KOE tx14d24vm1bpa, TFC S9700RTWV43TR-01B, EDT ET035012DM6 และ VXT VL050-8048NT-C01;

    • เพิ่ม ไดรเวอร์สำหรับเปิดใช้งานเครื่องมือเร่งความเร็วการถอดรหัส
      วิดีโอที่มีอยู่ใน Amlogic Meson SoC;

    • ในไดรเวอร์ v3d (สำหรับ Broadcom Video Core V GPU ที่ใช้ใน Raspberry Pi) ปรากฏขึ้น สนับสนุน การส่งเชเดอร์คอมพิวเตอร์
    • เพิ่ม ไดรเวอร์สำหรับคีย์บอร์ด SPI และแทร็กแพดที่ใช้ในแล็ปท็อป Apple MacBook และ MacBookPro รุ่นทันสมัย
    • เพิ่ม การป้องกันเพิ่มเติมสำหรับการเรียก ioctl ที่เกี่ยวข้องกับฟล็อปปี้ดิสก์ไดรเวอร์ และตัวไดรเวอร์เองถูกทำเครื่องหมายว่าไม่มีการบำรุงรักษา
      (“กำพร้า”) ซึ่งหมายถึงการยุติการทดสอบ ไดรเวอร์ยังคงถูกจัดเก็บไว้ในเคอร์เนล แต่ไม่รับประกันการทำงานที่ถูกต้อง ไดรเวอร์ถือว่าล้าสมัยเนื่องจากเป็นการยากที่จะหาอุปกรณ์ใช้งานสำหรับการทดสอบ - ตามกฎแล้วไดรฟ์ภายนอกทั้งหมดในปัจจุบันจะใช้อินเทอร์เฟซ USB

    • เพิ่ม ไดรเวอร์ cpufreq สำหรับบอร์ด Raspberry Pi ซึ่งช่วยให้คุณควบคุมการเปลี่ยนแปลงความถี่ของโปรเซสเซอร์แบบไดนามิก
    • เพิ่มการรองรับ ARM SoC ใหม่ Mediatek mt8183 (4x Cortex-A73 + 4x Cortex-A53), TI J721E (2x Cortex-A72 + 3x Cortex-R5F + 3 DSPs + MMA) และ Amlogic G12B (4x Cortex-A73 + 2x Cortex- A53 ) เช่นเดียวกับบอร์ด:
      • ความพิถีพิถัน Librem5,
      • เอสปีด บีเอ็มซี,
      • ไมโครซอฟต์ โอลิมปัส BMC,
      • คอนตรอน สมาร์ก,
      • โนฟเทคเมียร์แคท96 (i.MX7),
      • เอสที ไมโคร อเวนเจอร์96,
      • Google Cheza (วอลคอมม์ SDM845)
      • วอลคอมม์ Dragonboard 845c (วอลคอมม์ SDM845),
      • กล่องทีวี Hugsun X99 (Rockchip RK3399),
      • Khadas Edge/Edge-V/กัปตัน (Rockchip RK3399)
      • ไฮโฮป RZ/G2M,
      • NXP LS1021A-TSN.

ในเวลาเดียวกัน มูลนิธิซอฟต์แวร์เสรีลาตินอเมริกา เกิดขึ้น
การเลือก เคอร์เนลฟรี 5.3 - Linux-libre 5.3-gnuปราศจากองค์ประกอบของเฟิร์มแวร์และไดรเวอร์ที่มีส่วนประกอบหรือส่วนของโค้ดที่ไม่ฟรี ซึ่งขอบเขตดังกล่าวถูกจำกัดโดยผู้ผลิต ในรีลีสใหม่ การโหลด Blob ถูกปิดใช้งานในไดรเวอร์ qcom, hdcp drm, allegro-dvt และ meson-vdec
อัปเดตโค้ดการทำความสะอาด blob ในไดรเวอร์และระบบย่อย amdgpu, i915, netx, r8169, brcmfmac, rtl8188eu, adreno, si2157, pvrusb2, touchscreen_dmi, ไดรเวอร์เสียงสำหรับ skylake รวมถึงในเอกสารประกอบไมโครโค้ด

ที่มา: opennet.ru

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