علت وجود دو پوشه Program Files و Program Files (x86) در نسخه‌های 64 بیت ویندوز چیست؟

علت وجود دو پوشه Program Files و Program Files (x86) در نسخه‌های 64 بیت ویندوز چیست؟


اگر شما نیز نسخه‌ای 64 بیت از ویندوز را بر روی رایانه شخصی خود نصب کرده و سپس به پارتیشن میزبان سیستم‌عامل (اغلب درایو C) مراجعه نموده باشید، حتماً تاکنون به این نکته پی برده‌اید که تعداد دو پرونده Program Files و Program Files (x86) جهت میزبانی اپلیکیشن‌های رایانه‌ای به چشم می‌خورند. علاوه بر آن نرم‌افزارهای نصب شده از جانب کاربر به‌صورت کاملاً تصادفی (در ادامه با یکدیگر می‌آموزیم که این موضوع تصادفی نبوده و منطقی قابل فهم را در پشت پرده خود نهفته دارد) در بین دو پوشه فوق پخش می‌شوند، اما آیا تاکنون با خود اندیشیده‌اید که علت وجود فولدرهای فوق چیست و چرا ویندوز به جدا نمودن اپلیکیشن‌های موجود از یکدیگر می‌پردازد؟ بهتر است تا جهت درک بیشتر این موضوع، ابتدا با تفاوت‌های موجود در بین نسخه‌های 32 بیت و 64 بیت سیستم‌عامل ویندوز کمی آشنا شویم.

Program Files

سیستم‌عامل ویندوز در ابتدای طراحی و عرضه خود فقط از معماری 32 بیت پشتیبانی کرده و این مهم در آینده و با پای در میدان گذاشتن پردازنده‌های مرکزی 64 بیت با گسترش بیشتری همراه شده است. در نسخه‌های 32 بیت ویندوز، هنگام مراجعه به پارتیشن میزبان سیستم‌عامل تنها فولدر Program Files قابل مشاهده می‌باشد، در حالی که پرونده فوق در نسخه‌های 64 بیت ویندوز به دو عدد افزایش پیدا کرده و پوشه دیگری تحت عنوان Program Files (x86) نیز به آن اضافه می‌شود، اما چرا؟

فولدر Program Files در حالت کلی موقعیت پیش‌فرض و مورد پیشنهاد جهت نصب نرم‌افزارهای رایانه‌ای و همچنین مسیری ایده‌ال به‌منظور نگهداری فایل‌های اجرایی، داده و دیگر اطلاعات مورد نیاز به‌شمار می‌رود. پرونده فوق به‌صورت پیش‌فرض در هنگام نصب اپلیکیشن‌های گوناگون از جانب سیستم‌عامل ویندوز انتخاب شده و اغلب توصیه می‌شود تا از تغییر آن توسط کاربر نیز خودداری به عمل آید.

اگر کمی اطلاعات تخصصی پیرامون معماری پردازنده‌های مرکزی و سیستم‌عامل‌های مختلف را فرا آموخته باشید، حتماً مستحضر هستید که نسخه‌های 32 بیت از ویندوز تحت برچسب x86 و نسخه‌های 64 بیت آن نیز با عنوان x64 شناخته می‌شوند. علت اصلی نحوه نام‌گذاری فوق و تمایز آن‌ها با یکدیگر به تراشه 8086 کمپانی اینتل و استفاده از آن در بطن رایانه‌های شخصی اولیه باز می‌گردد (تراشه مذکور در حالت کلی پردازشگری 16 بیت به شمار می‌رفته است که نسخه‌های جدیدتر آن به 32 بیت ارتقاء پیدا کرده و لذا عبارت x86 اکنون به پردازنده‌های مرکزی قبل از توسعه معماری 64 بیت و دو عدد آخر تراشه مذکور نسبت داده می‌شود)، اما همان‌طور که از عنوان اصلی نوشته پیدا است، محور اصلی موضوع مطلب دیگری را دنبال می‌کند.

Program Files

همان‌طور که پیشتر نیز اشاره شد، نسخه‌های 32 بیت از سیستم‌عامل ویندوز تنها از پوشه Program Files برخوردار می‌باشند، در حالی که این مهم در نسخه‌های 64 بیت ویندوز فولدر دیگری تحت برچسب Program Files (x86) را نیز پشتیبانی می‌نماید. همان‌گونه که از توضیحات پاراگراف پیشین می‌توان استنباط کرد، نرم‌افزارهای رایانه‌ای مبتنی بر معماری 32 بیت به‌صورت کاملاً خودکار (در صورت عدم تغییر موقعیت پیش‌فرض توسط کاربر) در پرونده Program Files (x86) نصب می‌شوند، در صورتی که موقعیت نصب نرم‌افزارهای 64 بیت به فولدر Program Files تغییر پیدا می‌کند.

همان‌طور که مستحضر هستید، نسخه‌های 64 بیت از سیستم‌عامل ویندوز از اپلیکیشن‌ها و نرم‌افزارهای 32 بیت نیز پشتیبانی می‌کنند، اما عکس این مهم برقرار نمی‌باشد. پلتفرم ویندوز به‌صورت کاملاً خودکار فرآیند اجرای نرم‌افزارهای مبتنی بر معماری 32 بیت را با استفاده از لایه‌ای شبیه‌سازی تحت عنوان WOW64 را که از کوتاه شده عبارت Windows 32-bit on Windows 64-bit تشکیل شده است به انجام می‌رساند. هنگامی‌که اپلیکیشنی 32 بیت در نسخه‌ای 64 بیت از ویندوز به اجرا در می‌آید، لایه شبیه‌سازی نامبرده به‌صورت کاملاً یکپارچه دسترسی فایل‌های مربوط به آن را از مسیر C:Program Files (مسیر پیش‌فرض نرم‌افزارهای 64 بیت) به C:Program Files (x86) منتقل می‌کند. نرم‌افزار 32 بیت مربوطه در حالت پیش‌فرض و به‌منظور یافتن فایل‌های خود جهت اجرا اقدام به دسترسی به فولدر Program Files می‌کند، اما از آنجایی که ساختار آن بر پایه معماری 32 بیت توسعه یافته و ویندوز پیشتر موقعیت نصب آن را به پرونده اپلیکیشن‌های 32 بیت تغییر داده است، لذا لایه شبیه‌سازی WOW64 مسیر دسترسی آن را به فولدر Program Files (x86) تغییر می‌دهد. این در حالی است که نرم‌افزارهای 64 بیت به‌صورت کاملاً معمولی به اجرا درآمده و مسیر دسترسی آن‌ها با انتقال همراه نمی‌شود.

اکنون ممکن است از خود بپرسید که دلیل این تغییر موقعیت چیست و چرا سیستم‌عامل ویندوز به تفکیک نرم‌افزارهای مبتنی بر معماری‌های گوناگون از یکدیگر می‌پردازد؟ در پاسخ باید گفت که علت این مهم به فراهم آوردن نوعی زیرساخت ویژه جهت پشتیبانی از برنامه‌های قدیمی‌تر 32 بیت باز می‌گردد. نرم‌افزارهایی که بر پایه معماری 32 بیت توسعه پیدا می‌نمایند ممکن است از وجود نسخه‌ای 64 بیت از ویندوز به‌صورت کامل بی‌اطلاع بوده و لذا تداخل محتوایی با یکدیگر به بروز مشکلات گوناگونی منجر شود، بنابراین سیستم‌عامل به‌منظور جلوگیری از احتمال نمایش سناریوهای این‌چنینی، به تفکیک آن‌ها از یکدیگر می‌پردازد.

نرم‌افزارهای 32 بیت در حالت کلی نمی‌توانند به بارگذاری فایل‌های DLL کتابخانه‌های 64 بیت مبادرت ورزند و در صورت انجام این مهم ممکن است با کرش همراه شده و از فعالیت بازایستند؛ علاوه بر آن عکس این مهم نیز برقرار است. بر همین اساس جدا نگاه داشتن نرم‌افزارهای مختلف و مبتنی بر معماری متفاوت از یکدیگر در جلوگیری از بروز خطاهای این‌چنینی و فراهم آوردن حداکثر سازگاری بسیار تأثیرگذار می‌باشد.

جهت درک بهتر موضوع فرض کنید که نسخه‌ای 64 بیت از ویندوز به جداسازی نرم‌افزارهای گوناگون از یکدیگر اقدام نکرده و تنها از یک فولدر Program Files برخوردار می‌باشد. در این حالت یک اپلیکیشن 32 بیت ممکن است به جستجوی مسیر C:Program FilesMicrosoft Office جهت یافتن برخی از فایل‌های کتابخانه‌ای DLL بپردازد، اما از آنجایی که نسخه‌ای 64 بیت از نرم‌افزار ویرایشگر مایکروسافت آفیس بر روی رایانه نصب شده و تمامی محتویات آن نیز متناسب با معماری فوق می‌باشد، اپلیکیشن مربوطه به جای محتویات 32 بیت، با فایل‌های کتابخانه‌ای 64 بیت مواجه شده و از آنجایی که هیچ‌گونه درکی از نحوه چگونگی تفسیر آن‌ها ندارد، با کرش همراه و از فعالیت باز می‌ایستد. اکنون اگر برنامه‌های 32 و 64 بیت توسط سیستم‌عامل از یکدیگر جداسازی شده باشند، نرم‌افزار اشاره شده هنگام مراجعه به مسیر C:Program Files(x86)Microsoft Office، تنها با فایل‌های کتابخانه‌ای 32 بیت مواجه شده و با بارگذاری آن‌ها همچنان عملکرد صحیح و بی‌عیب و نقص خود را ادامه می‌دهد (بسیاری از نرم‌افزارهای بزرگ نظیر مایکروسافت آفیس، ادوبی فتوشاپ و … به‌صورت کاملاً خودکار دو نسخه 32 بیت و 64 بیت از خود را بر روی رایانه شخصی کاربر نصب کرده و حتی در صورت انتخاب نصب تنها یکی از نسخه‌های آن، فایل‌های کتابخانه‌ای DLL و محتویات مورد نیاز جهت فعالیت صحیح خود و همچنین اپلیکیشن‌های وابسته نظیر پلاگین‌ها و … را نیز در فولدر مناسب قرار می‌دهند).

از جمله دیگر مزیت‌های جداسازی نرم‌افزارهای 32 بیت و 64 بیت از یکدیگر می‌توان به‌راحتی بیشتر توسعه‌دهندگان اشاره کرد. در صورتی که سیستم‌عامل ویندوز به تمایز اپلیکیشن‌های مبتنی بر معماری‌های گوناگون از یکدیگر مبادرت نورزد، سازندگان محصولات نرم‌افزاری باید این مهم را خود به‌صورت دستی به انجام رسانده و از آنجایی که هیچ‌گونه مسیر استانداردی جهت تمایز آن‌ها از یکدیگر وجود ندارد، پارتیشن میزبان سیستم‌عامل با انبوهی از نشانی‌ها و دایرکتوری مختلف انباشته می‌شود.

سیستم‌عامل ویندوز و لایه شبیه‌سازی WOW64 در حالت کلی این مهم را به‌صورت کاملاً خودکار و به بهترین شکل ممکن به انجام رسانده و هیچ‌گونه نگرانی از این بابت برای کاربران وجود ندارد، کافی است تا نرم‌افزار مورد نظر خود را به نصب رسانده و پس از اتمام فرآیند به استفاده از آن بپردازید، اما پیشنهاد می‌شود تا حدالامکان مسیر پیش‌فرض نصب نرم‌افزارهای رایانه‌‎ای را تغییر نداده و اجازه دهید تا از جانب ویندوز، در فولدر مناسب Program Files یا Program Files (x86) مناسب خود نصب شوند.

پست های مرتبط

دیدگاه خود را بنویسید