إصدار OpenBSD 7.7

تم تقديم إصدار نظام التشغيل المجاني OpenBSD 7.7 الذي يشبه UNIX. تم تأسيس مشروع OpenBSD على يد Theo de Raadt في عام 1995 بعد صراع مع مطوري NetBSD، ونتيجة لذلك تم منع Theo من الوصول إلى مستودع NetBSD CVS. بعد ذلك، أنشأ ثيو دي رادت ومجموعة من الأشخاص ذوي التفكير المماثل نظام تشغيل مفتوحًا جديدًا يعتمد على شجرة مصدر NetBSD، وكانت أهداف التطوير الرئيسية لها هي قابلية النقل (يتم دعم 13 منصة للأجهزة)، والتوحيد القياسي، والتشغيل الصحيح، والأمن الاستباقي وأدوات التشفير المتكاملة. تبلغ صورة ISO للتثبيت الكامل للنظام الأساسي OpenBSD 7.7 746 ميجابايت.

بالإضافة إلى نظام التشغيل نفسه، فإن مشروع OpenBSD معروف بمكوناته التي انتشرت على نطاق واسع في الأنظمة الأخرى وأثبتت أنها واحدة من أكثر الحلول أمانًا وعالية الجودة. من بينها: LibreSSL (شوكة OpenSSL)، OpenSSH، مرشح حزم PF، برامج التوجيه OpenBGPD وOpenOSPFD، خادم OpenNTPD NTP، خادم بريد OpenSMTPD، معدد الإرسال الطرفي للنصوص (مماثل لشاشة GNU) tmux، البرنامج الخفي identd مع تنفيذ بروتوكول IDENT، بديل BSDL حزمة GNU groff - mandoc، بروتوكول لتنظيم الأنظمة المتسامحة مع الأخطاء CARP (بروتوكول تكرار العناوين العامة)، خادم http خفيف الوزن، أداة مساعدة لمزامنة الملفات OpenRSYNC.

التغييرات الرئيسية:

  • تم مزامنة تنفيذ إطار عمل drm (Direct Rendering Manager) مع نواة Linux 6.12.21 (في الإصدار السابق - 6.6.52). ينفذ برنامج تشغيل inteldrm الدعم لوحدة معالجة الرسومات المستخدمة في معالجات Intel المستندة إلى بنية Arrow Lake الدقيقة. تم تحديث برنامج تشغيل amdgpu لدعم وحدات معالجة الرسوميات Ryzen AI 300 (Strix Point، Strix Halo، Krackan Point) وRadeon RX 9070 (Navi 48).
  • ينفذ المنفذ الخاص بهندسة ARM64 الدعم لمجموعة تعليمات المتجه SVE (امتداد المتجه القابل للتطوير). في الأنظمة التي تحتوي على شرائح Apple M1 ARM، يتم تعيين حالات استهلاك الطاقة. في آلية تعيين صفحة الذاكرة المادية (pmap)، تم تحسين عمليات مسح مخزن الترجمة الجانبي (TLB)، مما أدى إلى تسريع تنفيذ اختبار تجميع النواة بنحو 5%. في الأجهزة التي تدعم تشفير QARMA3، يتم تمكين رمز مصادقة المؤشر (PAC) لحماية مساحة المستخدم.
  • في أنظمة x86_64، تم تطبيق دعم آلية AMD SEV (التشفير الافتراضي الآمن)، المستخدمة في أنظمة المحاكاة الافتراضية للحماية، لأنظمة الضيوف التي تعمل باستخدام QEMU. آلة افتراضية بسبب تدخل المشرف أو مسؤول النظام المضيف. تمت إضافة أمر لتحميل البرامج الثابتة في الشريحة إلى برنامج تشغيل PSP المستخدم لتهيئة وتشغيل الأنظمة الضيفة مع تمكين AMD SEV.
  • في أنظمة x86_64، تمت إضافة القدرة على تخصيص مساحات ذاكرة أكبر من 4 جيجابايت لـ 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، بالإضافة إلى kern.timeout_stats وkern.allowkmem وkern.video.record وnet.inet.gre.allow وnet.inet.gre.wccp وkern.global_ptrace وkern.wxabort وkern.malloc.kmemstat sysctls من القفل العالمي. تم نقل برامج التشغيل psp وwsmouse وwstpad، بالإضافة إلى بنية video_filtops، إلى فئة mp-safe.

  • لقد نفذ المشرف الافتراضي VMM القدرة على استخدام acpipci لربط حافلات PCI.
  • تم توفير القدرة على تحديد سياسة أداء بديلة (perfpolicy) لتطبيقها عندما يعمل النظام على طاقة البطارية.
  • يتضمن الأمر sysctl الآن خيار "-f file" لتحميل كافة الإعدادات من ملف مرة واحدة. في نصوص rc، يتم استخدام خيار جديد لتحميل sysctl.conf ككل، بدلاً من تحليله سطرًا بسطر.
  • يقوم الأمر pkg_add بتنفيذ استدعاء ldconfig إذا تغيرت قائمة المكتبات المشتركة نتيجة لتثبيت حزم جديدة.
  • تمت إضافة الدعم للأجهزة الجديدة. تم تحسين الدعم لشرائح MediaTek وQualcomm Snapdragon (بما في ذلك 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 باستخدام نداء النظام Uncover.
  • تنفذ مجموعة الشبكة الدعم لمقابس AF_FRAME وعائلة بروتوكول IFT_ETHER، مما يسمح للتطبيقات بإرسال واستقبال إطارات Ethernet. تم تنفيذ طريقة تجزئة جديدة لحزم UDP وTCP الصادرة، مما أدى إلى تحسين توزيع حركة المرور عبر قوائم الانتظار وتسريع إرسال UDP لـ IPv20/IPv4 وTCP لـ IPv6 بشكل كبير (~6%). تم تنفيذ TUNSCAP ioctl في جهاز tun وتم تحسين التفاعل بين النواة ومساحة المستخدم. تم تنفيذ ذاكرة تخزين مؤقتة للتوجيه منفصلة لكل تدفق. تم تمكين وضع قائمة الانتظار المتعددة في برنامج تشغيل vio.
  • تتيح الأداة المساعدة pfctl تكوين واجهات الشبكة والطوابير ذات معدل نقل بيانات أكبر من 4 جيجابت.
  • في iked، تنفيذ بروتوكول IKEv2 لـ IPsec، تمت إضافة خيار "natt" لفرض استخدام nat-t.
  • يدعم Relayd، وهو عملية تعمل في الخلفية لإعادة توجيه الطلبات وموازنتها، الآن جانب العميل شهادات TLS.
  • أضافت أداة قياس أداء الشبكة tcpbench دعم TLS.
  • ينفذ bgpd الدعم لـ RFC 8654 (رسالة BGP الموسعة)، و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، وتوفير التخزين المؤقت لقائمة الشهادات الملغاة (CRLs)، ونقل تنفيذ ML-KEM 768 و1024 من BoringSSL.
  • تم تحديث OpenSSH. يمكن العثور على قائمة التغييرات في إعلان OpenSSH 10 (تمت إزالة دعم التوقيع الرقمي DSA، وتم فصل عمليات المصادقة إلى عملية sshd-auth منفصلة، ​​وتم استخدام خوارزمية تبادل المفتاح الهجين "mlkem768x25519-sha256" بشكل افتراضي).
  • كان عدد المنافذ لعمارة AMD64 هو 12593 (كان 12312)، ولعمارة aarch64 - 12446 (كان 12148)، ولعمارة i386 - 10429 (كان 10534). من بين إصدارات التطبيقات في المنافذ:
    • Asterisk 16.30.1، 18.26.1، 20.13.0 و22.3.0
    • جرأة شنومكس
    • CMake 3.31.6 تحديث
    • كروميوم شنومكس
    • Emacs 30.1
    • FFmpeg 6.1.2
    • دول مجلس التعاون الخليجي 8.4.0 و 11.2.0
    • جنوم 47
    • الذهاب شنومكس
    • جدك 8u442، 11.0.26، 17.0.14 و 21.0.6
    • كيدي جيرز 24.12.3
    • KDE Frameworks 6.12.0
    • كيدي بلازما 6.3.3
    • كريتا 5.2.9
    • LLVM/Clang 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
    • MariaDB 11.4.5
    • مونو 6.12.0.199
    • موزيلا فايرفوكس 137.0 وESR 128.9.0
    • Mozilla Thunderbird 128.9.0
    • موت 2.2.14 ونيوموت 20250113
    • Node.js 22.14.0 تحديث
    • برنامج OpenLDAP 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
    • سكليتي 3.49.1
    • Shotcut 25.01.25
    • سودو 1.9.16p1
    • ميركات 7.0.7
    • تي سي ال/تك 8.5.19 و 8.6.16
    • فيم 9.1.1265 و نيوفيم 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 (+ تصحيحات)
    • دول مجلس التعاون الخليجي 4.2.1 (+ تصحيحات) و 3.3.6 (+ تصحيحات)
    • بيرل 5.40.1 (+ تصحيحات)
    • نسد 4.9.1
    • غير منضم 1.22.0
    • نكورسيس 6.4
    • Binutils 2.17 (+ تصحيحات)
    • Gdb 6.3 (+ تصحيحات)
    • أوك 20250116
    • المغتربين 2.7.1
    • زليب 1.3.1 (+ تصحيحات)

المصدر: opennet.ru