لینوکس 64 بیتی‌
 

در اواسط سال 1995، فناوری 32 بیتی بر روی سیستم‌عامل‌های ویندوز 95 مایکروسافت و OS/2 آی‌بی‌ام پا به عرصه ظهور گذاشت. در آن زمان بسیاری تصور می‌کردند که فناوری دیگر به انتهای شکوفایی خود رسیده‌است. از این‌رو فکر پدیده‌ای به نام <محاسبات 64 بیتی> را هم در ذهن خود نمی‌پروراندند. در حالی که در همین زمان و حتی چند سال قبل از آن هم صحبت از فناوری 64 بیتی به میان آمده بود. اما به دلیل این‌که این رخداد در دنیای PC ها و به‌ویژه محیط پرکاربرد ویندوز مایکروسافت به وقوع نپیوسته بود، کمتر کسی از آن خبر داشت.

در واقع اولین بار در سال 1992 پردازنده‌های DEC Alpha (مبتنی‌بر معماری RISC ) امکان دسترسی 64 بیتی به فایل و فایل‌سیستم را فراهم ساختند. در آن زمان سیستم‌عامل‌های Open VMS و Digital Unix توانستند بهترین بهره را از قابلیت‌های این پردازنده ببرند. پس از آن و در سال 1993 لینوکس نیز به جمع سیستم‌عامل‌های پشتیبانی‌کننده از پردازنده‌های DEC پیوست و در سال 1995 نیز نسخه‌هایی از لینوکس برای اجرا در پردازنده‌های 64 بیتی، نظیر Ultra Sparc سان مایکروسیستمز و MIPS آی‌بی‌ام ساخته شدند؛ درحالی‌که در وادی PCها هنوز هم ویندوز و هم لینوکس در دنیای 32 بیتی زندگی می‌کردند.
 
بالاخره در سال 2001 شرکت اینتل اولین سری پردازنده‌های 64بیتی PCها را با نام ایتانیوم به بازار عرضه کرد که فقط برنامه‌های 64‌بیتی قادر بودند بر روی یک سیستم‌عامل 64 بیتی با این پردازنده کار کنند. اینتل بعداً این نقص را با ارائه ایتانیوم 2 که به برنامه‌های 32 بیتی نیز امکان اجرای سریع‌تر می‌داد، برطرف کرد. شرکت AMD نیز در سال 2003 خط تولید انبوه پردازنده 64 بیتی اپترون (Opteron) را رسماً افتتاح کرد. این پردازنده که به داشتن فناوری 64-X86 معروف شد، به راحتی توانست برنامه‌های 32 و 64 بیتی را اجرا کند و همین مسئله باعث شد اینتل نیز در رقابت با اپترون، پردازنده‌های سری Xeon را با فناوری و قابلیت‌های مشابه بسازد.
 
به‌طورکلی در پردازنده‌هایی که توسط این دو سازنده ساخته شد، تعداد رجیستری‌های CPU برای لود کردن تعداد بیشتری دستورالعمل در واحد زمان، به دو برابر افزایش یافته‌است. ضمن این‌که امکان آدرس‌دهی فضای حافظه برای برنامه‌های در حال اجرا نیز از چهار گیگابایت به شانزده میلیون گیگابایت افزایش یافت. این موضوع سبب شد سیستم‌عامل مجبور نباشد به سبب کمبود حافظه قابل آدرس‌دهی، از هارددیسک به عنوان فضای موقت نگهداری داده‌ها (Virtual Memory) استفاده کند و به‌طور مداوم اطلاعات را جهت پردازش، بین هارددیسک و حافظه رد‌وبدل کند. در سیستم‌عامل‌های 64 بیتی به خوبی از این امکانات جدید استفاده شده‌است.
 
برای برنامه‌های 32‌بیتی نیز از قابلیت اول و برای برنامه‌های 64 بیتی از هر دو قابلیت مذکور بهترین بهره برای افزایش سرعت اجرای برنامه برده می‌شود. به هر حال اگرچه شرکت‌های معتبر توزیع‌کننده لینوکس مثل ردهت یاSUSE مطالعه و آزمایش برروی نسخه‌های اولیه‌ای از لینوکس 64‌بیتی را آغاز کرده بودند، اما باید سال 1995 را زمان ورود رسمی لینوکس به دنیای 64 بیتی به حساب آورد. در حال حاضر نیز شرکت‌های ردهت و ناول مشغول ارائه سیستم‌های 64 بیتی خود هستند.

به‌ویژه در صنایع گاز، هوا‌‌-‌فضا، داروسازی و برخی صنایع تولیدی دیگر، لینوکس‌های 64 بیتی با سرورهای HP ،IBM وNEC یکه‌تاز میدان هستند. البته ا‌ین‌ مسئله به همین‌جا نیز ختم نمی‌شود و این سیستم‌عامل‌های پرسرعت علاوه بر قدرتی که در سرورهای رده متوسط   آی‌بی‌ام  نظیر سری i و p به نمایش گذاشتند، روی پلتفرم‌های کوچک‌تری چون سرورهای سری e آی‌بی‌ام یا سرورهای Dual Xeon Relion شرکت Penguin Computing نیز کارایی بسیاری نشان دادند. اکنون نیز ناول با سیستم‌عامل SUSE و ردهت با RHEL (هر دو سری A و ES) راه‌های آسان و سریعی را برای دستیابی و بهره‌مندی شرکت‌های کوچک به مزایای محیط 64 بیتی تحت پردازنده‌های AMD Athlon 64 و Intel Xeon، پدید آورده‌اند.

در کاربردهای خانگی یا دسکتاپ نیز اوضاع به همین روال است. علاوه‌‌‌بر دو توزیع‌کننده معروف ردهت و ناول، دیگران نیز در ساخت لینوکس‌های 64‌بیتی دسکتاپ موفقیت‌های غیرقابل‌انکاری داشته‌اند.
نمونه آن، توزیع Ubuntu Linux 5.04 است که از پردازنده‌های AMD 64 و Power پشتیبانی می‌کند.

برنامه‌های 64 بیتی
در زمینه برنامه‌های کاربردی دو بحث مختلف را می‌توان مطرح کرد: یکی در مورد برنامه‌هایی که نقش سرویس‌دهنده (server) را بازی می‌کنند و دوم برنامه‌هایی که تک کاربره و دسکتاپ هستند. در مورد اول، بانک‌های‌اطلاعاتی نخستین کاربرد مهم سرورها به شمار می‌آیند که ارتقا آن‌ها به نسخه‌های 64 بیتی به دلیل حجم داده‌ها و پردازش‌های همزمان موجود در آن‌ها، بسیار منطقی و مهم به نظر می‌رسد.

در این حالت در حالی که مایکروسافت نسخه 64 بیتی بانک اطلاعاتی خود (یعنی SQL Server) را بر روی سیستم‌عامل مختص خود یعنی ویندوز 2003 (یعنی 64 بیتی) توصیه می‌نماید، در دنیای لینوکس وضع به گونه‌ای دیگر در جریان است. در اینجا ویرایش‌های 64 بیتی MySQL و IBM DB2 و از همه مهم‌تر Oracle 10g به راحتی بر روی لینوکس‌هایی که به پردازنده‌های Xeon و ایتانیوم مجهزند، نصب و اجرا می‌شوند. اما این بانک اطلاعاتی برای اجرا در محیط ویندوز 64 بیتی نیازمند وجود فقط پردازنده ایتانیوم است.

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

اما اکنون با فراگیر شدن فناوری 64‌بیتی و به‌ویژه با پشتیبانی دو پردازنده اپترون و Xeon (فناوری 64-86X) حتی لپ‌تاپ‌ها نیز تاحدودی قادر به برآورده ساختن برخی از این نوع نیازها شده‌اند. اثرات این پیشرفت را می‌توان به وضوح در برخی کاربردهای عام دسکتاپ مشاهده‌کرد. افزایش سرعت در برنامه‌های ویرایش تصویر و گرافیک مانندGIMP یا برنامه‌های محاسباتی مثل Open Office، از جمله این موارد به حساب می‌آیند. از طرفی دیگر به نظر می‌رسد در آینده نزدیک نیز شاهد مهاجرت بسیاری از برنامه‌های 32 بیتی فعلی به نسخه‌های 64 بیتی خواهیم بود. شاید آرزوی دیدن برنامه‌های محبوبی مانند Flash در دنیای 64 بیتی، چندان دور از دسترس نباشد.

 معماری لینوکس 64 بیتی
یک لینوکس 64 بیتی یعنی لینوکسی که دارای کرنل و GNU کامپایل شده 64 بیتی است، قاعدتاً باید در کنار توابع کتابخانه‌ای 32‌بیتی، توابعی برای اجرای 64 بیتی برنامه‌های 64 بیتی نیز داشته باشد. یعنی از آنجا که سیستم‌عامل 64 بیتی باید بتواند هم برنامه‌های 32‌بیتی و هم برنامه‌های 64 بیتی را اجرا نماید، باید از هر کتابخانه، دو نسخه مختلف را در کنار هم داشته باشد. مثلاً توابعی که برای کامپایل و اجرای برنامه‌های نوشته شده به زبانC  مورد استفاده قرار می‌گیرند (مثل کتابخانه glibc) باید در هر دو فرمت 32 و 64 بیتی در دسترس باشند. به عنوان مثال فدورا، کتابخانه‌های 32‌بیتی را در دایرکتوری Lib/Usr/Lib و کتابخانه‌های 64‌بیتی را در دایرکتوری Lib64/Usr/Lib64 قرار می‌دهد تا در موقع مناسب مورداستفاده برنامه‌های 32 یا 64 بیتی قرار گیرند. به این حالت، Dynamic Multilib گفته می‌شود.

به‌همین ترتیب می‌توان حتی برنامه‌هایی که توسط برنامه‌نویسان و در قالب Package نوشته و در سیستم نصب می‌شوند را نیز تقسیم‌بندی کرد. از این لحاظ برنامه‌های Package به دو دسته تقسیم می‌شوند: یکی آن‌هایی که فقط برای کار کردن در یک محیط (32 یا 64 بیتی) ساخته می‌شوند و دوم آن‌هایی که شبیه Multilib خود لینوکس، در قالب دو نسخه و برای قابل‌اجرا بودن در هر دو محیط ساخته‌شده و به نام Multilib Package شناخته می‌شوند.

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

مسئله مهم دیگر وجود بعضی plug inهای قدیمی در محیط 64 بیتی است. فرض کنید یک لینوکس 64 بیتی دارید که از یک مرورگر وب فایرفاکس 64 بیتی استفاده می‌کند و شما وارد سایتی می‌شوید که جلوه‌ای ساخته شده باFlash را به شما نشان‌می‌دهد. اتفاقی که در اینجا رخ می‌دهد این است که از آنجا که برنامه اصلی در حال اجرا (یعنی فایرفاکس) یک برنامه 64 بیتی است، سیستم‌عامل برای اجرای تصاویر فلاش به دنبال plug in نسخه 64‌بیتی می‌گردد و چون هنوز این plug in برای لینوکس 64 بیتی ساخته نشده یا در دسترس نیست، سعی می‌کند از plug in نسخه 32 بیتی آن استفاده نماید؛ غافل از آن که فایرفاکس 64‌‌بیتی نمی‌تواند ‌32plug in ‌بیتی را اجرا‌نماید.
 
بنابراین هیچ چیزی نمایش داده نمی‌شود و زمانی که به Help سیستم‌عامل مراجعه می‌کنید، تازه متوجه می‌شوید که باید فعلاً از فایرفاکس 64 بیتی صرف‌نظر کنید و همان نسخه قبلی‌اش را مورد استفاده قرار دهید تا زمانی که مطمئن شوید کلیه سازندگان plug inهای اینترنتی، نسخه 64 بیتی ویژه لینوکس را ساخته و ارائه کرده‌اند.

در دنیای ویندوز این معضل تقریباً با کمک شبیه‌سازی به نام WOW 64 حل شده است. این شبیه‌ساز قادر است برنامه‌ها و یا plug inهای قدیمی نوشته شده برای محیط 32 بیتی را در ویندوز 64 بیتی اجرا نماید. شاید این مسئله به همراه مشکل مربوط به وجود درایورهای سخت‌افزاری در محیط‌های 64 بیتی، از معدود نقاط برتری فناوری 64 بیتی در ویندوز نسبت به لینوکس باشد. در حالی که هم اکنون شرکت‌هایی همانند ردهت به شدت مشغول سازگارسازی و قابل‌اجرا نمودن برنامه‌ها و درایورهای سخت‌افزاری 32 بیتی بر روی محیط 64 بیتی هستند و احتمال این‌که در آینده نزدیک این مشکل را به طور کلی برطرف کنند و دنیای اپن‌سورس را با جهشی چشمگیر در عرصه 64 بیتی مطرح سازند، بسیار زیاد است. به هر حال همیشه راه‌حل‌های متمرکز و انحصاری در تقابل با اندیشه‌های نو و متعدد اپن‌سورس، رقابت‌های جالبی را به نمایش گذاشته است. پس شاید در این زمینه نیز به زودی شاهد رویدادهای جدیدی باشیم.