سؤال متكرر وبكثرة في المجموعة على الفيسبوك وعلى تويتر وعلى صندوق الوارد الخاص. كيف أحترف لينيكس؟ كيف أتعلم لينيكس بالكامل؟ كيف أكون عالم بكل ما هو موجود في لينيكس.
هذا سؤال أجبته بعدد من الطرق ولكن لم أقدم ولا مره اجابة حقيقية صريحة والآن سوف نتحدث بشكل جدي. كيف نحترف لينيكس ونتعلم كل صغيرة وكبيرة في هذا العالم.
لينيكس عبارة عن نواة لنظام تشغيل معين. هذا النظام في العادة يكون من نوع GNU وهو مكون من مكونات حرة و يخضع لتراخيص GPL.
نواة لينيكس فيها عدد محدود من البرامج والأوامر وعملها على الرغم من أنه يبدو غير محدود إلا أنه محدود جدا. هو النواة ولها أعمال معينة تقوم بها بشكل متكرر. أن تحترف لينيكس يعني أن تعلم ما هي النواة وكيف تعمل وكيف تستخدمها.
قد يتبادر الى ذهنك الآن أن تسأل، هل هذا يعني انني سوف أتعلم الإختراق؟ هل سوف أتعلم طريقة تشغيل برنامج معين؟ ما هي اﻷاوامر التي يجب أن أعلمها؟
لا. هذا غير صحيح. هنا يجب ان تعلم طريقة كتابة الكود المصدري للنواة. يجب أن تعلم طريقة كتابة التعريفات أو طريقة كتابة الـ Hooks لربط نظام التشغيل أو ربط البرامج المعينة في النواة. هنا لن تتعامل مع النظام بعد. أنت تقوم ببناء قلب النظام.
أعلم. أنت لا تريد هذا النوع من المعلومات وقد تقول في قلبك هذا ليس ما قصدته بتعلم لينيكس. أرغب في تعلم لينيكس وليس هراء القلب والنواة. حسناً. لننتقل الى الخطوة الثانية.
كما تعلما في الخطوة السابقة، لينيكس ليس نظام تشغيل وليس فيه الكثير من الأدوات المفيدة لك كمستخدم عادي. أنت تبحث عن التعمق في المجال. أنت تريد الدخول من أوسع الأبواب. قد يخيب ظنك هنا أيضا. نظام التشغيل GNU مشابه للنواة في العديد من النواحي. نظام التشغيل هو مجرد بيئة بسيطة إلى حد ما لها أعمال محدودة مثل إعطاء الأوامر للعتاد وتشغيل البرامج الخاصة بك.
لإحتراف نظام GNU، يجب أن تعلم طريقة بناء النظام وكيف تعمل أجزائه وكيف تتعامل مع بعضها البعض وكيف تتواصل مع النواة وكيف تستقبل الأوامر من البرامج المختلفة والمستخدم نفسه. في الخطوة الأولى والثانية يجب أن تتعلم لغات برمجة أساسية مثل C حيث أن معظم لينيكس و GNU مبنيان على هذه اللغة العريقة.
في هذه الخطوة يجب أن تتعلم كتابة نظام التشغيل وأجزائه المختلفة البرامج الأساسية والخدمات وغيرها من الأجزاء الدقيقة التي تقوم بعمل نظام تشغيل متكامل من الكود الذي تعمل عليه.
قد لا تكون قد حصلت على إجابتك بعد. ولكن هل ترى لماذا لا أتمكن من توفير إجابة صريحة للموضوع؟ خلال خطوتين توجب عليك تعلم لغة غريبة جدا وفهم أكواد لها بداية وليس لها نهاية وتوجب عليك كتابة برامج وتعريفات وخطافات برمجية والمزيد من الأشياء التي لم أتحدث عنها في هذا المقال! لنذهب الى الخطوة الثالثة، لعلك تجد فيها ما يفيدك!
كل نظام جنو\لينيكس يأتي مزود بعدد من البرامج الاساسية المهمة جدا مثل ls المسؤول عن سرد محتويات القرص الصلب. أو الأمر cp لنسخ الملفات. لتعلم هذه البرمجيات يجب أن تتعلم مادة اسمها Linux+ وهو مساق تعليمي يقوم بتعليمك جميع برامج جنو\لينيكس.
يمكنك الحصول على المساق من جهات متعددة على الإنترنت سواء بشكل مجاني أو مدفوع ويمكنك الحصول على شهادة من موقع comptia.org بعد أن تنجح في الإمتحان.
هناك سوف تتعلم استخدام النظام مع النواة ولكنك تقريبا لم تفهم أي شيء من الخطوة الأولى والثانية. أنت الآن قادر على استخدام الأدوات الموجودة في النظام وهي قليلة مقارنة بالأدوات الغير موجودة في النظام وليست جزء منه.
معظم السائلين يكتفون بالوصول إلى هذه النقطة؛ هنا نكون قد تعلما استخدام نظام التشغيل غنو\لينيكس من خلال الطرفية، ولكن النظام ليس الطرفية فقط. يمكنك أيضا استخدام برمجيات رسومية مثل أي نظام آخر. مجرد استخدامك لنظام غنو\لينيكس لا يعني وجود تعلمك لأوامر الطرفية واستخدامها حصرا، يمكنك أن تفعل ما تشاء.
هي برامج أساسية إلى حد ما. مثلا برنامج fdisk او cfdisk لتقسيم القرص الصلب أو مثلا لغة bash المستخدمة بكثرة في كتابة البرامج البسيطة إلى حد ما في بيئة جنو\لينيكس.
في هذه الخطوة أنت لا تتعلم لينيكس ولا جنو. أنت تتعلم برامج اضافية خارجة عن النظام بشكل عام أن تتعلم برنامج معالجة النصوص Libreoffice أو برنامج Skype لمكالمات الفيديو. معظم من يسألوني كيف أتعلم لينيكس يكون قصدهم كيف أتعلم البرامج التي تعمل على لينيكس ونصيحتي هي، إقرا تعليمات البرنامج. هناك الآف البرامج التي تعمل على لينيكس وعلى جنو وتعلمها لا يعني بأي حال من الأحوال أنك تتعلم لينيكس أو اي شيء تابع له.
لتعلم هذه الخطوة من لا يجب أن تتعلم أي من الخطوات السابقة. تعلم الخطوة الثالثة سوف يفيدك بشكل كبير جدا ولكن لن يكون أساسي في تعلمك لهذا البرامج.
معظم من يطلب تعلم لينيكس ومعرفة خفاياة وكل ما يتعلق به يكون قصده تعلم هذه النقطة فقط. ولتعلم هذه النقطة يجب أن تتعلم البرنامج نفسه وليس لينيكس. لو قارنا الموضوع في ويندوز، لتعلم استخدام اوفيس، انت تتعلم اوفيس وليس ويندوز.
هناك الكثير من المتابعين يسأل، ولكن برامج الإختراق والفحوصات الأمنية تعمل من خلال الطرفية، كيف تقول انها ليست لينيكس؟
هي تعمل من خلال الطرفية ولكنها ليست لينيكس. أعتذر منك صديقي الخبير المهندس الأمني، ولكن هذه برمجيات اضافية ليس لها علاقة بلينيكس سوى انها تعمل على نظام جنو. لتعلم هذه البرامج يجب أن تتعلم هذه البرامج وليس أن تتعلم لينيكس نفسه أو جنو نفسه.
هذا الأمر ليس فقط لبرامج الإختراق، هو لكل برنامج يعمل في لينيكس من أبسطها مثل nano الى أكثرها تعقيدا مثل برنامج Blender.
ليس هناك اجابة محددة لكيفية اتقان لينيكس. يجب أن تتقن العديد من الأمور.