وبعد عامين ونصف من نشر الفرع 13.0، تم تشكيل إصدار FreeBSD 14.0. تم إعداد صور التثبيت لمعماريات amd64 وi386 وpowerpc وpowerpc64 وpowerpc64le وpowerpcspe وarmv7 وaarch64 وriscv64. بالإضافة إلى ذلك، تم إعداد التجميعات لأنظمة المحاكاة الافتراضية (QCOW2، VHD، VMDK، الخام) والبيئات السحابية Amazon EC2، Google Compute Engine وVagrant. سيكون فرع FreeBSD 14 هو الأخير الذي يدعم منصات 32 بت. سيدعم FreeBSD 15 أنظمة 64 بت فقط، لكنه سيحتفظ بالقدرة على إنشاء برامج 32 بت واستخدام وضع COMPAT_FREEBSD32 لتشغيل الملفات التنفيذية 32 بت في بيئة 64 بت.
التغييرات الرئيسية:
- الغلاف الافتراضي للمستخدم الجذر هو /bin/sh.
- بالنسبة لأجهزة NVME، يتم تمكين برنامج تشغيل nda افتراضيًا على كافة الأنظمة الأساسية. لإرجاع برنامج تشغيل nvd القديم، يتم توفير الإعداد "hw.nvme.use_nvd=1" في Loader.conf.
- تمت إضافة أداة مساعدة جديدة "fwget" تحدد الأجهزة التي تتطلب برامج ثابتة وتقوم بتثبيت حزم البرامج الثابتة المناسبة. حاليًا، يتم دعم أجهزة PCI والبرامج الثابتة لوحدات معالجة الرسومات Intel وAMD فقط.
- تمت إضافة أداة base64 جديدة لتشفير وفك تشفير بيانات base64.
- تمت إضافة الأداة المساعدة tcpsso، والتي تسمح لك بتعيين خيارات مأخذ التوصيل لاتصالات TCP الموجودة (على سبيل المثال، يمكنك تغيير وحدة التحكم في الازدحام أو مكدس TCP).
- وكيل تسليم البريد الافتراضي هو dma (DragonFly Mail Agent) بدلاً من sendmail. تم الاحتفاظ بـ Sendmail في الحزمة الأساسية وتم تحديثه إلى الإصدار 8.17.1.
- يضيف KTLS، وهو تطبيق FreeBSD kernel لبروتوكول TLS، دعمًا لتسريع أجهزة TLS 1.3 على الجانب المتلقي. يتم ضمان التسريع عن طريق نقل بعض العمليات المتعلقة بمعالجة الحزم المشفرة إلى جانب بطاقة الشبكة.
- تمت إضافة التوجيه ".include" إلى ملف التكوين jail.conf، والذي يسمح لك بتضمين ملفات إضافية عند تحميل التكوين، والتي تسمح مساراتها باستخدام الأقنعة. تم توسيع معلمة sysctl Security.bsd.see_jail_proc، والتي يمكن من خلالها منع المستخدمين غير المصرح لهم في بيئة سجن منفصلة من فرض الإنهاء وتغيير الأولوية وعمليات تصحيح الأخطاء.
- يقوم برنامجا pw وbsdinstall الآن بإنشاء مستخدمين في الدليل /home بشكل افتراضي بدلاً من /usr/home. لم يعد يتم إنشاء الرابط الرمزي لـ "/home" الذي يشير إلى "/usr/home".
- يتم تعطيل إعداد إنشاء ملف التعريف افتراضيًا - لم تعد الإصدارات التعريفية لمكتبات النظام متوفرة، ويجب استخدام أدوات إنشاء ملفات تعريف الأجهزة (hwpmc) بدلاً من ذلك.
- تمكين إنشاء ملفات قابلة للتنفيذ لبنيات 64 بت في وضع PIE (الوضع المستقل القابل للتنفيذ).
- تمت إضافة القدرة على إعادة توجيه الوصول إلى TPM (وحدة النظام الأساسي الموثوق به) ووحدة معالجة الرسومات (في البيئات الافتراضية لرقائق AMD وIntel) إلى برنامج Bhyve Hypervisor.
- تم تحديث تطبيق نظام الملفات ZFS إلى الإصدار OpenZFS 2.2. أضافت الأداة المساعدة makefs دعمًا لنظام الملفات ZFS. يوفر القدرة على إنشاء تجمع ZFS مرتبط بقرص vdev ظاهري واحد.
- تمت زيادة عدد نوى وحدة المعالجة المركزية المدعومة (معلمة MAXCPU) في الأنظمة المستندة إلى بنية amd256 وarm1024 من 64 إلى 64.
- في UFS، بالنسبة للتكوينات التي يتم فيها تمكين التسجيل (التحديثات البسيطة)، يُسمح بالتحقق من الخلفية لنظام الملفات باستخدام لقطات UFS. تمت إضافة عمليات فحص تجزئة إضافية إلى الكتل الفائقة وخرائط مجموعة الأسطوانات والرموز الداخلية لاكتشاف الفساد.
- تمت إضافة نظام ملفات tarfs، والذي يمكن استخدامه مع أرشيفات tar المضغوطة باستخدام zstd.
- تمت إضافة مجموعة أدوات تتبع التشغيل لتتبع الأحداث التي حدثت أثناء التشغيل وإيقاف تشغيل النظام.
- تمت إضافة خيار تكوين FIRECRACKER kernel للسماح لـ FreeBSD بالعمل على نظام المحاكاة الافتراضية Firecracker، المصمم لتشغيل الأجهزة الافتراضية بأقل قدر من الحمل. تمت زيادة وقت تشغيل FreeBSD 14 kernel الذي يقوم بتشغيل Firecracker إلى 25 مللي ثانية، مما يسمح بإطلاق بيئات FreeBSD حسب الحاجة لتنفيذ البنية التحتية للحوسبة بدون خادم.
- يدعم المُحمل المكتوب بلغة Lua، في بيئة وضع الحماية الخاصة، تنفيذ ملفات lua الموجودة في دليل Loader_conf_files.
- تم توسيع دعم NFS. تمت إضافة خيار تحميل جديد "syskrb5" لدعم Kerberos في NFSv 4.1/4.2، وإضافة دعم لعملية ExchangeID. تم تنفيذ القدرة على تشغيل nfsd وnfsuserd وmountd وgssd وrpc.tlsservd في بيئة شبكة vnet معزولة.
- ينفذ البرنامج النصي Growfs القدرة على وضع قسم المبادلة في نهاية المنطقة القابلة للتوسيع على القرص.
- تمت إضافة موفر DTrace جديد kinst (dtrace_kinst)، مما يسمح بتتبع بنيات kernel.
- تمت إضافة دعم خوارزمية التشفير XChaCha20-Poly1035 EAAD إلى النظام الفرعي لتشفير kernel، وتمت إضافة واجهة برمجة التطبيقات (API) لاستخدام المنحنى الإهليلجي المنحني Curve25519 (لـ WireGuard).
- تقليل وقت إعادة التشغيل. تمت إضافة معلمة sysctl kern.reboot_wait_time، والتي من خلالها يمكنك تغيير التأخير قبل إعادة التشغيل الفعلي بعد إخراج كافة الرسائل التشخيصية إلى وحدة التحكم. بشكل افتراضي، تتم إزالة التأخير.
- تمت إضافة النظام الفرعي timerfd إلى النواة، مما يسهل نقل البرامج من Linux.
- تمت إضافة sysctl machdep.mitigations.zenbleed.enable لمنع ثغرة Zenbleed على معالجات AMD Zen2.
- تمت إضافة دعم Wi-Fi 6 إلى wpa_supplicant وhostapd.يدعم برنامج تشغيل iwlwifi شرائح Intel التي تدعم Wi-Fi 6E AX411/AX211/AX210.
- توفر النواة الموجودة على أنظمة amd64 الدعم لأدوات AddressSanitizer وMemorySanitizer من مشروع LLVM.
- تسمح البرامج النصية rc.d باستخدام طريقة الحالة، حتى إذا لم يتم تعريف اسم البرنامج (procname) وملف PID في البرنامج النصي.
- تمت زيادة معدل الباود الافتراضي للمنفذ التسلسلي لـ kernel وbootloader وuserspace من 9600 بت في الثانية إلى 115200 بت في الثانية. يتم ضبط نغمة التنبيه الافتراضية على 800 هرتز. يتم توفير التكامل مع devd لإصدار أصوات تنبيه عبر بطاقة الصوت. بالنسبة لوحدة التحكم vt، يتم تعطيل صوت التنبيه افتراضيًا (لتمكينه، تحتاج إلى تشغيل الأمرين "sysctl kern.vt.enable_bell=1" و"kbdcontrol -b Normal").
- تحسين الدعم لبنية تسريع أجهزة الشبكة NXP DPAA2 (بنية تسريع مسار البيانات Gen2).
- تمت إضافة برنامج تشغيل IGC لوحدات تحكم Intel I225 Ethernet، ويدعم سرعة 2.5 جيجابت في الثانية.
- افتراضيًا، يتم تمكين الإعداد net.inet.tcp.nolocaltimewait، مما يؤدي إلى تعطيل إنشاء سجلات الانتظار الزمني لاتصالات TCP التي تم إنهاؤها على جانب النظام المحلي.
- تم توسيع وتمكين دعم بروتوكول اتصال Netlink (RFC 3549)، المستخدم في Linux لتنظيم تفاعل kernel مع العمليات في مساحة المستخدم، بشكل افتراضي. تم تحويل بعض أدوات الشبكة المساعدة لاستخدام Netlink.
- يوفر مرشح الحزمة pf التوافق مع بناء الجملة وسلوك عمليات تطبيع الحزمة (التنقية) لإصدار OpenBSD من pf. ينفذ pfsync القدرة على استخدام نقل IPv6. تم توسيع تنسيق الحزمة pfsync لدعم قوائم الانتظار، وتطبيع الحزمة، وقواعد التوجيه.
- تمت إضافته إلى واجهة الشبكة if_stf (IPv6 عبر IPv4) دعم IPv6 النشر السريع (RFC 5969). وضع معلومات عقدة IPv6 (RFC 4620) معطل افتراضياً.
- يتم تمكين المعلمة net.inet.tcp.nolocaltimewait sysctl بشكل افتراضي، مما يؤدي إلى تعطيل إنشاء إدخالات حالة الانتظار لاتصالات TCP التي تمت مقاطعتها محليًا.
- افتراضيًا، يستخدم TCP آلية التحكم في ازدحام الشبكة CUBIC بدلاً من NewReno، مما يسمح باستخدام عرض النطاق الترددي المتوفر بشكل أكبر.
- يقوم IPv4 بتعطيل إرسال حزم البث إلى عنوان الشبكة الفرعية صفر ما لم يتم الإعلان بشكل صريح عن هذا العنوان كعنوان بث. يسمح هذا التغيير للمضيفين باستخدام العناوين التي تنتهي بـ ".0".
- تم تغيير إعدادات OpenSSH: في scp، يتم تمكين بروتوكول SFTP افتراضيًا بدلاً من scp/rcp، ويتم تعطيل دعم توقيعات RSA/SHA-1، ويتم تعيين معلمات VerifyHostKeyDNS وX11Forwarding على "لا"، وتتم إزالة التوجيه VersionAddendum، تتم إزالة دعم إعدادات HPN.
- تمت إضافة خيار "-z" لأداة مساعدة حتى الآن لتحويل المناطق الزمنية.
- تمت إضافة خيار "--color" إلى الأداة المساعدة diff لتصور تغييرات اللون.
- تدعم أداة السكون الآن وحدات أخرى غير الثواني (على سبيل المثال، يمكنك تحديد "السكون لمدة ساعة و1 دقيقة").
- تمت إضافة دعم خياري "-q" و"-h" إلى الأدوات المساعدة للرأس والذيل، كما تم تنفيذ القدرة على تحديد القيم مع اللواحق في النظام الدولي لوحدات SI. في الرأس، تمت إزالة الحد الأقصى لعدد الأسطر وهو 2^31.
- تمت إضافة الأمر "iolat" إلى الأداة المساعدة systat لعرض معلومات حول فترات استجابة الإدخال/الإخراج المحسوبة بواسطة برنامج جدولة CAM.
- تنقسم مكتبة libncursesw إلى مكتبتين، libtinfow و libncursesw. تمت إضافة دعم لاستخدام قاعدة بيانات terminfo في ncurses، وليس فقط termcap.
- بالنسبة لبنية aarch64 (arm64)، تم تنفيذ خيار البناء COMPAT_LIB32 وتمكينه افتراضيًا، مما يوفر تجميع مكتبات 32 بت لأنظمة ARM64 التي تسمح بتشغيل الملفات القابلة للتنفيذ المجمعة لمنصة Armv7.
- تحسين الدعم للأنظمة السحابية. تمت إضافة إصدارات تجريبية باستخدام نظام الملفات الجذر ZFS وcloud-init لـ AWS EC2. بالنسبة إلى Azure، يتم توفير الصور لمعماريات Arm64 وamd64، مع اختيار UFS أو ZFS. تمت إضافة برنامج تشغيل لبطاقة الشبكة الافتراضية gve (Google Virtual NIC).
- أضاف نظام ACPI دعمًا لقيمة العتبة _CR3، والتي تسمح لك بضبط درجة الحرارة عند الوصول إليها والتي سيتم تحويل النظام إلى وضع السكون (S3).
- الإصدارات المحدثة من تطبيقات الطرف الثالث والمكتبات المضمنة في النظام الأساسي: OpenSSH 9.5p1، OpenSSL 3.0.12 (تم استخدام الفرع 1.1.1 سابقًا)، awk 2021072، bc 6.6.0، libbsdxml 2.4.7، libfido2 1.13.0 ، tcpdump 4.99.4، libpcap 1.10.4، xz 5.4.3، zlib 1.3، zstd 1.5.2. تم استبدال تنفيذ الأداة المساعدة objdump بـ llvm-objump. تم تحديث مترجم Clang إلى الفرع 16.
- تم تنظيف الأنظمة القديمة:
- تمت إزالة دعم كلمات مرور OPIE لمرة واحدة من النظام الأساسي (يمكن ضبط منفذ الأمان/opie لاستئناف الاستخدام).
- تمت إزالة برامج تشغيل بطاقات الصوت ذات واجهة ISA.
- تمت إزالة الأدوات المساعدة fmtree وminigzip.
- تمت إزالة مكونات أجهزة الصراف الآلي في netgraph (NgATM).
- تمت إزالة عملية الخلفية telnetd (يمكنك استخدام منفذ net/freebsd-telnetd).
- تمت إزالة فئة VINUM في Geom.
- تمت إزالة برامج تشغيل amr وiscsi_initiator وiir وmn وmly وnlmrsa وtwa القديمة.
- تمت إزالة معلمة VESA من المركزين GENERIC وMINIMAL.
- تمت إزالة دعم عمليات التشفير غير المتماثلة من إطار عمل التشفير على مستوى النواة OCF (إطار عمل التشفير المفتوح).
- لقد تم إهمال الأداة المساعدة mergemaster ويجب استبدالها بـ etcupdate.
- تمت إزالة الأداة المساعدة portsnap (يجب عليك استخدام "git clone https://git.FreeBSD.org/ports.git /usr/ports" لاستخراج المنافذ).
- تم إيقاف إنشاء التجميعات الخاصة ببنية Armv6.
- تمت إزالة الدعم لهندسة MIPS.
المصدر: opennet.ru
