بعد عامين من نشر الإصدار 14.0، صدر الإصدار 15.0 من FreeBSD. تتوفر إصدارات التثبيت لبنى amd64 وaarch64 وarmv7 وpowerpc64 وpowerpc64le وriscv64. بالإضافة إلى ذلك، تتوفر إصدارات لأنظمة المحاكاة الافتراضية (QCOW2 وVHD وVMDK وRAW) وبيئات الحوسبة السحابية مثل Amazon EC2 وGoogle Compute Engine وVagrant.
بدءًا من فرع FreeBSD 15، تم تقليص فترة صيانة الفروع الرئيسية بعد الإصدار الأول (15.0) من 5 إلى 4 سنوات، مع إنشاء فروع رئيسية جديدة كل عامين. سيتم تطوير الإصدارات المتوسطة (15.1، 15.2، 15.3) وفقًا لدورة تطوير ثابتة، مع نشر إصدارات جديدة في فرع واحد كل ستة أشهر تقريبًا، بدلًا من مرة واحدة سنويًا كما كان الحال سابقًا. مع الأخذ في الاعتبار الصيانة المتزامنة لفرعين رئيسيين مختلفين، سيتم نشر إصدار وسيط جديد كل 3 أشهر (15.4، 16.1، 15.5، 16.2، إلخ)، باستثناء إعداد الإصدارات الأولى للفروع الرئيسية الجديدة، والتي قبلها سيكون هناك انقطاع لمدة 6 أشهر في الإصدارات (على سبيل المثال، سيتم تشكيل الإصدار 15.3 في يونيو 2027، و16.0 في ديسمبر 2027، و15.4 في مارس 2028، و16.1 في يونيو 2028).
تغييرات رئيسية في FreeBSD 15.0 (تذكر ملاحظات الإصدار الرسمية، بالإضافة إلى التغييرات الخاصة بـ 15.0، العديد من الميزات التي تمت إضافتها مسبقًا إلى فروع 14.1 و14.2 و14.3):
- أُضيفت إمكانية استخدام مدير الحزم pkg لتثبيت وتحديث مكونات النظام الأساسي. يمكن توفير حزم pkgbase على وسائط التثبيت للتثبيت دون اتصال بالإنترنت، أو تنزيلها من مستودع pkg.freebsd.org. لا يتم تفعيل مستودع FreeBSD-base افتراضيًا في إعدادات pkg (/etc/pkg/FreeBSD.conf). يوفر مُثبِّت bsdinstall خيارين للتثبيت: التقليدي وباستخدام الحزم (pkgbase). من المُخطط إزالة دعم الطريقة التقليدية، التي يُعامل فيها النظام الأساسي كبيئة متجانسة يتم تحديثها باستخدام أداة freebsd-update، في فرع FreeBSD 16. تُقدم طريقة جديدة، تتضمن تثبيت النظام الأساسي كمجموعة من الحزم من مستودع FreeBSD-base، افتراضيًا في إصدارات FreeBSD 16. آلة افتراضية والصور لبيئات الحوسبة السحابية، ولكنها تعتبر حاليًا تجريبية للأنظمة العادية.
- تمت إضافة دعم لبناء FreeBSD في بيئات غير مُفعّلة لا تتطلب صلاحيات الجذر. يُمكن أيضًا إنشاء صور ISO للتثبيت وصور النظام للأجهزة الافتراضية دون الحاجة إلى صلاحيات الجذر. أثناء عملية البناء، كانت صلاحيات الجذر مطلوبة لإنشاء ملفات الأجهزة، وتعيين الأذونات، وتثبيت أنظمة ملفات إضافية (على سبيل المثال، عند إنشاء صور الأقراص).
- تم دعم عمليات البناء القابلة للتكرار، مما يضمن بناء الملفات الثنائية الموزعة من الكود المصدري المُقدم، وعدم احتوائها على تعديلات مخفية. تضمن عمليات البناء القابلة للتكرار تطابق الملفات الثنائية المُولّدة من الكود المصدري في بيئات بناء مختلفة.
- تم إيقاف إنشاء صور التثبيت وبناء الحزم الثنائية لبنى i386 وarmv6 وpowerpc ذات 32 بت. من بين منصات 32 بت، لم يبقَ سوى armv7. ستظل إمكانية بناء برامج 32 بت واستخدام وضع COMPAT_FREEBSD32 لتشغيل ملفات 32 بت قابلة للتنفيذ في بيئة نواة 64 بت قائمةً حتى نهاية دورة حياة فرع FreeBSD 16 على الأقل.
- تمت إضافة نداءات النظام التي تنفذ آلية inotify لتتبع التغييرات في أنظمة الملفات.
- تمت إضافة دعم لسمات الملفات المسماة (السمات الموسعة على نمط سولاريس)، والتي من المخطط دعمها كآلية بديلة لإدارة السمات الموسعة المتاحة لأنظمة ZFS وNFSv4. تختلف هذه السمات عن نظام FreeBSD التقليدي و Linux تتلخص طريقة التعامل مع السمات الموسعة في تمثيل هذه السمات في دليل خدمة، غير مرئي لمساحة اسم نظام الملفات الرئيسي، ومرتبط بالملف. تُعامل السمات كما تُعامل الملفات العادية؛ على سبيل المثال، لتحديد قائمة السمات، يمكنك استخدام الدالة readdir().
- تم إعلان وحدة mac_do جاهزة للاستخدام، مما يسمح لك بوضع سياسات تسمح للمستخدمين غير المصرح لهم بتغيير بيانات اعتماد العملية. لتشغيل الأوامر تحت مستخدم آخر، تم تجهيز أداة mdo، وهي مشابهة لأداة su، ولكنها لا تتطلب suid root.
- تتم مزامنة حالة برامج تشغيل i915 و amdgpu DRM مع النواة Linux 6.9. تتم مزامنة برامج تشغيل الأجهزة اللاسلكية rtw88 (Realtek 802.11n/ac) وrtw89 (Realtek 802.11ax) وiwlwifi (Intel 02.11a/b/g/n/ac/ax/be) مع النواة Linux 6.17.
- يتم تمكين تنفيذ Kernel-side TLS (KTLS) بشكل افتراضي.
- تمت إضافة أداة sndctl لإدارة إعدادات بطاقة الصوت.
- تمت إضافة أداة mididump لإلقاء الضوء على أحداث MIDI 1.0 في الوقت الفعلي.
- أُضيفت واجهة شبكة خلفية جديدة "slirp" إلى مُشرف الأجهزة الافتراضية bhyve، وتستخدم مكتبة libslirp مع تطبيق مُدمج لحزمة الشبكة في مساحة المستخدم. تتيح لك واجهة "slirp" الخلفية تنظيم الوصول إلى شبكة نظام الضيف من بيئة المُضيف دون الحاجة إلى تهيئة الشبكة بشكل مُنفصل من جهة المُضيف.
- تم استبدال تطبيق Kerberos في نظام FreeBSD الأساسي بـ MIT Kerberos من Heimdal Kerberos. يمكن استخدام علامة WITHOUT_MITKRB5 لعكس تطبيق Heimdal Kerberos. في FreeBSD 16، سيتم إزالة دعم بناء Heimdal Kerberos.
- إن سلوك مكالمات النظام setgroups وgetgroups وinitgroups عند التعامل مع مجموعات المستخدمين يشبه المنصات الأخرى (اختلفت التنفيذات في FreeBSD في تخزين معرف مجموعة العملية الفعالة في العنصر الصفري للمصفوفة التي تحتوي على قائمة المجموعات).
- مستودع FreeBSD-kmods الجديد مُفعّل افتراضيًا في إعدادات مدير حزم pkg. يحتوي المستودع على حزم وحدات نواة مُصممة لفروع إصدار 15.x-RELEASE مُحددة، بدلًا من فرع 15-STABLE المُحدّث باستمرار. يُحلّ مستودع FreeBSD-kmods مشكلة تثبيت برامج التشغيل التي تعتمد على واجهات نواة غير مستقرة (مثل برامج تشغيل الرسومات). أُعيدت تسمية مستودعي "FreeBSD" و"FreeBSD-kmods" الموجودين سابقًا في /etc/pkg/FreeBSD.conf إلى "FreeBSD-ports" و"FreeBSD-ports-kmods".
- يدعم نظام NFS الآن عملية الاستنساخ (CLONE)، المحددة في مواصفات NFSv4.2، والتي تتيح نسخ الملفات بسرعة عن طريق استنساخ الكتل على الخادم. يعمل هذا الوضع حاليًا فقط عند تصدير أقسام ZFS عبر NFS.
- في أنظمة amd64، تمت إضافة القدرة على استخدام أكثر من 4 تيرابايت من ذاكرة الوصول العشوائي (RAM).
- تمت إضافة برنامج تشغيل ufshci لدعم وحدات تحكم نظام التخزين باستخدام واجهة UFSHCI (واجهة وحدة تحكم مضيف تخزين الفلاش العالمي).
- يتم ضبط قيمة `Sysctl net.link.bridge.member_ifaddrs` على 0 افتراضيًا، أي أنه يمكن إضافة واجهات إلى جسور الشبكة بدون عناوين IP.
- تم تحسين موثوقية أقسام UFS التي تحتوي على أكثر من 2,000,000,000 عقدة. تم حل مشكلة عام 2038 في تطبيق UFS1 (يمكن استخدام تواريخ تصل إلى 2106).
- تمت إضافة خيار مآخذ الشبكة SO_SPLICE لتجميع اتصالات TCP (مثل الوكيل الذي يعمل دون نسخ البيانات إلى مساحة المستخدم).
- بشكل افتراضي، تقوم أداة grep بتعطيل عبور الروابط الرمزية أثناء البحث المتكرر.
- تمت إضافة وحدة kernel nvmftа لدعم وحدات تحكم NVMe عبر Fabric وأداة nvmecontrol للاتصال بوحدة تحكم NVMe عبر Fabric خارجية.
- تدعم أداة التاريخ الآن إخراج الوقت بدقة النانو ثانية، على سبيل المثال، "date -Ins" سوف يقوم بإخراج "2024-04-22T12:20:28,763742224+02:00".
- يدعم Jail الآن خيار zfs.dataset لإضافة قسم ZFS، أو لقطة، أو نسخة منه إلى سجن معزول. يدعم أمر Jail الآن معلمتي "meta" و"env"، واللتين يمكن استخدامهما لربط البيانات الوصفية أو تمرير متغيرات البيئة. كما يدعم أيضًا عنونة واصف السجن، باستخدام الدالتين jail_set وjail_get، بالإضافة إلى استدعاءات النظام jail_attach_jd وjail_remove_jd. ويمكن الآن استخدام مرشحات Kevent لتتبع عمليات إنشاء السجن، وحذفه، وتعديله، وإضافته.
- تحتوي أداة newsyslog على معلمة لتعيين طريقة الضغط الافتراضية (bzip2، xz، zstd، gzip)، مما يلغي الحاجة إلى تحديد علامات منفصلة (J، X، Y، Z) في كل سطر من newsyslog.conf.
- في مكتبة C القياسية، تستخدم العديد من وظائف الذاكرة والسلسلة تحسينات تعتمد على SIMD.
- تم تحديث الخط Gallant المستخدم في المحطات الافتراضية بأكثر من 4300 رمز جديد، بما في ذلك الرموز ذات الأحرف السيريلية والرموز الرياضية.
- يتم تعيين علامة IUTF8 بشكل افتراضي على tty، مما يضمن إزالة أحرف UTF-8 بشكل صحيح عند الضغط على Backspace.
- تم استبدال أداة الحوار المستخدمة في برنامج تكوين bsdconfig ومثبت bsdinstall بـ bsddialog.
- تُنشئ أداة adduser المُستخدمة في bsdinstall الآن مجموعة بيانات ZFS منفصلة (قسم، أو لقطة، أو نسخة) للدليل الرئيسي للمستخدم إذا كانت مجموعة بيانات ZFS مُستخدمة بالفعل للدليل الرئيسي. كما يُدعم الآن تشفير ZFS للدلائل الرئيسية. أُضيفت معلمتا "Zcreate" و"Zencrypt" إلى ملف adduser.conf للتحكم في تفعيل هاتين الميزتين.
- يتيح إنشاء صور للحاويات والأنظمة متوافقة مع OCI لـ Oracle Cloud.
- تمت إضافة نوع جديد من الصور "الصغيرة" لبيئات السحابة المتوافقة مع AWS EC2. بخلاف الصور الأساسية، لا تتضمن هذه الصور بيانات التصحيح، والاختبارات، ومكتبات 32 بت، ومصحح أخطاء LLDB، ووكيل Amazon SSM، وواجهة سطر أوامر AWS. يتم الآن تحميل صور EC2 الأساسية أسرع بنسبة 76%.
- تم تعطيل إعداد net.inet.tcp.nolocaltimewait وإلغاء استخدامه افتراضيًا، أي أنه تمت إعادة إنشاء سجلات TIME_WAIT لاتصالات TCP المنتهية على جانب النظام المحلي. تمت إضافة دالة sysctl جديدة، net.inet.tcp.msl_local، لضبط وقت بقاء الاتصال في حالة TIME_WAIT.
- افتراضيًا، دعم إنشاء اتصالات شبكة إلى localhost التي تحدد INADDR_ANY مُعطَّل. لتفعيل هذا الدعم، اضبط net.inet.ip.connect_inaddr_wild sysctl على 1.
- تمت إزالة مدير وحدة التخزين المنطقية gvinum، الذي كان يُستخدم مع RAID البرمجي. توقف تطوير Gvinum منذ حوالي 15 عامًا، على الرغم من وجود العديد من المشاكل المعروفة في شيفرته والتي لم يُعالجها أحد. يُنصح باستخدام gconcat أو gmirror أو gstripe أو graid أو zfs بدلاً من gvinum.
- من المقرر إزالة برنامج تشغيل agp (منفذ الرسومات المتسارع)، المطلوب للعديد من برامج التشغيل لبطاقات الفيديو القديمة، في FreeBSD 16. كما تم إيقاف تشغيل برامج التشغيل التالية وجدولتها للإزالة: fdc (وحدة تحكم القرص المرن لجهاز الكمبيوتر IBM)، وfirewire (ناقل تسلسلي IEEE1394)، وle (AMD Am7900 LANCE وAm79C9xx Ethernet)، وupgt (USB 802.11g).
- لقد تم إيقاف استخدام وظيفة readdir_r.
- توقف خادم SNMP الخاص بـ bsnmpd عن دعم نقل UDP.
- تم إيقاف توليد مفاتيح مضيف RSA لـ SSH وEC2 AMI. أُزيل دعم DSA من OpenSSH. كما أُزيلت قاعدة بيانات المفاتيح العامة، التي تعتمد على خوارزمية DES.
- تم إزالة ftpd وshar من النظام الأساسي، ويجب استخدام المنافذ ftp/freebsd-ftpd وsysutils/freebsd-shar بدلاً من ذلك.
- لقد تم إيقاف استخدام أداة fdisk ويجب استخدام gpart بدلاً منها.
- تم إيقاف تشغيل برنامج تشغيل syscons لأنه غير متوافق مع UEFI، ولا يدعم UTF-8، ويعتمد على قفل عالمي.
- إصدارات محدثة من LLVM 19.1.7، وOpenSSH 10.0p2، وOpenSSL 3.5.4، وOpenZFS 2.4.0rc4، وLua 5.4.8، وjemalloc 5.3.0، وAwk 20250804 (مع دعم UTF-8)، وbc 7.1.0، وunicode 16.0.0، وncurses 6.5، وlibarchive 3.8.2، وtcpdump 4.99.5، وunbound 1.24.1، وless 679، والملف 5.46، وGoogleTest 1.15.2.
المصدر: opennet.ru
