الجمعة، فبراير 26، 2010

مقدمه حول نظام التشغيل Linux

 مقدمه تاريخيه:
في أوائل السبعينيات ابتكر ريتشي و كيرينان (K&R) - باحثان في معامل بل (Bell Labs) بشركة (AT&A) - (لغة السي C ) و في ذات الوقت - أو دونه - تم ابتكار نظام يونيكس (Unix) - و هو نظام تشغيل أصبح فيما بعد مشهورا للغاية - بنفس المكان، أي بمعامل بل أيضا.و قد اشترك به ريتشى أيضا.
ولقد كانت نظم التشغيل دائما ما تكتب بلغة التجميع (Assembly) والمعروف أن لغة التجميع تختلف تماما من معالج (Processor) لآخر. أي أن البرنامج (أو نظام التشغيل) المكتوب بلغة الآلة (Assembly) للمعالج بنتيوم 4 مثلا لن يعمل على معالج باور بي سي (Power PC) ولا غيره. و بالتالي لم تكن أنظمة التشغيل و لا البرامج في ذلك الوقت تتطور بسرعة كما يحدث الآن - و ذلك لأن كل موديل كان له نظامه الخاص!
و لكن حدث شي خطير في ذلك الوقت، تم كتابة أجزاء ضخمة من نظام يونكس بلغة سي.
انتشرت لغة سي بسرعة و أصبحت ذات شعبية كبيرة. حيث تم كتابة مترجمات سي (Compilers) علي العديد من الأجهزة (Architectures). أدى انتشار مترجمات سي إلى سهولة نقل كود المصدر (Source Code) لنظام يونيكس إلى العديد من الأجهزة.
بدأ يونيكس - و بسبب مميزاته المتعددة و تصميمه الداخلي الممتاز في ذلك الوقت - في الانتشار و الشعبية. و مع الوقت و التطوير المستمر أصبحت به مميزات جعلته يكتسح.
في أثناء ذلك حصلت إحدى كبريات الجامعات الأميركية - بيركلي (Berkley) - على نسخة من كود المصدر لنظام يونيكس. عملت على تطويرها و إضافة المزيد من الأدوات فيما عرف باسم توزيعه برامج بيركلي (Berkley Software Distribution) اشتهرت هذه النسخة أيضا - حتى فازت بعطاء وزارة الدفاع الأميركية (DoD)
مارست بيركلي و (AT&T) الاحتكار الشديد وارتفع ثمن يونيكس جدا حتى ضجر ريتشارد ستالمان - من معمل الذكاء الصناعي بمعهد ماسسوشيتس للتكنولوجيا (MIT) - من الأسعار المغالى فيها.
تكونت لدى ستالمان فلسفته الخاصة بان البرمجيات ليست سلعة بل فكرة.. أن البرمجيات مثل الاكتشافات العلمية - يستشهد ستالمان: انظر اسحق نوتن مثلا، قام بوضع قوانين الميكانيكا لكنه لم يحتكرها و لا احد يقول انه يلزم ترخيص من نيوتن لاستخدام قوانينه - لا يجب أن يكون كود المصدر سرا تجاريا.. يجب أن لا تقيد البرمجيات باحتكار أشخاص معينين لاكواد المصدر..يجب أن لا يكون كود المصدر سرا..يجب أن تحرر البرمجيات.. أو بعبارة أخرى تصبح حرة.
ستالمان و تتويجا لهذه الأفكار شيد ستالمان في أوائل الثمانينات مؤسسة البرمجيات الحرة (fsf.Org) و قام بكتابة عدة أدوات مجانية من بينها مترجم سي الشهير (و الأفضل!) جي سي سي (gcc) وأيضا محرر ايماكس (Emacs) ذو الشعبية الضخمة.
اشترك البعض مع ستالمان و قاموا معا بإنشاء مشروع جنو (gnu.Org) حيث قاموا بكتابة الكثير من الأدوات المجانية، فقط كان حلم ستالمان هو نظام تشغيل بالكامل حر (مجاني و مفتوح المصدر).
في هذه الأثناء - و بينما كانت أفكار ستالمان تبدو غريبة بعض الشيء و ربما مجنونة! - كان أستاذ علوم الحاسب الألماني تينينباوم قام مع تلاميذه بكتابة نواة و نظام تشغيل مينيكس (Minix). كان الهدف أن يطلع التلاميذ على كود مصدر لنظام تشغيل.
لكن المفاجأة الكبرى التي قلبت الأوضاع تماما لم تأت حتى العام 1991. كان لينوس تورفالدس طالبا بالسنة النهائية علوم حاسب بجامعة هيلسنكي بفنلندة. استغل تورفالدس العطلات الأسبوعية لكتابة نواة نظام تشغيل محاكي لنظام يونيكس. أطلق عليه لينوكس (Linux). استخدم تورفالدس ادوات مؤسسة البرمجيات الحرة – فقد كان طالبا و لا يملك الكثير من المال - مما أجبره على جعل لينوكس حرا. طرح لينوس نواته على مجموعة - أخبار (newsgroup) مستخدمي مينيكس. حيث كان تصميم لينوكس أفضل كثيرا.
جاءت (*) النواة - لينوكس بتصميم متميز و في وقت متميز للغاية، فتلقفه الجميع و انشأ نظام التشغيل المعروف (خطأ!) باسم لينوكس.
انتشر لينوكس و تطور جدا - و بفضل نشر كود المصدر على الانترنت و مشاركة الآلاف من الهواة و المطورين و الطلبة أيضا عبر الانترنت في عملية اكتشاف الأخطاء و تصحيحها - بسرعة كبيرة حتى أطاح بنظام يونيكس و تربع على عرشه.
ثانياً: مميزات لينكس:
من بين مميزات لينوكس، قدرته العالية على التعامل مع الشبكات و كروتها و بروتوكولاتها بجميع أنواعها. التعامل مع العديد من المنصات - حاسبات محمولة، حاسبات شخصية، حاسبات بها أكثر من معالج متماثل (SMP) بل و حاسبات عملاقة (Super) أيضا. الآن أكثر من 75% من مشاريع الحاسبات العملاقة بالعالم تنفذ بأنظمة لينوكس. بل و اصغر من ذلك! توجد نسخ لينوكس على هواتف محمولة و تلفازات و معدات مختلفة - قد يكون فرن المايكرو ويف الخاص بك! - انظر (LinuxDevices.Com) ، ناهيك عن انه مجاني، و بالتالي فان المشروعات البحثية و العلمية ستعتمد على لينوكس و توجه التمويل إلى مصارف أخرى. و أيضا فهو اقتصادي جدا للشركات الأفراد و الطلاب - بالإضافة إلى وجود المتخصصين الذين يمكنهم الاطلاع على شفرة المصدر (للأسف القاري العربي قد لا يدرك أهمية المجانية! ولا المشروعات البحثية في شتى العلوم التي تطلب ساعات من المعالجات الاليه.
ثالثاً: توزيعات وإصدارات لينكس:
هي عبارة عن انظمه لينوكس مختلفة من شركات مختلفة ولكن كلها تتفق من حيث العمل على الشل Shell وسنتكلم عن الشل بالتفصيل إن شاء الله فيما بعد
يوجد الكثير والكثير من توزيعات اللينوكس مثل ماندريك Mandrake وديبيان Debian وسوسي Suse وريد هات Redhat وفيدورا Fedora وكل واحد منهم له خصائص مختلفه وباذن الله سنناقش أحدهم بالتفصيل هي هذه السلسله.
رابعاً: الأنظمة مفتوحة المصدر Open Source:
إن البرمجيات مفتوحة المصدر و المجانية بقدر ما هي كابوس للمطور الذي يعتقد انه يبيع سلعته بلا مقابل (في الواقع المجانية قد تكون فقط بأسعار غير مبالغ فيها شريطة أن يتسلم المشتري نسخة من كود المصدر. و لذلك شروط قانونية -- انظر ترخيص الاستخدام العام للجمهور(http://www.fsf.org/gpl))، فإنها تفيد تطور البرنامج ذاته. إن الكم الهائل من الهواة و المطورين - و الطلبة أيضا - المشتركين عبر الانترنت في عملية اكتشاف الأخطاء و تصحيحها لا يأتي لأكبر الشركات العالمية. إن هذه العملية - و تسمى البحث والتنقيب عن الأخطاء (Debugging) - تعد مرحلة مكلفة جدا في صناعة البرمجيات مغلقة المصدر.
لحكومات و الشركات التي تملك معلومات حساسة تحتاج إلى أكواد مصادر البرامج التي تستخدمها لكي تقوم بواسطة مطوريها بحماية الثغرات. فهذه الجهات يمكنها تعديل كود المصدر ليلاءم حاجة وقتية، مثلا أعمال صيانة لبعض أجزاء الشبكة، إلغاء مؤقت لبعض الخصائص. بل و يمكن شراء البرامج الحرة من شركة ما و تكليف أخرى
ولذالك فإن كل هذه القوة و الحرية و الخصائص لا تتأتى للمستخدم تحت مظلة البرمجيات المغلقة، بل تظل الكرة في ملعب الشركة تتلاعب بالمستخدمين.
لهذه الأسباب و غيرها تنامى وعي العالم بان البرمجيات مفتوحة المصدر أفضل من غيرها. و تكونت الكثير من المشاريع بجانب جنو (gnu) مثلا (Xfree86.Org, httpd.apache.org, openOffice.org, kde.org, Gnome.org, Debian.org, tdlp.org, etc...) و الشركات أيضا تعمل في هذا المجال (Redhat.com, MandrakeSoft.com,..etc). و أيضا مجموعات المستخدمين على الانترنت (Linux Users Group: LUG).
u>رابعاً: ترخيص الاستخدام العام للجمهور:
انظر ترخيص الاستخدام العام للجمهور(http://www.gnu.org/copyleft/gpl.html) و يسمى (General Public License: GPL)
يسمح بتوزيع و تعديل كود المصدر مع الالتزام بتوفيرها بنفس الرخصة بعد التعديل، مما يعني أن المستخدمين أو المطورين لهم الحرية في تعديل البرنامج و بيعه بمقابل عائد مالي على شرط توفير كود المصدر له مجانا بعد التعديل لجميع المستخدمين الآخرين.
(*) النواة هي قلب النظام. تدير العتاد و تتكون من مجموعة من البرامج. تشكل واجهة ما بين التطبيقات و العتاد