معماری های لینوکس
معمولا وقتی میزکار و توزیع خود را انتخاب کردید، میتوانید به سراغ دانلود دیسک و نصب لینوکس بروید اما گاهی یک سوال کمی حرفهای تر شما را گیج میکند: ۳۲ بیت یا ۶۴ بیت.
از قدیم تقریبا تمام توزیعهای مشهور لینوکس هم با نسخه ۳۲ بیت عرضه میشدند و هم به شکل نسخه ۶۴ بیتی و اینکه کاربر کدام را دانلود و نصب میکرد وابسته به فاکتورهای مختلفی بود. تا یکسال پیش تقریبا اکثر توزیعهای بزرگ به شکل پیشفرض شما را به سمت نسخههای ۳۲ بیتی راهنمایی میکردند و حالا توزیعهایی مثل اوبونتو و فدورا در سایتهایشان نسخههای ۶۴ بیتی را گزینه پیش فرض قرار دادهاند. اما اول بگذارید ببینیم مفهوم این عددها چیست.
جریان چیست؟
عددهایی مثل ۳۲ یا ۶۴ نشان دهنده اندازه (عرض) حافظهای است که یک پردازشگر (سی پی یو) میتواند به آن دسترسی پیدا کند. اگر بخواهیم عبارت را دقیقتر بیان کنیم باید بگویم که گفتن عبارت «کامپیوتر ۶۴ بیتی» یعنی پردازشگر این کامپیوتر رجیسترهایی به اندازه ۶۴ بیت داشته و در هر عملیات واحد میتواند روی ۶۴ بیت پردازش انجام دهد.
مشخص است که یک کامپیوتر ۶۴ بیتی با داشتن رجیسترهای بزرگتر به راحتی میتواند تمام دستورات و برنامههای ۳۲ بیتی را اجرا کند ولی معکوس این جریان صادق نیست. پس اگر شما یک کامپیوتر ۶۴ بیتی دارید مجاز هستید روی آن سیستم عامل ۳۲ بیتی یا ۶۴ بیتی نصب کنید ولی اگر از یک کامپیوتر ۳۲ بیتی استفاده میکنید، نباید به سراغ نسخه ۶۴ بیتی سیستم عاملها بروید. البته واقعا نیاز به استرس نیست، خبر خوش من این است : به احتمال خیلی زیاد شما یک کامپیوتر ۶۴ بیتی دارید.
فهرست پروسسهای ۶۴ بیت
چون در دنیای ویندوز سیستمعاملهای ۶۴ تازه برای کارهای دسکتاپ مشهور شدهاند، عدهای هیجان دارند که درباره آن صحبت کنند اما واقعیت این است که مفهوم پروسسور ۶۴ بیتی مفهومی کاملا جا افتاده و حتی قدیمی است و اگر کامپیوتر شما از سال ۲۰۰۸ به بعد ساخته شده، به احتمال زیاد معماری ۶۴ بیتی دارد. فهرست زیر نشان دهنده پردازندههای ۶۴ بیت موجود است:
AMD
Athlon64, Athlon FX, Athlon X2, Phenom, Semprons that use AM2/AM2+/AM3 socket, Turion64
Intel
F and 5x1 series Pentium 4 using the "Prescott" core
Pentium D
Core 2 (Solo, Duo & Quad)
Core i3 (all)
Core i5 (all)
Core i7 (all)
VIA
Isiah
و احتمالا هر چیزی که در آینده ساخته شود هم از همین معماری بهره خواهد برد. در صورتی که همین حالا هم پشت یک کامپیوتر لینوکسی نشستهاید، با زدن دستور زیر میتوانید پهنای رجیسترهای خود را بررسی کنید:
grep --color=always -iw lm /proc/cpuinfo
در صورتی که خروجی این دستور حاوی lmهای رنگی باشد، میگوید که سیپییو(ها)ی شما از حالت long mode یا همان آدرس دهی ۶۴ بیتی پشتیبانی میکنند.
مقایسه
سرعت
بر اساس تستهای انجام شده و عقل سلیم، یک سیستم ۶۴ بیت سریعتر از یک سیستم ۳۲ بیت کار میکند. اما احتمالا برایتان جالب است که بگویم تقریبا هیچ انسان عادی نمیتواند تفاوت سرعت اجرای برنامههای معمول در دو حالت ۳۲ و ۶۴ بیت را تشخیص بدهد چون تستها به عددهای بین ۵ تا ۱۵ درصد سریعتر شدن برنامهها اشاره میکنند. مساله این است که برنامههای ۶۴ بیت دقیقا همان برنامههای ۳۲ بیت هستند که دوباره کامپایل شدهاند و هیچ بهینهسازی خاصی برای استفاده از تمام قابلیتهای پروسسور در آنها صورت نگرفته. پس اگر فکر میکنید با نصب ۶۴ بیت به سرعت خیلی بهتری میرسید، تجدید نظر کنید.
حافظه
از نظر ریاضی یک سیستم ۳۲ بیتی میتواند تا ۴ گیگابایت حافظه و یک سیستم ۶۴ بیت تا ۱۶.۸ میلیون ترابایت (۱۶ اگزابایت) حافظه را آدرس دهی کند. پس اگر شما ۸ گیگابایت رم داشته باشید، در حالت عادی یک سیستم ۳۲ بیتی فقط خواهد توانست از ۴ گیگ آن استفاده کند در حالی که یک سیستم ۶۴ میتواند میلیونها برابر بزرگتر از آن را هم کنترل کند. اما این اصلا به این معنی نیست که اگر بیشتر از ۴ گیگ رم دارید، ملزم به نصب ۶۴ بیت هستید. از مدتها پیش، یک افزونه در کرنل به نام Physical Address Extention که به شکل مخفف PAE خوانده میشود، محدودیت آدرس دهی کرنلهای ۳۲ بیتی را به ۶۴ گیگ افزایش داده.
اگر بیشتر از ۴ گیگابایت رم دارید و میخواهید از یک سیستم عامل (و در نتیجه کرنل ۳۲ بیتی) استفاده کنید باید مطمئن شوید که کرنل pae را نصب کردهاید. معمولا میتوانید این کرنل را در مخازن با جستجو به دنبال pae پیدا کرده و نصب کنید. با توجه به طبیعیتر شدن داشتن رمهای بالای ۴ گیگ، بعضی توزیعهای مشهور (از جمله اوبونتو) در نسخههای اخیر خود به شکل پیش فرض از کرنل PAE استفاده میکنند.
سازگاری
تقریبا تا دو سال قبل، استفاده از یک لینوکس ۶۴ بیت با دردسرهایی مثل سخت تر بودن نصب بعضی برنامهها (بخصوص فلش و جاوا) همراه بود. این مشکل حالا تا حد زیادی مرتفع شده. البته کماکان نصب یک سیستم ۶۴ بیتی ممکن است در لحظاتی باعث دردسرهایی در نصب برنامه های جدید بشود. مثلا برنامه اسکایپ یا یک بازی جدید که توسط یک کمپانی به شکل باینری برای لینوکس عرضه شده ممکن است روی سیستمهای ۳۲ بیت فقط با دانلود و دبل کلیک کردن اجرا شود اما برای نصب روی یک سیستم ۶۴ بیت نیازمند درک / کار بیشتری باشد (نصب کتابخانههای ۳۲ بیتی سازگار کننده). اما این واقعا به ترسناکی قدیم نیست و حداقل انتظار میرود که تمام برنامههای معمول روی هر دو نسخه عرضه شوند.
باحال بودن. ۶۴ بیت برای خیلیها یک مفهوم جدید است و هیجان انگیز. آدمها دوست دارند کارهای جدید بکنند و «متفاوت» باشند و در نتیجه نصب و استفاده از یک سیستم ۶۴ بیت با اینکه در عمل هیچ تفاوتی با نصب و استفاده از یک سیستم ۳۲ بیت ندارد، برای عدهای کشش خاص خودش را دارد.
و حرف نهایی
برای یک کاربر خانگی رومیزی، تفاوت بزرگی بین سیستمهای ۳۲ بیت و ۶۴ بیت وجود ندارد. اگر سیستم ۳۲ بیت نصب میکنید و بیشتر از چهار گیگابایت رم دارید باید مطمئن شوید که از کرنل pae استفاده میکنید تا تمام حافظهتان استفاده شود و اگر سیستم ۶۴ بیت نصب میکنید باید آماده باشید که یک روز یک برنامه بسته برایتان کمی دردسر درست کند و مجبور بشوید سراغ نصب چند لایبری ۳۲ بیت از مخازنتان بروید.
اگر هم نظر من را میخواهید باید بگویم که دوباره نوشتههای بالا را بخوانید و خودتان انتخاب کنید چون این دو گزینه تقریبا مساوی همدیگر هستند. یک راه حل هم این است که اگر هیچ ایدهای ندارید از سیستمی استفاده کنید که سایت دانلود رسمی همان توزیع به شما پیشنهاد میدهد.
نکات
- صفحه ویکی جامعه اوبونتو در مورد انتخاب بین ۳۲ و ۶۴ بیت
- در دنیای لینوکس کرنلهای ۶۴ بیتی معمولا با پسوند 64_ و سیستمعاملهای ۳۲ بیتی با پسوندهایی مانند i686 یا i386 شناخته میشوند
- بر اساس خروجی این دستور میبینید که من (جادی) از یک کرنل ۳۲ بیتی (i686) با قابلیت دسترسی به حافظه بیشتر از ۴ گیگابایت (PAE) و علیرضا (cyletech) از یک کرنل ۶۴ بیتی (_64) استفاده میکنیم. $ uname -a Linux jedora 3.6.9-2.fc17.i686.PAE #1 SMP Tue Dec 4 14:15:28 UTC 2012 i686 i686 i386 GNU/Linux
Linux cyletech 3.5.0-34-generic #55-Ubuntu SMP Thu Jun 6 20:18:19 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux