تعليق على نظام التشغيل يونكس

يُعد كتاب "تعليق على نظام التشغيل يونكس الإصدار السادس" لجون ليونز (الذي أعيد إصداره لاحقًا باسم "تعليق ليونز على يونكس الإصدار السادس " [ 1 ] [ 2 ] ويشار إليه عادةً باسم " كتاب ليونز ") منشورًا مؤثرًا للغاية [ 3 ] صدر عام 1976 ويحتوي على تعليق تحليلي على شفرة المصدر لنظام تشغيل الكمبيوتر يونكس الإصدار السادس "النواة المقيمة" [ 4 ] (أي النواة ) ، بالإضافة إلى نسخة منسقة ومفهرسة من قبل ليونز، من شفرة المصدر المذكورة التي تم الحصول عليها من المؤلفين في مختبرات AT&T Bell .

يُعد عمل ليونز بحد ذاته مثالاً على النجاح المبكر لنظام يونكس كبرنامج قابل للنقل لمنصة النشر، حيث تم تنسيقه باستخدام أدوات يونكس، على أنظمة تعمل ببرنامج تم نقله في الجامعة، على غرار البرنامج الذي وثقه. [ 5 ]

يُشتبه في أنه الكتاب الأكثر نسخاً في علوم الحاسوب . [ 6 ] : xi على الرغم من قدمه، لا يزال كتاب ليونز يُعتبر شرحاً ممتازاً للبرمجة البسيطة عالية الجودة.

أُعيد نشر أعمال ليونز مؤخراً في عام 1996 بواسطة شركة بير تو بير كوميونيكيشنز، [ 6 ] وقد تم تداولها وإعادة إنتاجها أو إعادة صياغتها بأشكال مختلفة في عدد من وسائل الإعلام من قبل جهات أخرى. [ 5 ]

تاريخ

جون ليونز مع طلابه عام 1980
إعادة طبع يابانية لكتاب "تعليق على نظام التشغيل يونكس" ، بالإضافة إلى شفرة المصدر المنسقة المرفقة، مع الترخيص المرفق.

تمت طباعة الكود المصدري والتعليقات في شكل كتاب في عام 1977، بعد تجميعها لأول مرة في مايو 1976، كمجموعة من ملاحظات المحاضرات [ 4 ] لدورات علوم الكمبيوتر الخاصة بـ Lions (6.602B و6.657G، المذكورة في مقدمة الكتاب) في جامعة نيو ساوث ويلز .

حصلت جامعة نيو ساوث ويلز على شفرة مصدر نظام يونكس عام 1975، استجابةً لاستفسار كين روبنسون عام 1974 من دينيس ريتشي في شركة بيل. [ 7 ] كانت مختبرات بيل تابعة لشركة AT&T، وبموجب مرسوم الموافقة لعام 1956، لم يُسمح لشركة AT&T بممارسة أي نشاط تجاري آخر، وبالتالي لم يكن بإمكانها بيع البرنامج، على الرغم من أنها كانت مُلزمة، على نحوٍ مُتناقض، بترخيص اختراعاتها، مثل يونكس والترانزستور. تولت شركة ويسترن إلكتريك ، وهي شركة تابعة أخرى لشركة AT&T، إدارة الترخيص. ابتداءً من عام 1977، ومع تراخيص الإصدار السابع وما بعده، منعت AT&T استخدام شروح الشفرة لأغراض التدريس، وسمحت بنسخة واحدة فقط مطبوعة من شرح ليونز لكل ترخيص.

أعلنت نشرة مجموعة مستخدمي يونكس، USENIX ، بعنوان UNIX News ، في مارس 1977، عن توفر الكتاب لحاملي تراخيص يونكس. [ 4 ]

ونظرًا لصعوبة مواكبة شعبية الكتاب، فقد أصبح متاحًا بحلول عام 1978 فقط من مختبرات AT&T Bell . [ 8 ]

عندما أعلنت شركة AT&T عن إصدار UNIX 7 في مؤتمر USENIX في يونيو 1979، لم يعد الترخيص الأكاديمي/البحثي يسمح تلقائيًا بالاستخدام في الفصول الدراسية. مع ذلك، قام آلاف طلاب علوم الحاسوب حول العالم بتوزيع نسخ مصورة منه. ولأنهم لم يتلقوا تدريسًا له في الصفوف الدراسية، كانوا يجتمعون أحيانًا بعد انتهاء الدوام لمناقشة الكتاب. وقد احتفظ العديد من رواد UNIX والمصادر المفتوحة بنسخة مصورة قيّمة منه، تكررت عدة مرات.

ومن بين الآثار اللاحقة الأخرى لتغيير الترخيص قيام أندرو إس. تانينباوم بإنشاء نظام التشغيل مينيكس . كما كتب تانينباوم في كتابه "أنظمة التشغيل" (1987):

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

قام العديد من العاملين في مجال يونكس، ولا سيما بيتر إتش. سالوس ودينيس ريتشي وبيرني جودهارت، بالضغط على مالكي يونكس المختلفين (AT&T ونوفيل ومؤسسة سانتا كروز ) لسنوات عديدة للسماح بنشر الكتاب رسميًا. في عام 1996، أذنت مؤسسة سانتا كروز أخيرًا بنشر شفرة المصدر للإصدار السادس الذي يعود تاريخه إلى عشرين عامًا (إلى جانب شفرة المصدر لإصدارات أخرى من " يونكس القديم ")، ونُشرت الشفرة الكاملة بالإضافة إلى نسخة عام 1977 من الشرح بواسطة شركة Peer-To-Peer Communications ( ISBN 10000). 978-1-57398-013-5). [ 6 ] تتضمن إعادة الإصدار تعليقات من مايكل تيلسون (SCO)، وبيتر سالوس، ودينيس ريتشي، وكين طومسون ، وبيتر كولينسون، وجريج روز، ومايك أوديل ، وبيرني جودهارت، وبيتر رينتجيس .

محتويات

شرح ليونز لنظام يونكس، الإصدار السادس مع شفرة المصدر ، إعادة إصدار عام 1996 [ 6 ]

شفرة المصدر لنظام التشغيل يونكس، المستوى السادس ، هي شفرة مصدر النواة، وقد أُجريت عليها تعديلات طفيفة من قِبل ليونز لتحسين فصل الوظائف  - تهيئة النظام وإدارة العمليات، والمقاطعات واستدعاءات النظام، والإدخال/الإخراج الأساسي، وأنظمة الملفات والأنابيب، وأجهزة الأحرف. جميع الإجراءات والرموز مُدرجة أبجديًا مع مرجع مُتبادل.

برايان كيرنيغان يحمل نسخة من تعليق فريق ليونز

سيعمل الكود كما هو معروض على جهاز PDP-11 /40 مع محرك أقراص RK05 ، وواجهة طابعة خطية LP11، وكاتب شريط ورقي PCL11، وواجهة طرفية KL11، أو محاكي PDP-11 مناسب، مثل SIMH .

يبدأ كتاب "شرح نظام التشغيل يونكس" بملاحظات حول يونكس ووثائق أخرى مفيدة (صفحات دليل يونكس، أدلة أجهزة DEC ، وما إلى ذلك)، وقسم حول بنية PDP-11، وفصل حول كيفية قراءة برامج C. يلي ذلك شرح الكود المصدري، مقسمًا إلى الأقسام نفسها الموجودة في الكود. ويختتم الكتاب بتمارين مقترحة للطالب.

كما يوضح ليونز، يُكمّل هذا التعليق التعليقات الواردة في المصدر. من الممكن فهم الكود دون الحاجة إلى هذا التعليق الإضافي، ويُنصح القارئ بالقيام بذلك وقراءة الملاحظات عند الحاجة فقط. كما يُشير التعليق إلى كيفية تحسين الكود.

"ليس من المتوقع أن تفهم هذا"

يظهر التعليق البرمجي الشهير "ليس من المتوقع أن تفهم هذا" في السطر 2238 من شفرة المصدر ( تعليق ليونز ، صفحة  22) في نهاية تعليق يشرح آلية تبادل العمليات. ويشير إلى السطر 325 من الملف slp.c. [ 9 ] شفرة المصدر هي: [ 10 ] [ 11 ]

/*  * إذا توقفت العملية الجديدة مؤقتًا بسبب استبدالها  ، * فسيتم تعيين مستوى المكدس إلى آخر استدعاء  * للدالة savu(u_ssav). هذا يعني أن القيمة المرجعة  * التي تُنفذ مباشرةً بعد استدعاء الدالة aretu  * تعود فعليًا من آخر روتين قام  * بعملية savu.  *  * ليس من المتوقع أن تفهم هذا.  */ if ( rp -> p_flag & SSWAP ) { rp -> p_flag =& ~ SSWAP ; aretu ( u . u_ssav ); }

كان أحد الأسباب الرئيسية لصعوبة فهم هذا الجزء من الكود هو اعتماده على خاصية غريبة في طريقة حفظ مُصرّف لغة C الخاص بجهاز PDP-11 للسجلات في استدعاءات الإجراءات. فشل هذا الكود عند نقله إلى أجهزة أخرى، واضطر إلى إعادة تصميمه في الإصدار السابع من نظام UNIX . [ 12 ] وقد أوضح دينيس ريتشي لاحقًا معنى هذه الملاحظة: [ 10 ]

كانت عبارة "ليس من المتوقع أن تفهم هذا" بمثابة ملاحظة بروح "لن يكون هذا في الامتحان"، وليست تحدياً وقحاً.

انظر أيضاً

  • xv6 – إعادة تنفيذ حديثة لنظام يونكس الإصدار السادس 

مراجع

  1. ليونز، جون (1976-1977).تعليق على الطبعة السادسة من نظام التشغيل يونكسجامعة نيو ساوث ويلز: قسم علوم الحاسوب . OCLC 494684468 {{cite book}}: CS1 maint: publisher location ( link )
  2. المستوى السادس من شفرة المصدر لنظام التشغيل يونكسجامعة نيو ساوث ويلز: قسم علوم الحاسوب. 1976-1977. OCLC 494684460 . {{cite book}}: CS1 maint: publisher location ( link )
  3. جوناثان كوربيت برايان كيرنيغان يتحدثان عن أصول يونكس LWN.net. 17 يناير 2022.
  4. 1 2 3 "كتاب جديد" . أخبار يونكس . يوزنيكس. مارس 1977.
  5. 1 2 ليهي، جريج (2015-09-14). " تعليق على الطبعة السادسة من نظام التشغيل يونكس " . جريج ليهي، وارن تومي.
  6. 1 2 3 4 ليونز، جون (1996). تعليق ليونز على نظام يونكس، الإصدار السادس مع شفرة المصدر . اتصالات الند للند. ISBN 978-1-57398-013-5.
  7. كلية الهندسة، جامعة نيو ساوث ويلز، (العميد) (18 سبتمبر 2020). "تخليداً لذكرى كين روبنسون" . جامعة نيو ساوث ويلز: الهندسة. مؤرشف من الأصل بتاريخ 20 أكتوبر 2020.
  8. الشيطان، وجنو، والبطريق - الفصلان 2 و3 ( بيتر هـ. سالوس )
  9. كين تومسون. "unix-history-repo/usr/sys/ken/slp.c" . جيت هاب . تم الاسترجاع في 12 أكتوبر 2018 .
  10. 1 2 دينيس ريتشي (22-06-2002). "تعليقات غريبة وأفعال عجيبة في يونكس" . تم الاطلاع عليه بتاريخ 26-12-2025 .
  11. "swtch.com" . swtch.com . مؤرشف من الأصل بتاريخ 2026-02-04 . تم الاطلاع عليه بتاريخ 2026-05-12 .
  12. جونسون، إس سي؛ ريتشي، دي إم (1978). "نظام يونكس لتقاسم الوقت: قابلية نقل برامج لغة سي ونظام يونكس" ( ملف PDF) . مجلة بيل سيستم التقنية . 57 (6): 2021-2048 . doi : 10.1002/j.1538-7305.1978.tb02141.x . S2CID 17510065. مؤرشف (ملف PDF) من الأصل بتاريخ 9 أكتوبر 2022. تم الاطلاع عليه بتاريخ 26 ديسمبر 2025 . 

للمزيد من القراءة