یکی بود، یکی نبود. زیرِ گنبدِ کبود، تویِ شهرِ قصهها، تویِ کشورِ اِمریکا، تویِ دههٔ ۱۹۹۰، چندتا شرکت بود. هر شرکت، چندتا سرور داشت. هر سرور، یک برنامه اجرا میکرد. مثلاً اگر شرکتی میخواست هم وبسایت داشته باشد هم ایمیل، دوتا سرورِ فیزیکی نیاز داشت؛ یکی برای وبسایت، یکی هم برای ایمیل. اما ما میدانیم، سرور رایانهٔ گرانقیمتی است. از طرفی، این سرورها، کم از پردازندهٔ مرکزیشان استفاده میکردند. دقیقتر گفته باشیم، «CPU Utilization» مثلاً پنج درصد بود؛ یعنی از هر صد ثانیهای که میگذشت، تنها پنج ثانیه از سیپییو استفاده میشد. باز میدانیم خودِ سیپییو گرانقیمتترین تراشهٔ رایانه است. این یعنی شرکت کلی خرج کردهاست، اما آنچنان که شایسته است، از داراییاش بهره نبردهاست. همین موقعها بود، که شرکتی تأسیس شد به نام «VMware».
VM یعنی «Virtual Machine». یعنی ماشینِ مجازی. VMware نرمافزاری ساخت، که اجازه میداد، بر رویِ هر سرور، که پیش از این یک سیستمعامل اجرا میشد، چند سیستمعامل اجرا شود. در حقیقت، هر سرور الآن میتوانست چند ماشینِ مجازی اجرا کند، که داخلِ هر ماشین، سیستمعاملِ میهمان بود. ماشینِ مجازی کارش این بود که همهٔ اجزایِ رایانه را، مجازاً، نه حقیقتاً، در اختیارِ سیستمعاملِ میهمان بگذارد، تا برنامهاش را اجرا کند.
VMware دو محصول ساخت، به نامهایِ «VMware ESX Server» و «VMware Workstation». اولی برای سرور، دومی برای رایانههایِ دسکتاپِ ویندوزی. با این برنامه، هر سرور میتوانست چهار تا دوازده ماشینِ مجازی اجرا کند. هر ماشینِ مجازی، یک سیستمعامل و یک برنامه اجرا میکرد. یعنی شرکتی که پیش از این دوازدهتا سرور داشت، و هر سرور یک برنامه اجرا میکرد، الآن با یک سرورِ خیلی قوی، کارش راه میافتاد. کمتر پول خرج سرور میکرد، بیشتر از سرورش بهره میبرد.
اما، این برنامههای VMware، تنها با روشهای نرمافزاری سختافزار رایانه را در اختیارِ مثلاً دوازده سیستمعامل میگذاشت؛ سختافزارِ بیچاره هیچ خبر نداشت که دارد چند سیستمعاملِ مختلف را اجرا میکند و مدام از یکی به دیگری میپرد. مثلِ همیشه، هر چه به او امر میشد، چشمبسته اطاعت میکرد.
سالها گذشت. VMware به لطفِ دوباره زنده کردنِ مفهومِ ماشینِ مجازی، پولِ خوبی به جیب زد. کلی مشتری جذب کرد و برای بهبودِ محصولش دست رویِ دست نگذاشت، و مدام نوآوری میکرد. تا برسیم به سالهایِ ۲۰۰۰.
در این سال، مهندسانِ اینتل و AMD با خود گفتند: «VMware که مفهومِ ماشینِ مجازی را احیاء کرده، تابهحال هیچ کمکی از جانبِ پردازنده و حافظه نداشته. ایندو، صُمٌبُکم از برنامهٔ VMware پیروی کردهاند و در حقیقت هنرِ مهندسانِ VMware بوده که توانستهاند چند ماشینِ مجازی را رویِ یک رایانه اجرا کنند.» مهندسانِ اینتل و AMD سپس جداگانه با خود گفتند: «آیا ما، که پردازنده طراحی میکنیم، نمیتوانیم به محصولِ VMware کمک کنیم؟ نمیتوانیم یک کاری کنیم راحتتر، یا بهتر، بتواند ماشینِ مجازی بسازد و اجرا کند؟ شاید اگر ما این لطف را در حقِ او بکنیم، بتواند ماشینِ مجازیِ بیشتری رویِ یک پردازنده اجرا کند.» این پرسشها، پیش از این نیز به ذهنِ مهندسانِ اینتل خطور کرده بود؛ اما آن موقعها VMwareای نبود که به مفاهیمِ ماشینِ مجازی، و مجازیسازی، امیدوارشان کند. اصلاً خیال نمیکردند شدنی باشد. اما حالا قضیه فرق میکرد: VMware امیدشان بخشیده بود. الآن دیگر نوبتِ خودشان بود که تجربیاتِ نابِ طراحیشان را به عهده گیرند، به ریاضیات، و روشهایِ صوری متوسل شوند، بلکه بتوانند در رفاهِ حالِ VMware، و صد البته بهبود و سودِ بیشترِ خودشان، گامی بزرگ بردارند.
اینجاست که باید ساعت را به عقب برگردانیم. اگر بخواهیم بفهمیم اینتل و AMD چه کردند، تا پردازندهشان از حضورِ ماشینِ مجازی باخبر شود، و اصلاً کمکحالِ او باشد، باید برویم به گذشته. به روزی که رایانهها هنوز شخصی نشده بودند. بزرگ بودند و نیروی متخصص میخواست، تا بتواند با آن کار کند. آن روزها، مهندسانِ کار با کامپیوتر، برق هم میدانستند. ریاضیات بیشتر میدانستند. جنگِ ویتنام هنوز تمام نشده بود. ایران هنوز انقلاب نکرده بود. دارم از سالِ ۱۹۷۴ برایتان میگویم. سالی که دو نفر، مقالهای نوشتند.
این داستان، شاید ادامه پیدا کند . . .
(نگارنده دوست دارد حالا که خواننده این متن را خوانده، این جمله از فیلم «American Underdog» را نیز بخواند:
Sometimes you gotta do what you gotta do, until the day you can do what you wanna to do.