إصدار Linux 5.9 kernel

بعد شهرين من تطوير لينوس تورفالدس المقدمة الافراج عن النواة لينكس شنومكس. من بين أبرز التغييرات: الحد من استيراد الرموز من الوحدات الاحتكارية إلى وحدات GPL، وتسريع عمليات تبديل السياق باستخدام تعليمات معالج FSGSBASE، ودعم ضغط صور kernel باستخدام Zstd، وإعادة صياغة أولويات الخيوط في kernel، ودعم PRP (بروتوكول التكرار المتوازي)، جدولة مدركة لعرض النطاق الترددي في جدولة الموعد النهائي، التعبئة الوقائية لصفحات الذاكرة، علامة القدرة CAP_CHECKPOINT_RESTOR، استدعاء نظام Close_range()، تحسينات أداء dm-crypt، إزالة التعليمات البرمجية لضيوف Xen PV 32 بت، ذاكرة لوحية جديدة آلية الإدارة، خيار "الإنقاذ" في Btrfs، دعم التشفير المضمن في ext4 وF2FS.

يتضمن الإصدار الجديد 16074 إصلاحًا من مطوري 2011،
حجم التصحيح - 62 ميجابايت (أثرت التغييرات على 14548 ملفًا، وتمت إضافة 782155 سطرًا من التعليمات البرمجية، وتم حذف 314792 سطرًا). حوالي 45٪ من إجمالي ما تم تقديمه في 5.9
ترتبط التغييرات ببرامج تشغيل الأجهزة، حوالي 15٪ من التغييرات لها
الموقف تجاه تحديث التعليمات البرمجية الخاصة ببنيات الأجهزة، 13%
تتعلق بمكدس الشبكة و 3٪ لأنظمة الملفات و 3٪ للداخلية
الأنظمة الفرعية للنواة.

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

  • خدمات الذاكرة والنظام
    • تشديد الحماية ضد استخدام طبقات GPL لربط برامج التشغيل الخاصة بمكونات kernel المصدرة فقط للوحدات النمطية بموجب ترخيص GPL. تم الآن توريث علامة TAINT_PROPRIETARY_MODULE في كافة الوحدات النمطية التي تستورد الرموز من الوحدات النمطية التي تحتوي على هذه العلامة. إذا حاولت وحدة GPL استيراد رموز من وحدة غير تابعة لـ GPL، فسترث وحدة GPL هذه العلامة TAINT_PROPRIETARY_MODULE ولن تتمكن من الوصول إلى مكونات kernel المتاحة فقط للوحدات المرخصة بواسطة GPL، حتى لو كانت الوحدة قد استوردت رموزًا مسبقًا من فئة "gplonly". لم يتم تنفيذ القفل العكسي (تصدير EXPORT_SYMBOL_GPL فقط في الوحدات النمطية التي استوردت EXPORT_SYMBOL_GPL)، والذي قد يعطل عمل برامج التشغيل الخاصة (يتم توريث علامة الوحدة الخاصة فقط، ولكن ليس روابط GPL).
    • أضيفت بواسطة دعم محرك kcompactd لـ صفحات الذاكرة التعبئة المسبقة في الخلفية لزيادة عدد صفحات الذاكرة الكبيرة المتوفرة للنواة. وفقًا للتقديرات الأولية، يمكن أن يؤدي التغليف في الخلفية، بتكلفة الحد الأدنى من النفقات العامة، إلى تقليل التأخير عند تخصيص صفحات ذاكرة كبيرة (صفحة ضخمة) بمقدار 70-80 مرة مقارنة بآلية التغليف المستخدمة سابقًا، والتي يتم إطلاقها عند الحاجة (عند الطلب) ). لتعيين حدود التجزئة الخارجية التي سيوفرها kcompactd، تمت إضافة sysctl vm.compaction_proactiveness.
    • أضيفت بواسطة دعم ضغط الصور النواة باستخدام الخوارزمية زستاندارد (زستد).
    • تم تنفيذ دعم تعليمات المعالج لأنظمة x86 FSGSBASE، والذي يسمح لك بقراءة وتغيير محتويات سجلات FS/GS من مساحة المستخدم. في النواة، يتم استخدام FSGSBASE لتسريع عمليات تبديل السياق عن طريق إزالة عمليات كتابة MSR غير الضرورية لـ GSBASE، وفي مساحة المستخدم يتجنب استدعاءات النظام غير الضرورية لتغيير FS/GS.
    • وأضاف تسمح لك المعلمة "allow_writes" بحظر التغييرات على سجلات MSR الخاصة بالمعالج من مساحة المستخدم وتقييد الوصول إلى محتويات هذه السجلات لقراءة العمليات، حيث أن تغيير MSR يمكن أن يؤدي إلى مشاكل. افتراضيًا، لم يتم تعطيل الكتابة بعد، وتنعكس التغييرات التي يتم إجراؤها على MSR في السجل، ولكن من المخطط في المستقبل تبديل الوصول الافتراضي إلى وضع القراءة فقط.
    • إلى واجهة الإدخال/الإخراج غير المتزامنة io_uring تمت إضافة الدعم الكامل لعمليات القراءة المخزنة مؤقتًا غير المتزامنة التي لا تتطلب مؤشرات ترابط kernel. من المتوقع دعم التسجيل في إصدار مستقبلي.
    • في الموعد النهائي لجدولة الإدخال/الإخراج مُنفّذ التخطيط على أساس القدرات، السماح اتخاذ القرارات الصحيحة بشأن الأنظمة غير المتماثلة مثل الأنظمة القائمة على ARM DynamIQ و big.LITTLE، والتي تجمع بين مراكز وحدة المعالجة المركزية القوية والأقل كفاءة في استخدام الطاقة في شريحة واحدة. على وجه الخصوص، يسمح لك الوضع الجديد بتجنب عدم تطابق الجدولة عندما لا يكون لدى وحدة المعالجة المركزية البطيئة الموارد المناسبة لإكمال المهمة في الوقت المحدد.
    • نموذج استهلاك الطاقة في النواة (إطار نموذج الطاقة) موجود الآن يصف لا يقتصر الأمر على سلوك استهلاك طاقة وحدة المعالجة المركزية فحسب، بل يشمل أيضًا الأجهزة الطرفية.
    • تم تنفيذ استدعاء النظام Close_range() للسماح لعملية ما بإغلاق نطاق كامل من واصفات الملفات المفتوحة مرة واحدة.
    • من تنفيذ وحدة التحكم النصية وبرنامج تشغيل fbcon تمت إزالة الرمز، والذي يوفر القدرة على تمرير النص للخلف برمجيًا (CONFIG_VGACON_SOFT_SCROLLBACK) بما يزيد عن مقدار ذاكرة الفيديو في وضع النص VGA.
    • أعيد تصميمها خوارزمية لتعيين الأولويات لسلاسل العمليات داخل النواة. يوفر الخيار الجديد تناسقًا أفضل عبر جميع أنظمة kernel الفرعية عند تعيين الأولويات للمهام في الوقت الفعلي.
    • تمت إضافة النظام sched_uclamp_util_min_rt_default للتحكم في إعدادات تعزيز وحدة المعالجة المركزية للمهام في الوقت الفعلي (على سبيل المثال، يمكنك تغيير سلوك المهام في الوقت الفعلي بسرعة لتوفير الطاقة بعد التبديل إلى طاقة البطارية أو على الأنظمة المحمولة).
    • تم إجراء الاستعدادات لتنفيذ الدعم لتقنية الصفحات الضخمة الشفافة في ذاكرة التخزين المؤقت للصفحة.
    • يطبق محرك fanotify علامتين جديدتين FAN_REPORT_NAME وFAN_REPORT_DIR_FID للإبلاغ عن اسم الأصل ومعلومات FID الفريدة عند حدوث أحداث الإنشاء أو الحذف أو الحركة لعناصر الدليل والكائنات غير التابعة للدليل.
    • لمجموعات التحكم مُنفّذ وحدة تحكم جديدة في ذاكرة اللوح، والتي تتميز بنقل محاسبة اللوح من مستوى صفحة الذاكرة إلى مستوى كائن kernel، مما يجعل من الممكن مشاركة صفحات اللوح في مجموعات cgroups مختلفة، بدلاً من تخصيص ذاكرة تخزين مؤقت لوحية منفصلة لكل مجموعة cgroup. يتيح النهج المقترح زيادة كفاءة استخدام اللوحة، وتقليل حجم الذاكرة المستخدمة للبلاطة بنسبة 30-45%، وتقليل استهلاك الذاكرة الإجمالي للنواة بشكل كبير وتقليل تجزئة الذاكرة.
    • في النظام الفرعي للصوت ALSA и كومة USB، وفقا لل اعتمد مؤخرا توصيات بشأن استخدام المصطلحات الشاملة في نواة لينكس، وتم تنظيف المصطلحات غير الصحيحة سياسيًا. تمت إزالة الكود من الكلمات "التابع" و"الرئيسي" و"القائمة السوداء" و"القائمة البيضاء".
  • المحاكاة الافتراضية والأمن
    • عند بناء النواة باستخدام مترجم Clang ظهر القدرة على تكوين (CONFIG_INIT_STACK_ALL_ZERO) التهيئة التلقائية إلى الصفر لجميع المتغيرات المخزنة على المكدس (عند البناء، حدد "-ftrivial-auto-var-init=zero").
    • في النظام الفرعي seccomp، عند استخدام وضع التحكم في العملية في مساحة المستخدم، مضاف فرصة استبدال واصفات الملفات في العملية المراقبة لمحاكاة استدعاءات النظام بشكل كامل والتي تؤدي إلى إنشاء واصفات الملفات. الوظيفة مطلوبة في أنظمة الحاويات المعزولة وتطبيقات وضع الحماية لمتصفح Chrome.
    • بالنسبة لمعماريتي xtensa وcsky، تمت إضافة دعم للحد من مكالمات النظام باستخدام النظام الفرعي seccomp. بالنسبة إلى Xtensa، يتم أيضًا تنفيذ دعم آلية التدقيق.
    • وأضاف علامة القدرة الجديدة CAP_CHECKPOINT_RESTORE، والتي تتيح لك توفير الوصول إلى الإمكانات المتعلقة بتجميد حالة العمليات واستعادتها دون نقل امتيازات إضافية.
    • يوفر لك مجلس التعاون الخليجي 11 كافة الميزات التي تحتاج إليها
      أداة تصحيح الأخطاء KCSAN (Kernel Concurrency Sanitizer)، المصممة للكشف ديناميكيًا عن حالات السباق داخل النواة. وبالتالي، يمكن الآن استخدام KCSAN مع النوى المبنية في دول مجلس التعاون الخليجي.

    • لـ AMD Zen ونماذج وحدة المعالجة المركزية الأحدث مضاف دعم تقنية P2PDMA، والتي تتيح لك استخدام DMA لنقل البيانات مباشرة بين ذاكرة جهازين متصلين بناقل PCI.
    • تمت إضافة وضع إلى dm-crypt يسمح لك بتقليل زمن الوصول عن طريق إجراء معالجة بيانات التشفير دون استخدام قوائم انتظار العمل. هذا الوضع ضروري أيضًا للتشغيل الصحيح مخصصة أجهزة الكتل (الأجهزة ذات المناطق التي يجب كتابتها بالتتابع، وتحديث مجموعة الكتل بأكملها). تم العمل على زيادة الإنتاجية وتقليل زمن الوصول في dm-crypt.
    • تمت إزالة التعليمات البرمجية لدعم ضيوف 32 بت الذين يعملون في وضع المحاكاة الافتراضية الذين يقومون بتشغيل برنامج Hypervisor Xen. يجب على مستخدمي هذه الأنظمة التبديل إلى استخدام نواة 64 بت في بيئات الضيف أو استخدام أوضاع المحاكاة الافتراضية الكاملة (HVM) أو المدمجة (PVH) بدلاً من المحاكاة الافتراضية (PV) لتشغيل البيئات.
  • نظام القرص الفرعي ، I / O وأنظمة الملفات
    • على نظام الملفات Btrfs مُنفّذ خيار التثبيت "الإنقاذ" الذي يوحد الوصول إلى جميع خيارات الاسترداد الأخرى. تمت إزالة دعم خياري "alloc_start" و"subvolrootid"، كما تم إهمال خيار "inode_cache". تم إجراء تحسينات على الأداء، وخاصة تسريع تنفيذ عمليات fsync() بشكل ملحوظ. أضيفت بواسطة القدرة على استخدام أنواع بديلة من المجاميع الاختبارية بخلاف CRC32c.
    • أضيفت بواسطة القدرة على استخدام التشفير المضمن (التشفير المضمن) في أنظمة الملفات ext4 وF2FS، لتمكين خيار التثبيت "inlinecrypt". يتيح لك وضع التشفير المضمن استخدام آليات التشفير المضمنة في وحدة التحكم في المحرك، والتي تعمل على تشفير وفك تشفير الإدخال/الإخراج بشفافية.
    • في اكس اف اس مؤمن إعادة تعيين inode (تدفق) في وضع غير متزامن تمامًا لا يمنع العمليات عند إجراء عملية تنظيف الذاكرة. تم حل مشكلة الحصة طويلة الأمد التي تسببت في تتبع تحذيرات الحد الناعم وحدود inode بشكل غير صحيح. التنفيذ الموحد لدعم DAX لـ ext4 وxfs.
    • في تحويلة 4 مُنفّذ التحميل المسبق للصور النقطية لتخصيص الكتلة. إلى جانب الحد من فحص المجموعات غير المهيأة، أدى التحسين إلى تقليل الوقت اللازم لتركيب أقسام كبيرة جدًا.
    • في F2FS مضاف ioctl F2FS_IOC_SEC_TRIM_FILE، والذي يسمح لك باستخدام أوامر TRIM/discard لإعادة تعيين البيانات المحددة فعليًا في ملف، على سبيل المثال، لحذف مفاتيح الوصول دون ترك البيانات المتبقية على محرك الأقراص.
      في F2FS أيضا مضاف وضع تجميع البيانات المهملة الجديد GC_URGENT_LOW، والذي يعمل بقوة أكبر من خلال إزالة بعض عمليات التحقق من وجوده في حالة الخمول قبل بدء تشغيل أداة تجميع البيانات المهملة.

    • في ذاكرة التخزين المؤقت bcache، تمت زيادة حجم الجرافة للنطاقات من 16 إلى 32 بت استعدادًا لتمكين ذاكرة التخزين المؤقت للأجهزة المخصصة للمنطقة.
    • تمت إضافة القدرة على استخدام التشفير المضمن استنادًا إلى تشفير الأجهزة المضمن الذي توفره وحدات تحكم UFS إلى نظام SCSI الفرعي (فلاش التخزين العالمي).
    • تمت إضافة معلمة سطر أوامر kernel جديدة "debugfs"، والتي تسمح لك بالتحكم في توفر FS الزائف الذي يحمل نفس الاسم.
    • يوفر عميل NFSv4.2 الدعم لسمات الملف الموسعة (xattr).
    • في غبار دي إم مضاف واجهة لعرض قائمة بجميع الكتل السيئة التي تم تحديدها على القرص في وقت واحد ("رسالة dmsetup Dust1 0 listbadblocks").
    • بالنسبة إلى md/raid5، تمت إضافة المعلمة /sys/block/md1/md/stripe_size لتكوين حجم كتلة STRIPE.
    • لأجهزة تخزين NVMe مضاف دعم أوامر تقسيم مناطق محرك الأقراص (ZNS، NVM Express Zoned Namespace)، والذي يسمح لك بتقسيم مساحة التخزين إلى مناطق تشكل مجموعات من الكتل لمزيد من التحكم الكامل في وضع البيانات على محرك الأقراص.
  • النظام الفرعي للشبكة
    • في نتفلتر مضاف القدرة على رفض الحزم في المرحلة التي تسبق فحص التوجيه (يمكن الآن استخدام تعبير الرفض ليس فقط في سلاسل INPUT وFORWARD وOUTPUT، ولكن أيضًا في مرحلة PREROUTING لـ icmp وtcp).
    • في طاولات مضاف القدرة على تدقيق الأحداث المتعلقة بتغييرات التكوين.
    • في nftables في netlink API مضاف دعم السلاسل المجهولة، التي يتم تعيين اسمها ديناميكيًا بواسطة النواة. عندما تقوم بحذف قاعدة مرتبطة بسلسلة مجهولة، يتم حذف السلسلة نفسها تلقائيًا.
    • يضيف BPF دعمًا للمكررات لاجتياز عناصر المصفوفات الترابطية (الخرائط) وتصفيتها وتعديلها دون نسخ البيانات إلى مساحة المستخدم. يمكن استخدام التكرارات لمقابس TCP وUDP، مما يسمح لبرامج BPF بالتكرار على قوائم المقابس المفتوحة واستخراج المعلومات التي تحتاجها منها.
    • تمت إضافة نوع جديد من برنامج BPF BPF_PROG_TYPE_SK_LOOKUP، والذي يتم تشغيله عندما تبحث النواة عن مقبس استماع مناسب لاتصال وارد. باستخدام برنامج BPF مثل هذا، يمكنك إنشاء معالجات تتخذ قرارات بشأن المقبس الذي يجب أن يرتبط به الاتصال، دون التقيد باستدعاء النظام bind(). على سبيل المثال، يمكنك ربط مأخذ توصيل واحد بمجموعة من العناوين أو المنافذ. بالإضافة إلى ذلك، تمت إضافة دعم علامة SO_KEEPALIVE إلى bpf_setsockopt() وتم تنفيذ القدرة على تثبيت معالجات BPF_CGROUP_INET_SOCK_RELEASE، التي يتم استدعاؤها عند تحرير مأخذ التوصيل.
    • تم تنفيذ دعم البروتوكول العلاج بالبلازما الغنية بالصفائح (PRP) (بروتوكول التكرار المتوازي)، والذي يسمح بالتبديل المعتمد على الإيثرنت إلى قناة احتياطية، شفافة للتطبيقات، في حالة فشل أي من مكونات الشبكة.
    • كومة mac80211 مضاف دعم تفاوض قناة WPA/WPA2-PSK رباعي المراحل في وضع نقطة الوصول.
    • تمت إضافة القدرة على تبديل برنامج جدولة qdisc (نظام قائمة الانتظار) لاستخدام خوارزمية إدارة قائمة انتظار الشبكة FQ-PIE (Flow Queue PIE) بشكل افتراضي، بهدف تقليل التأثير السلبي للتخزين المؤقت للحزم المتوسطة على معدات الشبكة الطرفية (bufferbloat) في الشبكات ذات أجهزة المودم الكابلية.
    • تمت إضافة ميزات جديدة إلى MPTCP (MultiPath TCP)، وهي امتدادات لبروتوكول TCP لتنظيم تشغيل اتصال TCP مع تسليم الحزم في وقت واحد عبر عدة مسارات عبر واجهات شبكة مختلفة مرتبطة بعناوين IP مختلفة. تمت إضافة دعم لملفات تعريف الارتباط المتزامنة وDATA_FIN والضبط التلقائي للمخزن المؤقت وتشخيصات مأخذ التوصيل وإشارات REUSEADDR وREUSEPORT وV6ONLY في setsockopt.
    • بالنسبة لجداول التوجيه الافتراضية VRF (التوجيه والتوجيه الافتراضي)، والتي تسمح بتنظيم تشغيل عدة مجالات توجيه على نظام واحد، تم تنفيذ الوضع "الصارم". في هذا الوضع، لا يمكن ربط الجدول الظاهري إلا بجدول توجيه غير مستخدم في جداول افتراضية أخرى.
    • برنامج التشغيل اللاسلكي هو ath11k مضاف دعم تردد 6 جيجا هرتز و المسح الطيفي.
  • معدات
    • تمت إزالة التعليمات البرمجية لدعم بنية UniCore، التي تم تطويرها في مركز المعالجات الدقيقة بجامعة بكين وتم تضمينها في نواة Linux في عام 2011. لم تتم صيانة هذه البنية منذ عام 2014 ولا تحظى بأي دعم في دول مجلس التعاون الخليجي.
    • تم تنفيذ دعم بنية RISC-V ككوف (واجهة debugfs لتحليل تغطية كود kernel)، وkmemleak (نظام كشف تسرب الذاكرة)، وحماية المكدس، وعلامات الانتقال، والعمليات التي لا تتوقف (تعدد المهام بشكل مستقل عن إشارات المؤقت).
    • بالنسبة لبنية PowerPC، تم تنفيذ دعم قوائم انتظار Spinlock، مما أدى إلى تحسين الأداء بشكل ملحوظ في حالات تعارض القفل.
    • بالنسبة لبنيتي ARM وARM64، يتم تمكين آلية تنظيم تردد المعالج افتراضيًا جدولة (محافظ cpufreq)، والذي يستخدم المعلومات مباشرة من برنامج جدولة المهام لاتخاذ قرار بشأن تغيير التردد ويمكنه الوصول على الفور إلى برامج تشغيل cpufreq لتغيير التردد بسرعة، وضبط معلمات تشغيل وحدة المعالجة المركزية على الفور حسب الحمل الحالي.
    • يتضمن برنامج تشغيل i915 DRM لبطاقات الرسومات Intel دعمًا للرقائق المستندة إلى البنية الدقيقة روكيت ليك وأضاف الدعم الأولي للبطاقات المنفصلة إنتل اكس دي جي 1.
    • أضاف برنامج تشغيل Amdgpu الدعم الأولي لوحدات معالجة الرسومات AMD نافي 21 (البحرية المفلطحة) و نافي 22 (سيينا سيشليد). تمت إضافة دعم لمحركات تسريع تشفير وفك تشفير الفيديو UVD/VCE لوحدة معالجة الرسومات في الجزر الجنوبية (Radeon HD 7000).
      تمت إضافة خاصية تدوير الشاشة بمقدار 90 أو 180 أو 270 درجة.

      ومن المثير للاهتمام، برنامج تشغيل AMD GPU هو أكبر محرك في النواة - فهو يحتوي على حوالي 2.71 مليون سطر من التعليمات البرمجية، وهو ما يقرب من 10% من إجمالي حجم النواة (27.81 مليون سطر). في الوقت نفسه، يتم احتساب 1.79 مليون سطر من خلال ملفات الرأس التي تم إنشاؤها تلقائيا مع بيانات سجلات GPU، ورمز C هو 366 ألف سطر (للمقارنة، يتضمن برنامج تشغيل Intel i915 209 ألف سطر، و Nouveau - 149 ألف).

    • في سائق نوفو مضاف دعم التحقق من سلامة الإطار تلو الآخر باستخدام لجنة حقوق الطفل (فحص التكرار الدوري) في محركات العرض NVIDIA GPU. يعتمد التنفيذ على الوثائق المقدمة من NVIDIA.
    • تمت إضافة برامج تشغيل لألواح LCD: Frida FRD350H54004، وKOE TX26D202VM0BWA، وCDTech S070PWS19HP-FC21، وCDTech S070SWV29HG-DC44، وTianma TM070JVHG33، وXingbangda XBD599.
    • يدعم النظام الفرعي الصوتي ALSA إنتل التدفق الصامت (وضع الطاقة المستمر لأجهزة HDMI الخارجية للتخلص من التأخير عند بدء التشغيل) و جهاز جديد للتحكم في إضاءة أزرار تفعيل الميكروفون وكتم الصوت، كما تمت إضافة دعم للمعدات الجديدة بما في ذلك وحدة التحكم لونغسون 7A1000.
    • دعم إضافي للوحات والأجهزة والمنصات ARM: Pine64 PinePhone v1.2 وLenovo IdeaPad Duet 10.1 وASUS Google Nexus 7 وAcer Iconia Tab A500 وQualcomm Snapdragon SDM630 (المستخدم في Sony Xperia 10 و10 Plus وXA2 وXA2 Plus وXA2) Ultra)، Jetson Xavier NX، Amlogic WeTek Core2، Aspeed EthanolX، خمس لوحات جديدة تعتمد على NXP i.MX6، MikroTik RouterBoard 3011، Xiaomi Libra، Microsoft Lumia 950، Sony Xperia Z5، MStar، Microchip Sparx5، Intel Keem Bay، Amazon Alpine الإصدار 3، رينيساس RZ/G2H.

وفي الوقت نفسه، مؤسسة البرمجيات الحرة في أمريكا اللاتينية شكلت
خيار نواة مجانية تماما 5.9 - لينكس ليبر 5.9 جنو، تم مسحها من البرامج الثابتة وعناصر برنامج التشغيل التي تحتوي على مكونات غير حرة أو أقسام تعليمات برمجية، والتي يقتصر نطاقها من قبل الشركة المصنعة. يعمل الإصدار الجديد على تعطيل تحميل النقطة الكبيرة في برامج تشغيل WiFi rtw8821c وSoC MediaTek mt8183. تم تحديث كود تنظيف النقطة الكبيرة في Habanalabs وWilc1000 وamdgpu وmt7615 وi915 CSR وMellanox mlxsw (Spectrum3) وr8169 (rtl8125b-2) وبرامج تشغيل وأنظمة فرعية تعمل باللمس x86.

المصدر: opennet.ru

إضافة تعليق