เคอร์เนล 5.19 มาพร้อมกับการปรับปรุงกระบวนการ การสนับสนุนฮาร์ดแวร์ ความปลอดภัย และอื่นๆ

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

เวอร์ชันใหม่นี้รับการแก้ไข 16401 รายการจากนักพัฒนา 2190 คน (เวอร์ชันก่อนหน้ามีการแก้ไข 16206 รายการจากนักพัฒนา 2127 คน) ขนาดแพทช์: 90 MB (การเปลี่ยนแปลงส่งผลกระทบต่อไฟล์ 13847 ไฟล์ มีการเพิ่มโค้ด 1149456 บรรทัด และลบโค้ด 349177 บรรทัด)

ข่าวหลักของเคอร์เนล 5.19

หนึ่งในความเปลี่ยนแปลงที่โดดเด่นที่สุดในเวอร์ชันใหม่นี้ คือการรองรับกลไกการสุ่มโครงสร้างเคอร์เนล เมื่อคอมไพล์ด้วย Clang 15

กลไกLandlockซึ่งช่วยจำกัดการโต้ตอบของกลุ่มกระบวนการกับสภาพแวดล้อมภายนอกได้รับการปรับปรุงให้รองรับกฎที่ควบคุมการดำเนินการเปลี่ยนชื่อไฟล์ได้

ระบบ ย่อย IMA (Integrity Measurement Architecture) ซึ่งออกแบบมาเพื่อตรวจสอบความสมบูรณ์ของส่วนประกอบระบบปฏิบัติการโดยใช้ลายเซ็นดิจิทัลและแฮชได้ถูกเปลี่ยนไปใช้โมดูล fs-verity สำหรับการตรวจสอบไฟล์แล้ว

ตรรกะเบื้องหลังการทำงานถูกปรับเปลี่ยนโดยการปิดใช้งานการเข้าถึงระบบย่อย eBPFสำหรับกระบวนการที่ไม่ได้รับสิทธิ์ ก่อนหน้านี้ คำสั่งทั้งหมดที่เกี่ยวข้องกับการเรียกใช้ระบบ bpf() ถูกปิดใช้งาน และตั้งแต่เวอร์ชัน 5.19 เป็นต้นไป การเข้าถึงจะถูกสงวนไว้เฉพาะสำหรับคำสั่งที่ไม่นำไปสู่การสร้างอ็อบเจ็กต์เท่านั้น ด้วยพฤติกรรมนี้ กระบวนการที่มีสิทธิ์พิเศษจึงจำเป็นสำหรับการโหลดโปรแกรม BPF แต่กระบวนการที่ไม่มีสิทธิ์พิเศษสามารถโต้ตอบกับโปรแกรมได้

ได้เพิ่ม การสนับสนุน สำหรับการสำรองข้อมูลการเชื่อมต่อ MPTCP (MultiPath TCP) ไปยัง TCP ธรรมดาในสถานการณ์ที่ไม่สามารถใช้คุณสมบัติบางอย่างของ MPTCP ได้ MPTCP เป็นส่วนขยายของโปรโตคอล TCP ที่จัดการการทำงานของการเชื่อมต่อ TCP โดยการส่งแพ็กเก็ตพร้อมกันผ่านหลายเส้นทางผ่านอินเทอร์เฟซเครือข่ายต่างๆ ที่เชื่อมโยงกับที่อยู่ IP ที่แตกต่างกัน ได้เพิ่ม API สำหรับจัดการการส่งข้อมูล MPTCP จากพื้นที่ผู้ใช้

นอกจากนี้ ยังเป็นที่น่าสังเกตว่า มีการเพิ่ม โค้ดที่เกี่ยวข้องกับ ไดรเวอร์ amdgpu มากกว่า 420,000 บรรทัด ซึ่งประมาณ 400,000 บรรทัดเป็นไฟล์เฮดเดอร์ที่สร้างขึ้นโดยอัตโนมัติซึ่งมีข้อมูลสำหรับรีจิสเตอร์ ASICในไดรเวอร์ AMD GPU และอีก 22,500 บรรทัดเป็นการใช้งานเบื้องต้นของ AMD SoC21 ขนาดโดยรวมของไดรเวอร์สำหรับ AMD GPU มีโค้ดมากกว่า 4 ล้านบรรทัด นอกเหนือจาก SoC21 แล้ว ไดรเวอร์ AMD ยังรองรับ SMU 13.x (System Management Unit) มีการอัปเดตการรองรับ USB-C และ GPUVM และพร้อมที่จะรองรับแพลตฟอร์ม RDNA3 (RX 7000) และ CDNA (AMD Instinct) รุ่นต่อไป

ตัวควบคุม i915 (Intel) มีความสามารถในการจัดการพลังงานที่ดีขึ้นนอกเหนือจากการเพิ่ม ID สำหรับ GPU Intel DG2 (Arc Alchemist) ที่ใช้ในแล็ปท็อป การให้การสนับสนุนเบื้องต้นสำหรับแพลตฟอร์ม Intel Raptor Lake-P (RPL-P) การเพิ่มข้อมูลเกี่ยวกับกราฟิกการ์ด Arctic Sound-M การใช้งาน ABI สำหรับ Compute Engine การเพิ่มการสนับสนุนสำหรับรูปแบบการ์ด Tile4 สำหรับการ์ด DG2 และการสนับสนุน DisplayPort HDR สำหรับระบบที่ใช้สถาปัตยกรรมไมโคร Haswell

ไดรเวอร์ Nouveau ได้เปลี่ยนไปใช้ไดรเวอร์ drm_gem_plane_helper_prepare_fb แล้วและโครงสร้างและตัวแปรบางส่วนได้รับการกำหนดค่าแบบคงที่ ส่วนการใช้ซอร์สโค้ดของโมดูลเคอร์เนลใน Nouveau ซึ่ง NVIDIA ได้เปิดเผยเป็นโอเพนซอร์ส งานที่ผ่านมามุ่งเน้นไปที่การระบุและกำจัดข้อบกพร่อง แผนในอนาคตคือการใช้เฟิร์มแวร์ที่เผยแพร่แล้วเพื่อปรับปรุงประสิทธิภาพของไดรเวอร์

ได้มีการพัฒนากลไกเพื่อแก้ไขปัญหาการตรวจจับการล็อกแบบแยกส่วน (split lock detection ) ซึ่งเกิดขึ้นเมื่อเข้าถึงข้อมูลที่ไม่ตรงแนวในหน่วยความจำ ปัญหานี้เกิดขึ้นเนื่องจากระหว่างการประมวลผลคำสั่งอะตอมิก ข้อมูลจะข้ามสองบรรทัดของแคช CPU ที่ขยายออก การล็อกดังกล่าวส่งผลให้ประสิทธิภาพลดลงอย่างมาก ก่อนหน้านี้ เคอร์เนลจะออกคำเตือนโดยค่าเริ่มต้นพร้อมข้อมูลเกี่ยวกับกระบวนการที่ทำให้เกิดการล็อก แต่ตอนนี้ กระบวนการที่มีปัญหาจะถูกทำให้ช้าลงไปอีกเพื่อรักษาประสิทธิภาพของส่วนที่เหลือของระบบ

มีการเพิ่ม การรองรับกลไก IFS (In-Field Scan) ที่ใช้งานในโปรเซสเซอร์ Intel ซึ่งช่วยให้สามารถเรียกใช้การทดสอบวินิจฉัย CPU ระดับต่ำที่สามารถตรวจจับปัญหาที่ไม่สามารถตรวจพบได้ด้วยวิธีการปกติโดยอาศัยรหัสแก้ไขข้อผิดพลาด (ECC) หรือบิตพาริตี

การเปลี่ยนแปลงที่สำคัญ อื่นๆในเวอร์ชันใหม่นี้ ได้แก่:

  • เพิ่มไดรเวอร์สำหรับคอนโทรลเลอร์ NVMe ที่ใช้ในคอมพิวเตอร์ Apple ซึ่งใช้ชิป M1
  • เพิ่มการรองรับเบื้องต้นสำหรับสถาปัตยกรรมชุดคำสั่ง LoongArch ที่ใช้ในโปรเซสเซอร์ Loongson 3 5000 ซึ่งใช้ RISC ISA ใหม่ที่คล้ายกับ MIPS และ RISC-V
  • สถาปัตยกรรม LoongArch มีให้เลือก 32 เวอร์ชัน ได้แก่ 32-bit simplified (LA32R), 32-bit normal (LA64S) และ 64-bit (LAXNUMX)
  • เพิ่มความสามารถในการฝังไฟล์ bootconfig ในเคอร์เนล
  • 'CONFIG_BOOT_CONFIG_EMBED_FILE=”/PATH/TO/BOOTCONFIG/FILE”'
  • ลบการสนับสนุนสำหรับตัวเลือกการบูตเฉพาะ x86: nosp, nosmap, nosmep, noexec และ noclflush)
  • การรองรับสถาปัตยกรรม CPU ที่ล้าสมัย h8300 (Renesas H8/300) ซึ่งไม่ได้รับการบำรุงรักษามาเป็นเวลานาน ได้ยุติลงแล้ว

สุดท้ายนี้หากคุณสนใจเรียนรู้เพิ่มเติมเกี่ยวกับเวอร์ชันใหม่นี้ คุณสามารถดูรายละเอียดได้ที่ลิงก์ต่อไปนี้


เพิ่มเป็นแหล่งข้อมูลที่ต้องการใน Google