tmpfs
نظام الملفات المؤقت ( tmpfs ) هو نموذج لتخزين الملفات المؤقتة مُطبّق في العديد من أنظمة التشغيل الشبيهة بنظام يونكس . يُفترض أن يظهر كنظام ملفات مُثبّت ، ولكن البيانات تُخزّن في ذاكرة مؤقتة بدلاً من جهاز تخزين دائم.
تتشابه فكرة نظام الملفات المؤقت (tmpfs) مع فكرة قرص RAM ، حيث يوفر كلاهما نظام ملفات مُخزّن في ذاكرة مؤقتة؛ إلا أن التنفيذ يختلف. فبينما يُنفّذ tmpfs على مستوى نظام الملفات المنطقي ، يُنفّذ قرص RAM على مستوى نظام الملفات الفعلي . بعبارة أخرى، قرص RAM هو جهاز تخزين افتراضي يعمل عليه نظام ملفات عادي، بينما tmpfs هو نظام ملفات افتراضي بدون أي جهاز تخزين أساسي.
علم الدلالة
جميع البيانات المخزنة في نظام الملفات المؤقت (tmpfs) مؤقتة، بمعنى أنه لا يتم إنشاء أي ملفات مباشرةً على وحدة تخزين غير متطايرة كالقرص الصلب (مع أن مساحة التبديل تُستخدم كمساحة تخزين احتياطية وفقًا لسياسة استبدال الصفحات في نظام التشغيل). عند إعادة تشغيل الجهاز ، ستُفقد جميع البيانات الموجودة في نظام الملفات المؤقت (tmpfs).
تتوسع الذاكرة التي يستخدمها نظام الملفات المؤقت (tmpfs) وتتقلص لاستيعاب الملفات التي يحتويها.
تُفعّل العديد من توزيعات يونكس نظام الملفات المؤقت (tmpfs) وتستخدمه افتراضيًا لفرع /tmp من نظام الملفات أو للذاكرة المشتركة . ويمكن ملاحظة ذلك باستخدام الأمر df كما في هذا المثال:
نظام الملفات 1 كيلوبايت كتل مستخدم متاح نسبة الاستخدام نقطة التحميل tmpfs 1686428 0 1686428 0% /dev/shm tmpfs 674572 1808 672764 1% /run tmpfs 1024 0 1024 0% /run/credentials/systemd-journald.service tmpfs 1686428 1628 1684800 1% /tmp tmpfs 1024 0 1024 0% /run/credentials/getty@tty1.service tmpfs 1024 0 1024 0% /run/credentials/getty@tty3.service tmpfs 337284 32 337252 1% /run/user/0 tmpfs 1024 0 1024 0% /run/credentials/getty@tty4.service tmpfs 337284 280464 56820 84% /run/user/1000
بعض توزيعات لينكس (مثل ديبيان حتى ديبيان 13 [ 1 ] ) لا تحتوي على نظام ملفات مؤقت مثبت على /tmp بشكل افتراضي؛ في هذه الحالة، سيتم تخزين الملفات الموجودة تحت /tmp في نفس نظام الملفات مثل / .
في جميع توزيعات لينكس تقريبًا ، يتم تثبيت tmpfs على /run/ أو /var/run/ لتخزين ملفات وقت التشغيل المؤقتة مثل ملفات PID ومآخذ نطاق Unix .
التطبيقات
توجد عدة نسخ مستقلة من مفهوم نظام الملفات المؤقت (tmpfs). وقد طورت شركة صن مايكروسيستمز إحدى أقدم هذه النسخ لنظام التشغيل صن أو إس، وقدمت أنظمة تشغيل أخرى، مثل أنظمة بي إس دي ولينكس، نسخها الخاصة.
نظام التشغيل SunOS
يتضمن نظام التشغيل SunOS 4 على الأرجح أقدم تطبيق لنظام الملفات المؤقت tmpfs؛ فقد ظهر لأول مرة في نظام التشغيل SunOS 4.0 في أواخر عام 1987، إلى جانب إدارة جديدة لمساحة العناوين المتعامدة سمحت بربط أي كائن بالذاكرة. [ 2 ] [ 3 ]
تم تحويل دليل /tmp في نظام Solaris إلى نظام ملفات tmpfs افتراضيًا بدءًا من Solaris 2.1، [ 4 ] الذي تم إصداره في ديسمبر 1992. [ 5 ] سيُظهر ناتج أمر df في Solaris أن swap هو وحدة التخزين الخلفية لأي وحدة تخزين tmpfs:
# df -k نظام الملفات كيلوبايت المستخدم متاح السعة مثبت على swap 601592 0 601592 0% /tmp/testلينكس
يدعم نواة لينكس نظام الملفات المؤقت tmpfs بدءًا من الإصدار 2.4 (4 يناير 2001). [ 6 ] يعتمد نظام الملفات المؤقت tmpfs في لينكس (المعروف سابقًا باسم shm fs ) [ 7 ] على كود ramfs المستخدم أثناء بدء التشغيل، ويستخدم أيضًا ذاكرة التخزين المؤقت للصفحات ، ولكنه، على عكس ramfs، يدعم استبدال الصفحات الأقل استخدامًا لتوفير مساحة تبديل، بالإضافة إلى حدود لحجم نظام الملفات وعدد العقد (inode) لمنع حالات نفاد الذاكرة (حيث يتم استخدام نصف ذاكرة الوصول العشوائي الفعلية ونصف عدد صفحات ذاكرة الوصول العشوائي افتراضيًا). [ 8 ]
بي إس دي
4.2BSD قدم MFS، [ 9 ] وهو نظام ملفات قائم على الذاكرة يتم تنفيذه عن طريق تطبيق نظام ملفات القرص FFS الحالي على منطقة ذاكرة افتراضية.
تم دمج tmpfs، وهو نظام ملفات ذاكرة تم تنفيذه باستخدام هياكل البيانات التقليدية في الذاكرة لتحسين أداء MFS، في شجرة المصدر الرسمية لـ NetBSD في 10 سبتمبر 2005؛ [ 10 ] وهو متاح في الإصدار 4.0 والإصدارات اللاحقة.
قامت FreeBSD بنقل تطبيق NetBSD، وهو متوفر في الإصدار 7.0 والإصدارات اللاحقة. [ 11 ]
كما قامت DragonFly BSD بنقل تطبيق NetBSD، وهو متوفر في الإصدار 2.5.1 والإصدارات اللاحقة.
قام نظام OpenBSD بنقل تطبيق tmpfs الخاص بنظام NetBSD، والذي بدأه بيدرو مارتيليتو وحسّنه العديد من المطورين. تم تفعيله في الإصدارات بدءًا من 17 ديسمبر 2013. [ 12 ] كان الإصدار 5.5 هو أول إصدار من OpenBSD يتضمن tmpfs. [ 13 ] تم تعطيل tmpfs في الإصدار 6.0 من OpenBSD بسبب نقص الصيانة.
المزايا
بفضل سرعات ذاكرة الوصول العشوائي (RAM) الأعلى مقارنةً بوحدات التخزين القرصية، يُتيح نظام الملفات المؤقت (tmpfs) سرعةً أكبر بكثير للتخزين المؤقت، مما يُحسّن كفاءة النظام بشكل عام. مع ذلك، ستستفيد أنظمة التشغيل التي تستخدم ذاكرة تخزين مؤقتة للصفحات بشكل أقل، حيث ستبقى صفحات الملفات المستخدمة مؤخرًا في الذاكرة إذا كانت الذاكرة الحرة كافية. ولأن ذاكرة الوصول العشوائي تُمسح عند إعادة التشغيل، يمنع نظام الملفات المؤقت (tmpfs) تراكم الملفات في النظام دون الحاجة إلى حذفها يدويًا. إضافةً إلى ذلك، يمنع تخزين الملفات في ذاكرة الوصول العشوائي امتلاء الأقراص بسرعة كبيرة، ويُطيل عمر وحدات التخزين القائمة على ذاكرة الفلاش بتقليل عمليات الكتابة.
العيوب
في الأنظمة التي لا تحتوي على مساحة تبديل ، أو حيث تكون مساحة التبديل منخفضة، قد يستهلك نظام الملفات المؤقت (tmpfs) كميات كبيرة من الذاكرة.
إذا تم تخزين ملفات التخزين المؤقت في tmpfs، فستفقد البرامج بياناتها المخزنة مؤقتًا عند إعادة التشغيل.
مراجع
- ↑ بروكماير، جو (2024-06-03). "مشكلة /tmpest في نظام دبيان" . LWN.net . تم الاطلاع عليه بتاريخ 2025-08-29 .
- ↑ بيتر سنايدر. "tmpfs: نظام ملفات الذاكرة الافتراضية" (ملف PDF) . مؤرشف من الأصل (ملف PDF) بتاريخ 11 مارس 2025. تم الاطلاع عليه بتاريخ 7 مايو 2007 .
- ↑ هال ل. ستيرن. "تحسين أداء نظام التشغيل SunOS 4.1" . مؤرشف من الأصل ( ملف PostScript مضغوط ) بتاريخ 7 فبراير 2012. تم الاطلاع عليه بتاريخ 7 مايو 2007 .
- ↑ "SPARC: تثبيت برمجيات Solaris" (ملف PDF) . SunSoft. ديسمبر 1992. ص 9. تم الاطلاع عليه بتاريخ 23 أبريل 2019 .
- ↑ "نظام التشغيل سولاريس (يونكس)" . operating-system.org .
- ↑ دانيال روبنز (1 سبتمبر 2001). "الخيوط المشتركة: دليل تنفيذ أنظمة الملفات المتقدمة، الجزء 3" . IBM DeveloperWorks. مؤرشف من الأصل في 3 فبراير 2012. تم الاطلاع عليه في 15 فبراير 2013 .
- ↑ دانيال روبنز (1 سبتمبر 2001). "الخيوط المشتركة: دليل تنفيذ أنظمة الملفات المتقدمة، الجزء 3" . IBM DeveloperWorks. مؤرشف من الأصل في 3 فبراير 2012. تم الاطلاع عليه في 15 فبراير 2013 .
- ↑ كريستوف رولاند؛ هيو ديكنز؛ كوساكي موتو هيرو. "tmpfs.txt" . kernel.org . تم الاسترجاع في 16 مارس 2010 .
- ↑ "صفحة دليل استخدام الأمر mount_mfs(8) في نظام NetBSD" . 2007-12-08. مؤرشفة من الأصل بتاريخ 2016-04-16 . تم الاطلاع عليها بتاريخ 2013-02-15 .
- ↑ خوليو م. ميرينو فيدال (24 فبراير 2006). "NetBSD-SoC: نظام ملفات ذاكرة فعال" . تم الاطلاع عليه بتاريخ 15 فبراير 2013 .
- ↑ شين لي (23-04-2013). "صفحة دليل FreeBSD tmpfs(5)" . تم الاطلاع عليه بتاريخ 02-12-2008 .
- ↑ "CVS: cvs.openbsd.org: src - enable tmpfs so it gets testing some more" .
- ↑ "OpenBSD 5.5" . 2014-05-01 . تم الاطلاع عليه بتاريخ 2014-05-01 .
روابط خارجية
- "صفحة دليل Solaris tmpfs(7FS)" . تم الاطلاع عليها بتاريخ 25-02-2013 .
- "وثائق Kernel.org الخاصة بنظام الملفات المؤقت" . تم الاطلاع عليها بتاريخ 2015-10-05 .
- أنظمة الملفات ذات الأغراض الخاصة
- أنظمة ملفات ذات أغراض خاصة يدعمها نواة لينكس
- مقدمات متعلقة بالحاسوب في عام 1987
- ميزات نواة لينكس
