>نظرة عامة عن نظام التشغيل اللينكس Linux<

الموضوع في 'أنظمة GNU Linux' بواسطة subaru_20, بتاريخ ‏21 سبتمبر 2008.

  1. subaru_20

    subaru_20 صديق المنتدى

    إنضم إلينا في:
    ‏1 أوت 2008
    المشاركات:
    7.366
    الإعجابات المتلقاة:
    19.783
      21-09-2008 16:53
    السلام عليكم ورحمة الله وبركاته


    تختلف نظرة الشخص للشئ حسب الزاوية اللي ينظر لهذا الشئ منها ، فمثلا الشخص العادي ينظر للسيارة بشكلها ومظهرها وألوانها الداخلية والخارجية وماركة الصنع والموديل وقيمة شرائها ، بينما المتخصص مثل الميكانيكي أو المهندس الذي يشتغل في مجال تصميم السيارات ومحركات السيارات وأجزائها الثانية ينظر لنفس السيارة بنظرة مختلفة تماماً ، فينظر لها من ناحية قوة الماكينة وطريقة تصنيعها وأسلوب إستهلاكها للوقود وغيره من التفاصيل الفنية والتقنية التي يلم بها. بنفس الوقت الذي يشتغل في التجارة في مجال السيارات ينظر لنفس السيارة كمنتج من حيث التكلفة والتعب حتى تخرج من مسؤلية شركتي تماماً .
    نفس الفكرة حين أتكلم عن برنامج ( Software ) ، فمثلا المستخدم العادي ما الذي يهمه في البرنامج؟ التصميم ، سهولة التحميل والإعداد ، سهولة الإستعمال ، الإستقرار (Stability) ، الخدمات اللي يقدمها لهذا المستخدم وممكن يستفيد منها. وبالتالي لما نأتي لشرح هذا البرنامج للمستخدم سوف نستخدم النقاط التي ذكرتها أعلاه في الشرح وبالتالي المستخدم يقرر كيف يستخدمه وهل يحتاجه أو لا.

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

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

    كلنا نعرف نظام التشغيل (ويندوز Windows) ومن قديم الأجل وهو أكثر شي نألفه في الكمبيوتر لدرجة أننا نادراً ما نتعرض لغير هذا النظام .

    ولكن نحن ماذا نعرف عن الويندوز؟ لا نعرف الا جزء قليل جداً جداً، وما وراء هذا النظام حاجات مجهولة كثيرة. وهذا هو أكثر شي نجحت فيه شركة مايكروسوفت أنها اخفت كل التفاصيل عن المستخدم العادي وجعلته يعمل ماذا يريد بدون أن يعلم ماذا حصل لعمل هذا المطلوب ، ولذلك أصبح هنالك بما يسمون بـ (علماء بدون علم).

    والآن سننتقل لعالم ثاني مختلف تماما عن عالم ويندوز المغلف، وهو عالم المصادر المفتوحة Linux .

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

    Linux هو نظام تشغيل يعمل على أغلب معالجات 32 بت مثل Intel و AMD و Sparc وغيرهم من المعالجات.

    طور هذا النظام على يد أحد الطلاب الجامعيين اسمه (لينوس تروفالدز Linus Trovalds) الذي بناه على نظام التشغيل Minix (نظام شبيه لنظام Unix ولكنه أصغر بكثير) وهو اللي كتب النواة من البداية .

    قام بكتابة هذا النظام على أساس مبدأ (حر يعني حر) فأنت حر بالحصول عليه وحر بإستخدامه وحر حتى اذا حبيت تبيعه !

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

    لماذا Linux بالذات؟؟

    • [*]هل تستمتع بقراءة السورس كود لبرامج تعمل عليها الحين وتريد أن تعرف كيف تعمل هذه البرامج؟
      [*]هل تريد بيئة برمجة C أو C++ حقيقية للعمل ؟
      [*]هل تريد أدوات وتقنيات متقدمة جدا مثل الاباتشي Apache والسكربتات (Perl, TCL) لإستغلالها في تطوير تقنيات جديدة وقوية على الانترنت أو أيا كانت شبكتك؟
      [*]هل تريد تشتغل وأنت تعلم ماذا يدور حولك؟
      [*]هل تريد ألف طريقة مختلف لأداء عمل معين؟
      [*]هل تريد خبرة تقنية تفيدك وتعطيك فرص عمل قوية لسنوات طويلة؟
    إذا كانت إجاباتك لأغلب الاسئلة اللي سبقت بنعم فهذا النظام مناسب لك تماما ، وهو ما سبق نتطرق إليه في الحلقتين القادمتين – إن شاء الله - .

    تحياتي
    :tunis:
     
    5 شخص معجب بهذا.

  2. subaru_20

    subaru_20 صديق المنتدى

    إنضم إلينا في:
    ‏1 أوت 2008
    المشاركات:
    7.366
    الإعجابات المتلقاة:
    19.783
      22-09-2008 16:45

    بعد التطرق للأسئلة التي تم طرحها في الحلقة السابقة سوف نبدأ الآن بالحديث عن هذا النظام فهذا النظام تتوفر فيه كل مميزات نظام التشغيل المتقدم جداً.
    Memory Management, Virtual Memory, multitasking, file system.... وغيرها من المعايير التي تختص لنظرة المبرمج.

    Kernel: الكيرنل (النواة) هي زبدة نظام التشغيل ككل، فهي نقطة الوصل بين (الهاردوير أو العتاد) و(السوفتوير). الكيرنل أعتبرها مجموعة برامج مسؤولة عن تشغيل مكونات نظام التشغيل، مثل تنظيم الذاكرة (RAM) تنظيم البرامج (Processes أو Jobs)، حركة نقل البيانات من القرص الصلب إلى الذاكرة والعكس، حركة نقل البيانات من خلال كرت الشبكة (مودم ، Ethernet Card) .... ومهام أخرى.

    بالاضافة إلى أنه Drivers (التعريفات) الخاصة بالأجهزة التي يتم دعمها من قبل الكيرنل، فمثلا حتى تكون قادر على تشغيل تقنية البلوتوث على النظام أو كروت الشبكة اللاسلكية، لابد أن الكيرنل يدعم هذه التقنية، وبالتالي تستطيع تحميل مايسمى بـ Module اللي تعمل لك بدورها هذه التعاريف على النظام. بالإضافة إلى هذا، أنها قد تكتشف ثغرات جديدة في الكيرنل المكتوبة إما ثغرات أمنية تتسبب بتعريض النظام للاختراق أو ثغرات تتسبب بعدم إستقرار النظام وبالتالي تسمى هذي النواة أو الكيرنل (non-stable).

    وهذا اللي يفسر نزول إصدارات جديدة للكيرنل كل فترة، حيث يتم دعم تقنيات جديدة وتعريفات قطع (هاردوير) جديدة لم تكن تدعم من قبل مثل Power Management أو البلوتوث والوايرلس زي ما ذكرنا قبل.

    إن عملية تجميع نظام لينكس بشكل يدوي (مانول) عملية صعبة، بمعنى أنها عملية تحميل مكونات النظام ومن ثم ترجمتها (Compilation) ثم تحميلها (Installation) عملية طويلة ومعرضة للإخطاء والمشاكل وغير مرغوب بها. بالتالي من الأفضل إستخدام ما يسمى بـ (توزيعة distribution) مجمعة (assembled) وخالصة، كل ما عليك هو تحميلها وبداية العمل على النظام مباشرة. وهنا نأتي إلى نقطة أخرى، أنه يوجد distributions كثيرة ومختلفة، تختلف عن بعضها بالباقة (بالباكيج) من البرامج والخدمات اللي تقدمها.

    فمثلا توزيعة RedHat لها باقة مختلفة عن توزيعة Debian وقد تكون فيها خدمات أفضل تقدمها لك توزيعة Debian بالتالي تجعلك تفضلها على كل التوزيعات الأخرى، وعملية اختيار التوزيعة distribution تعتمد على معايير كثيرة منها مثلما تم ذكره عن طريق الباقة المضمنة معها بالإضافة إلى دعمها للغة المفضلة لك (مهمة جداً)، وهل كل الحاجات اللتي تريدها من النظام متوفرة فيه؟ مثلا دعم الشبكة الاسلكية أو هل توافق مع أغلب الباقات؟ هل يوجد مراجع توثيق لهذا النظام؟ ويوجد بالأسواق عشرات التوزيعات تستطيع أن تختار من بينها بعدما تقرأ تفاصيل هذي التوزيعة وتقرر ماذا يناسبك من بينهم بناء على رغباتك.

    وكثرة التوزيعات في صالح المستخدم فمثلا التوزيعة Mandrake تعتبر ممتازة للمبتدئين، المحولين من بيئة ويندوز ويريدون التعرف على النظام ، بالإضافة إلى توزيعة RedHat فهي بنفس الحال لكن RedHat معقدة بدرجة بسيطة من ماندريك. وعموما أشهر التوزيعات وأكثرها إنتشارا هي Red Hat, Mandrake, SuSE, Gentoo, Slackware, Debian, Knoppix . وأنا شخصيا أفضل Debian ، بالإضافة إلى RedHat Fedora Core Project .


    نظام الملفات في Linux:


    في ويندوز نظام الملفات يقوم على أنه لكل جزء (بارتشن) جذره الخاصة (own root) ، فمثلا C يعتبر هو الجذر root حق الجزء الأصلي و D هو الجذر root حق الجزء الثاني وE هو الجذر حق الجزء الثالث ... وهكذا.

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

    بالمناسبة أنا هنا لا اتحدث عن المستخدم root ، فأنا اتحدث عن نظام الأدلة أو الملفات File System في نظام لينكس لكي لا يتم الخلط مع إسم المستخدم الرئيسي بالنظام المعروف root .

    تحت الجذر الرئيسي (الدليل) تأتي مجموعة كبيرة من المجلدات مثل
    /boot /bin /home /mnt /lib /var /usr /dev /etc /proc /root /tmp
    ولكل واحده منهم وظيفة محددة تماماً ، سوف نتطرق لشرحها وعمل وظائف بعضها في الرد الثالث والأخير – إن شاء الله


    :tunis:
     
    4 شخص معجب بهذا.
  3. subaru_20

    subaru_20 صديق المنتدى

    إنضم إلينا في:
    ‏1 أوت 2008
    المشاركات:
    7.366
    الإعجابات المتلقاة:
    19.783
      27-09-2008 17:14

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

    مجلد mnt: في هذا المجلد تحفظ وتجهز التعريفات الخاصة بأجهزة الحفظ مثل القرص الصلب والسي دي روم والدي في دي وغيرهم . بحيث يقرر لينكس نظام الملفات الخاص بهذا الجهاز هل هو iso (للسيديات) أو NTFS للويندوز أو smbfs لنظام سامبا أو غيرهم .

    مجلد boot : في هذا المجلد تحفظ (الكيرنل) وأي ملفات يحتاجها النظام في عملية التشغيل (Booting) .

    مجلد etc: في هذا المجلد تحفظ ملفات إعدادات النظام .

    مجلد lib: في هذا المجلد تحفظ Modules الكيرنل (مثل ما تم ذكره في تعريفات القطع) ، وتحفظ المكتبات الخاصة بتشغيل البرامج .

    مجلد usr: أدوات وبرامج المستخدم التي تم تحميلها كلها تحفظ في هذا المجلد.

    root: هذا هو مجلد المستخدم الرئيس للنظام root .

    proc: هذا المجلد يحفظ بعض معلومات النظام مثل الإحصائيات .

    dev: هذا المجلد فيه مؤشر Pointers للأجهزة المثبتة على النظام فمثلا dev/hda1 فيه مؤشر للقرص الصلب الرئيس على النظام.

    المستخدمون Users والترخيصات Permissions:

    مثل ما تم ذكره أن هذا النظام يحمل كل مميزات أنظمة التشغيل المتطورة والقوية ، من ضمنها نظام إدارة المستخدمين . في هذا النظام يوجد مستخدم مطلق الصلاحيات واحد فقط هو root ، فهذا المستخدم يستطيع أن يعمل أي عمل في أي مكان بالنظام من دون أي ترخيص ، لذلك يجب أن تكون كلمة المرور لهذا المستخدم هي أهم ما عندك في الجهاز!

    ويمكنك إضافة مستخدمين جديد تنتمي إلى مجموعات مختلفة ذات صلاحيات مختلفة. كل ملف أو مجلد على نظام Linux له خصائص و صلاحيات معينة ، لنأخذ ملفا معينا اسمه user.conf فهذا الملف لا يمكن تعديله أو حذفه الا من قبل المستخدم صاحب هذا الملف أو من قبل root ، ويمكن إعطاء هذا الملف صلاحيات أخرى حتى يمكن لليوزرات الأخرى إستخدامه أو منع إستخدامهم له بناء على رغبة المستخدم. ولهذه الخاصية طرق معينة ، مثلا يستطيع المستخدم أن تستخدم الأمر chmod لتغيير صلاحيات الملفات و أن يمنع أو يسمح بالخصائص التي تم إلغاؤها.

    Shell (الغلاف):
    الغلاف هو البرنامج الذي يتيح للمستخدم إمكانية التعامل مع نظام التشغيل عن طريقة الشاشة النصية .
    إعطاء الأوامر بترجمة البرامج ، تشغيل البرنامج ، إنشاء المجلدات ، إدارة المعالج وغيرها من الأوامر. يوجد أنواع مختلفة للأغلفة ، مثل bash و sh و csh و ksh وغيرها. أشهرهم هو الغلاف bash لأنه يحمل مميزات جيدة كثيرة ، على سبيل المثال إسترجاع الأوامر وتصحيح الأخطاء. بالطبع الـ shells تختلف عن بعضها كثيرا وليس بمجرد شكل الغلاف أو طريقة الكتابة فيه .


    X Windows:
    تسمح للمستخدم بإدارة النظام من خلال الشاشات المرئية أو الرسومية. ويوجد له أنواع مختلفة للأنظمة والشاشات الرسومية. سوف نتطرق إلى أشهر إثنين وهما ، KDE و GNOME .


    KDE: نظام KDE لإدارة النوافذ هو أشهر وأبسط نظام موجود على اللينكس ، فهو نظام يحتوي على سطح مكتب ويوجد لوح بالأسفل يحتوي على اختصارات لتشغيل البرامج ، لتتبع البرامج التي تعمل في اللحظة الحالية ، لإدارة الاتصالات ، الساعة ، بالإضافة إلى وجود قائمة تشبه قائمة إبدأ في ويندوز. هذا النظام ممتاز جداً للمبتدئين على نظام Linux.

    GNOME: نظام يشابه KDE في بعض الخصائص ولكن إدارة النظام عن طريقه أصعب قليلاً من KDE.

    كلا النظامين أو الأنظمة الآخرى (يوجد أنظمة غير هذه الأنظمة) تستطيع تحميلها على توزيعات كثيرة ولكن بالبداية يجب التأكد بأن النظام مثلا KDE يدعم التوزيعة RedHat مثلا ، فتستطيع تحميلها والعمل عليها مباشرة .

    يوجد كتب كثيرة جيدة بأن تكون كمرجع لأنظمة لينكس عموما مثلا Linux Bilble ، Linux in a Nutshell.

    تحياتي
    :satelite:
     
    4 شخص معجب بهذا.
  4. abdel_monaam

    abdel_monaam عضو

    إنضم إلينا في:
    ‏10 مارس 2008
    المشاركات:
    264
    الإعجابات المتلقاة:
    163
      25-10-2008 21:57
    1000 mercie !!!!!!!!!!!!!!!!!!!
     
  5. med_eragon

    med_eragon عضو

    إنضم إلينا في:
    ‏16 أوت 2007
    المشاركات:
    1.028
    الإعجابات المتلقاة:
    2.235
      25-10-2008 22:21
    عجبتني اللغة إلى عملت بيها شرحك حبيت نكتب رد..
    :satelite:
     
    1 person likes this.
جاري تحميل الصفحة...

مشاركة هذه الصفحة

جاري تحميل الصفحة...