Skip to content

يونيكس مينيكس لينكس!

21 نوفمبر 2010

من الأمور التي أردت معرفتها بشكل أوضح وابسط هي تاريخ لينكس رغم أنني لا أهتم كثيرًا بالتفاصيل التاريخية إلا أنني وجدت انه يجب ان اعرف ولو جزءًا بسيطًا من  تاريخ لينوكس

مقالة جميلة قرأتها في موقع وادي التقنية تشرح بشكل مبسط لينكس واجداده يونكس ومينيكس (للتوضيح مواضيع وادي التقنية تقع تحت ترخيص الابداع المشاع ولذا يمكن نقلها من دون اختراق حقوق المؤلف)

يحكي (أندريه تننبوم) في الكتاب المعروف Operating Systems: Design and Implementation، قصة مينيكس باختصار في قسم فرعي تحت عنوان Minix History (تاريخ مينيكس)، وهذا المقال يعتمد على هذا القسم الفرعي. هذا الكتاب فريد في شرح نظريات نظم تشغيل الحاسوب إلى جانب شرح تطبيقها عملياً في نظام تشغيل تعليمي مصغر، ولكنه حقيقي، يتيح للطلاب استكشاف الجوانب العملية أثناء دراستهم للمبادئ النظرية. في الحقيقة، أكثر من ثلث الكتاب عبارة عن سرد كامل للكود المصدري لنظام التشغيل مينيكس، في ما يزيد على 27600 سطر. المثير في الموضوع أن تننبوم قد كتب نظام التشغيل بنفسه بلغة C مع بعض الأسمبلي، ونشره كاملاً في أول طبعة من الكتاب عام 1987 ميلادي. ما الذي قد يدفع بروفيسوراً مشغولاً في الجامعة إلى كتابة نظام تشغيل كامل؟

الحكاية أن الكود المصدري لنظام يونكس UNIX كان يستخدم في الجامعات من أجل تدريس مادة نظم التشغيل (ليس في جامعاتنا بالطبع؛ لأسباب ليس أقلها أن الطالب في هذه المرحلة بالكاد يستطيع أن يفكّ الخط، أعني يقرأ كوداً برمجياً، ولكن هذه قصة أخرى). وصل الأمر إلى أن هناك من كتب كتيباً يفصّل فيه وظيفة كود نظام التشغيل سطراً بسطر، واستخدم هذا الكتيب في كثير من الجامعات بترخيص من شركة AT&T حيث تم تطوير يونكس أول مرة. كان هذا حتى الإصدار السادس من يونكس. منذ الإصدار السابع، أدركت AT&T قيمة يونكس كمنتج تجاري، وحظرت استخدام الكود المصدري في المواد الدراسية (باعتباره سراً من أسرار المهنة). كانت ردة فعل كثير من الجامعات متوقعاً، ومعقولاً، وهو التخلي عن تدريس يونكس، والتركيز على المبادئ النظرية في تدريس نظم التشغيل. لكن ردة فعل تننبوم بالذات كانت غريبة، ومن نوع فريد. لقد شعر بأن تدريس نظم التشغيل نظرياً فقط يبقى ناقصاً، ويعطي الطالب نظرة (عرجاء) أحادية الجانب عن حقيقة نظام التشغيل. النظريات التي تغطّى عادة بكثافة (مثل خوارزميات الجدولة scheduling algorithms)، قد لا تكون بتلك الأهمية عملياً، في حين تحظى أجزاء عملية في غاية الأهمية بتغطية نظرية أقل (مثل الدخل والخرج I/O ونظام الملفات file system)، لأنه ليس هناك الكثير ليقال عنها نظرياً.

ما الذي فعله تننبوم؟ وكيف عبّر عن اعتراضه على هذا الأسلوب؟ لقد سحب كرسيه أمام حاسوبه، وكتب نظام تشغيل من الصفر، ولكن بطريقة ذكية. بالنسبة للمستخدم، فإن مينيكس يشبه تماماً يونكس، ويحوي البرامج الأساسية المعتادة (مثل cat وgrep وls وmake…)، بينما يختلف كلياً في بنيته وكوده المصدري. لم يستخدم تننبوم حتى سطراً واحداً من كود يونكس 7، حتى يتجنب أي مشاكل قانونية، وفي نفس الوقت حاول أن يجعل من مينيكس نظام تشغيل سهل التعلم، واضح التركيب، وقليل المتطلبات. بهذا الشكل، أصبح في متناول الطلاب نظام تشغيل مألوف الاستخدام، سهل القراءة (نسبياً بالطبع، على قدر ما يمكن أن تكون قراءة نظام تشغيل سهلة)، ويستطيعون تشريحه كما يشرّح طلاب الأحياء الضفادع على حد تعبير تننبوم.

لقد تطور مينيكس كثيراً الآن، منذ النسخة الأولى MINIX 1 في 1987 مع الطبعة الأولى من الكتاب المذكور أعلاه، ثم النسخة الثانية MINIX 2 عام 1997 مع الطبعة الثانية، وأخيراً العمل مستمر على إصدارات متتابعة للنسخة الثالثة MINIX 3 التي أتت عام 2004 مع الطبعة الثالثة من الكتاب، والتي شهدت تغييراً كبيراً في بنية مينكس، وتحاول أن تنقله من فئة نظام تشغيل تعليمي إلى صف نظام تشغيل متكامل وموثوق، ويشترك مجموعة من طلاب ومبرمجي البروفيسور تننبوم في دعمه. إذا كنت مهتماً أكثر بهذا النظام، وبمزاياه وتطويره، فيمكنك تحميله بدون مقابل مع معرفة الكثير من التفاصيل الأخرى من موقعه الرسمي على هذا الرابط: http://www.minix3.org. لكن الذي يهمنا هنا أكثر الآن هو علاقة هذا النظام بالنظام الشهير لينكس. بالمناسبة، اسم MINIX هو اختصار لـ(يونكس المصغّر mini-UNIX).

بعد فترة قصيرة من إصدار مينيكس لأول مرة، تكونت مجموعة USENET اسمها comp.os.minix من أجل مناقشة هذا النظام. في خلال أسابيع فقط، بلغ عدد المشتركين في هذه المجموعة أربعين ألفاً. المشكلة التي واجهت تننبوم هنا هي أن أغلب المشتركين أرادوا المزيد من الميزات في النظام، وسيل من مئات الاقتراحات والأفكار، بل ومقتطفات من الكود انهال على مؤلف مينيكس يومياً. نجح تننبوم في مقاومة هذه الموجة لسنوات، والسبب في ذلك هو أنه أراد أن يبقى مينيكس نظيفاً وصغيراً. نظيفاً من أي تعقيدات تأتي مع كثرة الميزات حتى يظل متيسراً لفهم الطلاب، وصغيراً إلى حد كافٍ لتشغيله بأبسط المتطلبات التي يستطيع الطلاب توفيرها.

بطبيعة الحال، قام العديد من الطلاب بشراء أجهزتهم الشخصية، وحملوها بنظام مينيكس، ثم عكفوا على دراسة الكود بعناية. واحد من هؤلاء، طالب فنلندي يدعى لينوس تورفالدز. بعد تثبيت ودراسة مينيكس، حاول لينوس استخدامه في مهام لم يكن مينيكس بعد قادراً عليها، لذلك استمر في تزويده بميزات مختلفة من كتابته شخصياً، حتى تكوّن لديه كيرنل ابتدائي مع حلول أغسطس عام 1991 ميلادي. في 25 أغسطس 1991، أعلن عن هذا الكيرنل في المجموعة comp.os.minix، وقد جذب هذا الإعلان اهتمام آخرين ليساعدوه. في 13 مارس 1994، تم إصدار LINUX 1.0، ولم يتوقف بعدها إلى الآن، حيث أصبح منافساً أساسياً وخطيراً للأنظمة التجارية الأخرى، ولكن هذا الجزء يعلمه الجميع.

رابط  المقالة

Advertisements

From → لينكس

اكتب تعليقُا

اترك رد

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s

%d مدونون معجبون بهذه: