PDA

View Full Version : تفاوت وقفه بایوس و داس (bios , Dos)



اوبونتو
شنبه 21 دی 1398, 16:06 عصر
سلام اینکه گفته میشه وقفه بایوس و داس فرقشون در چیه .آیا میشه وقفه های داس رو با اسمبلی در لینوکس اجرا کرد ؟
آیا وقفه داس مربوط به سیستم عامل های مایکروسافت هستش ؟

the king
شنبه 21 دی 1398, 17:10 عصر
سلام اینکه گفته میشه وقفه بایوس و داس فرقشون در چیه .آیا میشه وقفه های داس رو با اسمبلی در لینوکس اجرا کرد ؟
آیا وقفه داس مربوط به سیستم عامل های مایکروسافت هستش ؟

پردازنده یک جدول داره برای 256 تا وقفه ای که میتونه وجود داشته باشه که مشخص میکنه روتین اون وقفه فلان کجای حافظه است و چه کاری انجام میده.
یک تعداد کمی از این وقفه ها رزرو شده پردازنده است و مربوط به کارکرد اساسی خود پردازنده هستند و ربطی به سیستم عامل خاصی هم ندارند.
بجز یک سری وقفه های رزرو شده پردازنده، بقیه شون ممکنه توسط BIOS یا هر سیستم عاملی برای اجرای سرویس های خاصی تنظیم بشه، یعنی ممکنه فلان وقفه خاص در هر سیستم عاملی کارکرد متفاوتی داشته باشه.
بخش مربوط به BIOS که وقفه های BIOS هستند، همون ابتدا که سیستم جریان برق پردازنده رو تامین می کنه توسط مادربورد در لیست وقفه های پردازنده به ثبت رسیده و حتی قبل از اینکه سیستم عاملی بخواد بوت بشه در دسترس قرار میگیره،
برای همین شما هر جور سیستم عاملی که بخواهید با اون مادربورد بوت کنید از همون ابتدای کار به وقفه های BIOS دسترسی داره.
اما وقفه های DOS یا وقفه های هر سیستم عامل دیگری فقط زمانی وجود دارند که اون سیستم روتین شون رو در حافظه قرار بده و در جدول وقفه ها آدرسشون رو به ثبت برسونه.
برای همین هیچ سیستم عاملی وقفه های سیستم عامل دیگری رو اجرا نمی کنه، دقیقا وقفه هایی رو اجرا می کنه که موقع بوت شدن خودش در حافظه قرار داده و به ثبت رسونده.
طبعا هم روتین وقفه های سیستم عاملی که باهاش ناسازگاره بدردش نمی خوره، مثلا سیستم فایل MS-DOS که FAT ئه سرویس های فایل اش هم برای همین سیستم فایل طراحی شده و بدرد اجرا در لینوکس با سیستم فایل ext نمیخوره.
برای اجرا کردن وقفه های سیستم عاملی در سیستم عامل دیگری اصولا از محیط مجازی استفاده می کنند، مثلا DOSEMU میومد محیط DOS رو در لینوکس شبیه سازی میکرد.

Delphi Coder
دوشنبه 05 اسفند 1398, 17:22 عصر
سلام اینکه گفته میشه وقفه بایوس و داس فرقشون در چیهبه زبان ساده اینکه وقفه داس سرویسهای مربوط به سیستم عامل داس هستند ولی وقفه های بایوس مال خود سیستم هست و هر کامپیوتر سازگار با IBM ای اونها رو دارند و بخش بوت لودر سیستم های عامل از اون برای بارگذاری اولیه کدهاشون (مثلا کدهایی که به مود حفاظت شده سویچ میکنند و یا بارگذاری کدهای مربوط به سیستم مدیریت فایل از قبیل ntfs یا fat32) استفاده میکنند.
آیا میشه وقفه های داس رو با اسمبلی در لینوکس اجرا کرد ؟خیر با توجه به مطالب بیان شده بی معنی هست.
آیا وقفه داس مربوط به سیستم عامل های مایکروسافت هستش ؟مربوط به سیستم عامل داس مایکروسافت هست و از محیط خط فرمان cmd هم قسمت زیادی از اون سرویسها قابل اجرا هست. به احتمال زیاد این قابلیت برای حفظ سازگاری تا الان نگه داشته شده.