تازه های سایت
سیستم های ۳۲ بیتی ، سیستم های ۶۴ بیتی

سیستم های ۳۲ بیتی ، سیستم های ۶۴ بیتی

آیا این نرم افزار ۳۲ بیتی روی سیستم عامل ۶۴ بیتی من اجرا میشه ؟

آیا این نرم افزار ۶۴ بیتی روی کامپیوتر من اجرا میشه؟

اگه شما هم از اون دسته آدمایی هستید که خیلی این سوال رو از خودتون میپرسید ظاهرا این مقاله به شما کمک خواهد کرد تا درک بهتری از محاسبات ۳۲ بیتی و ۶۴ بیتی داشته باشید. ما به کامپیوتر به عنوان یه سیستم سه بخشی نگاه میکنیم که شامل : ۱- سخت افزار ۲- سیستم عامل و ۳- نرم افزار هستش.

۳۲-bit در مقابل ۶۴-bit

دو دستاورد نتیجه افزایش تعداد بیتهای ما در دل سخت افزار خواهد بود :

  •   – تعداد بیت های بیشتر به این معناست که دیتا در بسته های بزرگتر قابل پردازش خواهد بود . دقت نیز افزایش پیدا خواهد کرد
  •   – تعداد بیت های بیشتر به این معناست که سیستم ما میتونه به خونه های بیشتری از حافظه RAM اشاره بکنه.

بذارید یکم بحث رو باز تر کنیم. همانطور که میدونید برنامه های شما برای اجرا از هارد دیسک به حافظه فیزیکی یا Main Memory و یا RAM آورده میشند. خب RAM هم همونطور که از اسمش بر میاد ساختاری داره که شما میتونید به صورت تصادفی بهش دسترسی داشته باشید. Random Access Memory یعنی این حافظه آدرس دهی شده و شما می تونید به صورت تصادفی بگید که من قصد دارم مثلا خونه شماره ۳۲ رو بخونم.

بعد از اینکه شما دستورات برنامه تون رو به رم اوردید این دستورات به ترتیب ( ساختار استاندارد یک برنامه به این گونه هست که دستورات یکی پس از دیگری اجرا شوند ) و یا نه چندان مرتب ( مثلا زمانیکه شما حلقه دارید ) به CPU میاد و اجرا میشه.

خب ما باید این توانایی رو داشته باشیم که بتونیم به هر خونه RAM یه آدرس بدیم. سیستم های ۳۲ بیتی یک زمانی مورد پسند بودند چون میتوانستند ۴ گیگا بایت حافظه رو آدرس دهی کنند . ( ۲ به توان ۳۲ ) ولی برخی از برنامه های مدرن امروزی به حافظه ای بیشتر از این مقدار نیاز دارند. این دلیلی شد که سیستم ۶۴- بیتی جذاب تر بشوند زیرا پتانسیل این رو دارند که تا ۲ به توان ۶۴ خونه حافظه رو آدرس دهی کنند.

زمانی که در سال ۱۹۹۵ ویندوز ۹۵ با ساپورت برنامه های ۳۲ بیتی ارائه شد، تقریبا تمام برنامه ها و قسمت های سیستم عامل با محاسبات ۳۲ بیتی سازگار بودند.

حال مشکل امروز ما اینه که با اینکه اکثر برنامه های ما ۳۲ بیتی هستند ولی تقریبا تمام CPU هایی که میخریم ۶۴ بیتی هستند.

خب چقدر طول میکشه که از سیستم های ۳۲-بیت به ۶۴ بیت برسیم؟

نکته ای که مهم هست اینه که کامپیوتر ما سخت افزاری است که روی آن سیستم عاملی اجرا میشه و اون سیستم عامل در بالاترین سطح برنامه های کاربردی رو اجرا میکنه. پس اول سخت افزار طراحی میشه. بعد از اون سیستم عامل با اون سخت افزار هماهنگ میشه و در نهایت برنامه های کاربردی هستند که ظاهر میشند.

بذارید برگردیم به زمانی که قصد داشتیم از سیستم های ۱۶ بیتی به سیستم های ۳۲ بیتی مهاجرت کنیم. زمانی در حدود ۱۰ سال این پروسه طول کشید یعنی از سال ۱۹۸۵ تا ۱۹۹۵٫ با این حال و بعد از گذشت نزدیک ۱۷ سال از اون موقع هنوز هم هستند کسانی که ورژن های ۱۶ بیتی ویندوز رو روی سیستم های قدیمی خودشون دارند.

تولید کنندگان سخت افزار و نرم افزار از این پروسه زمان بر درس گرفتند و همان زمانی که پردازنده های جدید ۶۴ بیتی رو طراحی کردند ، سیستم عامل ۶۴ بیتی رو هم عرضه کردند. ولی مشکل امروز ما کمبود برنامه های ۶۴ بیتی است. برای اثبات این قضیه کافیه که بدونید که بعد از گذشت ده سال اولین پردازنده ۶۴ بیتی تازه الان تعداد نصب های ویندوز ۶۴ بیتی از ویندوز ۳۲ بیتی فراتر رفته ، دست آورد دیگری نداریم !

کامپیوتر شما  سه قسمت دارد !

32-bit-64-bit-explained-442-322

خب حالا ما قصد داریم به این سه لایه کامپیوتر نگاهی بندازیم. به زبان ساده پردازنده به عنوان پایین ترین لایه این سه لایه و برنامه های کاربردی به عنوان بالاترین لایه هستند.

برای اینکه شما بتونید یک سیستم عامل ۶۴ بیتی اجرا کنید نیاز دارید که لایه پایین تر اون رو ساپورت کنه : شما یه پردازنده ۶۴ بیتی نیاز دارین.

برای اینکه بتونید برنامه های ۶۴ بیتی اجرا کنید نیا دارید که لایه پایین تر به شما این اجازه رو بده : شما سیستم عامل ۶۴ بیتی و پردازنده ۶۴ بیتی نیاز دارین.

این ساده سازی به ما این امکان رو میده که راحت تر بتونیم مواقعی رو تفسیر کنیم که بخش های ۳۲ بیتی و ۶۴ بیتی با هم ادغام میشن.

کدام ترکیب بخش ۳۲ بیتی و ۶۴ بیتی باهم سازگارند و با هم کار میکنند؟

قانون اصلی اینه :

قسمت ۳۲ بیت روی یک لایه پایین تر ۶۴ بیتی قابل اجراست ولی یک قسمت ۶۴ بیتی قابل اجرا روی لایه زیری ۳۲ بیتی نیست.

  • یک سیستم عامل ۳۲ بیتی به راحتی روی یک پردازنده ۳۲ بیتی و ۶۴ بیتی قابل اجراست
  • یک برنامه ۳۲ بیتی به راحتی روی یک سیستم عامل ۳۲ بیتی یا ۶۴ بیتی قابل اجراست.
  • ولی یک برنامه ۶۴ بیتی فقط روی یک سیستم عامل ۶۴ بیتی و یک سیستم عامل ۶۴ بیتی فقط روی یک پردازنده ۶۴ بیتی قابل اجراست.
اگر شما یک پردازنده ۳۲ بیتی داشته باشید
پردازنده ۳۲-bit 32-bit 32-bit 32-bit
سیستم عامل ۳۲-bit 32-bit 64-bit 64-bit
برنامه ۳۲-bit 64-bit 32-bit 64-bit
امکان پذیر غیر ممکن غیر ممکن غیر ممکن
اگر شما یک پردازنده ۶۴ بیتی داشته باشید
پردازنده ۶۴-bit 64-bit 64-bit 64-bit
سیستم عامل ۶۴-bit 64-bit 32-bit 32-bit
برنامه ۶۴-bit 32-bit 32-bit 64-bit
امکان پذیر امکان پذیر امکان پذیر غیر ممکن

دلیل اینکه بخش ۳۲ بیتی میتونه روی بخش ۶۴ بیتی اجرا بشه اینه که بخش ۶۴ بیتی این گون طراحی شده که این کار رو بکنه ! در واقع بخش ۶۴ بیتی backward-compatible هست با بخش ۳۲ بیتی.

یک نمونه از backward-compatible ویندوز ۶۴ بیتی است. این ویندوز برنامه ای به نام WOW64 داره که سازگاری با سیستم ۳۲ بیتی را با شبیه سازی امکان پذیر میکنه.

نکته مهم ! امکان نصب درایور ۳۲ بیتی روی یک سیستم عامل ۶۴ بیتی نیست ؟! چرا ؟ دلیلش واضحه درایور به صورت موازی با سیستم عامل کار میکنه. یعنی نسبت به برنامه های کاربردی در لایه های پایین تری قرار داره و شبیه سازی ای که مطرح شد در لایه های بالاتر سیستم عامل انجام میشه. پس این شبیه سازی برای درایور ها وجود نداره.

منبع

۳,۱۸۴ total views, 2 views today

Print Friendly
Facebook0Google+0Twitter0LinkedIn0

درباره‌ی سعید دادخواه

یه برنامه نویس !

۱۳ نظر

  1. ممنون عالی بود.

    اما این مشکلات فقط مربوط به ویندوز میشه

    برای مثال زمانی که یک توزیع لینوکس نصب میکنید تمام برنامه های اون توزیع به صورت ۶۴بیتی در اختیار شما قرار میگیرند و میتونید از سیستم کاملاً ۶۴ بیتی تون لذت ببرید. اما در ویندوز نصب ۳۲ بیتی و ۶۴ بیتی تفاوتی با هم ندارند چون عملاً تمام برنامه ها ۳۲ بیتی هستند.

  2. ممنون! مدت زیادی بود ک برای منم سوال بود !

  3. ممنون و اما در مورد ایجاد برنامه تحت اندروید در نسخه های ۳۲ بیتی و ۶۴ بیتی ،آیا تفاوتی بینشون هست؟

  4. سلام
    اگه امکان داره میشه یکمی هم opencv با qt یا پردازش تصویر با qt یاد بدبد یا یه مقاله بزارید ممنون 🙂

    • سلام
      بابا ما آموزش Qt میذاریم استقبال در حد استقبال از بازی تیم شهرداری بیروت و کله پزی شمیراناته ! آموزش OpenCV م کجا بود :)) . متاسفانه وضعیت استقبال کاربرا دلگرم کننده نیست وگرنه توی فکرم بود آموزشش رو بذارم.

      • سلام
        به نظر من استقبال هم خیلی خوب بوده شما اگه یه نگاهی به قیاسی که کردید بندازید متوجه می شید که جامعه بازدید کنه به کل جامعه مخاطب را قیاس کنی شما درصد بیشتری از بازدید تیم شهرداری بیروت و کله پزی شمیرانات دارید مخاطب بازی همه مردم هستند اونم طوری که شما گفتید مردم دوتا کشور ولی مخاطب کار شما برنامه نویسان هستند اونم کسایی که به c++ و متن باز علاقه دارند بنابرین با قبول کردن اینکه جامعه آماری بزرگی نداریم خیلی هم استقبال خوب بوده
        ولی opencv آمارش بازدیدش به نظر من از کیوت بیشتره چون وابسته به کیوت نیست و بقیه برنامه نویسان مخصوصا کسایی که تو بخش ساخت روبات فعالیت دارند به این کتابخانه قوی پردازش تصویر نیاز دارند چون هم سرعت بالایی داره هم کارایی زیاد خوشحال می شم به شخصه آموزشش را بگذارید همش توی فیلم هاتون بود ولی از آموزشش خبری نبود

جوابی بنویسید

ایمیل شما نشر نخواهد شد.خانه های ضروری نشانه گذاری شده است. *

*


هفت + = 14