حتما برای شما هم این سوال پیش آمده است که چرا ویندوز محل نصب برنامهها را جدا کرده است؟ چرا برنامه های ۳۲ بیتی باید در یک فولدر جداگانه نصب شوند؟ اگر کاربری در مراحل نصب برنامه های ۳۲ بیتی، محل نصب را در C:\Program Files قرار دهد، چه اتفاقی میافتد؟ فایلهای برنامه های نصب شده در این دو فولدر چه تفاوتی با هم میکنند؟
به نظر ما مایکروسافت بی دلیل این کار را انجام نداده است. جواب کوتاه به این سوالات این است: مایکروسافت این کار را انجام داده است تا برنامه های ۳۲ بیتی به همان شکل سابق نصب شده و کار کنند بدون آنکه قوانین و اصول نصب برنامه های ۶۴ بیتی بر روی آنها اعمال شود.
توجه داشته باشید که فایلهای اجرا شدنی و DLL در ویندوز ۳۲ بیتی با ویندوز ۶۴ بیتی متفاوت است؛ لذا این کار انجام میشود تا فایلهای ۳۲ بیتی از فایلهای ۶۴ بیتی قابل تشخیص و تفکیک باشند. یک برنامه ۳۲ بیتی نمیتواند یک فایل DLL 64 بیتی را شناسایی و بارگذاری کند. در نتیجه راهی لازم بود تا مطمئن شویم یک برنامه ۳۲ بیتی (که به احتمال زیاد قبل از برنامه های ۶۴ بیتی برنامه نویسی شده و هیچگونه سازگاریای با برنامه های ۶۴ بیتی ندارد) به اشتباه یک فایل DLL 64 بیتی را شناسایی نمیکند.
در صورت وقوع این مساله، برنامه ۳۲ بیتی تلاش میکند فایل ۶۴ بیتی را اجرا کند و چون قادر به انجام این کار نیست یک پیغام خطا به کاربر میدهد و اجرای برنامه متوقف میشود. سادهترین راه برای این مساله جدا کردن مسیر فایلهاست. راه دیگر میتوانست این باشد که هر برنامه ۶۴ بیتی، فایلهای اجرایی و DLL خود را در جایی مخفی کند که برنامه های ۳۲ بیتی به آن دسترسی نداشته باشند، مثلا یک دایرکتوری با نام bin64. اما این کار درنهایت منجر به آشفتگی و بی نظمی سیستمهای ۶۴ بیتی میشد.
با دانستن این مطالب سوالات دیگری در ذهن افراد شکل خواهد گرفت. مثلا اینکه چرا از مسیر C:\Program Files\x86 استفاده نشده است؟ باید گفت پاسخ مشخصی به اینگونه سوالات وجود ندارد، این چیزی است که مایکروسافت انتخاب کرده است و شاید دلیل خاصی هم برای آن نباشد. چه بسا برنامه های بسیاری وجود دارند که برای نصب به یک مسیر مشخص احتیاجی نداشته و در هر مسیری میتوانند نصب شوند.