/The Advanced Way to Red Planet

The Advanced Way to Red Planet

الحمد لله الذى عظم قدره و منتهاه

و الصلاة والسلام على من أحبه و اصطفاه ..سيد الخلق محمد بن عبد الله …عليه أتم السلام و أفضل الصلاة

فى هذه السلسلة – التى فعليا ليست جديدة فى نفسها و إنما تكملة على سابقتها – ستخوص بعمق فى هذا المجال الماتع Linux Administration و تطبيق هذه المفاهيم على توزيعاته الشهيرة و بالأخص RHEL 6

نستفتح الكلام مستعينين بالله عن أنظمة التشغيل Operating Systems

أى جسد لا بد أن يكون له عقل يتحكم به …فمثلا إذا ذهبت لتجميع جهاز كمبيوتر و اشتريت كل القطع و وصلتها جيدا و اذا بك Power ON لن يحدث شيئا فعليا و لن تستطيع إﻹستخدام الجهاز بشكل حقيقى فعال إلا ” لما تنزل ويندوز إكس بى بات مان ” مثلا D:

أو بمعنى أعم نظام تشغيل يتحكم فى هذه القطع الهاردوير الصماء

بمفهوم أبسط ” انت بتعرف تكلم الهاردوير منك له ..لأ … يبقى انت محتاج واحد بيفهم لغة الهاردوير أو على الأقل يعرفوا يتفاهموا مع بعض بالتى هى أحسن “

إذا كيف يتحدث الهاردوير أو ما هى اللغى التى يفهمها

هى لغة الصفر و الواحد

1 = ON

0 = OFF

حيث أن الواحد يشير إلى أن التيار الكهربى يسير فى الدائرة الإلكترونية و بالتالى تقوم بالمهام الخاصة بها “ على حسب نوع الدائة نفسها بالطبع “ و الصفر يشير إلى إنقطاع التيار الكهربى عنها أو عدم سريانه

مثال هذه الصورة

dig4a


إذا أردت تشغيل المصبح و ذهبت إليه محدثا إليه “ أيها المصبح أنر “ لن يفعل شيئ

لا بد أن تترجم هذه العبارة باللغة العربية إلى صفر أو واحد فتقوم بهذه العملية فى عقلك فتصل إلى أن هذه العبارة تساوى واحد فتذهب و تضغط على الزر Switch A or Switch B فى حالة الصورة بالأعلى

هذا بشكل مبسط هو دور نظام التشغيل فهو يلعب دور الوسيط بينك و بين الهاردوير

و لكن هل نظام التشغيل كله هو من يلعب هذا الدور ؟

هذا يدفعنا للتساؤل حول مكونات نظام التشغيل نفسه

Operating System Components

يتكون بشكل رئيسى من جزئين :

[list type=”check”]

  • Kernel
  • Modules & System Libraries

[/list]
 

و جزء آخر ثالث و هو الخاص بـ Applications

linux_os

الكيرنل أو بمعنى أدق النواة هى أساس النظام و المحرك الأساسى له و التى يقوم عليها كل شيئ بعد ذلك

و هى فى الأغلب عبارة عن مجموعة من الملفات مكتوبة بلغة C

و التى تعتبر أحد اللغات Low Level Languages الشهيرة و القوية و التى بنى عليها الكثير من لغات البرمجة الأخرى

هذه المجموعة من الملفات المشكلة لما يعرف بالكيرنل هى التى تتعامل فعليها و بشكل مباشر مع الهاردوير

طبعا بدون الخوض فى مسألة binary files أو عملية compile فلا يسعنا الاستطراد فى هذه النقطة كثيرة فى هذا الموضع

Kernel :

[list type=”check”]

  • The heart of the operating system.
  • The low level core of the System that is the interface between applications & H/W.

  • Functions
    Manage Memory, I/O devices, allocates the time between user and process, inter process communication, sets process priority.

[/list]

لمزيد من التفاصيل أنصح بهذا الكتاب

و أنصح أيضا بهذا الموقع لبحث مبدأ Kernel Hack

لا يسعنى أن أترك هذه النقطة بدون التعرض لمفهوم Open Source و تطبيقه على ما سبق

اتفقنا أن الكيرنل هى أساس النظام وبدونها لا يوجد نظام أصلا

و قلنا أنها فى الأساس عبارة عن مجموعة من الملفات المكتوبة بلغة C فى الأغلب

يبقى سؤال هل هذه الملفات متاحة للجميع ؟! هل يمكن أن التعديل عليها و بناء كيرنل خاصة بى أنا ؟!

هنا يبرز مفهوم Open Source

على عكس نظام تشغيل ويندوز و ماك فهذه الملفات غير متاحة إلا لفريق التطوير الخاصة بالشركة فقط

كان هذا مجرد استطراد موجز للربط بين مفهوم Open Source و سابق كلامنا

للاطلاع على هذه الملفات الخاصة بالكيرنل أو بمعنى أصح Kernel Source code

يمكن من خلال هذا الموقع

ثم بعد ذلك نجد أنفسنا أمام Kernel modules و هى – بإيجاز – أشياء قد يحتاج الكيرنل أن يقوم بعمل load لها و قد تختلف من مرة إلى أخرى فلا نقوم بتثبيتها أو ضمها فى الكيرنل مثال على ذلك Drivers

فهى تختلف من جهاز إلى آخر و ليست ثابته …بمعنى أبسط أن الكيرنل الأمور يحنوى على الملفات الثابتة التى لا تتغير فى الأغلب من جهاز إلى آخر

ثم بعد ذلك نذهب إلى Layer التى هى غايتنا فى الأساس

Application Layer

و هى تشمل أى سوفت وير خارجى يتم تنصيبه على نظام التشغيل من خلال المستخدم أو النظام

واحدة من هذه Applications المهمة و التى لا غنى عنها هى Shell

اتفقنا أن الكيرنل يتعامل بشكل مباشر مع الهاردوير .. ولكن كيف سيتعامل المستخدم العادى مع الكيرنل

هنا يبرز دور Shell

The shell is a program that sits as an interface between users and kernel

إذا كيف يتعامل المستخدم مع هذه الـ shell ?!

يتعامل معاه من خلال ما يسمى بـ”الطرفية” أو بمعنى أدق Terminal

و هى تعد بمثابة نافذتك النصية إلى shell ومنها تكتب الأوامر ليتم تنفيذها على shell

هذه الطرفيات أو Terminals أستطيع من خلالها كتابة الأوامر النصية commands ليتم تنفيذها على shell و منها إلى السيستم

كالتى تعاملنا معاها و استخدمناها من قبل

وبالتالى من خلالها أيضا يمكن تنصيب جميع البرامج و تنفيذ الأوامر التى تريدها

ليس هذا فحسب بل و أيضا تسمح لك بتنصيب GUI لتسهل على المستخدم التعامل مع السيستم

و يكون المسئول عن هذه GUI و البرامج التى تستخدمها

هم

X-server and X-client using X protocol

و ليس محل بسط الكلام فيهم هنا الان

و لكن من أراد الإستزادة و التوضيح …من خلال هذه الصفحة

و أيضا هذه الفيديو الماتع من الدكتور أحمد العرباوى

https://www.youtube.com/watch?v=BatjZFyFyLg

 

قديما كانت هذه الطرفيات أو Terminals طرفيات حقيقية أى Physical Terminals

و كانوا يستخدموا وقتها جهاز كل دوره أن يقوم بالاتصال عن طريق كابل سيريال و يدخل بيانات و يطبع الخرج

مثل لوحة المفاتيح و الشاشة هذه الأيام ..كان هذا الجهاز اسمه

TeleTYpewriter device أو TTY device

و بالتالى لو أنك أنت وحدك ترد العمل على خمس أو ست طرفيات لتقسيم العمل المثلا فكان هذا هو الشكل قديما

ken-n-den

أما هذه الأيام فتمت الاستعاضة عن هذه الطرفيات الحقيقية بطرفيات أخرى وهمية

Virtual Terminals

ليس هذا بحسب بل و تم إستبدال هذا الجهاز بما صار عليه الأمر هذه الأيام ” لوحة المفاتيح و شاشة ” يمكنك من خلالهم الوصول و تنفيذ العمليات على أكثر من Virtual Terminals فى نفس الوقت

كل ما تبق من هذا الجهاز القديم هو اسمه فقط TTY و تم استخدام نفس الاسم لتسمية هذه الطرفيات الوهمية الحديثة

يتيح لك السيستم استخدام و فتح بضع و ستين طرفية وهمية و لكن المفعل منهم بشكل أساسى هم سبع واحدة منهم تكون مستخدمة By default للـ GUI

و الست الباقيين متاحين لأى استخدام آخر

يتم التنقل بين هؤلاء السبع عن طريق الضغط على لوحة المفاتيح

Ctrl + Alt + Fn  

where n = {1:6}

يبقى سؤال واحد نعده كنقطة بحث …هل هناك فارق بين هذه virtual terminals و بين terminals التى نفتحها داخل الـ GUI ?!

هذا و بالله التوفيق و هو حسبنا و نعم الوكيل ^_^ و فى أمان الله ^_^

[divider scroll_text=” “]

VMware Certified Professional (VCP5-DCV) Red Hat Certified Architect (RHCA) vExpert 2015