zram
zram ، المعروف سابقًا باسم compcache ، هو وحدة نمطية لنواة لينكس تُستخدم لإنشاء جهاز كتلة مضغوط في ذاكرة الوصول العشوائي (RAM)، أي قرص RAM مع ضغط فوري للبيانات. يمكن استخدام جهاز الكتلة المُنشأ بواسطة zram كذاكرة تبديل أو كقرص RAM للأغراض العامة. الاستخدامان الأكثر شيوعًا لـ zram هما تخزين الملفات المؤقتة ( /tmp) وكجهاز تبديل. في البداية، كانت وظيفة zram تقتصر على التبديل، ومن هنا جاء الاسم الأصلي "compcache" (ذاكرة التخزين المؤقت المضغوطة). عندما يكون جهاز كتلة zram فارغًا، فإنه يخصص حوالي 0.1% من حجمه. [ 1 ]
بعد أربع سنوات في مرحلة تطوير برامج تشغيل نواة لينكس، أُدرجت zram في نواة لينكس الرئيسية في الإصدار 3.14، الصادر في 30 مارس 2014. [ 2 ] بدءًا من الإصدار 3.15 (الصادر في 8 يونيو 2014)، تدعم zram عدة مسارات ضغط وخوارزميات ضغط متعددة . تشمل خوارزميات الضغط DEFLATE و LZ4 ( ضغط عالي) و LZO ( ترميز طول التشغيل) [ 3 ] و Zstandard و 842 . بدءًا من الإصدار 5.1، الخوارزمية الافتراضية هي 842 DEFLATE[ 3 ] ، والتي تحقق توازنًا بين السرعة ونسبة الضغط. وكما هو الحال مع معظم معلمات النظام الأخرى، يمكن اختيار خوارزمية الضغط عبر sysfs . [ 4 ]LZ4LZ4HCLZO-RLEZSTD842LZO-RLE
عند استخدام zram كمساحة تبديل مضغوطة، فإنه يُشبه zswap ، الذي لا يُعد قرص RAM للأغراض العامة، بل ذاكرة تخزين مؤقتة مضغوطة داخل النواة لصفحات التبديل. مع ذلك، يتطلب zswap دائمًا وحدة تخزين أساسية، [ 5 ] وهو ما لا ينطبق على zram. منذ إدخال CONFIG_ZRAM_WRITEBACKzram في إصدار النواة 4.14، أصبح بإمكانه أيضًا استخدام جهاز تخزين كوحدة تخزين أساسية، وبالتالي نقل الصفحات الأقل استخدامًا إلى القرص، مع العلم أن الجهاز لا يمكن أن يكون سوى قسم في الوقت الحالي [ 6 ] (ولا يمكن للنواة إدارة العملية تلقائيًا عند الحاجة إلى تحرير الذاكرة، بل تتطلب برمجة استباقية في مساحة المستخدم [ 7 ] ). منذ إصدار النواة 7.0، أصبح بإمكان zram إرسال البيانات إلى وحدة التخزين الأساسية دون فك ضغطها أولًا. [ 8 ]
عند استخدام zram (مثل zswap) للمبادلة، فإنه يسمح لنظام لينكس باستخدام ذاكرة الوصول العشوائي (RAM) بكفاءة أكبر، حيث يمكن لنظام التشغيل حينها تخزين صفحات ذاكرة أكثر في مساحة المبادلة المضغوطة مقارنةً باستخدام نفس مقدار ذاكرة الوصول العشوائي كذاكرة تطبيقات أو ذاكرة تخزين مؤقتة للقرص. ويكون هذا فعالاً بشكل خاص على الأجهزة ذات الذاكرة المحدودة. [ 9 ] [ 10 ] في عام 2012، درست أوبونتو لفترة وجيزة تفعيل zram افتراضيًا على أجهزة الكمبيوتر ذات سعة ذاكرة الوصول العشوائي الصغيرة. [ 11 ] وللسبب نفسه، فعّلت فيدورا zram افتراضيًا بدءًا من الإصدار 33. [ 12 ]
يُوفر استخدام مساحة التبديل المضغوطة مع zram أو zswap مزايا للأجهزة ذات المواصفات المنخفضة، مثل الأجهزة المدمجة وأجهزة الكمبيوتر المحمولة الصغيرة . عادةً ما تستخدم هذه الأجهزة وحدات تخزين فلاشية ، ذات عمر افتراضي محدود بسبب تضخيم الكتابة ، وقد تستخدمها أيضًا لتوفير مساحة التبديل . يُقلل استخدام zram أو zswap من استخدام مساحة التبديل، مما يُقلل بشكل فعال من استهلاك وحدات التخزين الفلاشية ويُطيل عمرها. كما يُؤدي استخدام zram إلى تقليل عمليات الإدخال/الإخراج بشكل ملحوظ لأنظمة لينكس التي تتطلب التبديل. [ 13 ] [ 14 ]
بالإضافة إلى ذلك، يمكن لتقنية zram في أحمال عمل محددة أن تُضاعف الذاكرة تقريبًا (مع وجود مخاطر كبيرة في حال عدم وجود مساحة تبديل احتياطية) مع تشغيل أسرع من تعطيلها. ويُلاحظ هذا عادةً عند استخدام zram على أجهزة ذات مواصفات منخفضة، إلى جانب أحمال عمل كثيفة الإدخال /الإخراج وتعتمد على جمع البيانات المهملة ، مع وحدات تخزين بطيئة (مثل USB)، حيث قد تتسبب عمليات الكتابة إلى مساحة التبديل في توقف النظام لفترات طويلة. وهذا بدوره يُحسّن من سهولة استخدام أنظمة Linux المثبتة على USB على الأنظمة ذات الذاكرة المحدودة. [ 15 ]
الاستخدام بواسطة نظام أندرويد
يستخدم نظام Android تقنية zram كجزء من إدارة الذاكرة الخاصة به [ 16 ] ، وعادة ما يشير المصنعون إلى هذه الميزة بأسمائهم الخاصة مثل RAM Plus لشركة Samsung ، و Extended RAM لشركة Vivo ، و Memory Extension لشركة Xiaomi ، [ 17 ] و virtual RAM/RAM Turbo لشركة Honor.
انظر أيضاً
مراجع
- ↑ "zram: أجهزة الكتل المضغوطة القائمة على ذاكرة الوصول العشوائي — وثائق نواة لينكس" . docs.kernel.org . تم الاطلاع عليه في 25 فبراير 2024 .
- ↑ "نواة لينكس 3.14، القسم 1.2. zram: آلية ضغط الذاكرة تُعتبر مستقرة" . kernelnewbies.org . 30 مارس 2014. تم الاطلاع عليه في 1 أبريل 2014 .
- ١ ٢ "سيشهد برنامج ZRAM أداءً أفضل على نظام Linux 5.1 - فقد غيّر برنامج الضغط الافتراضي - Phoronix" . Phoronix.com .
- ↑ "نواة لينكس 3.15، القسم 1.7. zram: دعم ضغط LZ4، أداء مُحسّن" . kernelnewbies.org . 8 يونيو 2014. تم الاطلاع عليه في 15 يونيو 2014 .
- ↑ جوناثان كوربيت (19 فبراير 2026). "تحديث التبادل: مساحات التبادل الافتراضية" . lwn.net . تم الاطلاع عليه في 19 يونيو 2026 .
- ↑ "zram: أجهزة تخزين الكتل المضغوطة القائمة على ذاكرة الوصول العشوائي — وثائق نواة لينكس" . www.kernel.org . 2026. تم الاطلاع عليه في 19 يونيو 2026 .
- ↑ "دحض خرافات zswap و zram - الأداء تحت ضغط الذاكرة" . chrisdown.name . 2026. تم الاطلاع عليه في 19 يونيو 2026 .
- ↑ داروك ألدن (23 فبراير 2026). "النصف الثاني من نافذة دمج الإصدار 7.0" . lwn.net . تم الاطلاع عليه في 19 يونيو 2026 .
- ↑ "تحسين الأداء في لينكس باستخدام zram (ذاكرة تبديل افتراضية مضغوطة في ذاكرة الوصول العشوائي)" . webupd8.org . 2 أكتوبر 2011. تم الاطلاع عليه في 8 نوفمبر 2011 .
- ↑ "compcache التخزين المؤقت المضغوط لنظام Linux" . code.google.com . 27 أبريل 2010. تم الاطلاع عليه في 11 نوفمبر 2011 .
- ^ دينسان ، فرانسيس (8 ديسمبر 2012). "Ubuntu Linux يدرس استخدامًا أكبر لـ zRAM" . تم الاسترجاع 30 أكتوبر، 2013 .
- ↑ "فيدورا 33 تتطلع إلى استخدام Swap على zRAM افتراضيًا باستخدام zram-generator من systemd - Phoronix" . Phoronix.com . تم الاطلاع عليه بتاريخ 29 مارس 2021 .
- ↑ "قد يتم نقل ZRAM أخيرًا من بيئة اختبار لينكس" . فورونيكس . 14 أغسطس 2013. تم الاطلاع عليه في 9 فبراير 2014 .
- ↑ "لا يزال zRAM يأمل في الترقية" . فورونيكس . 25 نوفمبر 2013. تم الاطلاع عليه في 9 فبراير 2014 .
- ↑ "استخدام zram مع Raspberry Pi" . Pi My Life Up. 30 يناير 2022. تم الاطلاع عليه في 16 فبراير 2026 .
- ↑ "تخصيص الذاكرة بين العمليات | جودة التطبيق" . مطورو أندرويد . تم الاطلاع عليه بتاريخ 22 يناير 2026 .
- ↑ ديباسيش (30 أبريل 2025). "حقيقة ذاكرة الوصول العشوائي الافتراضية لنظام أندرويد: بالكاد تستخدم مساحة التخزين الداخلية" . جيزموتشينا . تم الاطلاع عليه في 22 يناير 2026 .
روابط خارجية
- توثيق نواة لينكس zram وصفحة دليل zramctl(8)
- كومبكاش، التخزين المؤقت المضغوط لنظام لينكس
- كومبكاش: تبديل مضغوط داخل الذاكرة ، 26 مايو 2009، LWN.net، بقلم نيتين غوبتا
- ضغط الذاكرة داخل النواة ، 3 أبريل 2013، LWN.net، بقلم دان ماجينهايمر
- ذاكرة التخزين المؤقت المضغوطة: ضغط الذاكرة الافتراضية لأجهزة الكمبيوتر المحمولة ، 16 مارس 2000، بقلم مايكل ج. فريدمان
- إدارة الذاكرة
- ميزات نواة لينكس
- الذاكرة الافتراضية
