نمایش نتایج 1 تا 9 از 9

نام تاپیک: استفاده از وقفه ها در protected mode

  1. #1
    کاربر دائمی آواتار Delphi Coder
    تاریخ عضویت
    آذر 1386
    محل زندگی
    c:\windows\system32
    پست
    579

    Tick استفاده از وقفه ها در protected mode

    در قدمهای اولیه برای نوشتن یه سیستم عامل طبیعتا باید یه سری سرویسهایی رو باید برای خواندن و نوشتن روی صفحه و همچنین فلاپی و هارد نصب کنیم. حالا من میخوام بدونم اگر بخواهیم OS مون از Protected Mode استفاده بکنه باز هم میتونیم از وقفه های Bios برای این کار استفاده کنیم یا نه حتما باید Driver براشون در نظر بگیریم و با دستورات Port خودمونو درگیر کنیم.
    من یه جایی خونده بودم Exception میده ولی نمی دونم چقدر میشد اعتبار داد به این حرف فقط باعث شد حتی برای تست حتی سعی هم نکنم چون همین تست هم به نوبه خودش وقت گیر بود و حوصله می خواست.
    در ضمن اینم میدونم که بدون درایور نمیشه از همه امکانات یه کارت گرافیکی استفاده کرد. من همون امکانات استاندارد VESA منظورم هست.

  2. #2
    ماشینهای اینتل برای حفظ سازگاری با سیستم عاملهای قدیمی تر هنوز در حالت Real Mode روشن میشن و بعد به Protected Mode _ در صورت لزوم _ سوئیچ میکنن . پس اولا لازم هست که یک لودر Real Mode داشته باشی که اونجا میتونی از هر وقفه ای استفاده کنی . بعد از سوئیچ کردن به Protected Mode باید یه چیزی مثل Sysenter رو صدا بزنی و وقتی رفتی به Ring0 به وقفه ها و پورتها دسترسی داری و البته بعدش باید با مثلا Sysexit برگردی
    UNIX is simple. It just takes a genius to understand its simplicity
    -- Dennis Ritchie

  3. #3
    حالا من میخوام بدونم اگر بخواهیم OS مون از Protected Mode استفاده بکنه باز هم میتونیم از وقفه های Bios برای این کار استفاده کنیم یا نه حتما باید Driver براشون در نظر بگیریم و با دستورات Port خودمونو درگیر کنیم.
    مسئله ای که باید بهش توجه کنین اینه که در حالت Protected Mode بخاطر آدرس دهی نسبی و سلکتورها کدها میتونن با چهار مجوز مختلف اجرا بشن که بهشون ring 0 تا ring 3 گفته میشه شما برای اینکه بتونی با سخت افزارها صحبت کنی یا وقفه ها رو مدیریت کنی باید در حالت ring 0 باشی . اصطلاح درایور مال سیستم عاملهای شناخته شده و عمومی هستش و شما میتونی تو سیستم عامل خودت هر چیزی رو هر جوری میخواهی درست کنی پس برای اینکه یه وقفه بایاس رو مدیریت کنی فقط کافی هستش که در لحظه اجرای دستور روی ring 0 باشید

  4. #4
    کاربر دائمی آواتار Delphi Coder
    تاریخ عضویت
    آذر 1386
    محل زندگی
    c:\windows\system32
    پست
    579
    خیلی ممنونم از راهنمایی هاتون. آیا امکانش رو دارید که برنامه اول تو این پست رو جوری برام تغییر بدین که همین کار رو توی Protected Mode انجام بده یا کارش زیاده؟https://barnamenevis.org/showthread.php?t=87856
    اینو گفتم چون احساس میکنم تو این حالت میدان خالی خالی هست بدون نگرانی از OS و برنامه های دیگه انجام این کار راحتتره اگه اینطور نیست حتی یه برنامه کوچولو که توی DOS اجرا بشه و بره تو Protected Mode و مثلا بنویسه Hello from Protected Mode کمک خوبی میتونه برای من باشه.
    در ضمن اگه سایت فارسی یا یه Tutorial خوب و کامل برای Protected Mode سراغ دارید ممنون میشم معرفی کنید. من با Real Mode هیچ مشکلی ندارم و همه کار میتونم اونجا انجام بدم. ولی اطلاعات لازم رو برای انتقال یه سری سرویس که برای یه OS تمرینی نوشتم رو از RealMode به Protected Mode ندارم.

  5. #5
    اینتل راهنمای برنامه نویسان سیستمی رو منتشر کرده که در مجموع حدود 3000 صفحه هست . بهترین منبع و مرجع یک برنامه نویس سیستم قطعا چیزی جز همین مستندات نیست .

    حتی یه برنامه کوچولو که توی DOS اجرا بشه و بره تو Protected Mode و مثلا بنویسه Hello from Protected Mode کمک خوبی میتونه برای من باشه.
    داس در Real Mode کار میکنه . تو نمیتونی سیستم رو به حالت Protected Mode ببری چون اگر برنامه ات توسط داس اجرا بشه ( که چارهء دیگری هم نیست ) طبعا از مدل آدرس دهی Real Mode هم استفاده کرده و اساسا برنامه ات نمیتونه در Protected Mode کار کنه یا انتقالی رو انجام بده . در کل ، Real Mode یا Protected Mode انتخابی هست که همان اول و توسط سیستم عامل باید انجام بشه ، و من دلیلی برای نوشتن کدی که با وقفه های بایاس کار مستقلی رو انجام بده نمیشناسم . کلی سیستم عامل کوچک و خیلی سریع و خوب برای Real Mode و Protected Mode هست . نوشتن کد با توابع سیستم عامل به مراتب بهتر و دیباگش هم ساده تر هست . برای برنامه های خیلی خاص لینوکس در این زمینه بهترین انتخابه چون بسادگی میشه اختصاصی و برای هر کاری تنظیمش کرد و با تنظیمات کرنل میشه از قدیمی ترین ماشینها تا جدیدترین ماشین روی هر معماری ای اجراش کرد ، حتی از روی فلاپی و با همون حجم .
    UNIX is simple. It just takes a genius to understand its simplicity
    -- Dennis Ritchie

  6. #6
    کاربر دائمی آواتار Delphi Coder
    تاریخ عضویت
    آذر 1386
    محل زندگی
    c:\windows\system32
    پست
    579
    داس در Real Mode کار میکنه . تو نمیتونی سیستم رو به حالت Protected Mode ببری چون اگر برنامه ات توسط داس اجرا بشه ( که چارهء دیگری هم نیست ) طبعا از مدل آدرس دهی Real Mode هم استفاده کرده و اساسا برنامه ات نمیتونه در Protected Mode کار کنه یا انتقالی رو انجام بده . در کل ، Real Mode یا Protected Mode انتخابی هست که همان اول و توسط سیستم عامل باید انجام بشه ، و من دلیلی برای نوشتن کدی که با وقفه های بایاس کار مستقلی رو انجام بده نمیشناسم .
    خیلی از برنامه ها توی DOS هستند که تو Protected Mode کار میکنن. اکثر این برنامه ها از DPMI استفاده می کنن ولی بعضی هاشون خودشون این کار رو انجام میدن مثل QV که در حقیقت همون Media Player داس هست.
    من یه سیستم عامل نصفه نیمه دارم که فعلا یکی دو تا سرویس برای خواندن دیسک و کار با Video بیشتر نداره ابتدا توی RealMode شروع کردم و الان پشیمون شدم. می خوام توی Protected Mode شروع کنم. یه سری Document راجع به Protected Mode خوندم ولی فعلا تو درک مطلب مشکل دارم و 100% نتونستم قضیه رو هذمش کنم و دقیقا به همین خاطره که یه کد کوچیک خواستم برای سویچ به Protected Mode و یه کار ساده با BIOS .

  7. #7
    خیلی از برنامه ها توی DOS هستند که تو Protected Mode کار میکنن. اکثر این برنامه ها از DPMI استفاده می کنن
    همهء برنامه های داس در Protected Mode کار میکنن . یا با اینترفیس یا با VM . جواب من توضیحی بر جواب تو برای سوئیچ به Protected Mode بود " یه برنامه کوچولو که توی DOS اجرا بشه و بره تو Protected Mode و مثلا بنویسه Hello from Protected Mode " که این رو گفتم عملی نیست . مثلا Extender ها هیچکدام وقفه ها رو در حالت Protected Mode مدیریت نمیکنن ، و نمیتونن که اینکار رو بکنن فقط امکان دسترسی به حافظه بیشتر و ترجمه آفست ها برای دسترسی پذیر بودن توسط داس رو انجام میدن . اگه خیلی حوصله داری پیشنهاد میکنم سورس کد bootroot شرکت eeye رو یه نگاهی بندازی . یه ارائه هم همراهش هست که توضیح خوبی داده
    UNIX is simple. It just takes a genius to understand its simplicity
    -- Dennis Ritchie

  8. #8
    کاربر دائمی آواتار Delphi Coder
    تاریخ عضویت
    آذر 1386
    محل زندگی
    c:\windows\system32
    پست
    579
    همهء برنامه های داس در Protected Mode کار میکنن . یا با اینترفیس یا با VM . جواب من توضیحی بر جواب تو برای سوئیچ به Protected Mode بود " یه برنامه کوچولو که توی DOS اجرا بشه و بره تو Protected Mode و مثلا بنویسه Hello from Protected Mode " که این رو گفتم عملی نیست .
    اینطور نیست. خود سیستم عامل و اکثر برنامه ها تو RealMode کار می کنن و هیچ سنمی با Protected Mode ندارن. Protected Mode از زمان 80286 به بعد تازه معنی پیدا کرده.
    اینتل راهنمای برنامه نویسان سیستمی رو منتشر کرده که در مجموع حدود 3000 صفحه هست . بهترین منبع و مرجع یک برنامه نویس سیستم قطعا چیزی جز همین مستندات نیست .
    ممنون از توضیحتون. document های اینتل رو دانلود کردم تقریبا میشه گفت همه چیز رو توضیح داده و بهترین مرجع هست.
    http://developer.intel.com/products/...uals/index.htm

  9. #9
    خود سیستم عامل و اکثر برنامه ها تو RealMode کار می کنن و هیچ سنمی با Protected Mode ندارن
    البته این بدیهی هست که داس RealMode کار میکنه . در جواب ابهامت در مورد اینکه چطور بعضی از برنامه ها در حالت PM هم کار میکنه یا نه نوشتم که : برنامه های داس در Protected Mode کار میکنن . یا با اینترفیس یا با. VM
    جوابهائی که بهت داده میشه رو با دقت بیشتری بخون .
    UNIX is simple. It just takes a genius to understand its simplicity
    -- Dennis Ritchie

تاپیک های مشابه

  1. مشکل با Overrides و Protected
    نوشته شده توسط UpgradeVB6Code در بخش VB.NET
    پاسخ: 6
    آخرین پست: پنج شنبه 01 آذر 1386, 19:43 عصر
  2. protected در vb چه معنایی دارد؟
    نوشته شده توسط farhadsh63 در بخش برنامه نویسی در 6 VB
    پاسخ: 2
    آخرین پست: دوشنبه 24 اردیبهشت 1386, 00:55 صبح
  3. ترکیب Text Mode و Graphic Mode
    نوشته شده توسط سار در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 48
    آخرین پست: شنبه 19 آذر 1384, 21:38 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •