لقد قمت بإصدار معالج نصوص يقوم بتنسيق القرص الصلب بعد كل حفظ 1024

إن إخبار رواة القصص المبتدئين حول الطريقة التي أخطأت فيها في السابق هي طريقة جيدة لمساعدتهم على التعامل مع متلازمة المحتال .

ربما كان 1984-1985. ثم كنت في الخامسة والعشرين من العمر مبرمجًا ناشطًا بخبرة خمس سنوات. قمت أنا ومبرمج آخر بكتابة ودعم مجموعة من التطبيقات المشابهة لمكتب اليوم: جداول البيانات ومعالج النصوص وقاعدة البيانات والرسام ، وما إلى ذلك. أنشأنا هذا النظام بالكامل لثلاثة إلى أربعة أسواق رأسية [ عملاء تجاريون متخصصون للغاية / تقريبًا. perev. ].

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

استخدم Fort تبادل بيانات الكتلة مع القرص. كان لكل كتلة طولها 1 كيلوبايت ، ومن أجل حفظ شيء أكثر من 1 كيلوبايت ، كان من الضروري العمل مع الكتلة الرئيسية للملف ، حيث تم تخزين تعويضات جميع الكتل مع البيانات - في الواقع ، كانت هناك قوائم من الكتل المشغولة وغير المشغولة.

لتهيئة هذه الكتلة الرئيسية ، يجب ملؤها بالأصفار. حسنًا ، لقد بدأت. باختصار ، قمت بتغيير التطبيق بحيث يدعم الملفات مرتين أكبر من السابق - وبدلاً من 256 عنصرًا في الكتلة الرئيسية ، ظهر 1024.

كل إدخال استغرق - الانتباه - كلمة واحدة من 16 بت. لذلك ، إذا كانت 512 كلمة لا تزال تتناسب مع كتلة رئيسية 1 كيلوبايت ، فإن 1024 كلمة تتطلب بالفعل استخدام كتلتين.

لذلك ، قمت بتغيير عدد الكتل المملوءة بالأصفار ، لكني لم أغير حجم المخزن المؤقت. وعندما تعمل مع ذاكرة غير محمية ، وتكتب 2048 أصفار في مساحة 1024 بايت ، فإن البايت المتبقية ستستبدل أي القمامة العشوائية التي يجدونها في الذاكرة.

في حالتي ، تبين أن أي القمامة العشوائية هي الكتلة الرئيسية لقرص نظام التشغيل. نعم ... وعندما قمت بتهيئة ملف جديد ، والذي يحدث كل مرة 1024 عند كتابة ملف كتلة واحدة ، قمت بالكتابة فوق الكتلة الرئيسية للقرص ، والتي حذفت جميع الملفات منه.

وقمنا ، بالطبع ، بإصدار هذه النسخة ، التي عملت لمدة 8-9 أسابيع. ويمكنك أن تتخيل عدد المكالمات من العملاء التي كان علينا تلقيها. في النهاية ، نصحنا الجميع بالحفاظ على النسخ الاحتياطية (التي تم القيام بها ، بالمناسبة ، باستخدام أشرطة الفيديو) كل يوم.

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

ثم اتصلت امرأة ووصفت بعبارات ملونة - وعملت في حركة الشحن ، لذلك أستخدم الآن بنشاط أمثلةها من مجال الألفاظ النابية - التي قامت بعمل نسخة احتياطية ، وأطلقت معالج نصوص ، وقام بتنظيف قرصها على الفور. قامت بتنزيل النسخة الاحتياطية مرة أخرى ، وقام المعالج مرة أخرى بمسح قرصها على الفور. كانت غاضبة.

تخيل أن الأمر استغرق مني ساعتين كاملتين لفهم كم كنت محظوظًا. أخبرت زميلي بهذه القصة في العشاء ، ثم بزغ لي - توقف. قف. ذات مرة؟ كل مره؟

اتصلت بها ووعدت بكل النعم الدنيوية ، إذا كانت ستحزم هذا الشريط وترسله إلينا. لقد وعدتها بدفع تكاليف الشحن وإلغاء الدفعات الشهرية لخدماتنا (لم يتردد مديري لثانية واحدة: "نعم ، الجحيم ، سنلغي مدفوعاتها").

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

ربما أنا أبالغ ، لكني في رأيي ، وجدت المشكلة في نفس الصباح عندما حصلنا على الفيلم. كان من السهل العثور عليه في المصحح.

نظرت إلى كتلة 2 كيلوبايت كان من المفترض كتابتها ، وتم ملء آخر كيلوبايت بنوع من القمامة. بدا الأمر غريبا بالنسبة لي ، وبدأت أفهم. وبالطبع ، لم يكن الأمر مهملات - فقد كان نظام التشغيل يخزن 1024 بايت من كتلة القرص الرئيسية بجوار كتلة الملف الرئيسي.

حصلت على نسخة احتياطية "قبل" النواة - لم يكن لدي نفاية أساسية ، لكنها أعطتني طريقة مضمونة للوصول إلى هذا العيب. لو لم أكن محظوظاً لما وجدته. لم أكن لأتوقع ببساطة أنني لا أكتب في ذاكرتي ، ولكن في النظام.

لذا ، نعم - أصدر المهوس "الرئيسي" معالج كلمات قام في غضون ثمانية إلى تسعة أسابيع بتنسيق محرك القرص الصلب للعميل بعد كل عملية حفظ من 1024. لأنه ، حسنًا ، أنا حرفي.

يمكنك أن تجد الكثير من الأخلاق في هذه القصة ، ولكن هناك نوعان رئيسيان لأي مبتدئ:

  1. لا تكتب أبدًا ثوابت رقمية باستثناء 0 و 1 و -1 في شفرتك.
  2. لا تكن قاسيًا على نفسك. جميع كبار السن الحكيمين لديهم قصص مماثلة ، وبعضهم لديهم الكثير.

All Articles