การเปิดตัว OpenBSD 7.7

มีการนำเสนอระบบปฏิบัติการฟรีคล้าย UNIX OpenBSD 7.7 โครงการ OpenBSD ก่อตั้งโดย Theo de Raadt ในปี 1995 หลังจากความขัดแย้งกับนักพัฒนา NetBSD ซึ่งส่งผลให้ Theo ถูกปฏิเสธการเข้าถึงพื้นที่เก็บข้อมูล NetBSD CVS หลังจากนั้น Theo de Raadt และกลุ่มคนที่มีใจเดียวกันได้สร้างระบบปฏิบัติการแบบเปิดใหม่โดยใช้ซอร์สทรี NetBSD เป้าหมายการพัฒนาหลักคือความสามารถในการพกพา (รองรับแพลตฟอร์มฮาร์ดแวร์ 13 แพลตฟอร์ม) การกำหนดมาตรฐาน การดำเนินการที่ถูกต้อง การรักษาความปลอดภัยเชิงรุก และเครื่องมือเข้ารหัสแบบรวม อิมเมจ ISO การติดตั้งแบบเต็มของระบบพื้นฐาน OpenBSD 7.7 คือ 746 MB

นอกเหนือจากระบบปฏิบัติการแล้ว โครงการ OpenBSD ยังมีชื่อเสียงในด้านส่วนประกอบซึ่งแพร่หลายในระบบอื่นและได้พิสูจน์ตัวเองแล้วว่าเป็นหนึ่งในโซลูชันที่ปลอดภัยและมีคุณภาพสูงที่สุด ในหมู่พวกเขา: LibreSSL (ทางแยกของ OpenSSL), OpenSSH, ตัวกรองแพ็คเก็ต PF, เดมอนการกำหนดเส้นทาง OpenBGPD และ OpenOSPFD, เซิร์ฟเวอร์ OpenNTPD NTP, เซิร์ฟเวอร์เมล OpenSMTPD, มัลติเพล็กเซอร์เทอร์มินัลข้อความ (คล้ายกับหน้าจอ GNU) tmux, identd daemon พร้อมการใช้โปรโตคอล IDENT, ทางเลือก BSDL แพ็คเกจ GNU groff - mandoc, โปรโตคอลสำหรับจัดระเบียบระบบที่ทนต่อข้อผิดพลาด CARP (Common Address Redundancy Protocol), เซิร์ฟเวอร์ http แบบน้ำหนักเบา, ยูทิลิตี้การซิงโครไนซ์ไฟล์ OpenRSYNC

การเปลี่ยนแปลงที่สำคัญ:

  • การใช้งานกรอบงาน drm (Direct Rendering Manager) จะซิงโครไนซ์กับเคอร์เนล Linux 6.12.21 (ในรุ่นก่อนหน้า - 6.6.52) ไดรเวอร์ inteldrm รองรับ GPU ที่ใช้ในโปรเซสเซอร์ Intel ที่ใช้สถาปัตยกรรมไมโคร Arrow Lake ไดรเวอร์ amdgpu ได้รับการอัปเดตเพื่อรองรับ Ryzen AI 300 (Strix Point, Strix Halo, Krackan Point) และ GPU Radeon RX 9070 (Navi 48)
  • พอร์ตสำหรับสถาปัตยกรรม ARM64 รองรับชุดคำสั่งเวกเตอร์ SVE (Scalable Vector Extension) ในระบบที่มีชิป ARM Apple M1 สถานะการใช้พลังงานจะถูกตั้งค่าไว้ ในกลไกการแมปเพจหน่วยความจำทางกายภาพ (pmap) การดำเนินการของการล้างบัฟเฟอร์ดูการแปล (TLB) ได้รับการปรับให้เหมาะสม ซึ่งทำให้การดำเนินการทดสอบการประกอบเคอร์เนลเร็วขึ้นประมาณ 5% บนฮาร์ดแวร์ที่รองรับรหัส QARMA3 จะมีการเปิดใช้รหัสตรวจสอบตัวตนแบบตัวชี้ (PAC) เพื่อปกป้องพื้นที่ของผู้ใช้
  • บนระบบ x86_64 ได้มีการนำกลไก AMD SEV (Secure Encrypted Virtualization) ซึ่งใช้ในระบบเวอร์ชวลไลเซชันเพื่อการป้องกัน มาใช้กับระบบปฏิบัติการแขกที่ทำงานโดยใช้ QEMU แล้ว เครื่องเสมือน เกิดจากการแทรกแซงของไฮเปอร์ไวเซอร์หรือผู้ดูแลระบบโฮสต์ มีการเพิ่มคำสั่งสำหรับโหลดเฟิร์มแวร์ลงในชิปในไดรเวอร์ PSP ที่ใช้ในการกำหนดค่าและเรียกใช้ระบบเกสต์โดยเปิดใช้งาน AMD SEV
  • ในระบบ x86_64 ได้มีการเพิ่มความสามารถในการจัดสรรพื้นที่หน่วยความจำที่มีขนาดใหญ่กว่า 4 GB สำหรับ DMA
  • ปรับปรุงการรองรับสถาปัตยกรรม RISC-V, Sparc64, HPPA, i386 และ Powerpc64
  • ปรับปรุงการจัดการสถานการณ์ที่ไม่มีหน่วยความจำ (OOM)
  • กลไกการติดตาม ptrace ได้รับการปรับปรุงเพื่อให้สามารถตั้งจุดพักในกระบวนการมัลติเธรดในดีบักเกอร์ gdb ได้ เพิ่มคำสั่งสำหรับการอ่านและเขียนพื้นที่ซึ่งกระบวนการตรวจสอบบันทึกสถานะของโปรเซสเซอร์เมื่อใช้คำสั่ง XSAVE
  • มีการเพิ่มการรองรับโครงสร้างหลายบรรทัดให้กับสคริปต์ BT (BPFtrace หรือ Bug Tracing) ที่ใช้ในระบบติดตาม btrace แล้ว มีการเพิ่มโปรไฟล์เพิ่มเติมและการตั้งชื่อช่วงเวลา (hz, us, ms, s) ลงในยูทิลิตี้ btrace แล้ว
  • เพิ่มพารามิเตอร์ sysctl kern.audio.kbdcontrol เมื่อตั้งค่าเป็น 0 ปุ่มควบคุมระดับเสียงมัลติมีเดียบนแป้นพิมพ์จะถือเป็นปุ่มปกติ
  • ปรับปรุงการจัดการความผิดพลาดและขยายการตรวจสอบเมื่อสลับไปที่โหมดพักเครื่องและสแตนด์บาย
  • แก้ไขโค้ดสำหรับการหยุดกระบวนการเมื่อได้รับสัญญาณ ซึ่งแก้ไขปัญหาการหยุดกระบวนการมัลติเธรดที่ปรากฏในแพ็คเกจเช่น golang และ mpv
  • ปรับปรุงการรองรับสำหรับระบบมัลติโปรเซสเซอร์ (SMP) ตอนนี้ตัวจับเวลาอินพุตและเอาต์พุตของ TCP ได้รับการเปิดใช้งานเพื่อทำงานแบบคู่ขนานแล้ว และการเรียกใช้ระบบ send() และ recv() ได้รับการกำหนดค่าให้ใช้ล็อคแบบแชร์แล้ว ตอนนี้เธรดผู้ใช้หลายเธรดสามารถทำงานบนซ็อคเก็ตต่างๆ ได้พร้อมกัน และเอาต์พุตของ TCP จะไม่บล็อกการประมวลผลแพ็กเก็ต IP อีกต่อไป

    ระบบการเรียกใช้ open, openat, ptsignal, psignal และ prsignal รวมถึง sysctl kern.timeout_stats, kern.allowkmem, kern.video.record, net.inet.gre.allow, net.inet.gre.wccp, kern.global_ptrace, kern.wxabort, kern.malloc.kmemstat ได้รับการปลดปล่อยจากการล็อกทั่วโลกแล้ว ไดรเวอร์ psp, wsmouse และ wstpad เช่นเดียวกับโครงสร้าง video_filtops ได้รับการโอนไปยังหมวดหมู่ mp-safe แล้ว

  • ไฮเปอร์ไวเซอร์ VMM ได้นำความสามารถในการใช้ acpipci มาใช้ในการเชื่อมต่อบัส PCI
  • ให้ความสามารถในการกำหนดนโยบายประสิทธิภาพทางเลือก (perfpolicy) ที่จะนำไปใช้เมื่อระบบทำงานด้วยพลังงานแบตเตอรี่
  • ขณะนี้คำสั่ง sysctl มีตัวเลือก "-f file" เพื่อโหลดการตั้งค่าทั้งหมดจากไฟล์ในครั้งเดียว ในสคริปต์ rc จะใช้ตัวเลือกใหม่เพื่อโหลด sysctl.conf เป็นรายการทั้งหมด แทนที่จะแยกวิเคราะห์ทีละบรรทัด
  • คำสั่ง pkg_add จะดำเนินการเรียก ldconfig หากรายการไลบรารีที่แชร์มีการเปลี่ยนแปลงเนื่องมาจากการติดตั้งแพ็กเกจใหม่
  • เพิ่มการสนับสนุนสำหรับฮาร์ดแวร์ใหม่ ปรับปรุงการรองรับ MediaTek และ Qualcomm Snapdragon SoCs (รวมถึง X Elite) ปรับปรุงการรองรับ Samsung Galaxy Book4 Edge, ThinkPad T14 Gen 5, Vivobook, ThinkPad X1 Nano Gen 2, ThinkPad X13 และ Chromebook ต่างๆ เพิ่มไดรเวอร์ ice สำหรับ Intel E810 Ethernet 1Gb/10Gb/25Gb/50Gb/100Gb และไดรเวอร์ ixv สำหรับฟังก์ชันเสมือน Intel Ethernet 82598EB, 82559 และ X540 การทำงานในการย้ายการทำงานของเครือข่ายไปยังด้านการ์ดเครือข่ายยังคงดำเนินต่อไป
  • Sysupgrade มีโหมดสำหรับการอัปเดตระบบแบบออฟไลน์โดยใช้แพ็คเกจที่เก็บไว้ในระบบไฟล์ภายในเครื่อง
  • ยูทิลิตี้ fw_update ได้รับการอัปเดตเพื่อให้สามารถดาวน์โหลด (ไม่ใช่การติดตั้ง) เฟิร์มแวร์ได้ในฐานะผู้ใช้งานทั่วไปโดยไม่ต้องมีสิทธิ์รูท เพิ่มแฟล็ก "-l" เพื่อแสดงรายการไดรเวอร์และไฟล์
  • กระบวนการ sshd-auth ได้รับการป้องกันการใช้ประโยชน์จากช่องโหว่โดยเปิดใช้งานโดยอาศัยการเชื่อมโยงไฟล์ปฏิบัติการใหม่แบบสุ่มทุกครั้งที่ระบบบูต (เชื่อมโยงใหม่) โค้ดที่สร้างใหม่ทำให้การชดเชยฟังก์ชันคาดเดาได้ยากขึ้น ซึ่งทำให้สร้างช่องโหว่ที่ใช้เทคนิคการเขียนโปรแกรมแบบมุ่งเน้นการส่งคืนได้ยากขึ้น
  • กระบวนการ mountd จะถูกแยกออกโดยใช้การเรียกระบบ unveil
  • สแต็กเครือข่ายรองรับซ็อกเก็ต AF_FRAME และกลุ่มโปรโตคอล IFT_ETHER ซึ่งช่วยให้แอปพลิเคชันสามารถส่งและรับเฟรมอีเทอร์เน็ตได้ มีการนำวิธีการแฮชใหม่มาใช้กับแพ็คเก็ต UDP และ TCP ขาออก ซึ่งช่วยเพิ่มประสิทธิภาพการกระจายปริมาณการรับส่งข้อมูลในคิว และเพิ่มความเร็วในการส่ง UDP สำหรับ IPv20/IPv4 และ TCP สำหรับ IPv6 อย่างมีนัยสำคัญ (~6%) อุปกรณ์ tun มีการนำ TUNSCAP ioctl มาใช้และการโต้ตอบระหว่างเคอร์เนลและพื้นที่ผู้ใช้ได้รับการปรับให้เหมาะสมแล้ว มีการนำแคชการกำหนดเส้นทางแบบแยกสำหรับแต่ละโฟลว์มาใช้ ไดรเวอร์ vio ได้เปิดใช้งานโหมดมัลติคิวแล้ว
  • ยูทิลิตี้ pfctl ช่วยให้สามารถกำหนดค่าอินเทอร์เฟซเครือข่ายและคิวด้วยอัตราความเร็วที่มากกว่า 4Gbit
  • ใน iked ซึ่งเป็นการใช้งานโปรโตคอล IKEv2 สำหรับ IPsec ได้มีการเพิ่มตัวเลือก "natt" เพื่อบังคับใช้ nat-t
  • Relayd ซึ่งเป็นกระบวนการทำงานเบื้องหลังสำหรับการเปลี่ยนเส้นทางและปรับสมดุลคำขอ ตอนนี้รองรับการทำงานฝั่งไคลเอ็นต์แล้ว ใบรับรอง TLS.
  • เครื่องมือวัดประสิทธิภาพเครือข่าย tcpbench ได้เพิ่มการรองรับ TLS แล้ว
  • bgpd รองรับ RFC 8654 (ข้อความ BGP Extended), RFC 8538 (ข้อความการแจ้งเตือน BGP) ตัวเลือก "ปฏิเสธเป็นชุด" เปิดใช้งานตามค่าเริ่มต้น และมีการแคช Adj-RIB-Out
  • LibreSSL 4.1.0 เพิ่มการสนับสนุนเชิงทดลองสำหรับสถาปัตยกรรม loongarch64 นำเสนอการใช้งานแอสเซมเบลอร์ใหม่ของอัลกอริทึม SHA-1, SHA-256 และ SHA-512 สำหรับสถาปัตยกรรม amd64 (โดยใช้คำสั่ง SHA-NI) การใช้งานแอสเซมเบลอร์ใหม่ของ SHA-256 และ SHA-512 สำหรับ Aarch64 (โดยใช้ส่วนขยาย CE) ทำให้การใช้งาน MD5 สำหรับ amd64 ง่ายขึ้น จัดให้มีการแคชรายการใบรับรองที่ถูกเพิกถอน (CRL) และพอร์ตการใช้งาน ML-KEM 768 และ 1024 จาก BoringSSL
  • OpenSSH ได้รับการอัปเดตแล้ว สามารถดูรายการการเปลี่ยนแปลงได้ในประกาศ OpenSSH 10 (การรองรับลายเซ็นดิจิทัล DSA ได้ถูกลบออก การดำเนินการยืนยันตัวตนได้ถูกแยกออกเป็นกระบวนการ sshd-auth แยกต่างหาก และใช้อัลกอริทึมการแลกเปลี่ยนคีย์ไฮบริด "mlkem768x25519-sha256" ตามค่าเริ่มต้น)
  • จำนวนพอร์ตสำหรับสถาปัตยกรรม AMD64 คือ 12593 (เดิมคือ 12312) สำหรับ aarch64 คือ 12446 (เดิมคือ 12148) สำหรับ i386 คือ 10429 (เดิมคือ 10534) ในเวอร์ชันของแอปพลิเคชันในพอร์ต:
    • เครื่องหมายดอกจัน 16.30.1, 18.26.1, 20.13.0 และ 22.3.0
    • Audacity 3.7.3
    • ซีเมค 3.31.6
    • โครเมียม 135.0.7049.52
    • Emacs 30.1
    • FFmpeg 6.1.2
    • GCC 8.4.0 และ 11.2.0
    • GNOME 47
    • ไปที่ 1.24.1
    • JDK 8u442, 11.0.26, 17.0.14 และ 21.0.6
    • KDE เกียร์ 24.12.3
    • กรอบงาน KDE 6.12.0
    • KDE Plasma 6.3.3
    • Krita 5.2.9
    • LLVM/แคลง 13.0.0, 16.0.6, 18.1.8, 19.1.7
    • LibreOffice 25.2.1.2
    • ลัวะ 5.1.5, 5.2.4, 5.3.6, 5.4.7
    • มาเรียDB 11.4.5
    • โมโน 6.12.0.199
    • Mozilla Firefox 137.0 และ ESR 128.9.0
    • Mozilla Thunderbird 128.9.0
    • Mutt 2.2.14 และ NeoMutt 20250113
    • โหนด js 22.14.0
    • โอเพ่น LDAP 2.6.9
    • PHP 8.2.28, 8.3.19 และ 8.4.5
    • โพสต์ฟิกซ์ 3.10.1
    • PostgreSQL 17.4
    • หลาม 2.7.18 และ 3.12.9
    • Qt 5.15.16 (+ แพตช์จากโครงการ KDE) และ 6.8.2
    • รูบี้ 3.2.8, 3.3.7, 3.4.2
    • สนิม 1.86.0
    • SQLite3.49.1
    • Shotcut 25.01.25
    • ซูโด 1.9.16p1
    • เมียร์แคท 7.0.7
    • ทีซีแอล/ทีเค 8.5.19 และ 8.6.16
    • เป็นกลุ่ม 9.1.1265 และ Neovim 0.10.4
    • Xfce 4.20.0
  • อัปเดตส่วนประกอบของบุคคลที่สามที่มาพร้อมกับ OpenBSD 7.7:
    • กราฟิกสแต็ค Xenocara ที่ใช้ X.Org 7.7 พร้อม xserver 21.1.16 + แพตช์, freetype 2.13.3, fontconfig 2.15.0, Mesa 23.3.6, xterm 395, xkeyboard-config 2.20, fonttosfnt 1.2.4
    • LLVM/Clang 16.0.6 (+ แพทช์)
    • GCC 4.2.1 (+ แพตช์) และ 3.3.6 (+ แพตช์)
    • Perl 5.40.1 (+ แพตช์)
    • พรบ.4.9.1
    • ไม่ถูกผูกไว้ 1.22.0
    • เอ็นเคอร์เซส 6.4
    • Binutils 2.17 (+ แพตช์)
    • Gdb 6.3 (+ แพตช์)
    • อ.20250116
    • ชาวต่างชาติ 2.7.1
    • zlib 1.3.1 (+ แพทช์)

ที่มา: opennet.ru

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