رسائل خطأ مشهورة

أول تقييم هو أصدق تقييم ...

مقدمة:



على النقيض من أنظمة تشغيل مختلفة ... نظام اليونكس أو الجنو/لينكس عامة ... يعطى رسائل خطأ مفصلة بعض الشئ واحيانا كثيرة تكون تحديدية بدرجة كبيرة ...

وذلك على غير المعهود في نظام تشغيل الوبندوز مثلا ... ورسالة "العملية الغير قانونية" illegal Operation ... أو البرامج التي تقع في ظرف ثانية دونما أدني تنويه ويتبقى منها الطلب الذي يستأذنك لإرسال جميع المعلومات التقنية إلى الموقع الرئيسي ... وبالطبع هذه المعلومات تخص فقط وفقط مطوري نظام التشغيل في الشركة ... ولا تخص أحدا غيرهم .

اقتباس :
تحديد :
الآن سيكون التركيز على رسائل الخطأ الخاصة بالقشرة بما فيها جميع الأدوات الملحقة ... أو حتى البرامج التي ستقوم من خلالها ..


تركيبة رسالة الخطأ :



غالبا ما تتكون أي رسالة خطأ من أجزاء أساسية كنوع من أنواع التعارف التقليدى ما بين المطورين ... ولكن هذا لايمنع أيضا أن يوجد رسائل خطأ لها تركيبة خارجة على الإطار

andalusy@linuix-box:~$ ls /file_not_found
ls: /file_not_found: No such file or directory



أولا : اسم البرنامج : هذا هو البرنامج الذي يشتكى من مشكلة معينة وغير قادر على إتمام المهمة التى أوكلت اليه
ثانيا : معامل للبرنامج : معامل أو خيار الأمر الذي حدث عنده الخطأ وفي حالتنا هنا هو اسم المجلد المطلوب عرضه
ثالثا : رسالة الخطأ : أخيرا معلومة الخطأ ذات نفسه ... أو كما يقال رد فعل البرنامج عند تشغيله بهذا الخيار أو المعامل

وهكذا بتجميع هذه الأجزاء يمكن استنتاج أن المجلد المطلوب عرض محتوياته غير موجود أصلا ...

وهذه أشهر رسالة تظهر دائما ... وخصوصا مع السكريبتات .. ودائما ما يكون حلها بسيط جدا ... ببساطة يجب انشاء الملف أو المجلد الغير موجود هذا


الرسائل التحذيرية :



هذه الرسائل تخلتف عن رسائل الخطأ ... فرسائل الخطأ تقطع المهمة المطلوب تنفيذها والبرنامج غير قادر على اتمام أي شئ ما دامت رسالة الخطأ لم ينتفى سببها

على عكس الرسائل التحذيرية ... فالبرنامج يكمل في مساره لإتمام المهمة ولكنه يشتكى من شئ من معين ... يوضحه من خلال رسالة تحذيرية وفي الأغلب توضح هذه الرسالة التحذيرية كيفية انتفاء سبب ظهورها .


رسائل خطأ مشهورة :



يهمنا الآن الجزء التالت والأخير من رسالة الخطأ الا وهو معلومة الخطأ ذات نفسها

No Such File or Directory
السبب: الملف المفروض التعامل معه من خلال الأمر الذي تم تنفيذه غير موجود أصلا
الحل : في الأغلب إذا كان المستخدم يمتلك الصلاحيات المناسبة يمكنه انشاء هذا المجلد أو الملف

File Exists
السبب: تظهر عندما نحاول بناء مجلد أو ملف له نفس الأسم
الحل : يجب تلافى أو تغيير ذلك الأسم المراد انشاء مجلد أو ملف به

ملحوظة : من أعماق أعماق نظام اللينكس .. هو غير قادر على التفريق بين الملف والمجلد ... ذلك لأن الأثنين لهم نفس البنية والمفهوم وايضا نفس المكتبات البرمجية التي تتعامل معهم ... متفق عليه من خلال مقالة نظام ملفات اللينكس

Not a Directory ,OR, is a Directory
السبب: عندما يتم التعامل مع ملف على انه مجلد أو التعامل مع مجلد على أنه ملف
الحل : استخدام أمر file لمعرفة ماهية المجلدات أو الملفات التي يتم التعامل معها

andalusy@linux-box:~$  touch file.txt
andalusy@linux-box:~$ cd file.txt/
bash: cd: file.txt/: Not a directory
andalusy@linux-box:~$ file file.txt
file.txt: ASCII text
andalusy@linux-box:~$


No Space Left on Device
السبب: جميع المساحات الخالية على الوسيط التخزيني تم استغلالها
الحل : محاولة حذف أي ملفات غير مستخدمة ... يمكن مراجعة ادارة نظام الملفات


Permission Denied
السبب-١ : المستخدم لا يملك الصلاحيات الكافية لاتمام هذه المهمة
السبب-٢ : البرنامج المراد تنفيذه لا يملك صلاحيات تنفيذ x-permission
الحل : يجب مراعاة نظام صلاحيات اللينكس ... ومعرفة الصلاحيات المتاحة للحساب المستخدم على الجهاز ... يمكن مراعاة المزيد في نظام الصلاحيات.

#Reason1 
andalusy@linux-box:~$ cp /bin/ls lsq
andalusy@linux-box:~$ chmod -x lsq
andalusy@linux-box:~$ ./lsq
bash: ./lsq: Permission denied
andalusy@linux-box:~$ chmod +x lsq
andalusy@linux-box:~$ ./lsq
Desktop Documents Examples file.txt lsq media Music Pictures Public public_html Templates Videos
andalusy@linux-box:~$

#Reason2

andalusy@linux-box:~$ /etc/init.d/gdm restart
open: Permission denied
* Stopping GNOME Display Manager...
open:Permission dinied [ OK ]
open: Permission denied
* Starting GNOME Manager Display...
open:Permission denied [fail]
andalusy@linux-box:~$


في السبب التاني : محاولة لإعادة تشغيل واجهة سطح المكتب GDM

Operation Not Permitted
السبب: دائما ما يظهر هذا الخطأ عندما يحاول المستخدم التعامل(ايقاف , بدء , اعادة بدء, ... ) مع مهمة معينة ولا يملك هذه الصلاحيات
الحل : في الأغلب يكون التحويل إلى حساب المستخدم المطلق هو الحل


andalusy@linux-box:~$ kill 1
bash: kill: (1) - Operation not permitted
andalusy@linux-box:~$

محاولة لإيقاف أول برنامج يتم تشغيله init في نظام اللينكس ...


Segmentation Fault, Bus Error
السبب : معنى الخطأ هو تعامل خاطئ من برنامج معين مع الذاكرة ... ماهية هذا التعامل الخاطئ تتمثل في محاولة البرنامج لقراءة أو كتابة عنوان معين في الذاكرة غير مسموح له أصلا بالتعامل مع هذا العنوان ...
المسئول عن ايقاف مثل ذلك السلوك هو نظام التشغيل (النواة تحديدا) ...

الحل : دائما ما يحدث هذا الخطأ على مستوى خارج نطاق الإستخدام الطبيعي للبرامج ...بمعنى أوضح ... يظهر هذا الخطأ مع برنامج مبرمج من قبلك بطريقة خاطئة ... أو برنامج معين يتطلب بعض المتغيرات على هذا المستوى وهذه المتغيرات تم تعريفها بالخطأ




تذييل :



يتضح بعض الشئ أن أغلب أخطاء عالم اليونكس واردة في الأساس من نظام الصلاحيات المعقد داخل هذا النظام ... وهكذا دائما ... فبعض التعقيد يتطلب بعض الإدراك ... وهذه الأخطاء تتزايد مع أنظمة صلاحيات معقدة أو أنظمة أمنية معينة كمثال الحوائط النارية Firewalls أو نظام SELinux