# دوس (نظام تشغيل)

دوس أو دوز (بالإنجليزية: DOS)‏ هو نظام تشغيل على القرص يُستخدم في إدارة وتشغيل الحاسوب.

## نبذه عن البرنامج

بدأ الجيل الرابع للحاسوب سنة 1981م، وفيها صنعت شركة إنتل أول معالج صغري للحاسبات وكان يسمى 4004، مما أدى إلى البدء بصناعة الحاسبات الشخصية. وتبع المعالج 4004 المعالج 8008 ومن ثم المعالج 8080 الذي استخدم على نطاق واسع، وبسبب انتشار الحاسبات الشخصية كان لابد من وجود نظام يدير الحاسب، ففي عام 1973 كتب جيري كيلديل (Gary Kildall) بكتابة نظام تشغيل جديد باسم (CP/M) وهي اختصار للعبارة (Control Program/Monitor or Control Program for Microcomputer) وذلك للأجهزة الشخصية التي تعمل على المعالج 8080، فكان أول نظام تشغيل للأجهزة الشخصية (PC).
ففي عام 1980 صنع أول قرص صلب للأجهزة الشخصية وانتشر بشكل كبير، حدث تطور في إنتاج الأقراص المرنة وفي كبر حجمها. مما أدى إلى أن يقوم تيم باترسون (Tim Patterson) إلى كتابة نظام تشغيل جديد هو (DOS) للأجهرة الشخصية التي تعمل على المعالج 8086 المطور من قبل إنتل لشركة سياتل كمبيوتر (Seattle Computer)، مما أدى إلى أن تقوم شركة سياتل كمبيوتر (Seattle Computer) في الشهر السابع من عام 1980 بإصدار النسخة (QDOS 0.1) وهي اختصار (Quick and Dirty Operating System)، وفي الشهر الثاني عشر من 1980 تم كتابة الجزء 0.3 وقام تيم باترسون (Tim Patterson) مصمم النظام بعرضه على شركة مايكروسوفت، فقامت شركة مايكروسوفت في بشراء الحقوق التجارية (QDOS) وأسمته MS/DOS، وأبرمت شركة أي بي أم (IBM) وشركة مايكروسوفت اتفاق يقضي باستخدام (MS/DOS) كنظام تشغيل الأساسي للأجهزة الشخصية لشركة (IBM) وذلك بإنشاء نسخة من نظام (MS/DOS) لشركة (IBM) بمسمى (PC/DOS)، وتم تطوير النظام وإصدار عدة نسخ مطورة فأصبح أقوى وأكبر نظم تشغيل على مستوى الحاسب الشخصي، علما أنه تم إصدار نظم (DOS) أخرى من عدة شركات وفرق عمل ومنها (SuperDOS) و (XDOS) و (Free/DOS) وغيرها.

## واجهة النظام

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

## مزايا النظام

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

## عيوب النظام

* أحد أهم القيود على هذا النظام والتي تم التغلب عليها في أنظمة التشغيل اللاحقة هو عدم قدرته على تسمية الملفات بأكثر من ثمانية أحرف أو حتى قراءتها.
* عدم قدرته على تشغيل أكثر من برنامج تطبيقي في نفس الوقت (مشاركة المهام).
* نسبة الخطأ فيه عالية خصوصاً في إعطائه الأوامر النصية وذلك لإحتمالية الخطأ بنسبة كبيرة.
* لا يتعرف سوى على نظام جدولة الملفات FAT وبالتالي عدم التعرف على أقراص بسعات تفوق 4GB.
* حفظ جميع الاوامر المتعلقة بالنظام

## إصداراته

بدأ دوس كنظام مستقل ثم ظهرت من إصدارات ونسخ مختلفة باختلاف الشركات كان أبرزها مايكروسوفت دوس MS-DOS. ظهر هذا الأخير بإصدار ذي أرقام مختلفة اعتمادا على التحديث منها: MS-DOS 4, MS-DOS 5, MS-DOS 6.00,MS-DOS 6.22, MS-DOS 7, MS-DOS 8. مر (MS-DOS) بعد مراحل وذلك من بداية إصدار النسخة الأولى عام 1981 من التطورات والتغيرات الكبيرة والتي سوف توجزها في الجدول التالي:
* MS-DOS 1.00
    4-Aug-1981
    النسخة الأولية من (MS/DOS) بعد شراء حقوق (QDOS)
* MS-DOS 1.10
    1-Jun-1982
* MS-DOS 1.24
    1-Jun-1982
* MS-DOS 1.25
    1-Jul-1982
    أصبح يدعم الأقراص الثنائية الأوجه
* MS-DOS 2.00
    8-Mar-1983
    يدعم القرص الصلب ذات السعة 10 ميجابايت المصنع من قبل شركة (IBM)، والأقراص المرنة 5.52 ذات الوجهين، والأقراص المرنة ذات سعة 360 كيلوبايت.
* MS-DOS 2.01
    1-May-1983
    تصحيح بعض المشاكل في الإصدار السابق.
* MS-DOS 2.11
    17-Nov-1983
    دعم لحروف الموسعة.
* MS-DOS 2.12
    إصدار خاص لتقنيي المعلومات المحترفين (TI Pro)
* MS-DOS 2.25
    1-Oct-1985
    يدعم عدة لغات برمجة
* MS-DOS 3.00
    14-Aug-1984
    دعم للقرص الصلب 32 ميجابايت والأقراص الصلبة ذات السعة 1.2 ميجابايت.
* MS-DOS 3.10
    7-Mar-1985
    يدعم العمل مع الشبكات
* MS-DOS 3.20
    7-Jul-1986
* MS-DOS 3.21
    1-May-1987
* MS-DOS 3.30
    24-Jul-1987
    دعم الأقراص الصلبة ذات الأحجام التي أكبر من 32 ميجابايت والأقراص المرنة ذات الإحجام 3.5
* MS-DOS 3.3a
    2-Feb-1988
    تصحيح بعض المشاكل في الإصدار السابق.
* MS-DOS 4.00
    6-Oct-1988
    دعم تقنية (XMS) ودعم الأقراص الصلبة ذات الأحجام التي تصل إلى 2 جيجابايت، ودعم الواجهة الرسومية، بالإضافة لإصدار نسخ للغة الأوربية
* MS-DOS 4.01
    30-Nov-1988
    أصلاح بعض العيوب في الإصدار السابق، إصدار خاص للغة الروسية.
* MS-DOS 4.01a
    7-Apr-1989
    تصحيح بعض المشاكل في الإصدار السابق.
* MS-DOS 5.00
    9-Apr-1991
    تم تحديثه بشكل كبير حيث أصبح يحمل نفسه في الذاكرة العليا واستخدام برامج السواقة وتحسين المقاطع وإضافة برامج مساندة كمحرر النصوص وبرنامج التراجع عن المسح، بالإضافة إلى إصدار نسخ خاصة باللغة العربية (1992/05/06) وباللغة العبرية (1993/06/03)
* MS-DOS 5.0a
    تصحيح بعض المشاكل في الإصدار السابق.
* MS-DOS 6.00
    10-Mar-1993
    تم إضافة بعض الإمكانيات الجديد ضغط الملفات وبرنامج الحماية من الفيروسات وبرنامج تجزئية القرص الصلب وبرنامج النسخ الإحتاطية وملفات إعداد النظام، إدارة افوى للذاكرة من الإصدارات السابقة.
* MS-DOS 6.20
    30-Sep-1993
    الأمن الأكبر من ناحية فقد البيانات، برنامج لتصحيح اخطاء القرص الصلب وبرامج للإدارة الأقراص مثل نسخ الأقراص.
* MS-DOS 6.21
    تصحيح بعض المشاكل في الأصدار السابق
* MS-DOS 6.22
    31-May-1994
    إمكانية أكبر في ضغط القرص، وإصدار نسخة خاصة تدعم اللغة اليابانية.
* MS-DOS 7.00
    هذا الإصدار جزء من نظام التشغل وندوز 95، حيث وفر الدعم للأسماء الطويل، وإزالة بعض البرامج المساعدة أو الخدمية.
* MS-DOS 7.10
    هذا الإصدار جزء من نظام التشغل وندوز 95 المحسن، حيث يدعم نظام ملفات FAT32 وإمكانية الاستفادة من الأجهزة ذات التخزين الكبيرة.
* MS-DOS 8.00
    هذا الإصدار جزء من نظام التشغيل وندوز 98.
أما مايتعلق بنظم التشغيل وندوز للشبكات (Windows NT) مثل (windows XP) فيوجد بها برنامج محاكاة أو ألة افتراضية (VM) تحاكي بيئة نظام الدوس حيث تعمل البرامج دوس كما لو أنك تعمل على أحد إصدارات دوس.

## المكونات الأساسية لنظام

يتألف نظام (DOS) من ثلاث ملفات رئيسية هي:
* IO.SYS
* MSDOS.SYS
* COMMAND.COM
وهناك عدة ملفات مساعدة أو مكملة لنظام (DOS) ومن أهمها:
* CONFIG.SYS
* AUTOEXEC.BAT
شرح وعمل وفوائد الملفات المذكورة في الأعلى كلا على حده:
1- ملف عمليات الإدخال والإخراج (IO.SYS):
* يقوم بتهيئة النظام عن إقلاع الحاسب.
* تنظيم عملية الإدخال والإخارج الأساسية.
* ملف مخفي.
* موجود على القرص.
2- ملف النواة لنظام (MSDOS.SYS):
* مسؤول عن إدارة الملفات.
* مسؤول عن إدارة الذاكرة.
* مسؤول عن إدارة الإدخال والإخراج.
* ملف مخفي.
* موجود على القرص.
3- ملف مفسر الأوامر لنظام (COMMAND.COM):
* يعمل كمفسر أوامر.
* يراقب لوحدة الفاتيح.
* يعتبر الواجهة بين المستخدم والنظام.
* ملف غير مخفي.
* موجود على القرص.
4- ملف التكوين (CONFIG.SYS):
* يوجد فيها تكوينات الموارد.
* يمكن التعديل عليها من قبل المستخدم.
* ملف مخفي.
* موجود على القرص.
5- ملف أوامر بدء التشغيل (AUTOEXEC.BAT):
* يقوم بتنفيذ بعض الأوامر إثناء إقلاع الحاسب.
* يمكن التعديل على الأوامر من قبل المستخدم.
* ملف مخفي.
* موجود على القرص.

## كيفية عمل نظام (MS-DOS)

هناك علاقة بين نظام (BIOS) ونظام (MS-DOS) حيث أن نظام (MS-DOS) يعتمد على نظام (BIOS)، مسؤولية (BIOS) هي التعامل مع الأجهزة المحيطة وفحصها وتهيئتها ويضع روتينات لكي تمكن نظام (MS-DOS) من التعامل مع الأجهزة الحاسب. عندما ينتهي عمل (BIOS) من فحص وتهئية الأجهزة المحيطة وتكوين الروتينات، يقوم بتنفيذ برنامج التحفيز الذاتي (BOOTSTAP) الموجود في أول القرص حيث يقوم بتحميل الملفين (IO.SYS) و (MSDOS.SYS) إلى الذاكرة ترك زمام الأمور عليهم فينفذ (IO.SYS) ويقوم يتشغيل (MSDOS.SYS) فيقوم بتهئية النظام ومن ثم يقرأ ملف الإعداد (CONFIG.SYS) ومن بعده يشغل مفسر الأوامر (COMMAND.COM) حيث يقوم مشغل الأوامر بتشغيل الملف (AUTOEXEC.BAT) الذي يقوم بتنفيذ بعض الأوامر المعينة، وبهذا يكون النظام قد استقر.

## زوال النظام

بدأت أنظمة التشغيل مثل ويندوز، لينكس بالتفوق على هذا النظام لكونها تفادت العيوب السابقة بالإضافة إلى دعمها واجهة مستخدمين أكثر مرونة تفاعلها الكائناتي مع المستخدم. كان نظام ويندوز Windows 3x مثلا يعتمد نظام التشغيل MS-DOS 6.22 في بدء عمليات الإقلاع، ثم تم تطوير نظام ويندوز Window 95, Windows 98 كي تعمل بشكل مستقل عن نظام دوس ولكن مع السماح للإقلاع بنظام دوس أيضا. ومع ظهور ويندوز ملينيم Windows Me توقفت عملية دعم إقلاع MS-DOS. مع ذلك ظلت واجهة دوس الافتراضية مع Windows Me, Windows 2000, Windows XP وذلك لدعم البرامج والألعاب التي تعمل بنظام دوس إلا أن شركة مايكروسوفت توقفت عن دعم تطبيقات دوس بدءا من نظام ويندوز فيستا (مع السماح بمحث الأوامر والتطبيقات التي لاتستخدم شاشة الرسومات).

## بدء تشغيل النظام

عند تشغيل الجهاز ونجاح عملية الإقلاع الأولي عبر البيوس، يبدأ البحث عن ملف يسمى IO.SYS ويجب أن يكون موقعه في قطاع الإقلاع. بعد ذلك يقوم هذا الملف بالاستعانة بلمفات أخرى هي MSDOS.SYS (في حالة نظام مايكروسوفت دوس), CONFIG.SYS لتحميل إعدادات المستخدم الإضافية (مثل بيانات تعريف وحدة جديدة). أخيرا يتم تحميل ملف تنفيذي يدعى COMMAND.COM إلى الذاكرة لتنفيذ أوامر دوس الأساسية والتي يدخلها المستخدم من لوحة المفاتيح. هناك ملف إضافي (اختياري) يدعى AUTOEXEC.BAT وهو ملف دفعي تخزن فيها تفضيلات المستخدم لاستكمال عملية الإقلاع. عادة ما يتم تجنب تنفيذ الملفين AUTOEXEC.BAT و CONFIG.SYS بالضغط المتواصل على مفتاح Shift في لوحة المفاتيح أثناء الإقلاع وتسمى هذه العملية (تشغيل دوس في الوضع الأمن) لضمان تشخيص مشاكل بدء الإقلاع.

## أوامر الدوس

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

### الأوامر الداخلية

* BREAK
    يقوم بتعطيل أو السماح بستخدام (CTRL+C)
* CALL
    يستدعي برنامج من داخل برنامج الدفعة
* CD (CHDIR)
    تغيير الدليل الحالي
* CHCP
    يحدد أو يظهر صفحة الترميز النشط
* COPY
    ينسخ الملفات
* COMMAND
    تشغيل مفسر أوامر اخر غير الذي يستخدمه النظام
* CTTY
    يغير شاشة القرص المستخدمة
* DATE
    يظهر ويغير التاريخ
* DEL (ERASE)
    يحذف ملف أو عدة ملفات أو دليل
* DIR
    عرض الملفات في دليل معين
* ECHO
    يعطل أو يسمح بعرض المخرجات من تنفيذ برنامج معين
* EXIT
    الخروج من المفسر الأوامر (command.com)
* FOR
    ينفذ أمر معين على أكثر من ملف
* GOTO
    ينقل تنفيذ أمر ميعن داخل برنامج الدفعة
* IF
    يستخدم في تنفيذ أمر معين حسب صحة شرط معين
* LH
    يجمل البرنامج في الذاكرة العليا
* MD (MKDIR)
    ينشى دليل جديد
* PATH
    يظهر أو يعدل مكان البحث عن ملف غير موجود في الدليل الحالي
* PAUSE
    إيقاف مؤقت إلى أن يقوم المستخدم بضغط على لوحة المفاتيح
* PROMPT
    تغير شكل محث الأوامر
* RD (RMDIR)
    حذف دليل معين
* REM
    يستخدم مع الملفات المدفعية لكتابة ملاحظة معينه
* REN (RENAME)
    تغير اسم أو امتداد ملف أو عدة ملفات
* SET
    يحدد قيمة متغير بيئة معينة تكون محملة في الذاكرة
* shift
    يستخدم مع برامج الدفعة لإزاحة البيانات التي تدخل الملف
* TIME
    عرض أو تغير الوقت الحالي
* TYPE
    يعرض محتويات ملف معين
* VER
    يعرض رقم الإصدار الحالي للنظام
* VERIFY
    تشغيل أو تعطيل التحقق من صحة كتابة الملفات على القرص
* VOL
    يظهر اسم القرص ورقمة التسلسلي

### الأوامر الخارجية

| الأمر | الوظيفة |
| APPEND | يسمح بالتعامل مع ملفات موجودة على دليل اخر غير الدليل الحالي |
| ASSIGN | يسمح بتخصيص مشغل قرص ليقوم بوظائف مشغل قرص اخر |
| ATTRIB | يظهر أو يغير صفات الملف |
| BACKUP | يعمل نسخة احتياطية من ملفات موجودة على قرص اخر |
| CHKDSK | يقوم بفحص وتصحيح أخطاء القرص وعرض تقرير عن حالته |
| COMP | يقارن محتويات ملفين أو أكثر |
| DEBUG | يقوم بفحص أخطاء البرنامج وتتبع تنفيذه وتأثيه على المسجلات |
| DEFRAG | يقوم بتجزئة القرص الصلب |
| DELTREE | مسح ملفات معينه |
| DISKCOMP | يقوم بمقارن محتويات قرصين |
| DISKCOPY | يقوم بنسخ محتويات قرص مرن إلى قرص اخر |
| DOSKEY | يحمل برنامج يسهل ويختصر ويسرع عملية كتابة سطر الأوامر للبرامج |
| EDIT | يشغل محرر النصوص الذي يتعامل مع الملفات النصية |
| EDLIN | يشغل محرر السطور |
| EXE2BIN | تحويل من تنفيذي إلى ملف اخر |
| FASTOPEN | لزيادة سرعة القرص الصلب في قراءة الملفات والأدلة |
| FC | يقارن ملفين أو أكثر ويظهر الفرق بينها |
| FDISK | يستخدم لتقسيم القرص الصلب |
| FIND | يبحث عن كلمة أو عبارة داخل الملغات |
| FORMAT | ستخدم لتهيئة القرص الصلب أو المرن |
| GRAFTABL | يسمح بإظهار محتويات الشاشة بحالة الرسوم |
| GRAPHICS | يسمح بتحميل برنامج طباعة الرسوم |
| JOIN | يلحق مشغل قرص بدليل موجود على مشغل اخر |
| KEYB | يسمج باستخدام لوحة المفاتيح مع لغة اخرى غير اللغة الإنجليزية |
| LABEL | يسمج بإطهار أو تغير أو حذف العنوان المخصص للقرص |
| LINK | صنع برنامج تنفيذي من ملف هدف |
| MEM | يظهر تقرير لذاكرة المستخدمة المتاحة في الجهاز |
| MODE | يتحكم في ملحقات الحاسب |
| MORE | يعمل توقف إذا كانت المخرجات أكثر من شاشة العرض |
| MOVE | نقل ملف أو مجموعة ملفات من مكان لأخر |
| NLSFUNC | يحمل معلومات عن داله ما |
| PRINT | يطبع ملف معين |
| RECOVER | استرجاع المعلومات التالفة من الأقراص التالفة |
| REPLACE | يستبدل ملف أو عدة ملفات بملفات ذات محتوى مغاير |
| RESTORE | يسترجع الملفات الأصلية من الملغات الاحتياطية |
| SCANDISK | يقوم بفحص وإصلاح أعطال الأقراص وإنشاء التقارير عن الحالة |
| SELECT | يستخدم لختيار نوع لوحة المفاتيح |
| SETVER | يخصص رقم إصدار للبرامج معينة |
| SHARE | مشاركة في الملفات |
| SORT | عرض البيانات مع الفرز تصاعدي أو تنازلي |
| SYS | نسخ ملفات النظام إلى قرص معين |
| TREE | إظهار البنية الشجرية للأدلة |
| XCOPY | ينسخ الملفات والأدلة ما عدا ملغات النظام والملفات المخفية |
| XCOPY32 | ينسخ الملغات والأدلة التي تعمل على نظام تخزين 32 بت |