29Jul

ماذا يعني "كل شيء ملف" في لينكس؟

واحدة من السمات المميزة لينكس وغيرها من أنظمة التشغيل مثل أونيكس هو أن "كل شيء ملف". هذا هو تبسيط مفرط، ولكن فهم ما يعنيه سوف تساعدك على فهم كيفية عمل لينكس.

تظهر أشياء كثيرة على نظام التشغيل لينوكس في نظام الملفات الخاص بك، لكنها ليست ملفات في الواقع.إنها ملفات خاصة تمثل الأجهزة، ومعلومات النظام، وغيرها من الأشياء - بما في ذلك مولد رقم عشوائي.

يمكن أن توجد هذه الملفات الخاصة في أنظمة ملفات ظاهرية أو افتراضية مثل ديف، والتي تحتوي على ملفات خاصة تمثل أجهزة و / بروك، والتي تحتوي على ملفات خاصة تمثل معلومات النظام والمعالجة.

/ بروك

على سبيل المثال، لنفترض أنك تريد العثور على معلومات حول وحدة المعالجة المركزية الخاصة بك.يحتوي الدليل / بروك على ملف خاص - /proc/ بوينفو - الذي يحتوي على هذه المعلومات.

لا تحتاج إلى الأمر الخاص الذي يخبرك معلومات وحدة المعالجة المركزية الخاصة بك - يمكنك فقط قراءة محتويات هذا الملف باستخدام أي أمر قياسي يعمل مع ملفات نص عادي.على سبيل المثال، يمكنك استخدام الأمر القط /proc/ بوينفو لطباعة محتويات هذا الملف إلى المحطة الطرفية - طباعة معلومات وحدة المعالجة المركزية الخاصة بك إلى المحطة الطرفية.يمكنك حتى فتح /proc/ بوينفو في محرر نص لعرض محتوياته.

تذكر، /proc/ بوينفو ليس في الواقع ملف نصي يحتوي على هذه المعلومات - نواة لينكس ونظام الملفات بروك يعرضون هذه المعلومات لنا كملف.هذا يسمح لنا لاستخدام أدوات مألوفة لعرض والعمل مع المعلومات.

يحتوي دليل بروك أيضا على ملفات أخرى مشابهة، مثل: وقت التشغيل

  • /proc/ - يعرض وقت تشغيل نواة لينوكس - بمعنى آخر، المدة التي ظل فيها النظام قيد التشغيل بدون إيقاف التشغيل.إصدار
  • /proc/ - يعرض إصدار نواة لينوكس.

/ ديف

في الدليل / ديف، ستجد الملفات التي تمثل الأجهزة - فضلا عن الملفات التي تمثل أشياء خاصة أخرى.على سبيل المثال، /dev/ كدروم هو محرك الأقراص المضغوطة./dev/ سدا يمثل القرص الصلب الأول الخاص بك، في حين /dev/ sda1 يمثل القسم الأول على القرص الصلب الأول الخاص بك.

هل تريد تحميل القرص المضغوط الخاص بك؟قم بتشغيل الأمر مونت وحدد /dev/ كروم باعتباره الجهاز الذي تريد تحميله.تريد تقسيم القرص الصلب الأول الخاص بك؟تشغيل أداة تقسيم القرص وتحديد سدا /dev/ القرص الثابت الذي تريد تحريره.تريد تنسيق القسم الأول على القرص الصلب الأول الخاص بك؟قم بتشغيل أمر تنسيق وأخبره بتنسيق /dev/ sda1.

كما ترون، يعرض هذه الأجهزة كجزء من نظام الملفات مزاياه.يوفر نظام الملفات "مساحة اسم" متسقة يمكن لجميع التطبيقات استخدامها لمعالجة والوصول إلى الأجهزة.

/dev/ فارغة، /dev/ عشوائي، و /dev/ الصفر

لا يحتوي نظام الملفات ديف فقط على الملفات التي تمثل الأجهزة الفعلية.وفيما يلي ثلاثة من أبرز الأجهزة الخاصة التي يحتوي عليها:

  • /dev/ فارغة - يخلص جميع البيانات المكتوبة إليها - التفكير في ذلك بمثابة سلة المهملات أو ثقب أسود.إذا كنت ترى أي وقت مضى تعليق أقول لك أن ترسل يشكو ل /dev/ فارغة - وهذا هو وسيلة غريب الأطوار للقول "رمي لهم في سلة المهملات".
  • /dev/ عشوائي - ينتج العشوائية باستخدام الضوضاء البيئية.انها مولد رقم عشوائي يمكنك الاستفادة من.
  • /dev/ صفر - إنتاج الأصفار - تيار مستمر من الأصفار.

إذا كنت تفكر في هذه الملفات الثلاثة، فلن ترى استخدام لها.بدلا من ذلك، فكر فيها كأدوات.

على سبيل المثال، افتراضيا، أوامر لينكس تنتج رسائل خطأ والإخراج الأخرى التي تطبع إلى الإخراج القياسية، عادة المحطة الطرفية.إذا كنت ترغب في تشغيل أمر ولا تهتم إنتاجها، يمكنك إعادة توجيه هذا الإخراج إلى /dev/ فارغة.إعادة توجيه إخراج الأمر إلى /dev/ فارغة تجاهلها فورا.بدلا من وجود كل أمر تنفيذ "وضع هادئ" الخاصة بها، يمكنك استخدام هذه الطريقة مع أي أمر.أمر

& غ؛/dev/ فارغة

إذا أردت مصدرا من العشوائية - مثلا، لتوليد مفتاح تشفير، لن تحتاج إلى كتابة مولد رقم عشوائي خاص بك - يمكنك استخدام /dev/ عشوائي.

لمحو محتويات القرص الصلب عن طريق كتابة 0، فإنه لا تحتاج إلى أداة خاصة مخصصة لصفر محرك الأقراص - يمكنك استخدام الأدوات المساعدة القياسية و /dev/ الصفر.على سبيل المثال، يقرأ الأمر د من موقع ويكتب إلى موقع آخر.سيقوم الأمر التالي بقراءة الأصفار من /dev/ الصفر وكتابتها مباشرة إلى قسم القرص الثابت الأول على النظام الخاص بك، محو محتوياته تماما.

( تحذير : سيقوم هذا الأمر بمسح كافة البيانات في القسم الأول الخاص بك إذا قمت بتشغيله فقط تشغيل هذا الأمر إذا كنت تريد تدمير البيانات.)

د إف = /dev/ صفر = /dev/ sda1

هنا نحن نستخدم دمع ملفات خاصة( /dev/ الصفر و /dev/ sda1)، ولكن يمكننا أيضا استخدام د لقراءة من والكتابة إلى الملفات الفعلية.نفس الأمر يعمل على حد سواء للتلاعب الأجهزة مباشرة والعمل مع الملفات.

توضيح

في الممارسة العملية، من الأكثر دقة القول بأن "كل شيء عبارة عن دفق من وحدات البايت" من "كل شيء هو ملف". /dev/ العشوائي ليس ملفا، ولكنه بالتأكيد عبارة عن دفق من وحدات البايت.وعلى الرغم من أن هذه الأشياء من الناحية الفنية ليست الملفات، فإنها يمكن الوصول إليها في نظام الملفات - نظام الملفات هو "الفضاء اسم" عالمي حيث كل شيء يمكن الوصول إليها.تريد الوصول إلى مولد رقم عشوائي أو قراءة مباشرة من جهاز؟ستجد كلاهما في نظام الملفات.أي شكل آخر من أشكال المعالجة المطلوبة.

بالطبع، بعض الأشياء ليست في الواقع الملفات - العمليات التي تعمل على النظام الخاص بك ليست جزءا من نظام الملفات."كل شيء ملف" غير دقيق، ولكن الكثير من الأشياء تتصرف كملفات.