اليوم هو عام 2018 ، وترسل لنا رسالة الخطأ تحياتي من عام 1974. يعود هذا القيد ، الموجود في أحدث إصدارات Windows 10 ، إلى الوقت الذي لم يتم فيه إطلاق حلقة واحدة
من Star Wars . هذا الخطأ قديم مثل
Watergate . عندما تم كتابته ، لم يكن لمنتج واحد رمز
باركود UPC لأنه تم اختراعه للتو. في تلك الأيام ، كانت هناك
شركة هاتف واحدة فقط ، لم يتم تقسيمها.
تيد بندي كان حراً. الرقم القياسي في Beiba Ruta للركض المنزلي
مستعد فقط
للسقوط . لم يتم عرض
عجلة الحظ حتى الآن ، ولم يشاهد أحد
روكي رعب عرض الرعب .
كان ستيفن سبيلبرغ آنذاك مخرجًا غير معروف ، ولم تظهر
"Saturday Night Live" على الشاشات.
"إدموند فيتزجيرالد" أثناء حمل خام الحديد. لقد كانت سنة العرض الأول للجزء 2 من
العراب !
في ذلك الوقت ، كان لدى Unix ، الذي كان
عمره 5 سنوات فقط ، فكرة رائعة أن "كل شيء عبارة عن ملف". هذا يعني أنه يمكنك القيام بأشياء مختلفة مثل الكتابة إلى المقابس والأنابيب ووحدة التحكم وما إلى ذلك باستخدام نفس الأوامر والتعليمات. تم نقل المفهوم من قبل
غاري كيلدال إلى
CP / M في عام 1974. يمكنك نسخ البيانات من المنفذ التسلسلي إلى ملف نصي أو طباعة ملف نصي مباشرة من سطر الأوامر! في Unix ، يتم ذلك باستخدام ملفات خاصة موجودة في أدلة خاصة ، على سبيل المثال ، / dev / tty لوحدة التحكم أو / dev / lp0 للطابعة الأولى. يمكنك الحصول على أصفار لا نهاية لها من / dev / صفر ، بايت عشوائي من / dev / random ، إلخ.
ولكن هناك مشكلة: تم تصميم CP / M لأجهزة الكمبيوتر ذات 8 بت مع مقدار صغير جدًا من الذاكرة وبدون محركات أقراص ثابتة. في أفضل الأحوال ، كان لديهم أقراص مرنة مقاس 8 بوصات. وأدلة؟ لست بحاجة إليها. بدلاً من الأدلة ، استخدمت فقط أقراصًا مختلفة. ولكن بدون أدلة لا يمكنك وضع جميع ملفاتك الخاصة في / dev /. لذلك ، في الواقع كانت "في كل مكان". بمعنى ، إذا كان لديك FOO.TXT وتحتاج إلى طباعته ، فيمكنك القيام بـ PIP LST: = FOO.TXT لنسخ FOO.TXT إلى ملف LST ، وهو الطابعة ، وعملت في أي مكان ، لأن أن الدليل غير موجود.
ماذا عن الإضافات؟ كل شيء ليس سهلاً أيضًا: تفضل البرامج إضافة الامتدادات الصحيحة إلى ملفاتها. بمعنى ، إذا قمت بتشغيل البرنامج وتقول "أدخل اسم ملف لحفظ القائمة" ، يمكنك إدخال LST لطبعه أو PTP لكتابته على شريط (لأنك في عام 1974 ، تذكر؟). ولكن قد يحاول البرنامج إضافة .TXT في نهاية الملف! لكن LST.TXT لم تعد طابعة ، أليس كذلك؟ مهما كانت. هذا هو. يتم التعرف على أسماء الأجهزة بغض النظر عن الامتدادات. أي إذا تم تعيين "CON" على لوحة المفاتيح ، فسيكون كل من CON.TXT و CON.BUG أيضًا. جلالة. هذا اختراق ، لكنه يعمل. علاوة على ذلك ، في أي قمامة مع 4KB RAM ، لا تهتم؟
حسنًا ، أصبح CP / M منتشرًا في أواخر السبعينيات - أوائل الثمانينيات. أصبحت واحدة من أنظمة التشغيل الرئيسية للأعمال ، حيث حددت واجهة قياسية. هذا يعني أنه يمكنك كتابة كود CP / M على
NorthStar Horizon وتشغيله على
Seequa Chameleon . لم يسمح عدم وجود معيار رسومي للجزء الأكبر منه بدخول سوق الألعاب (على الرغم من وجود إصدارات
Infocom ) ، مع التركيز بشكل أساسي على مستخدمي الأعمال. ولكن مع ذلك ، كان الأمر مهمًا ، لذلك أصبحت رغبة IBM في استخدامه في مشروع الكمبيوتر الشخصي في أوائل الثمانينيات أمرًا طبيعيًا. ثم كانت IBM ستطلق جهاز كمبيوتر IBM مع العديد من أنظمة التشغيل ، وتتوقع أن تصبح CP / M واحدة من الأنظمة الرئيسية. لكن CP / M لـ x86 لم يخرج بعد ستة أشهر من إطلاق جهاز كمبيوتر IBM ، وتكلف 240 دولارًا مقابل 40 دولارًا لـ DOS.
ونتيجة لذلك ، بدأت الغالبية العظمى من المستخدمين في استخدام PC-DOS من Microsoft ، والذي أصبح تطور نظام التشغيل الجديد الذي طورته شركة
Seattle Computer Products . اشترت Microsoft مشروع Tim Paterson وأنشأت PC-DOS بناءً عليه ، والذي أصبح فيما بعد MS-DOS. كان نظام التشغيل Tim Paterson يُسمى
"QDOS" ، والذي يعني "نظام التشغيل السريع والقذر". كان يعتمد على CP / M ، الذي لم يكن لديه إصدار x86 ، وحاول حل بعض قيود CP / M. من نواح عديدة ، كانت هذه أنظمة متشابهة للغاية. كانت إحدى الميزات الشائعة هي فكرة استخدام ملفات خاصة ونقص الأدلة. لذلك ، كان لكل من QDOS و PC-DOS 1.0 كل هذه AUX و PRN و CON و LPT ، إلخ.
مع إصدار PC-DOS 2.0 في عام 1983 ، أعادت Microsoft تصميم PC-DOS بشكل كبير لـ IBM XT الجديد. من الواضح أنك تحتاج فقط إلى أدلة للحفاظ على الأقراص الضخمة 10 ميغابايت ، والتي ظهرت بعد ذلك في السوق. ومرة أخرى ، سوء الحظ: يعمل المستخدمون مع ملفاتهم الخاصة لبضع سنوات منذ إصدار الإصدار السابق من PC DOS 1.0. تمت كتابة البرامج والنصوص لاستخدام هذه الملفات. بدعم من الدلائل ، تمكنت Microsoft أخيرًا من إزالة كل شيء في C: \ DEV ... لكنها لم تفعل ذلك. كما سيحدث أكثر من مرة ، جلبت Microsoft الفطرة السليمة إلى مذبح التوافق العكسي: ظلت الملفات الخاصة في كل دليل مع أي ملحق. تم نقل هذا الإرث عبر جميع الإصدارات حتى نظام التشغيل Windows 95. ولكن مهلاً ، نحن الآن لا نستخدم نظام التشغيل Windows 95 ، لأن الفرع الحديث من أنظمة تشغيل يستند إلى Windows NT. لكنها كانت بحاجة أيضًا إلى التوافق مع برامج DOS / Windows. لذلك ، لا تزال هذه الملفات الخاصة تعمل ، بعد أربعة وأربعين سنة سخيف! جربها بنفسك: افتح المستكشف ، وأنشئ ملفًا نصيًا جديدًا واسمه con.txt. aux.txt أو prn.txt. كان هناك.

أي بفضل جاري كيلدال ، الذي قال ، "تمثل الملفات الخاصة المعدات! فكرة عظيمة ، يونكس. أستعيرها وحاولت تنفيذها في نظام تشغيل اللعبة الخاص بي "منذ فترة طويلة حتى أن الأشخاص الذين ولدوا بعد ذلك قد يكون لديهم بالفعل أطفال يُسمح لهم بشرب الكحول ... لا يزال يتعذر علينا تسمية الملفات con.txt. لدى Microsoft
قائمة خاصة: CON و PRN و AUX و NUL و COM1 و COM2 و COM3 و COM4 و COM5 و COM6 و COM7 و COM8 و COM9 و LPT1 و LPT2 و LPT3 و LPT4 و LPT5 و LPT6 و LPT7 و LPT8 و LPT9. لجعل الأمور ممتعة ، تذكر أن محاولة الوصول إلى C: \ con \ con (أو C: \ aux \ aux) ألقى Windows 95 على الفور في BSOD. كان الأمر مضحكًا في عام 1995 ، لأن هذا الخطأ كان عمره 21 عامًا بالفعل!

الخلفيةلقد صادفت هذا عندما أدركت أن لدي ملفًا لا يمكن نسخه. يتم تنفيذ أسماء الملفات الخاصة هذه على مستوى نظام التشغيل ، وليس على مستوى نظام الملفات. وبالتالي ، فهي أسماء ملفات صالحة في NTFS. واستخدمت قرص NTFS في لينكس. وعلى ما يبدو ، لا يدعم OS / 2 هذا النظام من الأسماء الخاصة ، ونتيجة لذلك كان من بين ملفات opengl AUX.H على أحد محركات الأقراص لـ Devcon.

واليوم حاولت عمل نسخة احتياطية من قرص NTFS هذا على جهاز الكمبيوتر الرئيسي الخاص بي ، و "عفوًا ، لا يمكنني نسخ جميع الملفات بسبب الخطأ ، أقدم من معظم الأشخاص الذين يقرؤون هذا."
تفسيراتفي CP / M ، العمل مع أسماء خاصة ليس في الواقع بسيطًا كما وصفته. على سبيل المثال ، للوصول إلى الجهاز ، تحتاج إلى نقطتين بالاسم: PRN: هي طابعة ، لكن PRN ليست كذلك. بالإضافة إلى ذلك ، في CP / M ، لا يتم تنفيذ العمل مع ملفات الجهاز على مستوى نظام التشغيل ، كما هو الحال في DOS. هذا مجرد جزء من الأمر PIP لنسخ الملفات. أي أنك لن تكون قادرًا على التحريك ، كما هو الحال في DOS ، خدعة توجه البرنامج إلى حفظ PRN.TXT من أجل طباعته.
وفقط في حالة ، سأوضح: أنا لا أقصد أي شيء مثل "Windows sucks". التوافق العكسي عادة شيء عظيم. في الواقع ، أريد المزيد من التوافق مع الإصدارات السابقة ، لا أقل. لقد جننت للتو ، بعد أن واجهت خطأ عمره 44 عامًا عند تشغيل Windows 10 عند محاولة النسخ من محرك أقراص USB 3.0 SSD إلى محرك أقراص SSD آخر. إن الأمر أشبه بالعيش في محطة فضاء والحصان بواسطة حصان.