ملف خاص

في الكمبيوتر نظام التشغيل ، ل ملف خاص هو نوع من الملفات المخزنة في ملف نظام الملفات . أحيانًا ما يُطلق على الملف الخاص اسم ملف ملف الجهاز .

تحديد نوع الملف الخاص - سطر أوامر Linux.

الغرض من الملف الخاص هو عرض الجهاز كملف في نظام الملفات. يوفر ملف خاص واجهة عالمية للأجهزة (والأجهزة الافتراضية التي تم إنشاؤها واستخدامها بواسطة kernel) ، لأن أدوات الملف I / O يمكن الوصول إلى الجهاز.

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

في Linux ، هناك نوعان من الملفات الخاصة: حظر ملف خاص و ملف خاص بالحرف .

منع الملفات الخاصة

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

أمثلة على حظر الملفات الخاصة:

  • / ديف / sd xn - المركبة أقسام من المادية أجهزة التخزين . الرسالة x يشير إلى جهاز مادي ، والرقم ن يشير إلى قسم على هذا الجهاز. على سبيل المثال، / ديف / sda1 هو أول قسم على جهاز التخزين الفعلي الأول.
  • / ديف / حلقة ن - أجهزة الحلقة. هذه أجهزة خاصة تسمح باستخدام ملف في نظام الملفات كجهاز كتلة. قد يحتوي الملف على نظام ملفات كامل خاص به ، ويمكن الوصول إليه كما لو كان قسمًا مثبتًا على جهاز تخزين مادي. على سبيل المثال ، يمكن تحميل ملف صورة قرص ISO كجهاز حلقة.

إذا كنت تريد معرفة حجم الكتلة الموجودة على نظامك ، فقم بتشغيل ' blockdev --getbsz جهاز ' كجذر ، على سبيل المثال:

sudo blockdev --getbsz /dev/sda1
4096

في هذا المثال ، حجم الكتلة هو 4096 بايت (4 كيبي بايت).

ملفات شخصية خاصة

ل ملف خاص بالحرف يشبه جهاز الكتلة ، لكن البيانات مكتوبة بحرف واحد (ثمانية بت ، أو بايت واحد) في كل مرة.

أمثلة على الملفات الخاصة بالأحرف:

  • / ديف / stdin ( الإدخال القياسي .)
  • / ديف / stdout ( الإخراج القياسي .)
  • / ديف / ستدير ( خطأ تقليدي .)
  • / ديف / عشوائي ( PRNG مما قد يؤخر إرجاع قيمة للحصول على إنتروبيا إضافية.)
  • / ديف / يوراندوم (PRNG الذي يقوم دائمًا بإرجاع قيمة على الفور ، بغض النظر عن الانتروبيا المطلوبة.)
  • / ديف / فارغة (الجهاز الفارغ. تحصل القراءة من هذا الملف دائمًا على بايت فارغ ؛ الكتابة إلى هذا الملف بنجاح لا تفعل شيئًا.)

أنواع ملفات Linux

في Linux kernel ، يتم التصريح عن أنواع الملفات في ملف الرأس sys / stat.h . اسم النوع والاسم الرمزي و قناع بت لكل نوع ملف Linux مدرج أدناه.

أكتب اسم اسم رمزي قناع نقطي
قابس كهرباء S_IFSOCK 0140000
ارتباط رمزي S_IFLNK 0120000
ملف عادي S_IFREG 0100000
منع ملف خاص S_IFBLK 0060000
الدليل S_IFDIR 0040000
ملف خاص بالأحرف S_IFCHR 0020000
FIFO (أنبوب مسمى) S_IFO 0010000

كيف يمكنني معرفة ما إذا كان الملف مميزًا؟

اختبار الكتلة الخاصة

في سحق ، الامر ' اختبارملف 'يعيد حالة خروج من 0 إذا ملف هو كتلة خاصة ، أو 1 إذا ملف هو نوع آخر أو غير موجود.

test -b /dev/sda1; echo $?  # check for block special,  echo  exit status of test  
0
test -b /dev/null; echo $?  # character special files are not block special  
1

اختبار شخصية خاصة

لتحديد ما إذا كان الملف ذو طابع خاص ، استخدم 'test -c ملف ':

test -c /dev/null; echo $?
0

باستخدام stat

يمكنك أيضًا التحقق من نوع الملف باستخدام stat:

stat /dev/sda1
 File: /dev/sda1 Size: 0 Blocks: 0 IO Block: 4096  block special file  Device: 6h/6d Inode: 7998 Links: 1 Device type: 8,1 Access: (0660/brw-rw----) Uid: ( 0/ root) Gid: ( 6/ disk) Access: 2018-07-08 06:41:25.540000000 -0400 Modify: 2018-07-08 06:41:25.540000000 -0400 Change: 2018-07-08 06:41:25.540000000 -0400 Birth: -
stat /dev/random
 File: /dev/random Size: 0 Blocks: 0 IO Block: 4096  character special file  Device: 6h/6d Inode: 6518 Links: 1 Device type: 1,8 Access: (0666/crw-rw-rw-) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2018-07-08 06:41:19.676000000 -0400 Modify: 2018-07-08 06:41:19.676000000 -0400 Change: 2018-07-08 06:41:19.676000000 -0400 Birth: -