การเพิ่มจำนวนเวอร์ชันหลักเป็น 5 ไม่ได้หมายถึงการเปลี่ยนแปลงที่สำคัญหรือการแยกย่อยความเข้ากันได้ มันช่วยให้ Linus Torvalds ที่รักของเรารักษาความสงบของจิตใจได้ ด้านล่างนี้คือรายการการเปลี่ยนแปลงและนวัตกรรมบางอย่าง
แกนหลัก:
- ตัวกำหนดเวลากระบวนการ CFS บนโปรเซสเซอร์แบบอสมมาตรเช่น ARM ทำงานแตกต่างออกไป โดยจะโหลดคอร์ที่ใช้พลังงานต่ำและประหยัดพลังงานก่อน
- คุณสามารถรับการแจ้งเตือนเมื่อมีการเปิดไฟล์เพื่อดำเนินการผ่าน API การติดตามเหตุการณ์ไฟล์ fanotify
- ตัวควบคุม cpuset ได้รับการรวมเข้าด้วยกัน ซึ่งสามารถใช้เพื่อจำกัดกลุ่มของกระบวนการตามการใช้ CPU และโหนด NUMA
- รวมการรองรับอุปกรณ์ ARM ต่อไปนี้: Qualcomm QCS404, Allwinner T3, NXP/Freescale i.MX7ULP, NXP LS1028A, i.MX8, RDA Micro RDA8810PL, Rockchip Gru Scarlet, Allwinner Emlid Neutis N5 และอื่นๆ อีกมากมาย
- การปรับปรุงระบบย่อย ARM: ฮอตปลั๊กหน่วยความจำ, การป้องกัน Meltdown และ Spectre, การกำหนดแอดเดรสหน่วยความจำ 52 บิต ฯลฯ
- รองรับคำสั่ง WBNOINVD สำหรับ x86-64
ระบบย่อยหน่วยความจำ:
- การทดแทนแท็กทดสอบโดยใช้หน่วยความจำต่ำพร้อมใช้งานสำหรับเครื่องมือ KASAN บนแพลตฟอร์ม ARM64
- การกระจายตัวของหน่วยความจำลดลงอย่างมาก (มากถึง 90%) ส่งผลให้กลไก Transparent HugePage ทำงานได้ดีขึ้น
- ประสิทธิภาพของ mremap(2) บนพื้นที่หน่วยความจำขนาดใหญ่เพิ่มขึ้นถึง 20 เท่า
- ในกลไก KSM นั้น jhash2 จะถูกแทนที่ด้วย xxhash เนื่องจากความเร็วของ KSM บนระบบ 64 บิตเพิ่มขึ้น 5 เท่า
- การปรับปรุง ZRam และ OOM
บล็อกอุปกรณ์และระบบไฟล์:
- กลไก blk-mq พร้อมระบบคิวคำขอหลายระดับได้กลายเป็นกลไกหลักสำหรับอุปกรณ์บล็อก รหัสที่ไม่ใช่ mq ทั้งหมดถูกลบออกแล้ว
- การปรับปรุงการรองรับ NVMe โดยเฉพาะในแง่ของการทำงานของอุปกรณ์ผ่านเครือข่าย
- สำหรับ Btrfs จะมีการรองรับไฟล์สลับอย่างสมบูรณ์ รวมถึงการเปลี่ยน FSID โดยไม่ต้องเขียนข้อมูลเมตาใหม่
- เพิ่มการเรียก ioctl ใน F2FS สำหรับการตรวจสอบ FS ที่เลื่อนออกไปผ่าน fsck
- Integrated BinderFS - FS หลอกสำหรับการสื่อสารระหว่างกระบวนการ ช่วยให้คุณสามารถเรียกใช้ Android หลายอินสแตนซ์ในสภาพแวดล้อมเดียวกัน
- การปรับปรุงหลายประการใน CIFS: แคช DFS, คุณลักษณะเพิ่มเติม, โปรโตคอล smb3.1.1
- ZRam ทำงานได้ดียิ่งขึ้นกับอุปกรณ์สว็อปที่ไม่ได้ใช้ ซึ่งช่วยประหยัดหน่วยความจำ
ความปลอดภัยและการจำลองเสมือน:
- เพิ่มฟังก์ชันแฮช Streebog (GOST 34.11-2012) พัฒนาโดย FSB ของสหพันธรัฐรัสเซีย
- รองรับอัลกอริธึมการเข้ารหัส Adiantum ที่พัฒนาโดย Google สำหรับอุปกรณ์ที่ใช้พลังงานต่ำ
- รวมอัลกอริทึม XChaCha12, XChaCha20 และ NHPoly1305
- ขณะนี้การจัดการการโทร seccomp สามารถย้ายไปยังพื้นที่ผู้ใช้ได้แล้ว
- สำหรับระบบเกสต์ KVM การสนับสนุนส่วนขยาย Intel Processor Trace ถูกนำมาใช้โดยประสิทธิภาพลดลงน้อยที่สุด
- การปรับปรุงในระบบย่อย KVM/Hyper-V
- ไดรเวอร์ virtio-gpu รองรับการจำลอง EDID สำหรับจอภาพเสมือนแล้ว
- ไดรเวอร์ virtio_blk ดำเนินการยกเลิกการโทร
- นำคุณลักษณะด้านความปลอดภัยไปใช้สำหรับหน่วยความจำ NV ตามข้อกำหนด Intel DSM 1.8
ไดรเวอร์อุปกรณ์:
- การเปลี่ยนแปลง DRM API เพื่อรองรับการซิงค์แบบปรับได้อย่างสมบูรณ์ (ส่วนหนึ่งของมาตรฐาน DisplayPort) และอัตราการรีเฟรชแบบแปรผัน (ส่วนหนึ่งของมาตรฐาน HDMI)
- มาตรฐานการบีบอัดสตรีมดิสเพลย์รวมอยู่ในการบีบอัดสตรีมวิดีโอแบบไม่สูญเสียที่ส่งไปยังหน้าจอความละเอียดสูง
- ไดรเวอร์ AMDGPU รองรับ FreeSync 2 HDR และการรีเซ็ต GPU สำหรับ CI, VI, SOC15 แล้ว
- ไดรเวอร์วิดีโอของ Intel รองรับชิป Amber Lake, รูปแบบ YCBCR 4:2:0 และ YCBCR 4:4:4
- ไดรเวอร์ Nouveau ทำงานร่วมกับโหมดวิดีโอสำหรับการ์ดแสดงผลของตระกูล Turing TU104/TU106
- ไดรเวอร์แบบรวมสำหรับหน้าจอสัมผัส Raspberry Pi, แผง CDTech, Banana Pi, DLC1010GIG ฯลฯ
- ไดรเวอร์ HDA รองรับปุ่ม “แจ็ค”, ไฟ LED, อุปกรณ์ Tegra186 และ Tegra194
- ระบบย่อยอินพุตได้เรียนรู้การทำงานด้วยการเลื่อนที่มีความแม่นยำสูงบนเมาส์ Microsoft และ Logitech บางรุ่น
- มีการเปลี่ยนแปลงมากมายในไดรเวอร์สำหรับเว็บแคม, เครื่องรับสัญญาณทีวี, USB, IIO ฯลฯ
ระบบย่อยเครือข่าย:
- สแต็ก UDP รองรับกลไกการคัดลอกเป็นศูนย์สำหรับการส่งข้อมูลผ่านซ็อกเก็ตโดยไม่มีการบัฟเฟอร์ระดับกลาง
- มีการเพิ่มกลไกการรับถ่ายข้อมูลทั่วไปที่นั่นด้วย
- ปรับปรุงประสิทธิภาพการค้นหาในนโยบาย xfrm เมื่อมีจำนวนมาก
- เพิ่มความสามารถในการยกเลิกการโหลดช่องสัญญาณไปยังไดรเวอร์ VLAN แล้ว
- การปรับปรุงหลายประการในการรองรับ Infiniband และเครือข่ายไร้สาย
ที่มา: linux.org.ru