SSD Nodes Learn 🎉 VPS من $5.50/شهر
الأدلة Matt Connorبقلم Matt Connor

تاريخ Unix وLinux من 1969 إلى اليوم

تعرّف إلى كيف نشأ Unix في Bell Labs عام 1969، وانتشر عبر AT&T وBSD، ولماذا غيّرت دعوى 1992 مسار الخوادم لصالح Linux بدل BSD.

تاريخ Unix وLinux باختصار

تاريخ Unix وLinux هو في جوهره جدال طويل حول الجهة المسموح لها بامتلاك الشيفرة المصدرية. بدأ Unix في Bell Labs عام 1969. وبدأ Linux في هلسنكي عام 1991، ولا يتضمن أي جزء من الشيفرة الأصلية لذلك النظام. ما انتقل بينهما كان تصميماً ومجموعة من الواجهات المنشورة: الملفات، والعمليات، والأنابيب، وshell يربط البرامج الصغيرة معاً. انتشر Unix في الجامعات خلال سبعينيات القرن العشرين لأن تسوية لمكافحة الاحتكار أُبرمت عام 1956 منعت AT&T (American Telephone and Telegraph) من بيع البرمجيات، ولذلك رخّصت Bell Labs الشيفرة المصدرية بتكلفة منخفضة بدلاً من ذلك. انتهى الأمر بوجود Unix في كل مكان، مع بقائه مملوكاً لـAT&T دون سواها، وقد حسمت نزاعات الترخيص التي تلت ذلك أي نظام مجاني شبيه بـUnix سينتهي به المطاف على خادمك.

1969: جهاز PDP-7 فائض، والأفكار التي استمرت

انسحبت Bell Labs من مشروع Multics في 1969. كان Multics، أي خدمة المعلومات والحوسبة متعددة الإرسال، نظاماً كبيراً للمشاركة الزمنية بُني بالتعاون مع MIT وGeneral Electric، وقررت المختبرات أن المشروع أكبر من أن يكتمل. احتفظ Ken Thompson بالأفكار التي أعجبته وأسقط الباقي، وكتب نظاماً صغيراً للمشاركة الزمنية على حاسوب PDP-7 المصغّر المهمل. انضم إليه Dennis Ritchie. وكان اسم Unix مزحة على حساب Multics.

في 1970 انتقل النظام إلى PDP-11 اشترته المختبرات لكتّاب قسم براءات الاختراع، لأن تمويل أداة لمعالجة النصوص كان أسهل من تمويل نظام تشغيل. احتوت تلك الآلة على 24 KB من الذاكرة الأساسية، مقسّمة بين النظام وبرامج المستخدم. يفسّر هذا الحادث في التمويل سبب كون أول دليل لـUnix، المؤرخ في November 1971، مجموعة من المستندات المنسّقة، كما يفسّر سبب استمرارك في كتابة man 5 crontab. وأرقام الأقسام في ذلك الدليل هي أرقام الأقسام في دليلك.

جعل تغييران التصميم دائماً. ظهرت الأنابيب في Version 3 في 1973، لأن Doug McIlroy جادل لسنوات بضرورة إمكانية وصل البرامج طرفاً بطرف، وأضاف Thompson المعامل | بحيث يصبح خرج برنامج ما دخل البرنامج التالي. ثم أُعيدت كتابة Version 4، في وقت لاحق من 1973، بلغة C. يمكن لنظام تشغيل مكتوب بلغة محمولة الانتقال إلى عتاد لم يُكتب من أجله، ولذلك تفوّق Unix في عمره على كل آلة بدأ عليها.

لماذا انتشر Unix: لم يكن مسموحاً لـ AT&T ببيعه

أنهى مرسوم موافقة صدر عام 1956 قضية مكافحة الاحتكار ضد AT&T. احتفظت AT&T باحتكارها للهاتف، وقبلت في المقابل قيداً يمنعها من دخول أعمال غير الاتصالات. وكان البرمجيات أحد تلك الأعمال. لذلك، عندما طلبت الجامعات Unix، لم تتمكن Bell Labs من بيعه كمنتج. بل رخّصت الشيفرة المصدرية مقابل رسم رمزي، من دون دعم أو ضمان.

كان التأثير كبيراً، ولم يكن هذا ما خططت له AT&T. فقد وصل Sixth Edition Unix، الذي صدر عام 1975، إلى مئات أقسام علوم الحاسوب مع الشيفرة المصدرية الكاملة. وطبع John Lions في University of New South Wales شيفرة النواة تلك مع شرح سطر بسطر، ودرّس اعتماداً عليها. وتعلم جيل كامل كيفية عمل نظام التشغيل من خلال قراءة نظام حقيقي.

ثم تغير الترخيص. فقد منع ترخيص Seventh Edition في عام 1979 استخدام الشيفرة المصدرية في الصفوف الدراسية، لذلك انتشر شرح Lions على شكل نسخ مصورة من نسخ مصورة. هذه هي صورة القصة بأكملها. كان Unix موجوداً في كل مكان، وغير حر في الوقت نفسه، ولذلك كان كل تحسين يجريه أي شخص تحسيناً لشيفرة احتكارية يملكها شخص آخر.

بيركلي: أجزاء Unix التي تكتبها فعلياً

أمضى Ken Thompson العام الأكاديمي 1975 إلى 1976 في University of California, Berkeley، وترك وراءه مجموعة نشطة جداً من مستخدمي Unix. أرسلت Berkeley's Computer Systems Research Group (CSRG) أشرطة تحتوي على تحسينات محلية، وأصبحت تلك الأشرطة BSD، أي Berkeley Software Distribution. كتب Bill Joy جزءاً كبيراً من العمل المبكر: الإصدار 1BSD في 1978، ثم 2BSD في 1979، الذي تضمّن محرر vi وC shell.

تأتي !! و!$ من C shell. ورث Bash هذه الصياغة، ولهذا لا يزال توسيع سجل bash يفاجئ المستخدمين الذين يكتبون علامة تعجب داخل علامتي اقتباس مزدوجتين بعد أكثر من أربعين عاماً.

دفعت DARPA (وكالة مشاريع الأبحاث المتقدمة للدفاع في الولايات المتحدة) Berkeley لإضافة بروتوكولات الإنترنت الجديدة إلى Unix. أُصدر 4.2BSD في أغسطس 1983، وتضمّن TCP/IP (بروتوكول التحكم في الإرسال فوق بروتوكول الإنترنت) وواجهة برمجة تطبيقات المقابس. لا تزال كل خدمة شبكة على خادمك تستدعي socket() ثم bind() ثم listen() ثم accept() بهذا الترتيب، لأن Berkeley اختارت هذه الأسماء في 1983.

حسمت إحدى التفاصيل مسار العقد التالي. لم يكن شريط BSD نظاماً كاملاً. بل كان مجموعة إضافات إلى Unix الخاص بـAT&T، وكان تشغيله قانونياً يتطلب ترخيصاً سارياً للمصدر من AT&T. استبدلت Berkeley أجزاء AT&T بشيفرتها الخاصة على مدى عدة سنوات، ملفاً بعد ملف. وكانت مسألة اكتمال هذا الاستبدال فعلاً هي السؤال الذي وصل لاحقاً إلى المحكمة.

1984: التفكك، ثم حروب Unix

تفكك نظام Bell System في 1 January 1984، وانتهى معه مرسوم الموافقة الذي كان يُبقي AT&T خارج مجال البرمجيات. أصبح بإمكان AT&T بيع Unix كمنتج، وهذا ما فعلته. ارتفعت تكلفة تراخيص الشيفرة المصدرية التجارية، فلم يعد Unix شيئاً رخيصاً تسلّمه الجامعة إلى الطلاب.

كان المورّدون قد أنشأوا تفرعاتهم منه بالفعل. كانت كل شركة لمحطات العمل تطرح Unix الخاص بها على أجهزتها الخاصة، ولذلك أصبح البرنامج المكتوب لأحدها يحتاج إلى نقله إلى النظام التالي بحلول أواخر 1980s. انقسمت الصناعة إلى معسكرين للمعايير في 1988: Open Software Foundation من جهة، وUnix International من جهة أخرى. وأمضى الطرفان سنوات يطرحان أنظمة غير متوافقة، بينما يتجادلان حول أي Unix هو Unix الحقيقي.

خرج POSIX (واجهة نظام التشغيل القابلة للنقل) من تلك الفوضى. نُشر IEEE 1003.1 في 1988، ووثّق ما يجب أن يفعله النظام الشبيه بـUnix: استدعاءات النظام، وسلوك shell، والأدوات القياسية، وواجهات مكتبة C. وهذا أهم مما يبدو، لأن المعيار مواصفة، ولا يغطيه أي ترخيص. وبعد ثلاث سنوات، كتب طالب kernel بالاعتماد على تلك الوثائق.

Minix والفجوة التي خلّفها

أصدر Andrew Tanenbaum نظام Minix في عام 1987 ليكون النظام التعليمي المصاحب لكتابه عن أنظمة التشغيل. كان Minix نظاماً صغيراً شبيهاً بـUnix، وكان مصدره البرمجي مرفقاً بالكتاب، كما كان يعمل على أجهزة الكمبيوتر الشخصية منخفضة التكلفة التي كان الطلاب يملكونها فعلياً. وكان من القانوني قراءته في قاعة الدراسة، بخلاف Unix Seventh Edition الذي لم يعد ذلك متاحاً له.

ظل Minix صغيراً عن قصد، لأن شرحه كان يجب أن يكون ممكناً في كتاب. كما رفض Tanenbaum تصحيحات كانت ستحوّله إلى نظام صالح للاستخدام في الإنتاج. ولم تكن رخصته حرة أيضاً: كان عليك شراء الكتاب، ولم يكن قرار إعادة توزيع نسخة Minix المعدّلة بيدك. لذلك، بحلول عام 1991، كان الطالب يستطيع قراءة نواة عاملة شبيهة بـUnix، لكنه لم يكن يستطيع بناء شيء مستدام عليها.

كان لدى GNU كل شيء باستثناء kernel

أعلن Richard Stallman عن مشروع GNU في سبتمبر 1983، بهدف إنشاء نظام حر كامل شبيه بـUnix. وبحلول 1991، كان GNU قد أنتج معظم المكونات المحيطة بـkernel: مترجم GCC، ومكتبة GNU C، والأدوات الثنائية، وbash، وهو الـshell الذي كتبه Brian Fox في 1989 والذي لا يزال خادمك يشغّلك فيه. أما kernel الخاص بـGNU، Hurd، فكان الجزء الذي ظل يتأخر.

نُشرت رخصة GNU General Public License الإصدار 2 في يونيو 1991. قاعدتها مختصرة. يمكنك استخدام الشفرة وتعديلها، وإذا وزّعت النتيجة، فيجب أن توزّع المصدر بالشروط نفسها. تصبح هذه القاعدة محور هذه القصة بعد قسمين من الآن.

أغسطس 1991: المنشور إلى comp.os.minix

في 25 أغسطس 1991، نشر طالب في هلسنكي رسالة إلى مجموعة Usenet ‏comp.os.minix:

Hello everybody out there using minix -

I'm doing a (free) operating system (just a hobby, won't be big and
professional like gnu) for 386(486) AT clones.

صدر الإصدار 0.01 في سبتمبر 1991. ولم يشارك الشيفرة مع Unix أو Minix. كان نواة جديدة لمعالج 386، طُوِّرت على جهاز يعمل بنظام Minix، وكُتبت بالاعتماد على واجهات POSIX، واقترنت بأدوات GNU الموجودة آنذاك. أخبر Tanenbaum‏ Torvalds في يناير 1992 بأن النواة الأحادية التصميم قديمة. كان لديه رأي وجيه بشأن التصميم، لكن Torvalds كان يجيب عن سؤال مختلف: ما الذي يعمل جيداً على الحاسوب الرخيص الوحيد الذي يملكه طالب؟

في فبراير 1992، أُعيد ترخيص الإصدار 0.12 بموجب GPL. وقد وصف Torvalds ذلك لاحقاً بأنه أفضل قرار اتخذه. كان ترخيص Linux الأصلي يحظر انتقال الأموال بين الأطراف، مما كان سيمنع مورّدي الأقراص المضغوطة وشركات الدعم التي ظهرت لاحقاً. سمحت GPL بالتجارة، مع إلزام كل تعديل موزّع بالعودة إلى شجرة الشيفرة المشتركة نفسها.

الدعوى القضائية: من أبريل 1992 إلى فبراير 1994

أصدرت Berkeley الإصدار الثاني من Networking Release (Net/2) في يونيو 1991. كان نظام BSD شبه مكتمل، بعد إزالة الملفات المشتقة من AT&T. وكانت 6 ملفات من النواة مفقودة. كتب Bill وLynne Jolitz بدائل لهذه الملفات، وأصدرا 386BSD 0.0 في مارس 1992، ثم 386BSD 0.1 في 14 يوليو 1992. أصبح هناك نظام BSD مجاني وكامل وناضج لمنصة 386، في الوقت نفسه تقريباً الذي كانت فيه Linux لا تزال نواة تجريبية. وكانت Berkeley Software Design, Inc. (BSDi) تبيع إصداراً تجارياً مدعوماً باسم BSD/386، وتعلن عنه باستخدام رقم الهاتف 1-800-ITS-UNIX.

في أبريل 1992، رفعت Unix System Laboratories (USL)، وهي الشركة التابعة لـAT&T التي كانت تملك Unix آنذاك، دعوى قضائية ضد BSDi أمام محكمة اتحادية في New Jersey، بسبب الأسرار التجارية والعلامة التجارية Unix. عُدّلت الدعوى لاحقاً لإضافة Regents of the University of California. وردّت الجامعة برفع دعوى مضادة في California في 1993، بحجة أن AT&T كانت قد أدرجت شيفرة Berkeley داخل System V من دون نسبها، خلافاً لما يشترطه ترخيصها هي.

انهار الأساس القانوني للقضية في 1993. رفض القاضي Dickinson Debevoise إصدار أمر قضائي تمهيدي لصالح USL، إذ رأى أن مطالبة USL بحقوق الطبع والنشر على شيفرة 32V الأقدم كانت على الأرجح باطلة، لأن AT&T وزّعت تلك الشيفرة لسنوات من دون إشعارات بحقوق الطبع والنشر. اشترت Novell شركة USL من AT&T في منتصف 1993، وكانت إدارة Novell تريد إنهاء النزاع. تمت تسوية القضية في فبراير 1994. ومن بين نحو 18,000 ملف في توزيعة Berkeley، أزيلت 3 ملفات، وأضيفت إشعارات حقوق طبع ونشر USL إلى نحو 70 ملفاً.

أصدرت Berkeley الإصدار 4.4BSD-Lite في يونيو 1994، وكان متوافقاً قانونياً. تأسستا FreeBSD وNetBSD كلتاهما في 1993 اعتماداً على شيفرة Net/2 محل النزاع، ولذلك كان عليهما إعادة بناء نظاميهما على الأساس الجديد، واستغرق ذلك معظم ما تبقى من 1994. أُصدر Linux 1.0 في مارس 1994، أثناء عملية إعادة البناء تلك.

لماذا استحوذ Linux على الخوادم بدلاً من BSD؟

تُعد الدعوى القضائية الإجابة الشائعة، وهي جزء من الإجابة فعلاً. بين April 1992 وFebruary 1994، كان على أي شخص يختار Unix حراً لمنتج أن يوازن بين مطالبة قائمة يرفعها محامو AT&T وبين kernel كتبه طالب فنلندي لا يمكن لأحد مقاضاته بشأنه. كانت تلك الفترة تحديداً هي الفترة التي ظهر فيها الويب وظهرت فيها أول توزيعات Linux: Slackware في July 1993، وDebian في August 1993، ثم Red Hat وSUSE.

كانت هناك أربعة عوامل أخرى لا تقل أهمية عن القضية أمام المحكمة.

  • العتاد. استهدف Linux جهاز 386 PC التجاري منذ أول سطر من شفرته، وهذا هو العتاد الذي أصبح رخيصاً. كان مركز ثقل BSD هو VAX ومحطات العمل، وكان منفذ 386 جهداً خارجياً بذله شخصان.
  • الترخيص. تفرض GPL على الشركة التي تُصدر kernel معدلاً أن تنشر تغييراتها، لذلك عادت أعمال المورّدين إلى شجرة مصدر واحدة. يتيح ترخيص BSD للشركة إبقاء تغييراتها خاصة، وقد أبقتها الشركات خاصة فعلاً.
  • نموذج التطوير. كان Torvalds يدمج الرقع من أشخاص مجهولين بسرعة ويصدر الإصدارات باستمرار. كان 386BSD يُصدر ببطء كافٍ جعل مستخدميه ينشئون fork له مرتين في 1993، إلى NetBSD وFreeBSD، ثم مرة أخرى إلى OpenBSD في 1995.
  • الزخم. يتجه المطورون إلى حيث يوجد المطورون الآخرون أصلاً، وتُكتب برامج التشغيل للنظام الذي يملك أكبر عدد من المستخدمين.

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

ما الذي احتفظ به BSD، وأين يعمل الآن

استمر BSD في التطور. لكنه فقد موقعه الافتراضي. أوضح دليل على ذلك موجود على جهازك نفسه: طوّر مشروع OpenBSD برنامج OpenSSH في عام 1999، وهو خادم SSH في معظم أنظمة Linux التي تُصدر اليوم، ولذلك فإن عادات مفاتيح SSH التي تستحق التعلّم متطابقة في العائلتين.

تقدّم Netflix الفيديو من أجهزة FreeBSD. ونظام Junos، نظام التشغيل في موجّهات Juniper، مبني على FreeBSD في طبقته الأساسية. كما تنحدر برمجيات نظام PlayStation من FreeBSD. وتضم macOS وiOS من Apple شيفرة BSD في النواة وفي أنحاء userland. وقد وضعت الرخصة المتساهلة، التي حرمت BSD من شجرة الخوادم المشتركة، شيفرة BSD داخل قدر كبير من الأجهزة التي لا تذكرها أصلاً.

إذا كنت تختار اليوم، فالسؤال عملي وليس تاريخياً. تتلخص مقارنة Linux وFreeBSD كخادمين في ZFS وjails وشجرة ports ومقدار اعتماد برامج الجهات الخارجية على Linux في الطبقة الأساسية. إن FreeBSD 15 كخادم نظام حالي يحظى بالصيانة، وليس معروضاً في متحف. أما Linux مقابل Windows Server فهو سؤال منفصل، وتعتمد إجابته على حزمة التطبيقات التي تستخدمها.

التصميم من عام 1969 الذي تستخدمه اليوم على VPS

كل عنصر من هذه العناصر أقدم من معظم الأشخاص الذين يستخدمونه.

  • الأنبوب. يحسب who | wc -l عدد المستخدمين المسجّلين لأن Version 3 Unix أتاح في عام 1973 أن يصبح خرج برنامج ما إدخالاً لبرنامج آخر.
  • أقسام الدليل. يستخدم man 1 ls وman 5 crontab نظام الترقيم الوارد في دليل نوفمبر 1971.
  • تقسيم نظام الملفات. وُجد /usr لأن قرص root على ذلك PDP-11 امتلأ في عام 1971، فنقل المطوّرون الملفات إلى حزمة الأقراص الثانية. ألغت التوزيعات هذا التقسيم منذ ذلك الحين: شغّل ls -ld /bin على Ubuntu 24.04 أو Debian 13، وستحصل على رابط رمزي إلى usr/bin.
  • استدعاءات المقابس. كتبتها Berkeley لنظام 4.2BSD في عام 1983، وما زال كل daemon شبكي يستخدمها.
  • POSIX. يعمل نص #!/bin/sh المكتوب وفقاً للمعيار دون تعديل على Linux وFreeBSD وmacOS وSolaris، لأن المعيار هو الشيء الذي نفذته جميع هذه الأنظمة.

عندما تستأجر خادماً افتراضياً خاصاً وتسجّل الدخول، فأنت تكتب عبر واجهة صُممت لجهاز ذي ذاكرة سعتها 24 KB وقسم براءات اختراع يخدمه. استمرت هذه الواجهة لأنّها نُشرت، وخضعت للنقاش، ووُحّدت معيارياً، ثم أعاد أشخاص لم يُسمح لهم برؤية الشيفرة الأصلية تنفيذها من الصفر.

FAQ

هل يحتوي Linux على أي شيفرة أصلية من Unix؟

لا. كتب Linus Torvalds النواة من الصفر ابتداءً من 1991، واستهدف واجهات POSIX بدلاً من أي شيفرة مصدرية من AT&T. يتمثل إرث Unix في التصميم والواجهة المنشورة: الملفات والعمليات والأنابيب وأسماء استدعاءات النظام. كما كُتبت أدوات GNU المحيطة بالنواة من الصفر، ابتداءً من 1983. وتلك الاستقلالية هي سبب عدم تأثر Linux مطلقاً بالدعوى القضائية التي رفعتها AT&T بشأن شيفرة BSD.

متى رفعت AT&T الدعوى القضائية ضد BSD، وهل قضت على BSD؟

رفعت USL، وهي الشركة التابعة لـAT&T التي كانت تملك Unix، دعوى على BSDi في أبريل 1992، ثم أضافت University of California إلى قائمة المدعى عليهم. في 1993 رفض القاضي إصدار أمر قضائي أولي، واعتبر أن دعوى حقوق الطبع والنشر المتعلقة بشيفرة 32V الأقدم يُرجح أن تكون باطلة. اشترت Novell شركة USL في منتصف 1993، ثم سوّت القضية في فبراير 1994، مع إزالة 3 ملفات من أصل نحو 18,000 ملف، ومنح نحو 70 ملفاً إشعارات جديدة بحقوق الطبع والنشر. لم تقضِ القضية على BSD. لكنها جمّدت اعتماد BSD خلال السنتين اللتين كان العالم يختار خلالهما Unix حراً.

لماذا سيطر Linux على الخوادم بدلاً من BSD؟

كان اليقين القانوني أحد الأسباب: ففي عامي 1992 و1993 لم تكن هناك دعوى قضائية ضد Linux، بينما كانت هناك دعوى ضد BSD. وشملت الأسباب الأخرى استهداف معمارية 386 منذ اليوم الأول، وترخيص GPL الذي كان يعيد تغييرات المورّدين إلى شجرة مصدر واحدة، وعملية دمج سريعة بما يكفي للحفاظ على اهتمام المساهمين، في حين انقسم 386BSD إلى 3 مشاريع. لم تكن الجدارة التقنية العامل الحاسم، لأن BSD كان النظام الأكثر اكتمالاً في 1994.

هل لا يزال تشغيل FreeBSD يستحق اليوم؟

نعم، لأسباب عملية واضحة: تكامل ZFS مع النظام الأساسي، وjails كنموذج ناضج للعزل، وتطوير النظام الأساسي كوحدة متماسكة، ووثائق تحافظ على دقتها. لكن التكلفة تتمثل في أعمال التوافق، لأن معظم برمجيات الخوادم التابعة لجهات خارجية، وأدوات الحاويات، ودعم المورّدين تفترض استخدام Linux. اختر FreeBSD عندما تبرر مزايا التخزين والشبكات فيه هذه التكلفة، لا بدافع الوفاء للسلالة الأقدم.