بسم الله الرحمن الرحيم
احد الاسباب التي تجعل نظام لينكس يتفوق على نظام ويندوز هو القدرة و التحكم الذي يعطي للمستخدم , و في هذا المقال ستعرف على المجلد proc الذي يمكنك من الوصول إلى الذاكرة , و تعديل عمل النواة ( Kernel ) في الوقت الفعلي , و الحصول على معلومات مفصلة عن حالة نظامك .
- ما هو مجلد proc و اين يخزن ؟
هذا المجلد موجود في جميع توزيعات لينكس , و هو نظام ملفات افتراضي موجود في الذاكرة (RAM) من النوع procfs يتم انشاءه من قبل النواة عند عملية الاقلاع (Booting) و يتم ربطه على المجلد proc/ أو ما يمسى بمصطلحات لينكس بعملية (Mount) .
قبل أن نبدأ الرجاء توخى الحذر , تذكر أنك تقوم بتعديل الذاكرة بشكل مباشر فأي خطأ سيؤثر على نظامك
ببساطة فقط غير المجلد الحالي بالاستخدام الأمر cd كتالي :
- عرض معلومات المعالج بالتفصيل :
نسخة لينكس في بداية المعطيات هي تخص النواة (Kernel) , gcc هي نسخة الـــ"Compiler" , و المجمع Linker هو GUN ld
باستخدام الأمر cat في نظامك الذي يعرض الملفات النصية و يعدلها تستطيع عرض محتويات الملف meminfo كالتالي :
سيتم طباعة معلومات تفصلية عن الذاكرة لك كالصورة التالية
- عرض الوقت الذي مضى على تشغيل النظام (uptime)
باستخدام نفس الأمر cat و لكن على الملف uptime
الرقم على اليمين يمثل الوقت الذي مضى منذ تشغيل النظام بالثواني , الرقم الثاني يمثل الوقت الذي الذي امضاه احد أنوية المعالج (Processor core) في وضعية idle (وضع لتوفير الطاقة عن تنفيذ النواة لجميع المهام الموكلة بها ) .
- الحصول على معلومات عن أي برنامج يعمل على نظامك
اذا كتب الامر ls و أنت في المجلد في proc :
ستظر لك مجلدات تحمل أرقام فقط كأسم للمجلد كالصورة التالية:
اسماء
هذه المجلد ترمز إلى رقم المعرف الخاص بالعملية (PID) , أو باللغة مبسط كل
برنامج في الذاكرة يحصل على رقم يميزه , هذا المجلد الخاص بالبرامج التي
في الذاكرة يحتوي على الكثير من المعلومات المفيدة , و سنعرض البعض منها
باستخدام مثال , في موجه الأوامر قم بطباعة الأمر التالي :
هذه الأمر يقوم بأنشاء الملف test.txt في مجلد الملفات المؤقته tmp/ , وتحويل المدخلات بواسطة الأمر cat , الرمز & يعني تحويل الأمر إلى البرامج التي تعمل في الخلفية (Background) , و سيطبع لك الرقم الخاص بالعملية , في مثالنا سيكون الرقم 9563 , طبعا سكيون الرقم لديك مختلف .
سيتم انشاء مجلد في proc بنفس رقم العملية (PID) , قم بالدخول للمجلد بأستخدام الامر cd :
قم بتغير رقم المجلد بحسب الرقم الذي ظهر لك بعد تنفيذ الأمر , و الأن لنبدأ , لمعرفة الملف التنفيذي الذي انشاء العلمية (PID) , استخدم الملف exe و الأمر ls كالتالي :
معرفة المجلد الذي تم تنفيذ الأمر فيه , و هنا لا أعني المجلد الذي نفذنا الأمر عليه , أنما المجلد الحالي الذي كنت فيه عند تنفيذ الأمر (Current Working Directory) :
معرفة سطر الأوامر الذي بدأ هذا الأمر :
معرفة الملفات التي يقوم البرنامج باستخدمها, يجود داخل مجلد العملية مجلد
بالاسم fd يحتوي ملفات تحمل ارقام كأسم لها , هذه الملفات هي مجلد رابط
(Link) للملفات التي يستخدمها البرنامج , فقط استخدم الأمر ls لعرض هذه
الملفات :
ملاحظة الملف dev/pts/0 يرمز للطرفية (Terminal) , تجد هنا الملف الذي قمنا باستخدام لتخزين المعطيات , في البرامج التي تستخدم الشبكة ستجد ملفات من نوع أخر كمثالنا التالي للأمر nc :
ستلاحظ
هنا في السطر الأخير وجود رابط لملف من نوع القابس الخاص بالشبكة (Socket)
, هنا يجب ان نشير بأن فلسفة نظام لينكس بأن كل شيء هو ملف .
لعرض جميع العمليات الفرعية (Child processes) التي تحت العملية الرئيسية (Parent process) ستجد مجلد بالاسم task في مجلد العملية الرئيسية :
لعرض معلومات العملية بشكل مفصل ستجد الملف الخاص status , فقط استخدم الأمر cat كالتالي :
في السطر الثالث ترى حالة البرنامج في حالتنا "Stopped" , معلومات الذاكرة بالتفصيل .
هذا الشرح البسيط لا يعرض الا جزء بسيط من قدرات هذا المجلد , و ان شاء الله في القريب سوف انشر مقال حول كيفية تعديل الذاكرة للبرنامج و هو يعمل بواسطة هذا المجلد و بالخصوص الملفين maps و mem المتواجدين في مجلد العملية .
لمن يقرأ الموضوع , هل لديك اضافة ؟ أو تعليق شاركنا لو سمحت .