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

หลังจากสองเดือนของการพัฒนา Linus Torvalds ส่ง การปล่อยเคอร์เนล Linux 5.6. การเปลี่ยนแปลงที่โดดเด่นที่สุด: การรวมอินเทอร์เฟซ WireGuard VPN, รองรับ USB4, เนมสเปซสำหรับเวลา, ความสามารถในการสร้างตัวจัดการความแออัดของ TCP โดยใช้ BPF, การสนับสนุนเริ่มต้นสำหรับ MultiPath TCP, กำจัดเคอร์เนลของปัญหา 2038, กลไก "bootconfig" ,โซนเอฟเอส.

เวอร์ชันใหม่ประกอบด้วยการแก้ไข 13702 รายการจากนักพัฒนา 1810 ราย
ขนาดแพตช์ - 40 MB (การเปลี่ยนแปลงที่ได้รับผลกระทบ 11577 ไฟล์, เพิ่มโค้ด 610012 บรรทัด,
ลบ 294828 แถวแล้ว) ประมาณ 45% ของทั้งหมดนำเสนอใน 5.6
การเปลี่ยนแปลงเกี่ยวข้องกับไดรเวอร์อุปกรณ์ ประมาณ 15% ของการเปลี่ยนแปลงคือ
ทัศนคติต่อการอัปเดตโค้ดเฉพาะสำหรับสถาปัตยกรรมฮาร์ดแวร์ 12%
เกี่ยวข้องกับสแต็กเครือข่าย 4% เป็นระบบไฟล์ และ 3% เป็นระบบภายใน
ระบบย่อยเคอร์เนล

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

  • ระบบย่อยของเครือข่าย
    • เพิ่ม การใช้อินเทอร์เฟซ VPN WireGuardซึ่งดำเนินการตามวิธีการเข้ารหัสที่ทันสมัย ​​(ChaCha20, Poly1305, Curve25519, BLAKE2s) ใช้งานง่าย ปราศจากความยุ่งยาก ได้พิสูจน์ตัวเองแล้วในการใช้งานขนาดใหญ่จำนวนมากและให้ประสิทธิภาพสูงมาก (เร็วกว่า OpenVPN 3,9 เท่าในแง่ ของปริมาณงาน) WireGuard ใช้แนวคิดของการกำหนดเส้นทางคีย์เข้ารหัส ซึ่งเกี่ยวข้องกับการแนบคีย์ส่วนตัวกับแต่ละอินเทอร์เฟซเครือข่าย และใช้เพื่อผูกคีย์สาธารณะ มีการแลกเปลี่ยนกุญแจสาธารณะเพื่อสร้างการเชื่อมต่อในลักษณะเดียวกันกับ SSH การเข้ารหัสแบบดั้งเดิมที่จำเป็นสำหรับ WireGuard ในการทำงาน มันเป็น ยกไป จากห้องสมุด สังกะสี เป็นส่วนหนึ่งของ Crypto API มาตรฐานและ รวมอยู่ด้วย เข้าสู่แกนกลาง 5.5.
    • เริ่ม การรวมส่วนประกอบที่จำเป็นเพื่อรองรับ MPTCP (MultiPath TCP) ซึ่งเป็นส่วนขยายของโปรโตคอล TCP สำหรับการจัดระเบียบการทำงานของการเชื่อมต่อ TCP พร้อมการส่งแพ็กเก็ตพร้อมกันไปตามหลายเส้นทางผ่านอินเทอร์เฟซเครือข่ายที่แตกต่างกันที่เกี่ยวข้องกับที่อยู่ IP ที่แตกต่างกัน สำหรับแอปพลิเคชันเครือข่าย การเชื่อมต่อแบบรวมดังกล่าวดูเหมือนการเชื่อมต่อ TCP ปกติ และ MPTCP ตรรกะการแยกโฟลว์ทั้งหมดจะดำเนินการ Multipath TCP สามารถใช้เพื่อเพิ่มปริมาณงานและเพิ่มความน่าเชื่อถือ ตัวอย่างเช่น MPTCP สามารถใช้เพื่อจัดระเบียบการรับส่งข้อมูลบนสมาร์ทโฟนโดยใช้ลิงก์ WiFi และ 4G พร้อมกัน หรือเพื่อลดต้นทุนโดยการเชื่อมต่อเซิร์ฟเวอร์โดยใช้ลิงก์ราคาถูกหลายลิงก์แทนที่จะเป็นลิงก์ราคาแพงเพียงลิงก์เดียว
    • เพิ่ม รองรับระเบียบวินัยในการประมวลผลคิวเครือข่าย sch_ets (การเลือกระบบส่งกำลังที่ได้รับการปรับปรุง, IEEE 802.1Qaz) ซึ่งให้ความสามารถในการกระจายแบนด์วิธระหว่างการรับส่งข้อมูลประเภทต่างๆ หากโหลดบนคลาสการรับส่งข้อมูลต่ำกว่าแบนด์วิดท์ที่จัดสรร ETS จะอนุญาตให้คลาสการรับส่งข้อมูลอื่นใช้แบนด์วิดท์ที่มีอยู่ (ไม่ได้ใช้) Qdisc sch_ets ได้รับการกำหนดค่าเป็น PRIO และใช้คลาสการรับส่งข้อมูลเพื่อกำหนดขีดจำกัดแบนด์วิดท์ที่เข้มงวดและแชร์ ETS ทำงานเป็นการผสมผสานระหว่างสาขาวิชา พรีโอ и DRR — หากมีคลาสการรับส่งข้อมูลที่จำกัดอย่างเคร่งครัด PRIO จะถูกใช้ แต่หากไม่มีการรับส่งข้อมูลในคิว จะทำงานเหมือนกับ DRR
    • เพิ่มโปรแกรม BPF ประเภทใหม่ BPF_PROG_TYPE_STRUCT_OPSซึ่งอนุญาตให้คุณใช้ตัวจัดการฟังก์ชันเคอร์เนลผ่าน BPF ปัจจุบัน คุณลักษณะนี้สามารถใช้เพื่อนำอัลกอริธึมควบคุมความแออัดของ TCP ไปใช้ในรูปแบบของโปรแกรม BPF ได้แล้ว ตัวอย่างเช่น เสนอ โปรแกรม BPF พร้อมการนำอัลกอริทึมไปใช้ ดีซีทีซีพี.
    • ได้รับการยอมรับเข้าสู่แกนกลาง การเปลี่ยนแปลง,เครื่องมือแปล เอททูล ด้วย ioctl() ที่จะใช้ อินเตอร์เฟซเน็ตลิงค์. อินเทอร์เฟซใหม่ช่วยให้เพิ่มส่วนขยายได้ง่ายขึ้น ปรับปรุงการจัดการข้อผิดพลาด ช่วยให้สามารถส่งการแจ้งเตือนเมื่อสถานะเปลี่ยนแปลง ลดความซับซ้อนของการโต้ตอบระหว่างเคอร์เนลและพื้นที่ผู้ใช้ และลดจำนวนรายการที่มีชื่อที่ต้องซิงโครไนซ์
    • เพิ่มการใช้งานอัลกอริธึมการจัดการคิวเครือข่าย FQ-PIE (Flow Queue PIE) โดยมีวัตถุประสงค์เพื่อลดผลกระทบด้านลบของการบัฟเฟอร์แพ็กเก็ตระดับกลางบนอุปกรณ์เครือข่าย Edge (bufferbloat) FQ-PIE แสดงให้เห็นประสิทธิภาพสูงเมื่อใช้ในระบบที่มีเคเบิลโมเด็ม
  • ระบบย่อยของดิสก์ I/O และระบบไฟล์
    • สำหรับระบบไฟล์ Btrfs เพิ่ม การใช้งานแบบอะซิงโครนัสของการดำเนินการ DISCARD (ทำเครื่องหมายบล็อกที่ว่างซึ่งไม่จำเป็นต้องจัดเก็บทางกายภาพอีกต่อไป) เริ่มแรก การดำเนินการ DISCARD จะดำเนินการพร้อมกัน ซึ่งอาจส่งผลให้ประสิทธิภาพลดลงเนื่องจากไดรฟ์รอให้คำสั่งที่เกี่ยวข้องดำเนินการเสร็จสิ้น การใช้งานแบบอะซิงโครนัสช่วยให้คุณไม่ต้องรอให้ไดรฟ์เสร็จสิ้นการยกเลิกและดำเนินการนี้ในเบื้องหลัง
    • ในเอ็กซ์เอฟเอส ดำเนินการ การล้างโค้ดที่ใช้ตัวนับเวลาแบบ 32 บิตแบบเก่า (ประเภท time_t ถูกแทนที่ด้วย time64_t) นำไปสู่ปัญหา 2038 แก้ไขข้อผิดพลาดและความเสียหายของหน่วยความจำที่เกิดขึ้นบนแพลตฟอร์ม 32 บิต รหัสได้รับการออกแบบใหม่เพื่อทำงานกับแอตทริบิวต์เพิ่มเติม
    • ไปยังระบบไฟล์ ext4 เข้ามา การเพิ่มประสิทธิภาพประสิทธิภาพที่เกี่ยวข้องกับการจัดการการล็อกไอโหนดระหว่างการอ่านและเขียน ปรับปรุงประสิทธิภาพการเขียนใหม่ในโหมด Direct I/O เพื่อให้การวินิจฉัยปัญหาง่ายขึ้น รหัสข้อผิดพลาดแรกและสุดท้ายจะถูกจัดเก็บไว้ในซุปเปอร์บล็อก
    • บนระบบไฟล์ F2FS นำไปใช้ ความสามารถในการจัดเก็บข้อมูลในรูปแบบบีบอัด สำหรับแต่ละไฟล์หรือไดเร็กทอรี การบีบอัดสามารถเปิดใช้งานได้โดยใช้คำสั่ง "chattr +c file" หรือ "chattr +c dir; แตะ dir/ไฟล์" หากต้องการบีบอัดพาร์ติชันทั้งหมด คุณสามารถใช้ตัวเลือก "-o compress_extension=ext" ในยูทิลิตี้เมานท์ได้
    • เคอร์เนลมีระบบไฟล์ โซนFSซึ่งช่วยลดความยุ่งยากในการทำงานในระดับต่ำด้วยอุปกรณ์จัดเก็บข้อมูลแบบแบ่งโซน ไดรฟ์แบบแบ่งเขตหมายถึงอุปกรณ์บนฮาร์ดดิสก์แม่เหล็กหรือ NVMe SSD ซึ่งเป็นพื้นที่จัดเก็บข้อมูลที่แบ่งออกเป็นโซนที่ประกอบขึ้นเป็นกลุ่มของบล็อกหรือเซกเตอร์ ซึ่งอนุญาตให้เพิ่มข้อมูลตามลำดับเท่านั้น เพื่ออัปเดตกลุ่มของบล็อกทั้งหมด FS ZoneFS ได้รับการพัฒนาโดย Western Digital และเชื่อมโยงแต่ละโซนในไดรฟ์ด้วยไฟล์แยกต่างหากที่สามารถใช้เพื่อจัดเก็บข้อมูลในโหมด Raw โดยไม่ต้องมีการจัดการที่เซกเตอร์และระดับบล็อก เช่น อนุญาตให้แอปพลิเคชันใช้ไฟล์ API แทนการเข้าถึงอุปกรณ์บล็อกโดยตรงโดยใช้ ioctl
    • ใน NFS การเมาท์พาร์ติชันบน UDP จะถูกปิดใช้งานตามค่าดีฟอลต์ เพิ่มการรองรับสำหรับความสามารถในการคัดลอกไฟล์ระหว่างเซิร์ฟเวอร์โดยตรง ซึ่งกำหนดไว้ในข้อกำหนด NFS 4.2 เพิ่มตัวเลือกการเมานต์ใหม่ "softreval" ซึ่งอนุญาตให้ใช้ค่าแอตทริบิวต์แคชในกรณีที่เซิร์ฟเวอร์ล้มเหลว ตัวอย่างเช่น เมื่อระบุตัวเลือกนี้ หลังจากที่เซิร์ฟเวอร์ไม่พร้อมใช้งาน ก็ยังสามารถเลื่อนไปตามพาธในพาร์ติชัน NFS และเข้าถึงข้อมูลที่จัดเก็บไว้ในแคชได้
    • ดำเนินการ การเพิ่มประสิทธิภาพการทำงานของกลไก fs-verity ซึ่งใช้ในการตรวจสอบความสมบูรณ์และการรับรองความถูกต้องของแต่ละไฟล์ เพิ่มความเร็วในการอ่านตามลำดับด้วยการใช้ Merkle hash tree ประสิทธิภาพของ FS_IOC_ENABLE_VERITY ได้รับการปรับให้เหมาะสมเมื่อไม่มีข้อมูลในแคช (มีการใช้การอ่านหน้าเว็บที่มีข้อมูลล่วงหน้า)
  • การจำลองเสมือนและความปลอดภัย
    • ความสามารถในการปิดการใช้งานโมดูล SELinux ในขณะที่ทำงานนั้นเลิกใช้แล้ว และการยกเลิกการโหลด SELinux ที่เปิดใช้งานแล้วจะถูกห้ามในอนาคต หากต้องการปิดใช้งาน SELinux คุณจะต้องส่งพารามิเตอร์ "selinux=0" บนบรรทัดคำสั่งเคอร์เนล
    • เพิ่ม รองรับเนมสเปซเวลา (เนมสเปซเวลา) ช่วยให้คุณสามารถผูกสถานะของนาฬิการะบบกับคอนเทนเนอร์ (CLOCK_REALTIME,
      CLOCK_MONOTONIC, CLOCK_BOOTTIME) ใช้เวลาของคุณเองในคอนเทนเนอร์ และเมื่อย้ายคอนเทนเนอร์ไปยังโฮสต์อื่น ตรวจสอบให้แน่ใจว่าการอ่าน CLOCK_MONOTONIC และ CLOCK_BOOTTIME ยังคงไม่เปลี่ยนแปลง (คำนึงถึงเวลาหลังจากโหลด โดยมีหรือไม่มีการคำนึงถึงว่าอยู่ในโหมดสลีปหรือไม่ ).

    • พูลการบล็อก /dev/random ถูกลบออกแล้ว ลักษณะการทำงานของ /dev/random คล้ายกับ /dev/urandom ในแง่ของการป้องกันการบล็อกเอนโทรปีหลังจากการเตรียมใช้งานพูล
    • เคอร์เนลหลักมีไดรเวอร์ที่อนุญาตให้ระบบเกสต์ที่ใช้ VirtualBox ติดตั้งไดเร็กทอรีที่ส่งออกโดยสภาพแวดล้อมโฮสต์ (VirtualBox Shared Folder)
    • มีการเพิ่มชุดแพตช์ลงในระบบย่อย BPF (ผู้มอบหมายงาน BPF) เมื่อใช้กลไก Retpoline เพื่อป้องกันการโจมตีคลาส Spectre V2 จะช่วยให้คุณเพิ่มประสิทธิภาพในการเรียกโปรแกรม BPF เมื่อมีเหตุการณ์ที่เกี่ยวข้องกับโปรแกรมเหล่านั้นเกิดขึ้น (ตัวอย่างเช่น ทำให้สามารถเร่งความเร็วการเรียกตัวจัดการ XDP เมื่อ แพ็กเก็ตเครือข่ายมาถึงแล้ว)
    • เพิ่มไดรเวอร์เพื่อรองรับ TEE (Trusted Execution Environment) ที่สร้างไว้ใน AMD APU
  • บริการหน่วยความจำและระบบ
    • BPF ได้เพิ่มการสนับสนุนสำหรับฟังก์ชันทั่วโลก การพัฒนากำลังดำเนินการโดยเป็นส่วนหนึ่งของความคิดริเริ่มในการเพิ่มการรองรับไลบรารีของฟังก์ชันต่างๆ ที่สามารถรวมไว้ในโปรแกรม BPF ขั้นตอนต่อไปคือการสนับสนุนส่วนขยายแบบไดนามิกที่อนุญาตให้โหลดฟังก์ชันโกลบอล รวมถึงการแทนที่ฟังก์ชันโกลบอลที่มีอยู่ในขณะที่ใช้งานอยู่ ระบบย่อย BPF ยังเพิ่มการรองรับการดำเนินการแผนที่ในรูปแบบต่างๆ (ใช้เพื่อจัดเก็บข้อมูลถาวร) ซึ่งรองรับการดำเนินการในโหมดแบตช์
    • เพิ่มโดย อุปกรณ์ “cpu_cooling” ช่วยให้คุณระบายความร้อน CPU ที่ร้อนจัดโดยการวาง CPU ไว้ในสถานะไม่ได้ใช้งานในช่วงเวลาสั้นๆ
    • เพิ่มการเรียกของระบบ openat2()ซึ่งมีชุดแฟล็กเพิ่มเติมเพื่อจำกัดความละเอียดของพาธของไฟล์ (ห้ามข้ามจุดเมานท์, ลิงก์สัญลักษณ์, ลิงก์เวทย์มนตร์ (/proc/PID/fd), ส่วนประกอบ “../”)
    • สำหรับระบบที่ต่างกันซึ่งใช้สถาปัตยกรรม big.LITTLE ซึ่งรวมคอร์ CPU ที่ทรงพลังและประหยัดพลังงานน้อยกว่าไว้ในชิปตัวเดียว พารามิเตอร์ uclamp_min จะถูกตั้งค่าเมื่อดำเนินการงานแบบเรียลไทม์ (โผล่ออกมา ในเคอร์เนล 5.3 มีกลไกในการรักษาความปลอดภัยของโหลด) พารามิเตอร์นี้ช่วยให้แน่ใจว่างานจะถูกวางโดยตัวกำหนดเวลาบนแกน CPU ที่มีประสิทธิภาพเพียงพอ
    • เคอร์เนลได้รับการปลดปล่อยจาก ปัญหาของปี 2038. แทนที่ตัวจัดการสุดท้ายที่เหลือ ซึ่งใช้ประเภท 32 บิต (signed int) time_t สำหรับตัวนับเวลายุค ซึ่งเมื่อคำนึงถึงรายงานจากปี 1970 ควรจะล้นในปี 2038
    • การปรับปรุงอินเทอร์เฟซ I/O แบบอะซิงโครนัสอย่างต่อเนื่อง io_ingซึ่งใน ที่ให้ไว้ รองรับการดำเนินงานใหม่: IORING_OP_FALLOCATE (การจองพื้นที่ว่าง), IORING_OP_OPENAT,
      IORING_OP_OPENAT2,
      IORING_OP_CLOSE (การเปิดและปิดไฟล์)
      IORING_OP_FILES_UPDATE (การเพิ่มและลบไฟล์ออกจากรายการเข้าถึงด่วน)
      IORING_OP_STATX (คำขอข้อมูลไฟล์)
      IORING_OP_READ,
      IORING_OP_WRITE (อะนาล็อกแบบง่ายของ IORING_OP_READV และ IORING_OP_WRITEV)
      IORING_OP_FADVISE,
      IORING_OP_MADVISE (รูปแบบอะซิงโครนัสของการเรียก posix_fadvise และ madvise), IORING_OP_SEND
      IORING_OP_RECV (การส่งและรับข้อมูลเครือข่าย)
      IORING_OP_EPOLL_CTL (ดำเนินการกับตัวอธิบายไฟล์ epoll)

    • เพิ่มการเรียกของระบบ pidfd_getfd()อนุญาตให้กระบวนการดึงข้อมูลคำอธิบายไฟล์สำหรับไฟล์ที่เปิดจากกระบวนการอื่น
    • ดำเนินการแล้ว กลไก "bootconfig" ซึ่งอนุญาตให้นอกเหนือจากตัวเลือกบรรทัดคำสั่งเพื่อกำหนดพารามิเตอร์ของเคอร์เนลผ่านไฟล์การตั้งค่า หากต้องการเพิ่มไฟล์ดังกล่าวลงในอิมเมจ initramfs จะมีการเสนอยูทิลิตี้ bootconfig คุณลักษณะนี้สามารถใช้เพื่อกำหนดค่า kprobes ในเวลาบูตได้ เป็นต้น
    • ออกแบบใหม่ กลไกในการรอการเขียนและอ่านข้อมูลในไปป์ที่ไม่มีชื่อ การเปลี่ยนแปลงทำให้สามารถเร่งงานต่างๆ เช่น การประกอบโครงการขนาดใหญ่แบบขนานได้ อย่างไรก็ตาม การเพิ่มประสิทธิภาพอาจนำไปสู่สภาวะการแข่งขันใน GNU เนื่องจากข้อบกพร่องในรุ่น 4.2.1 ซึ่งได้รับการแก้ไขในเวอร์ชัน 4.3
    • เพิ่มแฟล็ก PR_SET_IO_FLUSHER ให้กับ prctl() ซึ่งสามารถใช้เพื่อทำเครื่องหมายกระบวนการที่ไม่มีหน่วยความจำซึ่งไม่ควรถูกจำกัดเมื่อระบบมีหน่วยความจำเหลือน้อย
    • ตามระบบกระจายหน่วยความจำ ION ที่ใช้ใน Android ได้มีการนำระบบย่อยไปใช้ ฮีป dma-bufซึ่งช่วยให้คุณควบคุมการจัดสรรบัฟเฟอร์ DMA สำหรับการแชร์พื้นที่หน่วยความจำระหว่างไดรเวอร์ แอปพลิเคชัน และระบบย่อยต่างๆ
  • สถาปัตยกรรมฮาร์ดแวร์
    • เพิ่มการรองรับสำหรับส่วนขยาย E0PD ซึ่งปรากฏใน ARMv8.5 และช่วยป้องกันการโจมตีที่เกี่ยวข้องกับการดำเนินการตามคำสั่งแบบคาดเดาบน CPU การป้องกันที่ใช้ E0PD ส่งผลให้มีค่าใช้จ่ายต่ำกว่าการป้องกัน KPTI (Kernel Page Table Isolation)
    • สำหรับระบบที่ใช้สถาปัตยกรรม ARMv8.5 มีการเพิ่มการรองรับคำสั่ง RNG ซึ่งช่วยให้สามารถเข้าถึงเครื่องกำเนิดตัวเลขสุ่มเทียมด้วยฮาร์ดแวร์ ในเคอร์เนล คำสั่ง RNG ใช้เพื่อสร้างเอนโทรปีเมื่อเริ่มต้นตัวสร้างตัวเลขสุ่มหลอกที่เคอร์เนลจัดเตรียมไว้ให้
    • ลบการรองรับ MPX (Memory Protection Extensions) ที่เพิ่มในเคอร์เนล 3.19 และช่วยให้คุณสามารถจัดระเบียบการตรวจสอบพอยน์เตอร์เพื่อให้แน่ใจว่าขอบเขตของพื้นที่หน่วยความจำได้รับการเคารพ เทคโนโลยีนี้ไม่ได้ใช้กันอย่างแพร่หลายในคอมไพเลอร์และถูกลบออกจาก GCC
    • สำหรับสถาปัตยกรรม RISC-V ได้มีการนำการสนับสนุนเครื่องมือดีบัก KASan (Kernel address sanitizer) มาใช้ ซึ่งจะช่วยระบุข้อผิดพลาดเมื่อทำงานกับหน่วยความจำ
  • Оборудование
    • มีการใช้การสนับสนุนข้อกำหนดแล้ว 4.0 USBซึ่งใช้โปรโตคอล Thunderbolt 3 และให้ความเร็วสูงสุด 40 Gbps ในขณะที่ยังคงความเข้ากันได้แบบย้อนหลังกับ USB 2.0 และ USB 3.2 โดยการเปรียบเทียบกับ สายฟ้า อินเทอร์เฟซ USB 4.0 ช่วยให้คุณสามารถรองรับโปรโตคอลที่แตกต่างกันผ่านสายเคเบิลเส้นเดียวที่มีขั้วต่อ Type-Cรวมถึง PCIe, Display Port และ USB 3.x ตลอดจนการใช้งานซอฟต์แวร์ของโปรโตคอล เช่น เพื่อจัดระเบียบการเชื่อมโยงเครือข่ายระหว่างโฮสต์ การใช้งานนี้สร้างขึ้นจากไดรเวอร์ Thunderbolt ที่รวมอยู่ในเคอร์เนล Linux แล้ว และปรับให้ทำงานกับโฮสต์และอุปกรณ์ที่รองรับ USB4 ได้ การเปลี่ยนแปลงยังเพิ่มการรองรับอุปกรณ์ Thunderbolt 3 ในการใช้งานซอฟต์แวร์ของ Connection Manager ซึ่งมีหน้าที่สร้างช่องสัญญาณสำหรับเชื่อมต่ออุปกรณ์หลายเครื่องผ่านตัวเชื่อมต่อเดียว
    • ในไดรเวอร์ amdgpu เพิ่ม การสนับสนุนเบื้องต้นสำหรับเทคโนโลยีป้องกันการคัดลอก HDCP 2.x (High-bandwidth Digital Content Protection) เพิ่มการรองรับชิป AMD Pollock ASIC ที่ใช้ Raven 2 ใช้ความสามารถในการรีเซ็ต GPU สำหรับตระกูล Renoir และ Navi
    • ไดรเวอร์ DRM สำหรับการ์ดแสดงผล Intel เพิ่ม การรองรับ DSI VDSC สำหรับชิปที่ใช้สถาปัตยกรรมไมโคร Ice Lake และ Tiger Lake, มีการใช้ LMEM mmap (หน่วยความจำภายในของอุปกรณ์), การแยกวิเคราะห์ VBT (Video BIOS Table) ได้รับการปรับปรุงแล้ว, รองรับ HDCP 2.2 สำหรับชิป Coffee Lake
    • งานยังคงดำเนินต่อไปในการรวมโค้ดไดรเวอร์ amdkfd (สำหรับ GPU แบบแยก เช่น ฟิจิ ตองกา และโพลาริส) เข้ากับไดรเวอร์ amdgpu
    • ไดรเวอร์ k10temp ได้รับการปรับปรุงใหม่ โดยเพิ่มการรองรับสำหรับการแสดงพารามิเตอร์แรงดันไฟฟ้าและกระแสสำหรับ CPU AMD Zen รวมถึงข้อมูลเพิ่มเติมจากเซ็นเซอร์อุณหภูมิที่ใช้ใน CPU Zen และ Zen 2
    • ในการขับขี่แบบนูโว เพิ่ม รองรับโหมดการโหลดเฟิร์มแวร์ที่ตรวจสอบแล้วสำหรับ NVIDIA GPU ที่ใช้สถาปัตยกรรมไมโครทัวริง (GeForce RTX 2000) ซึ่งทำให้สามารถเปิดใช้งานการรองรับการเร่งความเร็ว 3 มิติสำหรับการ์ดเหล่านี้ได้ (จำเป็นต้องดาวน์โหลดเฟิร์มแวร์อย่างเป็นทางการด้วยลายเซ็นดิจิทัล NVIDIA) เพิ่มการรองรับเอ็นจิ้นกราฟิก TU10x ปัญหาเกี่ยวกับ HD Audio ได้รับการแก้ไขแล้ว
    • เพิ่มการรองรับการบีบอัดข้อมูลเมื่อส่งผ่าน DisplayPort MST (Multi-Stream Transport)
    • เพิ่มไดรเวอร์ใหม่ "th11k» สำหรับชิปไร้สาย Qualcomm ที่รองรับ 802.11ax
      ไดรเวอร์นี้ใช้สแต็ก mac80211 และรองรับโหมดจุดเข้าใช้งาน เวิร์กสเตชัน และโหนดเครือข่ายแบบตาข่าย

    • การเข้าถึงการอ่านเซ็นเซอร์อุณหภูมิที่อ่านได้ซึ่งใช้กับฮาร์ดไดรฟ์และ SSD สมัยใหม่ผ่าน sysfs
    • มีส่วนร่วม การเปลี่ยนแปลงที่สำคัญต่อระบบเสียง ALSA โดยมีวัตถุประสงค์เพื่อกำจัดโค้ดของ ปัญหาของปี 2038 (หลีกเลี่ยงการใช้ประเภท time_t 32 บิตในอินเทอร์เฟซ snd_pcm_mmap_status และ snd_pcm_mmap_control) เพิ่มการรองรับตัวแปลงสัญญาณเสียงใหม่
      วอลคอมม์ WCD9340/WCD9341, Realtek RT700, RT711, RT715, RT1308, JZ4770 ดั้งเดิม

    • เพิ่ม ไดรเวอร์สำหรับแผง LCD Logic PD 28, Jimax8729d MIPI-DSI, igenic JZ4770, Sony acx424AKP, Leadtek LTK500HD1829, Xinpeng XPP055C272, AUO B116XAK01, GiantPlus GPM940B0,
      โบอี NV140FHM-N49,
      ซาโตซ SAT050AT40H12R2,
      ชาร์ป LS020B1DD01D.

    • เพิ่ม รองรับบอร์ด ARM และแพลตฟอร์ม Gen1 Amazon Echo (ที่ใช้ OMAP3630), Samsung Galaxy S III mini (GT-I8190), Allwinner Emlid Neutis, คอมพิวเตอร์ Libre ALL-H3-IT, PineH64 Model B, Aibretech Amlogic GX PC,
      กองเรือ SolidRun Clearfog GTR, NXPGateworks GW59xx,
      เครื่องอ่าน eBook ของ Tolino Shine 3
      ศิลปินฝังตัว COM (i.MX7ULP), SolidRun Clearfog CX/ITX และ HoneyComb (LX2160A), Google Coral Edge TPU (i.MX8MQ)
      ผู้ให้บริการ Rockchip Radxa Dalang, Radxa Rock Pi N10, VMARC RK3399Pro SOM
      ST Ericsson HREF520, Inforce 6640, SC7180 IDP, Atmel/ไมโครชิป AM9X60 (ARM926 SoC, Kizboxmini), ST stm32mp15, AM3703/AM3715/DM3725, ST Ericsson ab8505, Unisoc SC9863A, Qualcomm SC7180 เพิ่มการรองรับคอนโทรลเลอร์ PCIe ที่ใช้ใน Raspberry Pi 4

ในเวลาเดียวกัน มูลนิธิซอฟต์แวร์เสรีลาตินอเมริกา เกิดขึ้น
การเลือก เคอร์เนลฟรี 5.6 - Linux-libre 5.6-gnuปราศจากองค์ประกอบของเฟิร์มแวร์และไดรเวอร์ที่มีส่วนประกอบหรือส่วนของโค้ดที่ไม่ฟรี ซึ่งขอบเขตดังกล่าวถูกจำกัดโดยผู้ผลิต รุ่นใหม่ปิดการใช้งานการโหลดหยดในไดรเวอร์สำหรับ AMD TEE, ATH11K และ Mediatek SCP อัปเดตโค้ดการทำความสะอาดหยดในไดรเวอร์และระบบย่อยของ AMD PSP, amdgpu และ nouveau

ที่มา: opennet.ru

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