English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
tmpfs هو نظام ملفات قائم على الذاكرة في نظامي Linux/Unix، أي يستخدم tmpfs ذاكرة أو منطقة التبادل لتخزين الملفات.
يتمتع نظام النواة Linux بال子系统 VM بمسؤولية إدارة موارد الذاكرة الافتراضية في الخلفية، وهي الذاكرة الافتراضية، أي موارد RAM وswap، ويقوم بتحويل صفحات RAM إلى منطقة التبادل أو من منطقة التبادل إلى صفحة RAM بشكل شفاف، يحتاج نظام ملفات tmpfs إلى صفحات subsystem VM لتخزين الملفات. لا يعلم tmpfs نفسه ما إذا كانت هذه الصفحات موجودة في منطقة التبادل أو في RAM؛ إن اتخاذ هذا القرار هو عمل subsystem VM. كل ما يعرفه نظام ملفات tmpfs هو أنه يستخدم نوعًا ما من الذاكرة الافتراضية.
بسبب أن tmpfs قائم على الذاكرة، لذا السرعة متسارعة. بالإضافة إلى ذلك، الموارد VM المستخدمة من قبل tmpfs هي متغيرة، عند حذف ملفات tmpfs، يقوم محرك نظام الملفات tmpfs بتقليل نظام الملفات ديناميكياً وإطلاق موارد VM، بالطبع، عند إنشاء ملفات في ذلك أيضًا يتم تخصيص موارد VM ديناميكياً. بالإضافة إلى ذلك، tmpfs ليس له استمرارية، عند إعادة التشغيل لا يتم حفظ البيانات.
/dev/shm هو جهاز قائم على tmpfs، في بعض إصدارات Linux، هو رابط مرن لمجلد /run/shm/. في الواقع، في العديد من النظم، يتم إعداد /run كـ tmpfs. يمكنك استخدام df -T لعرض حالة إعداد الأقراص في النظام:
نظام الملفات 1K-القطع المستخدمة المتاحة المستخدمة% نقطة التشغيل udev 1859684 4 1859680 1% /dev tmpfs 374096 1524 372572 1% /run /dev/sda8 76561456 36029540 36619724 50% / لا شيء 4 0 4 0% /sys/fs/cgroup لا شيء 5120 0 5120 0% /run/lock لا شيء 1870460 27688 1842772 2% /run/shm لا شيء 102400 56 102344 1% /run/user
إذن، دعونا نبدأ بالتحدث عن مجلد /run. الآن نعلم أن هذا المجلد قائم على الذاكرة، في الواقع سلفه كان مجلد /var/run، لاحقًا تم استبداله بـ /run. هذا لأن نظام الملفات /var/run ليس جاهزًا عند بدء تشغيل النظام، ولهذا فإن العمليات التي بدأت تشغيلها من قبل قد حفظت معلومات تشغيلها في /dev، /dev هو أيضًا tmpfs، وهو متاح عند بدء تشغيل النظام. ولكن كان تصميم /dev بغرض تخزين ملفات الأجهزة، وليس لتح Konservieren Informationen über den Laufzeit der Prozesse، لذا لتجنب الارتباك، تبدأ ملفات معلومات العمليات في /dev باسم "."، أي أنها مجلدات مخفية. ولكن حتى مع ذلك، مع زيادة عدد المجلدات، أصبح /dev أكثر فوضى، لذا تم تقديم خيار بديل، وهو /run. في الواقع، لا يزال مجلد /var/run موجودًا في العديد من النظم، ولكنه رابط مرن لمجلد /run.
يحتوي مجلد /var/run بشكل رئيسي على ملفات تصفية معلومات النظام منذ بدء تشغيل النظام. من الاستخدامات الشائعة هي أن يقوم عملية daemon بتخزين pid الخاصة بها في هذا المجلد.
/dev/shm/ هو مجلد مفيد جدًا في نظام Linux، يعني Shared memory، أي ذاكرة مشتركة. لأنه في ذاكرة الوصول العشوائي، يمكن لجميع عمليات النظام مشاركة هذا المجلد. بالافتراض، حجمه نصف حجم الذاكرة. إذا كنت ترغب في تغيير حجمه، يمكنك إدارة ذلك باستخدام mount:
mount -o size=4000M -o nr_inodes=1000000 -o noatime,nodiratime -o remount /dev/shm
إذا كنت ترغب في التطبيق الدائم، يمكنك تعديل ملف /etc/fstab:
tmpfs /dev/shm tmpfs defaults,size=4G 0 0
يمكن استخدام /dev/shm لأشياء عديدة، هنا سأذكر تطبيق بايثون. عند استخدام بايثون لمعالجة البيانات، قد تحتاج إلى استخدام نوبي، عادة ما تكون كمية البيانات في معالجة البيانات كبيرة، إذا كان هناك عدة عمليات تحتاج إلى استخدام نفس البيانات، فإن /dev/shm يأتي إلى الميدان، أي استخدام تقنية الذاكرة المشتركة. يحتوي بايثون على مكتبة ثالثة يمكن استخدامها لتشارك نوبي بين العمليات، وهي SharedArray. SharedArray تعتمد على /dev/shm وتتبع معايير POSIX، مما يسمح بالتوافق مع العديد من المنصات.
الخلاصة
هذا هو نهاية محتوى هذا المقال، نأمل أن يكون محتوى هذا المقال قد ساعدك في التعلم أو العمل، إذا كان لديك أي أسئلة، يمكنك ترك تعليق للتفاعل، شكراً لدعمكم لتعليمي.
بيان: محتوى هذا المقال تم جمعه من الإنترنت، وله حقوق الملكية الأصلية للمالك، تم جمعه من قبل المستخدمين على الإنترنت من تلقاء نفسه، ويحمل هذا الموقع حقوق الملكية ولا يتم تعديل المحتوى بشكل إنساني، ولا يتحمل أي مسؤولية قانونية ذات صلة. إذا كنت قد وجدت محتوى يشتبه في حقوق النسخ، فيرجى إرسال بريد إلكتروني إلى: notice#oldtoolbag.com (الرجاء استبدال #بـ @ عند إرسال البريد الإلكتروني) لإبلاغنا، وتقديم الدليل ذات الصلة، إذا تم التحقق من ذلك، فإن هذا الموقع سينتفيض على الفور محتوى يشتبه في حقوق النسخ.