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

نام تاپیک: فهمیدن رینگ فعلی

  1. #1
    کاربر دائمی آواتار Delphi Skyline
    تاریخ عضویت
    دی 1383
    محل زندگی
    شیراز
    پست
    1,174

    فهمیدن رینگ فعلی

    سلام . ببخشید که اینقدر سوال می کنم . میخواستم بدونم که سی پی یو از کجا می دونه که پروسه فعلی چه مجوز هایی (رینگ 0 ... 3) داره ؟؟

  2. #2
    CPU چیزی رو نمیدونه در کل . چون یه ماشین هست .
    سیستم عامل بر اساس معماری اش تشخیص میده که هر پروسه چه مجوزی داره و چه دسترسی هائی و بر اساس اون ، وضعیت پردازنده تغییر داده میشه . مثلا روی ویندوز در هدر فایلهای PE نوع Subsystem ای که باید اجرا بشه مشخص شده . Loader ویندوز اصلا فایلهائی که کد کرنل دارن رو اجرا نمیکنه و تکلیفش روشنه . روتینهائی که برای فراخوانی درایورها در نظر گرفته شدن هم طبیعتا در فضای یک پروسه درایور رو فراخوانی میکنند و در بدنه درایور کدهای با مجوز سطح0 میتونن اجرا بشن که بدیهی است قبل از اجرای کدهای کرنل CPU به رینگ صفر برده میشه ( استثناء هائی هم هست که چون کلیت بحث رو بیخود خراب میکنند لازم نبود ذکر بشن )
    UNIX is simple. It just takes a genius to understand its simplicity
    -- Dennis Ritchie

  3. #3
    کاربر دائمی آواتار Delphi Skyline
    تاریخ عضویت
    دی 1383
    محل زندگی
    شیراز
    پست
    1,174
    خوب با تشکر . قسمت اول فهمیده شد . حالا میریم سراغ اینکه برای تغییر حالت پردازنده چه چیزی رو باید تغییر داد ؟ ( کد نمی خوام . توضیح لطفا .) . و در نهایت اینکه پس میشه حتی مجوز های یک برنامه رینگ 3 رو به رینگ 0 تغییر داد ( خوب در این صورت که با نوشتن چند خط کد ساده این نظم رینگ ها به هم می خوره ؟؟) ؟؟؟؟

  4. #4
    برای تغییر حالت پردازنده چه چیزی رو باید تغییر داد ؟
    چیزی تغییر نمیکنه . باید به پردازنده دستور بدی در حالت Ring0 عمل کنه یا از این حالت بیرون بیاد . بسته به معماری ؛ مثلا روی اینتل از زوج دستورات SYSENTER/SYSEXIT استفاده میشه .

    در نهایت اینکه پس میشه حتی مجوز های یک برنامه رینگ 3 رو به رینگ 0 تغییر داد
    مجوز چیه ؟

    با نوشتن چند خط کد ساده این نظم رینگ ها به هم می خوره ؟
    دستور ماشین رو گذاشتن که صدا کنی و ازش استفاده کنی . بقیه اش بر عهده سیستم عامل است .
    UNIX is simple. It just takes a genius to understand its simplicity
    -- Dennis Ritchie

  5. #5
    کاربر دائمی آواتار cybercoder
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    root/
    پست
    2,018
    دستور ماشین رو گذاشتن که صدا کنی و ازش استفاده کنی . بقیه اش بر عهده سیستم عامل است
    یعنی اجازه اجرا نمی ده دیگه نه؟
    یک Mode خاصی ماکرواسمبلر داشت ؟ تو اون mode هم نمیشه ؟

  6. #6
    کاربر دائمی آواتار Delphi Skyline
    تاریخ عضویت
    دی 1383
    محل زندگی
    شیراز
    پست
    1,174
    مجوز چیه ؟
    منظورم اینه که میشه قبل از اجرای یک برنامه رینگ 3 پردازنده با درایور ما به رینگ 0 تنظیم بشه . پس در این صورت این برنامه به راحتی می تونه هر کاری بکنه ؟؟

    در ضمن SYSENTER و SYSEXIT روی کدام نوع پردازنده ها جواب می ده ؟؟ (مال اینتل)

  7. #7
    در ضمن SYSENTER و SYSEXIT روی کدام نوع پردازنده ها جواب می ده ؟؟ (مال اینتل)
    راهنمای اینتل رو ببین .

    میشه قبل از اجرای یک برنامه رینگ 3 پردازنده با درایور ما به رینگ 0 تنظیم بشه
    تئوری ؟ آره . ولی مدل دسترسی به حافظه و فراخوانی توابع و ...کاملا متفاوت هست بنابراین کد Ring 3 رو نباید وقتی پردازنده روی Ring 0 است اجرا کنی . البته اگر کدت جمع کردن محتوای دو تا رجیستر باشه اجرا میشه ، اما همینکه به حافظه دست بزنی یا بخواهی چیزی رو فراخوانی کنی متوقف میشی .

    در این صورت این برنامه به راحتی می تونه هر کاری بکنه ؟؟
    هر کاری یعنی دقیقا چه کاری ؟
    من حس میکنم تصور میکنی که Ring 0 یک مکان رویائی است که اگر کدی آنجا اجرا بشه اجرا کننده رو به سمت الدورادو میبره ؟ Ring 0 کدها رو با دسترسی متفاوت برای اهداف متفاوت اجرا میکنه ، همین . مثلا اگر بخواهی مستقیما روی پورت مانیتور نقاشی کنی Ring 0 محل خوبی است اما باید باز هم از توابع فراهم شده توسط سیستم عامل استفاده کنی ، یعنی کدی که برای Ring 3 نوشته شده چون به توابع کرنل دسترسی نداره بی معنی است که منتظر باشه اگر دسترسی به Ring 0 فراهم شد کار خارق العاده ای انجام بده . اصولا در هر دو محیط مدل مدیریت حافظه متفاوت ، و توابع متفاوتی برای کار کردن وجود دارن . کسی که مدیر سیستم است یا مجوز فراخوانی درایور داره طبیعتا بسادگی کد کرنل اجرا میکنه . اگر کدی برای کرنل نوشته نشده باشه انتقال پردازنده به Ring 0 خدمت خاصی به اون کد نمیکنه .
    UNIX is simple. It just takes a genius to understand its simplicity
    -- Dennis Ritchie

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

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