بررسی دايرکتوری dev

ژانویه 21, 2016

سرور اختصاصی  

اين دايرکتوري شامل فايل هاي ويژه جهت نمايش وسايل متصل شده به سيستم هستند .
[N.pardis@Lpi1~]$ cd /dev
[N.pardis@Lpi1dev]$ ls -l | less
زير دايرکتوري dev ما device هايي را که وجود دارند داريم. سمت راست ترين فيلد اسم فايل است در کنارش ت ار يخ و س اعت
است و صاحب فايل و سپس مجوزهايش. در لينوکس هر قطعهاي اسم يک فايل است و هر چيزي که به کامپيوتر وصل کنيم يک
فايل است.
زير اين دايرکتوري پس ما تجهيزا را ميبينيم. مؤس، ميکروفون و …
در کامپيوتر دستگاههايي که داريم در سيستمعامل لينوکس و هر سيستمعامل ديگرياز يک ديدگاهي ميشود به 0 دسته تقس يم
کرد:
)1 Block Device اطلاعا block به block ميرود مث ل block Drive HD . اگ ر از CD ROM بخواهي د ي ک باي ت
بخوانيد هم بايد يک block بخوانيد چون اطلاعا به بلوک ذخيره شده است.
)0 Character Device : دستگاهي است که اطلاعا را حرف به حرف ميدهد مثل کيبورد .
در سمت چم اطلاعاتليست فايل ها زير دايرکتوري dev جايي که مجوزها را نوشتهاند اگر اولين ح رف d ب ود يعن ي دايرکت ور ي
اگر بود يعني فايل و حالا دو حرف جديد داريم که قبلا نديده ب ود يم و آن ه م – c و b ک ه c مخفّ ف character device و b
مخفّف block device است.
ما ميتوانيم هر فايلي را با فرمان cat بخوانيم يا با فرمان cp آن را کپي کنيم. به طور مثال فايل passwd را با فرمان cat ميدهيم
به speaker که صداي آن را پخش کند.
حداقل نام يک فايل زير دايرکتوري است. اگر دو تا Mic داشتيم 0 تا اسم ميگيرند.
براي اينکه فلاپي را بخوانيم اين فرمان را ميزنيم:
[N.pardis@Lpi1~]$ cat A:
توجه: A: را با نام /dev/fd0 هم نام نموده ايم.
معمولا هم . بار Retry ميکند تا عملاً بتواند بخواند که چون فلاپي در آن نيست نميتواند بخواند.
روش دادن اسم دوّم به يک device
به وسيله فرمان ln اسم دوّم به يک device ميدهيم:
[N.pardis@Lpi1~]$ ln fd0 a:
[N.pardis@Lpi1~]$ ls a: fd0
4349 a:
4349 fd0
حُسن دايرکتوري dev اينست که شما ميتوانيد بفهميد که آخرين بار که يک device کار کرده است چه زماني بوده است. ح الا
ميخواهيم ببينيم چند تا printer داريم و پور هاي آنها را ببينيم!
[N.pardis@Lpi1dev]$ ls –l lp*
crw-rw—- 1 root lp 6,0 Aug 18 2006 Jan fd0
در اينجا ما يک پرينتر داريم
[N.pardis@Lpi1dev]$ mknod lp1 c 6 1
lp1 : name
: cType

: major
1 : minor
حالا ما 3 تا printer داريم. عدد 6 اسمش major است به معني اصلي و kernel استفاده ميکند تا بفهمد چه device driver
اي را انتخاب کند و با آن کار کند. عدد دوّم را minor ميگوييم و به معني آن است که ميگويد از آن device چند مدل دارد.
character device يعني Type c
پس يادمان باشد ما زير دايرکتوري dev فايلهايي داريم که اصطلاحاً به آنها ميگويند device که يا block device هستند و يا
character dev . و اينها مثل فايلهايي که قبلاً درس داديم قد و حجم ندارند بلکه major و minor دارند که major ش ماره –
ي device است و minor تعد اد مدلهايييا مدلهايي که از آن device وجود دارد که major آنها يکي است. و با اين دو عدد
است که device ها از هم جدا ميشوند. فقط root اجازه ساخت فايلهاي device را دارد، اين فاي له ا را م ا نم يس از يم. زي ر
دايرکتوري dev دايناميک است و خودش device هايش را شناسايي ميکند ولي خيلي وقتها هم ما م يت وان يم فاي ل بس از يم.
فرماني که ما ميتوانيم به وسيله آن device file بسازيم mknod است که فقط root هم ميتواند بسازد.
[N.pardis@Lpi1~/dev]$ man mknod
[root@Lpi1~/dev]$mknod pardis b 250 44
b : يعني block Device است.
111 : حداکثر . 05
ما اجازه ساخت نداريم چون همچنين دستگاهي وجود ندارد پي ام No such device را به ما ميدهد.
اين فرمان device ها را assign ميکند و event ها را منتقل ميکند.
[N.pardis@Lpi1~]$ man udevd
به جز c و d و b و ما در سمت چم دايرکتوري – dev حرفهاي ديگري هم داريم مثل p :
[N.pardis@Lpi1~]$ mknod pardis p
[N.pardis@Lpi1~]$ ls -l
total 8
:
Pardis تاريخ prw-r- -r–1 n. pardis lpi1 0
يک pipe file ساختيم که معمولاً ابتدا و انتها ندارد و اطلاعا پشت سر هم نميآيد و يک فايلهايي است که خيلي کاربرد دارند
و اطلاعاتشان تمامي هم ندارند. مثل رطوبتسنج، رادار و …
[N.pardis@Lpi1~]$ cd /tmp
[N.pardis@Lpi1~]$ chmod 700 file-name
در لينوکس يک فرمان داريم به نام MAKEDEV که تنها فرماني است که با حرف بزرگ نوشته ميشود و زير دايرکتوري dev
است. با اين فرمان ديگر نيازي نداريم mknod را به کار ببريم.
[N.pardis@Lpi1dev]$ MAKEDEV