بررسی دايرکتوری proc
يک دايرکتوري خاص ساکن در حافره حاوي اطلاعا مختلف درباره کارهاي درحال اجرا در سيستم لينوکس مي باشد .
[N.pardis@Lpi1~]$ cd
[N.pardis@Lpi1~]$ ls –l |less
در زير دايرکتوري proc ما يک مجموعه اي از دايرکتوريهاي عددي داريم به اضافه تعدادي فايل مرتبط با تجهيزا .
[N.pardis@Lpi1~]$ cd /proc
[N.pardis@Lpi1 proc]$ ls -l |less
دايرکتوري proc فقط logical است و وجود ندارد و آيينهي تمامنما از اطلاعا kernel است و زير proc ميتوانيد ببيني د ک ه
کرنل چند فايل را open کرده و چند نفر login هستند. به مح اينکه سيستم را down کنيد دايرکتوري proc گم ميش ود
و به مح اينکه up کنيد ساخته ميشود. به ازاي هر process اي ما يک دايرکتوري داريم.
وقتيفرمانزير را در زير دايرکتوري proc ميزنيم به ما يک عدد ميدهد، که شماره پروسس )شل( مرتبط به شما مي باشد.
[N.pardis@Lpi1 proc]$ echo $$
8827
هر کاري که شما انجام دهيد و هر فرماني که بزنيد Admin از طريق زير دايرکتوري proc ميتواند ببيند که کجا هستيد. تع داد
دايرکتوريهايي که زير دايرکتوري proc است ثابت نيست و متفاو و مت ير ميباشد.
حالا مي توانيم بفهميم فرمان who و w براي اينکه ببينند چه افرادي login هستند زير دايرکتوري proc را ميخوانند.
هر کس که يک process را اجرا ميکند زير دايرکتوري proc شناسنامهي آن وجود دارد. تعدادي فايل مرتبط با تجهيزا داريم
نيز زير proc وجود دارد.
[N.pardis@Lpi1proc]$ cat cpuinfo
cpuinfo اطلاعا cpu را ميدهد.
bogomips )جعلي(: در پردازنده و زبان اسمبلي دستوري داريم به نام nop ( no operation ( که اين فقط ي ک cycle
از cpu ميبرد بدون اينکه کاري بکند. که وقت تلف کردن است و فقط زمان را نگه ميدارد. مثلاً Device Driver ديسک مي-
داند که اگر يک فرمان به ديسک بدهد بايد نيم ثانيه بعد جواب بيايد به اندازه نيم ثانيه nop را انجام ميدهد تا جواب بيايد. و اگر
جواب نيامد time out ميدهد.
Interrupts
فرمان بعدي که بررسي ميکنيم Interrupts است. که در اين فايل ما شماره هر interrupt و تعداد تکرار آن را ميبينيم.
[N.pardis@Lpi1 proc]$ cat interrupts
هر مادر بورد تعداديقطعا است که به يک بورد اصلي وصل است )يک بورد اصلي و چند بورد ديگر( وقتي هر ک دام از قطع ه ه ا
بخواهند با بورد مادر صحبت کنند interrupt ميدهند. دستگاهها هم که ميخواهند با يکديگر صحبت کنن د interrupt م ي-
دهد. مثلاً کار شبکه interrupt شماره 185 ميدهد.
timer interrupt
اگر فرمان vmstat -s را بزنيم در آخرش به ما ميگويد که context switching چند بار انجام شده است. ک ه يعن ي از ي ک
process کنترل را به process ديگر دادن.
[N.pardis@Lpi1 proc]$ vmstat -s 17 مدل ديسک را پيدا کنيد؟
[N.pardis@Lpi1 home]$ cd /home/n.pardis
[N.pardis@Lpi1 proc/ide]$ cd /proc/ide
[N.pardis@Lpi1 proc/ide]$ ls -l
[N.pardis@Lpi1~]$ cd hda
[N.pardis@Lpi1 proc/hda]$ ls -l
cash capacity … model …
[N.pardis@Lpi1 proc/hda]$ cat model
Maxtor 2F040L0
وقتي در دايرکتوري proc هستيم با فرمان روبهرو هاردمان را ميبينيم که چند قسمت شده:
[N.pardis@Lpi1 proc]$ cat patitions 18 اسکريپتي بنويسيد که فرمان را اجرا کرديد مدل cpu را بدهد:
[N
فرمان ديگري که بررسي ميکنيم فرمان watch است که ميتواند يک فرمان داده شده را مرتب اجرا کند:
[N.pardis@Lpi1 proc]$ watch -nl -d cat /proc/interrupts
اين دستور کاري که انجام ميدهد اينست که هر يک ثانيه يک بار فاي ل /proc/interrupts خوان ده م ي ش ود و رو ي م ان يتور
نمايش داده مي شود . وقتي اين فرمان را اجرا کنيد ت ييرا هر device يعني اينکه چند تا وقفه ايجاد شده را نشان ميدهد.
grep
فرمان بعدي grep است. اين فرمانيک رشته را در يک فايل پيدا ميکند:
[N.pardis@Lpi1~]$ grep cpu /proc/cpuinfo
cpu : ل ت مورد جستجو
/proc/cpu info : فايلي که در آن جستجو مي کنيم . جزوه grep را بخوانيد و چطور مي توان کاري کرد که وقتي رشته را پيدا کرد آن را رنگ بزند.
حالا ميخواهيم با grep مدل cpu را پيدا کنيم:
[N.pardis@Lpi1~]$ alias grep = 'grep – – color= Auto'
[N.pardis@Lpi1~]$ grep cpu /proc/cpuinfo
[N.pardis@Lpi1~]$ grep model /proc/cpu info
[N.pardis@Lpi1~]$ grep "model name" /proc/ cpuinfo