ملف خاص
في الكمبيوتر نظام التشغيل ، ل ملف خاص هو نوع من الملفات المخزنة في ملف نظام الملفات . أحيانًا ما يُطلق على الملف الخاص اسم ملف ملف الجهاز .
الغرض من الملف الخاص هو عرض الجهاز كملف في نظام الملفات. يوفر ملف خاص واجهة عالمية للأجهزة (والأجهزة الافتراضية التي تم إنشاؤها واستخدامها بواسطة 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: -