إصدار Linux 5.2 kernel

بعد شهرين من تطوير لينوس تورفالدس المقدمة الافراج عن النواة لينكس شنومكس. من بين التغييرات الأكثر وضوحًا: وضع التشغيل Ext4 غير حساس لحالة الأحرف، واستدعاءات نظام منفصلة لتركيب نظام الملفات، وبرامج تشغيل GPU Mali 4xx/ 6xx/7xx، والقدرة على التعامل مع التغييرات في قيم sysctl في برامج BPF، ومخطط الجهاز وحدة dm-dust، والحماية من هجمات MDS، ودعم برنامج Sound Open Firmware لـ DSP، وتحسين أداء BFQ، مما يجعل النظام الفرعي PSI (معلومات توقف الضغط) إمكانية الاستخدام في Android.

الإصدار الجديد قبل 15100 إصلاحًا من 1882 مطورًا،
حجم التصحيح - 62 ميجابايت (أثرت التغييرات على 30889 ملفًا، تمت إضافة 625094 سطرًا من التعليمات البرمجية، وتم حذف 531864 سطرًا). حوالي 45% من إجمالي ما تم تقديمه في 5.2
ترتبط التغييرات ببرامج تشغيل الأجهزة، حوالي 21٪ من التغييرات لها
الموقف تجاه تحديث التعليمات البرمجية الخاصة ببنيات الأجهزة، 12%
تتعلق بمكدس الشبكة، و3% لأنظمة الملفات، و3% للداخلية
الأنظمة الفرعية للنواة. تم إعداد 12.4% من جميع التغييرات بواسطة Intel، و6.3% بواسطة Red Hat، و5.4% بواسطة Google، و4.0% بواسطة AMD، و3.1% بواسطة SUSE، و3% بواسطة IBM، و2.7% بواسطة Huawei، و2.7% بواسطة Linaro، و2.2% بواسطة ARM. ‎1.6% - أوراكل.

رئيسي الابتكارات:

  • نظام القرص الفرعي ، I / O وأنظمة الملفات
    • تمت الإضافة لـ Ext4 دعم العمل دون تمييز حالة الأحرف في أسماء الملفات، والتي يتم تنشيطها فقط فيما يتعلق بالأدلة الفارغة الفردية باستخدام السمة الجديدة "+F" (EXT4_CASEFOLD_FL). عند تعيين هذه السمة على الدليل، سيتم تنفيذ جميع العمليات مع الملفات والأدلة الفرعية بداخله دون مراعاة حالة الأحرف، بما في ذلك سيتم تجاهل الحالة عند البحث عن الملفات وفتحها (على سبيل المثال، ملفات Test.txt، سيتم اعتبار test.txt وtest.TXT في هذه الدلائل هو نفسه). افتراضيًا، يظل نظام الملفات حساسًا لحالة الأحرف، باستثناء الدلائل التي تحتوي على السمة "chattr +F"؛
    • تم توحيد وظائف معالجة أحرف UTF-8 في أسماء الملفات، والتي تُستخدم عند إجراء عمليات مقارنة السلاسل والتطبيع؛
    • يضيف XFS بنية تحتية لمراقبة سلامة نظام الملفات وioctl جديد للاستعلام عن الحالة الصحية. تم تنفيذ ميزة تجريبية للتحقق من عدادات الكتل الفائقة عبر الإنترنت.
    • تمت إضافة مخطط جهاز وحدة نمطية جديدة "dm-dust"، والذي يسمح لك بمحاكاة ظهور الكتل السيئة على الوسائط أو الأخطاء عند القراءة من القرص. تتيح لك الوحدة تبسيط عملية تصحيح الأخطاء واختبار التطبيقات وأنظمة التخزين المختلفة في مواجهة حالات الفشل المحتملة؛
    • تم تنفيذها تحسينات كبيرة في أداء برنامج جدولة الإدخال/الإخراج BFQ. في ظروف تحميل الإدخال/الإخراج العالي، تم إجراء التحسينات سماح تقليل وقت العمليات مثل تشغيل التطبيقات بنسبة تصل إلى 80%.
    • تمت إضافة سلسلة من استدعاءات النظام لتركيب أنظمة الملفات: فسوبين (), open_tree(), فسبيك (), فسماونت (), فسكونفيغ () и move_mount(). تسمح لك استدعاءات النظام هذه بمعالجة مراحل مختلفة من التثبيت بشكل منفصل (معالجة الكتلة الفائقة، والحصول على معلومات حول نظام الملفات، والتركيب، والإرفاق بنقطة التثبيت)، والتي تم تنفيذها مسبقًا باستخدام استدعاء النظام mount() العام. توفر الاستدعاءات المنفصلة القدرة على تنفيذ سيناريوهات تحميل أكثر تعقيدًا وإجراء عمليات منفصلة مثل إعادة تكوين الكتلة الفائقة وتمكين الخيارات وتغيير نقطة التثبيت والانتقال إلى مساحة اسم مختلفة. بالإضافة إلى ذلك، تسمح لك المعالجة المنفصلة بتحديد أسباب إخراج رموز الأخطاء بدقة وتعيين مصادر متعددة لأنظمة الملفات متعددة الطبقات، مثل التراكبات؛
    • تمت إضافة عملية جديدة IORING_OP_SYNC_FILE_RANGE إلى الواجهة للإدخال/الإخراج غير المتزامن io_uring، والتي تنفذ إجراءات مكافئة لاستدعاء النظام sync_file_range()وقم أيضًا بتنفيذ القدرة على تسجيل eventsfd في io_uring وتلقي إشعارات حول اكتمال العمليات؛
    • بالنسبة لنظام الملفات CIFS، تمت إضافة FIEMAP ioctl، مما يوفر تعيينًا فعالاً للمدى، بالإضافة إلى دعم وضعي SEEK_DATA وSEEK_HOLE؛
    • في النظام الفرعي FUSE مقترح واجهة برمجة التطبيقات (API) لإدارة التخزين المؤقت للبيانات؛
    • قامت Btrfs بتحسين تنفيذ qgroups وتحسين سرعة تنفيذ fsync للملفات ذات الروابط الثابتة المتعددة. تم تحسين رمز التحقق من سلامة البيانات، والذي يأخذ في الاعتبار الآن الضرر المحتمل للمعلومات الموجودة في ذاكرة الوصول العشوائي (RAM) قبل تدفق البيانات إلى القرص؛
    • أضاف CEPH دعمًا لتصدير اللقطات عبر NFS؛
    • تم تحسين تنفيذ تثبيت NFSv4 في الوضع "الناعم" (في حالة حدوث خطأ في الوصول إلى الخادم في الوضع "الناعم"، يتم استدعاء رمز خطأ على الفور، وفي الوضع "الصعب" لا يتم توفير التحكم حتى يتم تنفيذ FS تتم استعادة التوفر أو المهلة). يوفر الإصدار الجديد معالجة أكثر دقة للمهلة، واسترداد أسرع للأعطال، وخيار تحميل "أكثر ليونة" جديدًا يسمح لك بتغيير رمز الخطأ (ETIMEDOUT) الذي يتم إرجاعه عند انتهاء المهلة؛
    • تسمح واجهة nfsdcld API، المصممة لتتبع حالة عملاء NFS، لخادم NFS بتتبع حالة العميل بشكل صحيح عند إعادة التشغيل. وبالتالي، يمكن الآن أن يعمل البرنامج الخفي nfsdcld كمعالج nfsdcltrack؛
    • بالنسبة لأفس مضاف مضاهاة أقفال نطاق البايت في الملفات (قفل نطاق البايت);
  • المحاكاة الافتراضية والأمن
    • تم العمل على إزالة الأماكن في النواة التي تسمح بتنفيذ التعليمات البرمجية من مناطق الذاكرة المنعكسة القابلة للكتابة، مما يسمح بسد الثغرات المحتملة التي يمكن استغلالها أثناء الهجوم؛
    • تمت إضافة معلمة سطر أوامر kernel جديدة "mitigations ="، مما يوفر طريقة مبسطة للتحكم في تمكين تقنيات معينة للحماية من الثغرات الأمنية المرتبطة بالتنفيذ التخميني للتعليمات على وحدة المعالجة المركزية. يؤدي تمرير "mitigations=off" إلى تعطيل كافة الأساليب الموجودة، كما يعمل الوضع الافتراضي "mitigations=auto" على تمكين الحماية ولكنه لا يؤثر على استخدام Hyper Threading. يعمل الوضع "mitigations=auto,nosmt" أيضًا على تعطيل Hyper Threading إذا كانت طريقة الحماية مطلوبة.
    • أضيفت بواسطة دعم التوقيع الرقمي الإلكتروني وفقًا لـ GOST R 34.10-2012 (RFC 7091، ISO/IEC 14888-3)، متطور فيتالي تشيكونوف من Basalt SPO. تمت إضافة دعم لـ AES128-CCM إلى تطبيق TLS الأصلي. تمت إضافة دعم لخوارزميات AEAD إلى وحدة crypto_simd؛
    • في ككونفيغ مضاف قسم "تصلب النواة" المنفصل مع خيارات لتعزيز حماية النواة. حاليًا، يحتوي القسم الجديد فقط على إعدادات تمكين المكونات الإضافية لتحسين التحقق في دول مجلس التعاون الخليجي؛
    • رمز النواة تقريبا تم التوصيل من بيانات الحالة غير القابلة للكسر في المحول (بدون عودة أو انقطاع بعد كل كتلة حالة). يبقى إصلاح 32 حالة من أصل 2311 حالة لاستخدام هذا المفتاح، وبعد ذلك سيكون من الممكن استخدام وضع "-Wimplicit-fallthrough" عند بناء النواة؛
    • بالنسبة لبنية PowerPC، تم تنفيذ دعم آليات الأجهزة للحد من مسارات وصول kernel غير المرغوب فيها إلى البيانات الموجودة في مساحة المستخدم؛
    • تمت إضافة رمز الحظر الهجمات فئة MDS (أخذ عينات البيانات المعمارية الدقيقة) في معالجات Intel. يمكنك التحقق مما إذا كان النظام عرضة للثغرات الأمنية من خلال متغير SysFS "/sys/devices/system/cpu/vulnerabilities/mds". متاح وضعان للحماية: كامل، والذي يتطلب تحديث الكود الصغير، والتجاوز، والذي لا يضمن تمامًا مسح المخازن المؤقتة لوحدة المعالجة المركزية عند نقل التحكم إلى مساحة المستخدم أو نظام الضيف. للتحكم في أوضاع الحماية، تمت إضافة المعلمة "mds=" إلى النواة، والتي يمكن أن تأخذ القيم "full"، "full،nosmt" (+ تعطيل Hyper-Threads) و"off"؛
    • في أنظمة x86-64، تمت إضافة حماية "صفحة حماية المكدس" لـ IRQ وآليات تصحيح الأخطاء ومعالجات الاستثناءات، وجوهرها هو استبدال صفحات الذاكرة على الحدود بالمكدس، مما يؤدي الوصول إليه إلى إنشاء ملف استثناء (خطأ الصفحة)؛
    • تمت إضافة إعداد sysctl vm.unprivileged_userfaultfd، الذي يتحكم في قدرة العمليات غير المميزة على استخدام استدعاء النظام userfaultfd()؛
  • النظام الفرعي للشبكة
    • أضيفت بواسطة دعم بوابة IPv6 لمسارات IPv4. على سبيل المثال، يمكنك الآن تحديد قواعد التوجيه مثل "ip ro add 172.16.1.0/24 via inet6 2001:db8::1 dev eth0"؛
    • بالنسبة لـ ICMPv6، يتم تنفيذ استدعاءات ioctl icmp_echo_ignore_anycast وicmp_echo_ignore_multicast لتجاهل ICMP ECHO لأي بث و
      عناوين البث المتعدد. أضيفت بواسطة القدرة على الحد من كثافة معالجة حزم ICMPv6؛

    • بالنسبة لبروتوكول شبكة BATMAN (نهج أفضل للشبكات المتنقلة المخصصة)، والذي يسمح بإنشاء شبكات لا مركزية يتم فيها توصيل كل عقدة من خلال العقد المجاورة، مضاف دعم البث من البث المتعدد إلى البث الأحادي، بالإضافة إلى القدرة على التحكم عبر sysfs؛
    • في إثتول مضاف معلمة Fast Link Down جديدة، والتي تسمح لك بتقليل الوقت المستغرق لتلقي معلومات حول حدث تعطل الارتباط لـ 1000BaseT (في الظروف العادية، يصل التأخير إلى 750 مللي ثانية)؛
    • ظهرت فرصة ربط أنفاق Foo-Over-UDP بعنوان محدد أو واجهة شبكة أو مقبس (تم الربط سابقًا فقط بواسطة قناع مشترك)؛
    • في المكدس اللاسلكي مؤمن إمكانية تنفيذ معالجات
      OWE (التشفير اللاسلكي الانتهازي) في مساحة المستخدم؛

    • في Netfilter، تمت إضافة دعم عائلة عنوان inet إلى سلاسل nat (على سبيل المثال، يمكنك الآن استخدام قاعدة ترجمة واحدة لمعالجة ipv4 وipv6، دون فصل قواعد ipv4 وipv6)؛
    • في نت لينك مضاف طريقة صارم للتحقق الصارم من صحة جميع الرسائل والسمات، حيث لا يُسمح بتجاوز الحجم المتوقع للسمات ويحظر إضافة بيانات إضافية في نهاية الرسائل؛
  • خدمات الذاكرة والنظام
    • تمت إضافة علامة CLONE_PIDFD إلى استدعاء النظام clone()، وعند تحديده، يتم إرجاع واصف الملف "pidfd" المحدد مع العملية الفرعية التي تم إنشاؤها إلى العملية الأصلية. على سبيل المثال، يمكن استخدام واصف الملف هذا لإرسال الإشارات دون الخوف من الوقوع في حالة سباق (مباشرة بعد إرسال الإشارة، قد يتم تحرير معرف PID المستهدف بسبب إنهاء العملية وشغله بعملية أخرى)؛
    • بالنسبة للإصدار الثاني من مجموعات التحكم، تمت إضافة وظيفة وحدة التحكم في الفريزر، والتي يمكنك من خلالها إيقاف العمل في مجموعة التحكم وتحرير بعض الموارد مؤقتًا (وحدة المعالجة المركزية، والإدخال/الإخراج، وربما حتى الذاكرة) لأداء مهام أخرى. تتم الإدارة من خلال ملفات التحكم cgroup.freeze وcgroup.events الموجودة في شجرة cgroup. يؤدي الإدخال 1 في cgroup.freeze إلى تجميد العمليات في مجموعة cgroup الحالية وجميع المجموعات الفرعية. وبما أن التجميد يستغرق بعض الوقت، يتم توفير ملف cgroup.events إضافي يمكنك من خلاله معرفة اكتمال العملية؛
    • مؤمن تصدير سمات الذاكرة المرتبطة بكل عقدة في sysfs، مما يسمح لك بتحديد طبيعة معالجة بنوك الذاكرة من مساحة المستخدم في الأنظمة ذات الذاكرة غير المتجانسة؛
    • تم تحسين النظام الفرعي PSI (معلومات توقف الضغط)، والذي يسمح لك بتحليل المعلومات حول وقت الانتظار لتلقي موارد مختلفة (وحدة المعالجة المركزية، الذاكرة، الإدخال/الإخراج) لمهام معينة أو مجموعات من العمليات في مجموعة التحكم. باستخدام PSI، يمكن لمعالجات مساحة المستخدم تقدير مستوى حمل النظام وأنماط التباطؤ بشكل أكثر دقة مقارنة بمتوسط ​​التحميل. يوفر الإصدار الجديد دعمًا لتعيين حدود الحساسية والقدرة على استخدام استدعاء poll() لتلقي إشعار بأن العتبات المحددة قد تم تشغيلها لفترة زمنية معينة. تتيح هذه الميزة لنظام Android مراقبة نقص الذاكرة في مرحلة مبكرة، وتحديد مصدر المشكلات وإنهاء التطبيقات غير المهمة دون التسبب في مشكلات ملحوظة للمستخدم. عند اختبار الإجهاد، أظهرت أدوات مراقبة استهلاك الذاكرة المستندة إلى PSI نتائج إيجابية كاذبة أقل بـ 10 مرات مقارنة بإحصائيات الضغط الظاهري؛
    • تم تحسين التعليمات البرمجية الخاصة بفحص برامج BPF، مما يسمح بفحص البرامج الكبيرة بشكل أسرع بما يصل إلى 20 مرة. أتاح التحسين إمكانية رفع الحد الأقصى لحجم برامج BPF من 4096 إلى مليون تعليمات؛
    • لبرامج BPF ممنوح القدرة على الوصول إلى البيانات العالمية، مما يسمح لك بتحديد المتغيرات والثوابت العالمية في البرامج؛
    • وأضاف API، والذي يسمح لك بالتحكم في التغييرات في معلمات sysctl من برامج BPF؛
    • بالنسبة لبنية MIPS32، تم تنفيذ مترجم JIT للجهاز الظاهري eBPF؛
    • بالنسبة لبنية PowerPC 32 بت، تمت إضافة دعم لأداة تصحيح الأخطاء KASan (مطهر عنوان Kernel)، مما يساعد على تحديد الأخطاء عند العمل مع الذاكرة؛
    • في أنظمة x86-64، تمت إزالة القيود المفروضة على وضع عمليات تفريغ الحالة أثناء تعطل kernel (تفريغ الأعطال) في مناطق الذاكرة التي تزيد عن 896 ميجابايت؛
    • بالنسبة إلى بنية s390، يتم تنفيذ دعم التوزيع العشوائي لمساحة عنوان kernel (KASLR) والقدرة على التحقق من التوقيعات الرقمية عند تحميل kernel عبر kexec_file_load()؛
    • بالنسبة لبنية PA-RISC، تمت إضافة دعم لمصحح أخطاء kernel (KGDB)، وعلامات الانتقال، وkprobes؛
  • معدات
    • يشمل السائق كلس لوحدة معالجة الرسوميات Mali 400/450، المستخدمة في العديد من الشرائح القديمة المعتمدة على بنية ARM. بالنسبة لوحدات معالجة الرسوميات الأحدث من Mali، تمت إضافة برنامج تشغيل Panfrost، الذي يدعم الرقائق المستندة إلى البنى الدقيقة Midgard (Mali-T6xx، Mali-T7xx، Mali-T8xx) وBifrost (Mali G3x، G5x، G7x)؛
    • تمت إضافة دعم لأجهزة الصوت التي تستخدم البرامج الثابتة المفتوحة الصوت المفتوح البرامج الثابتة (SOF). على الرغم من توفر برامج التشغيل المفتوحة، ظل رمز البرنامج الثابت لرقائق الصوت مغلقًا وتم توفيره في شكل ثنائي. تم تطوير مشروع Sound Open Firmware بواسطة شركة Intel لإنشاء برامج ثابتة مفتوحة لشرائح DSP المتعلقة بمعالجة الصوت (انضمت Google لاحقًا إلى التطوير). حاليًا، أعد المشروع بالفعل اكتشاف البرامج الثابتة لرقائق الصوت لمنصات Intel Baytrail وCherryTrail وBroadwell وApolloLake وGeminiLake وCannonLake وIceLake؛
    • يضيف برنامج تشغيل Intel DRM (i915) دعمًا للرقائق
      الخارتليك (تكوين 11). تمت إضافة معرفات PCI لرقائق Comet Lake (Gen9). تم تثبيت دعم شرائح Icelake، والتي تمت إضافة معرفات أجهزة PCI إضافية لها أيضًا.
      متضمنة
      وضع التبديل غير المتزامن بين مخزنين مؤقتين في ذاكرة الفيديو (القلب غير المتزامن) عند إجراء عمليات الكتابة عبر mmio، مما أدى إلى زيادة كبيرة في أداء بعض التطبيقات ثلاثية الأبعاد (على سبيل المثال، زاد الأداء في اختبار 3DMark Ice Storm بنسبة 3-300٪). تمت إضافة الدعم التكنولوجي HDCP2.2 (حماية المحتوى الرقمي ذي النطاق الترددي العالي) لتشفير إشارات الفيديو المنقولة عبر HDMI؛

    • برنامج تشغيل amdgpu لوحدة معالجة الرسومات Vega20 مضاف دعم RAS (الموثوقية والتوافر وإمكانية الخدمة) والدعم التجريبي للنظام الفرعي SMU 11، الذي حل محل تقنية Powerplay. لوحدة معالجة الرسومات Vega12 مضاف دعم وضع BACO (Bus Active، Chip Off). تمت إضافة دعم أولي لـ XGMI، وهو ناقل عالي السرعة (PCIe 4.0) للاتصال البيني لوحدة معالجة الرسومات. تمت إضافة المعرفات المفقودة للبطاقات المستندة إلى Polaris10 GPU إلى برنامج تشغيل amdkfd؛
    • أضاف برنامج التشغيل Nouveau دعمًا للوحات المستندة إلى مجموعة شرائح NVIDIA Turing 117 (TU117، المستخدمة في GeForce GTX 1650). في
      kconfig مضاف الإعداد لتعطيل الوظائف القديمة التي لم تعد مستخدمة في الإصدارات الحالية من libdrm؛

    • تمت إضافة دعم لكائنات مزامنة "الخط الزمني" إلى واجهة برمجة تطبيقات DRM وبرنامج تشغيل amdgpu، مما يسمح لك بالاستغناء عن الحظر الكلاسيكي.
    • تم نقل برنامج تشغيل vboxvideo لوحدة معالجة الرسومات الافتراضية VirtualBox من فرع التدريج إلى البنية الرئيسية؛
    • تمت إضافة برنامج تشغيل سريع لشريحة GFX SoC ASPEED؛
    • تمت إضافة دعم لـ ARM SoC وIntel Agilex (SoCFPGA) وNXP i.MX8MM وAllwinner (RerVision H3-DVK (H3) وOceanic 5205 5inMFD وBeelink GS2 (H6) وOrange Pi 3 (H6)) وRockchip (Orange Pi) ) لوحات RK3399، Nanopi NEO4، Veyron-Mighty Chromebook)، Amlogic: SEI Robotics SEI510،
      اس تي مايكرو (stm32mp157a، stm32mp157c)، NXP (
      إيكلمان ci4x10 (i.MX6DL)،

      i.MX8MM EVK (i.MX8MM)،

      ZII i.MX7 RPU2 (i.MX7)،

      زيي SPB4 (VF610)،

      زيي الترا (i.MX8M)،

      تي كيو TQMa7S (i.MX7Solo)،

      تي كيو TQMa7D (i.MX7Dual)،

      كوبو أورا (i.MX50)،

      مينلوسيستمز M53 (i.MX53))، نفيديا جيتسون نانو (تيجرا T210).

وفي الوقت نفسه، قامت مؤسسة البرمجيات الحرة بأمريكا اللاتينية شكلت
خيار نواة مجانية تماما 5.2 - لينكس ليبر 5.2 جنو، تم مسحها من البرامج الثابتة وعناصر برنامج التشغيل التي تحتوي على مكونات غير حرة أو أقسام تعليمات برمجية، والتي يقتصر نطاقها من قبل الشركة المصنعة. الإصدار الجديد يتضمن تحميل الملفات
الصوت فتح البرامج الثابتة. تم تعطيل تحميل النقط في برامج التشغيل
mt7615، rtw88، rtw8822b، rtw8822c، btmtksdio، iqs5xx، ishtp وucsi_ccg. تم تحديث كود تنظيف النقطة الكبيرة في برامج التشغيل والأنظمة الفرعية ixp4xx وimx-sdma وamdgpu وnouveau وgoya، وكذلك في وثائق الرمز الصغير. توقف تنظيف النقط في برنامج التشغيل r8822be بسبب إزالته.

المصدر: opennet.ru

إضافة تعليق