تولد یک سیستمعامل، بخش دهم
مینیکس در مقابل لینوکس
همه توجهات هم مثبت نبود. هرچند که هیچوقت اهل جنگودعوا نبودهام، اما وقتی آندرو تاننباوم شروع به حمله به سیستمعاملی کرد که در حال جلو افتادن از سیستمعامل خودش بود، باید از سیستمعامل و مردانگیام دفاع میکردم. از آنجایی که ماها نِرد هستیم، همه چیز با ایمیل پیش رفت.
البته چه کسی میتواند به او به خاطر عصبانیتش ایراد بگیرد؟ قبل از اینکه گروه خبری لینوکس تاسیس شود، من دائما از طریق گروه خبری مینیکس اطلاعیههای لینوکس را پخش میکردم و از همانجا هم افراد علاقهمند را پیدا کردم. چرا اندرو باید از این جریان راضی باشد؟
برای تازهکارها بگویم که تاننباوم از این ناراضی بود که من از قواعد گروه خبریاش تخلف کرده بودم. در عین حال بدون شک از این هم ناراحت بود که سیستمعاملش دارد زیر سایه یک سیستمعامل جدید قرار میگیرد که به تازگی از جنگلهای سرد فنلاند آمده و توسعهدهندگان زیادی مشغول جذب شدن به آن هستند. در نهایت هم اینکه او نظر متفاوتی درباره شیوه صحیح نوشتن سیستمعاملها داشت. آن روزها آندرو جزو آن دسته از دانشمندان کامپیوتر بود که میگفتند گرایش میکروکرنل بهترین شیوه طراحی سیستمعامل است. وی مینیکس را هم به همین روش طراحی کرده بود. وضع آموئبا که سیستمی بود که آن روزها رویش کار میکرد، نیز به همین منوال بود.
این شیوه غالب اواخر دهه ۱۹۸۰ و اوایل ۱۹۹۰ بود، اما موفقیت لینوکس مشغول تضعیف این ایده بود. به همین دلیل آندرو به فرستادن ایمیلهای دوست نداشتنی ادامه داد.
نظریه پشت میکروکرنل این است که سیستمعامل ذاتا چیز پیچیدهای است و در نتیجه باید سعی کنیم با بخش بخش کردن آن، از پیچیدگی آن بکاهیم. پایه ایده میکروکرنل این است که کرنل باید هسته باشد؛ به عبارت دیگر، کرنل باید حداقل کار ممکن را انجام بدهد. وظیفه اصلی کرنل برقراری ارتباط است. هر چیزی که کامپیوتر بخواهد ارائه بدهد، سرویسهایی است که از طریق کانالهای ارتباطی میشود به آنها دست پیدا کرد. در گرایش میکروکرنل، هر مساله باید آن قدر کوچک شود تا دیگر هیچ بخش پیچیدهای در آن باقی نماند.
به نظر من اینکار احمقانه میآمد. درست است که هر بخش ساده، کاملا ساده است اما ارتباط این بخشهای ساده، بسیار پیچیدهتر از حالتی که میشود که این سرویسها به خود کرنل اضافه میشدند؛ مانند لینوکس. به مغز فکر کنید. هر بخش مغز بسیار ساده است ولی روابط بسیار پیچیده این اجزا، میتواند یک سیستم بینهایت پیچیده را ایجاد کند. این همان مشکل کلاسیک «بزرگتر بودن کل از جزء» است. اگر چیزی را بردارید و نصف کنید و بعد ادعا کنید که هر نیمه، پیچیدگیای نصف پیچیدگی کل دارد، پیچیدگی روابط بین این دو نیمه را نادیده گرفتهاید. ایده پشت میکروکرنل این است که کرنل را به پنجاه قسمت مستقل تقسیم کنید و در نتیجه پیچیدگی هر قسمت بشود یک پنجاهم پیچیدگی کرنل اولیه؛ اما چیزی که در نظر گرفته نمیشود، این واقعیت است که پیچیدگی روابط بین این اجزا پیچیدهتر از کل سیستم اولیه است و تازه این در حالی است که اجزا هم آن قدرها ساده نشدهاند.
این اصلیترین استدلال علیه میکروکرنل است. سادگیای که به دنبالش هستید، یک توهم است.
لینوکس بسیار کوچکتر و بسیار سادهتر کار را شروع کرد و هیچوقت هم ماژوله شدن را اجبار نکرد. در نتیجه میتوانستید هر کاری که میخواهید را بسیار سرراستتر از مینیکس پیادهسازی کنید. یکی از مشکلات پایهای من با مینیکس، این بود که اگر پنج برنامه مختلف را در مینیکس اجرا میکردید و آنها میخواستند به پنج فایل مختلف دسترسی داشته باشند، کل کار به شکل سری انجام میشد؛ به عبارت دیگر، پنج پروسه داشتید که به سیستم فایل پیام میدادند: «ممکن است من از فلان فایل بخوانم؟» و بخشی از سیستمعامل که مسوول پاسخ به این درخواست بود، یکی از آنها را انتخاب میکرد و جوابش را میداد و بعد سراغ درخواست بعدی میرفت.
تحت لینوکس که کرنلی است مونولیتیک، در این حالت پنج پروسه خواهید داشت که هر کدام فراخوانی سیستمی خود را برای کرنل میفرستند. کرنل باید بسیار دقت کند این پنج درخواست با هم قاطی نشوند، ولی در عوض میتواند به این پنج پروسه و هرچند پروسه دیگر که نیاز داشته باشند، امکان دسترسی دائمی به فایلها را بدهد.
مشکل دیگر مینیکس این بود که علیرغم در اختیار داشتن متن آن، بنابر توافقنامهاش نمیتوانستید کار چندانی با آن متن انجام دهید؛ مثلا بروس اوانز را در نظر بگیرید که تغییرات عمدهای در مینیکس داده بود و آن را بسیار کاراتر کرده بود، ولی اجازه نداشت این تغییرات را به خود مینیکس اضافه کند بلکه باید همه چیز را به صورت وصلههای جانبی ارائه میکرد. از نقطه نظر عملی، این یک فاجعه است؛ مثلا امکان ندارد بروس یک نسخه قابل اجرا از تغییراتش ایجاد کند و به مردم اجازه بدهد تا به سادگی از نسخهای بهتر استفاده کنند. مردم به جای این کار مجبور هستند برای رسیدن به سیستمی قابل استفاده، روندی چند مرحلهای را قدم به قدم طی کنند و این کار برای بسیاری از مردم، غیرعملی است.
اوایل ۱۹۹۲، تنها باری بود که کار به ارتباط مستقیم با آندرو تاننباوم کشید. فرض کنید یک صبح یخبندان به سیستم لاگین کنید و با نسخهای ویرایش نشده از این پیام مواجه شوید:
از: [email protected] (اندی تاننباوم)
به: گروه خبری comp.os.minix
موضوع: دوره لینوکس گذشته است
تاریخ: ۲۹ ژانویه ۹۲ ساعت ۱۲:۱۲:۵۰ جی.ام.تی.
دو هفتهای در آمریکا بودم و در نتیجه وقت نکردم در مورد لینوکس نظرم را بگویم (البته اگر بودم هم حرف چندانی برای گفتن نداشتم) ولی حالا به هر دلیلی که باشد، حرفهایی دارم که باید بزنم.
همان طور که اکثر شما میدانید، مینیکس برای من یک سرگرمی شخصی است؛ چیزی که بعد از ظهرها اگر از نوشتن کتاب خسته شده باشم و جنگ یا انقلاب یا بحث مهمی در سنا هم نباشد که مستقیما از سی.ان.ان. پخش شود، به سراغش میروم. شغل اصلی من، استادی دانشگاه و تحقیق در حوزه سیستمعاملها است.
بنا به شغلم، حس میکنم تا حدی میدانم که سیستمعاملها در یکی دو دهه آینده به کدام سمت خواهند رفت. در دیدگاه من دو نکته مهم خودنمایی میکند:
۱. سیستمهای میکروکرنل در برابر مونولیتیکها
بیشتر سیستمعاملهای قدیمی مونولیتیک هستند؛ یعنی کل سیستمعامل یک فایل بزرگ a.out است که در «حالت کرنل» اجرا میشود. این فایل اجرایی حاوی مدیر پروسهها، مدیر حافظه، سیستم فایل و تمام دیگر اجزای مورد نیاز است. مثالهایی از این گونه، عبارت هستند از یونیکس، ام.اس-داس، وی.ام.اس، ام.وی.اس، او.اس.۳۶۰، مالتیکس و بسیاری دیگر.
در مقابل سیستمعاملهای میکروکرنل را داریم که در آنها اکثر عملیات سیستم به شکل پروسههای مستقلی در خارج از کرنل پیاده سازی میشود. این پروسهها برای ارتباط از سیستم پیامرسان استفاده میکنند. وظیفه کرنل برقراری این سیستم پیامرسانی، مدیریت وقفهها، مدیریت سطح پایین پروسهها و احتمالا ورودی و خروجی است. نمونههایی از این ایده عبارت هستند از آر.سی.۴۰۰۰، آموئبا، کروس، ماخ و ویندوز ان.تی. که هنوز منتشر نشده است.
هرچند میتوانم درباره مزایا و معایب هریک داستان هزار و یک شب تعریف کنم اما به گفتن همین اکتفا میکنم که در بین کسانی که واقعا به طراحی سیستمعامل اشتغال دارند، بحث تمام شده است. میکروکرنل برنده شده. مینیکس یک سیستمعامل میکروکرنل است که در آن مدیریت حافظه و سیستم فایل دو پروسه مجزا هستند که خارج از کرنل اجرا میشوند. درایورهای ورودی و خروجی هم پروسههای خاص خودشان را دارند. لینوکس یک سیستم به سبک مونولیتیک است؛ یک قدم بزرگ به عقب. قدمی به دهه ۱۹۷۰.
۲. قابلیت انتقال
مینیکس طراحی شد تا قابلیت انتقال داشته باشد و تا به حال هم از سری اینتل گرفته تا 680x0 (آتاری، آمیگا، مکینتاش) و اسپارک و NS32016 آن را اجرا میکنند. لینوکس شدیدا به 80x86 وابسته است و جای دیگری ندارد که برود.
البته اشتباه نشود. من به خاطر لینوکس خوشحالم چون تمام افرادی که سعی میکنند مینیکس را به یک بی.اس.دی. یونیکس تبدیل کنند را از من دور میکند. به هرحال با کمال صداقت بگویم که به تمام کسانی که به دنبال یک سیستمعامل مدرن و آزاد هستند، پیشنهاد میکنم تا به دنبال یک سیستم میکروکرنل و قابل انتقال باشند؛ مثلا گنو یا چیزی شبیه به آن.
اندی تاننباوم ([email protected])
موضوع: پاسخ به: دوره لینوکس گذشته است
تاریخ: ۲۹ ژانویه ۹۲ ساعت ۲۳:۱۴:۲۶
سازمان: دانشگاه هلسینکی
خب با چنین موضوع بحثی، فکر کنم من هم باید چیزی بنویسم. پیشاپیش از خوانندگان مینیکس از اینکه بازهم درباره لینوکس خواهند خواند، عذر میخواهم. ترجیح میدادم در این تله نیفتم ولی فعلا که چارهای نیست جز جواب دادن!
در مقاله 12595@star.cs.vu.nl آقای [email protected] (اندی تاننباوم) مینویسد:
دو هفتهای در آمریکا بودم و در نتیجه وقت نکردم در مورد لینوکس نظرم را بگویم (البته اگر بودم هم حرف چندانی برای گفتن نداشتم) ولی حالا به هر دلیلی که باشد، حرفهایی دارم که باید بزنم.
همان طور که اکثر شما میدانید، مینیکس برای من یک سرگرمی شخصی است؛ چیزی که بعد از ظهرها اگر از نوشتن کتاب خسته شده باشم و جنگ یا انقلاب یا بحث مهمی در سنا هم نباشد که مستقیما از سی.ان.ان. پخش شود، به سراغش میروم. شغل اصلی من، استادی دانشگاه و تحقیق در حوزه سیستمعاملها است.
واقعا به نظرتان این دلیل معقولی برای توضیح کمبودهای مینیکس است؟ متاسفم ولی باختی: من بهانههای خیلی بیشتری دارم ولی لینوکس در همه زمینههای از مینیکس سر است. تازه در این باره که بهترین بخشهای مینیکس توسط بروس اوانز نوشته شده، حرفی نمیزنم.
جواب اول: شما مینیکس را به عنوان یک سرگرمی شخصی مطرح میکنید. نگاه کنید ببینید چه کسی دارد از مینیکس پول در میآورد و چه کسی لینوکس را مجانی پخش کرده. هنوز هم میگویید مینیکس یک سرگرمی شخصی است؟ مینیکس را به رایگان در اختیار مردم بگذارید و یکی از بزرگترین انتقادهای من مرتفع میشود. در اصل این لینوکس است که سرگرمی من است (البته یک سرگرمی بسیار جدی و ارزشمند): من هیچ پولی از لینوکس درنیاوردهام و حتی بخشی از یک پروژه دانشگاهی هم نبوده است. آن را فقط و فقط در وقت آزاد خودم و فقط و فقط روی ماشین خودم گسترش دادهام.
جواب دوم: شغل شما استادی دانشگاه و تحقیق است: این یکی دلیل خوبی است برای صدمات مغزیای که مینیکس از آن رنج میبرد. فقط میتوانم امیدوارم باشم (و انتظار داشته باشم) که آموئبا به گندی مینیکس نباشد.
۱. سیستمهای میکروکرنل در برابر مونولیتیکها
درست است. لینوکس مونولیتیک است و میپذیرم که میکروکرنلها زیباتر هستند. اگر موضوع بحث اینقدر حساس نبود، شاید با بخش زیادی از نوشتههای شما موافقت میکردم. از دیدگاه نظریه و زیباییشناسی، لینوکس بازنده میدان است. اگر پروژه کرنل گنو بهار گذشته آماده شده بود، من اصولا زحمت شروع این پروژه را هم به خودم نمیدادم: اما واقعیت این است که آماده نبود و هنوز هم نیست. برگ برنده لینوکس، آماده بودن آن است.
مینیکس یک سیستمعامل میکروکرنل است {پاک شد، اما نکته را گرفتهاید} لینوکس یک سیستم به سبک مونولیتیک است؛
اگر این تنها شرط برای «خوب بودن» کرنل بود، حق با شما بود. مسالهای که ذکر نکردهاید این است که مینیکس به خوبی از عهده وظایف میکروکرنل برنیامده و با مالتیتسک واقعی (داخل کرنل) مشکل دارد. اگر من سیستمعاملی نوشته بودم که با مالتیتسک مشکل داشت، به این راحتی بقیه را محکوم نمیکردم؛ در واقع بیشترین تلاش من این بود که دیگران این شکست مفتضح را نبینند.
{بله! میدانم که هکهای مالتیتسک برای مینیکس وجود دارند ولی به هرحال آنها هک هستند و برونس اوانز خواهد گفت که با تمام نسخهها هم به خوبی سازگار نیستند}
۲. قابلیت انتقال
«قابلیت انتقال مال آنهایی است که نمیتوانند برنامههای جدید بنویسند»
- من، همین الان (نیمه شوخی نیمه جدی)
واقعیت این است که لینوکس بیشتر از مینیکس قابلیت انتقال دارد. میگویید چطور؟ باید بگویم نه به آن معنایی که شما برداشت کردهاید. منظورم این است که من لینوکس را تا جایی که میتوانستم (بدون داشتن استانداردهای POSIX جلوی چشمم)، سازگار با استانداردها نوشتهام. انتقال نرمافزارها به لینوکس معمولا بسیار سادهتر از انتقال آنها به مینیکس است.
میپذیرم که قابلیت انتقال چیز خوبی است: ولی فقط وقتی که این کار با معنا باشد. تلاش برای کاملا قابل انتقال کردن یک سیستمعامل ایده فوقالعادهای نیست: پیروی از یک API قابل انتقال کافی است. ایده زیربنایی سیستمعامل استفاده از توانمندیهای سختافزار است در عین مخفی کردن آنها پشت لایهای از فراخوانیهای سطح بالا. این دقیقا همان کاری است که لینوکس میکند: به کار گرفتن مجموعهای وسیعتر از دستورات ۳۸۶ نسبت به آن چیزی که دیگر کرنلها استفاده میکنند. شکی نیست که این کار قابلیت انتقال کرنل را پایین میآورد، اما در عوض طراحی را بسیار ساده میکند. یک بده بستان ساده و دلیل وجودی لینوکس.
این را هم قبول دارم که لینوکس تا نهایت غیرقابل انتقال بودن رفته است: من ژانویه قبل ۳۸۶م را گرفتم و لینوکس تا حدی پروژهای بود تا ریزهکاریهای آن را یاد بگیرم. اگر واقعا یک پروژه مستقل بود، احتمالا بخشهایی را قابل انتقالتر مینوشتم. البته به هیچ وجه دنبال بهانه آوردن نیستم: وضع فعلی نتیجه طراحی اولیهام بوده و آوریل قبل که پروژه را شروع کردم، فکر نمیکردم کسی روزی بخواهد از آن استفاده کند. خوشحالم بگویم که اشتباه کرده بودم و از آنجایی که متن برنامه به شکل آزاد در دسترس همه قرار دارد، هر کسی که بخواهد میتواند آن را به هر چیزی که بخواهد پورت کند؛ هرچند که کار سادهای نخواهد بود.
لینوس
معذرت میخواهم اگر گاهی زیادی تند هستم: اگر هیچ چیز دیگری نداشته باشید، مینیکس به اندازه کافی خوب است. اگر پنج یا ده تا ۳۸۶ اضافه داشته باشید که من ندارم، آموئبا هم ممکن است خوب باشد. من معمولا وارد دعواها نمیشوم ولی وقتی بحث لینوکس است، کمی حساس میشوم.
این داستان چند قسمت دیگر هم داشت و یکی از معدود دعواهای اینترنتی من بود و شما متوجه نکته اصلی شدهاید: حتی از همان اولین روزها هم صداهای مخالفی وجود داشتند (شاید هم نکته اصلی این باشد که وقتی وارد یک فروم الکترونیک میشوید مواظب باشید چون اشتباهات املایی و انشایی شما تا ابدالدهر باقی خواهند ماند).
«باید فوقالعاده بوده باشد.» این نظر من بود و ادامه دادم که «سالها در یک اتاق و پشت کامپیوترت بودی. با ارتباطی بسیار کم با دنیای خارج از سی.پی.یوی کامپیوترت. حالا یکهو از هر گوشه و کنار دنیا، مردم متوجه کار عظیم تو شده بودند و تو شده بودی مرکز این توجه. همه داشتند به تو...»
جواب این بود: «تا جایی که یادم است، جریان برایم چندان مهم نبود. واقعا حس میکنم مهم نبود. در اصل، این برخورد همان چیزی بود که دور از انتظار هم نبود چون به هرحال مشکلی وجود داشت که باید حل میشد. از این نظر، زیاد به جریان فکر میکردم ولی اهمیت عجیبی برایم نداشت. ماجرا بیشتر از نظر معنوی، برایم بزرگ بود.»
لینوس ادامه داد: «مساله جذاب برایم این بود که آدمهای زیادی به من انگیزه میدادند تا این پروژه را پیش ببرم. اوایل فکر میکردم پایان این پروژه برایم متصور است. پایانش جایی بود که پروژه در آن تمام میشد؛ اما این لحظه هیچوقت نرسید چون آدمها دائما به من انگیزه ادامه کار میدادند. آنها خوراک فکری برایم فراهم میکردند و من ادامه میدادم. هیجان کار ادامه داشت و در غیر اینصورت من سراغ پروژه دیگری میرفتم. این شیوه کار من بود که تا وقتی کار مفرح بود، جلو میرفتم. به هرحال این مساله دغدغه فکری من نبود. به نظرم به دماغم یا اینجور چیزها بیشتر فکر میکردم تا به لینوکس.»
چند هفته بعد در مرکز خرید استنفورد بودیم. جایی که لینوس مشغول بررسی کفشهای دو و انتخاب یک کفش مناسب برای خود بود. فروشنده پرسید: «معمولا در هفته چند کیلومتر میدوید؟» لینوس لبخند زد. در طول ده سال، در مجموع یک کیلومتر هم ندویده بود. ورزش در زندگی لینوس جایی نداشت؛ اما وقتی سرحالتر بود، اعتراف کرد که بدش نمیآید چند کیلویی وزن کم کند.
با دست که روی شکمش میزد گفت: «احتمالا تاو به شما اصرار کرده که من را به ورزش ببرید تا این شکم را از دست بدهم!»
به شوخی جواب دادم: «بله! و به همسرت بگو که چک این ماه هنوز نقد نشده!»
مشغول دور زدن مجموعه استنفورد با ماشین بودیم تا جای مناسبی برای پارک پیدا کنیم. شاید بعد از نیم ساعت کمی نرمش کردیم و از راه گلیای که حاصل خشک کردن دریاچه بود، شروع به دویدن به سمت هدف کردیم. یک آنتن بشقابی بزرگ که پشت درختها پنهان بود. با بدجنسی سرعت نسبتا زیادی برای دویدن انتخاب کردم ولی در کمال تعجب دیدم که لینوس حدود یک مایل درست پشت من آمد. بعد نفسش برید و چند دقیقه بعد هر دو روی زمین چمنی که کنار دریاچه بود، ولو شدیم.
پرسیدم: «برخورد خانواده با اتفاقات مرتبط با لینوکس چطور بود؟ باید هیجان زده شده باشند!»
جواب داد: «فکر کنم اصولا کسی متوجه جریان نشد. البته نه اینکه کسی توجهی نکند ولی خب من همه عمرم برنامهنویسی کردهام و این ماجرا هم از نظر آنها هیچ فرقی با بقیه زندگیام نداشت.»
«اما به هرحال باید در این باره با آنها حرف زده باشی؛ مثلا یک بار که پدرت داشته با ماشین تو را به جایی میرسانده، ممکن است گفته باشی: اوه پدر! شاید باور نکنید ولی من یک کار جالب با کامپیوترم کردهام که این روزها صدها نفر دارند از آن استفاده میکنند...»
جواب قاطع است: «نه.» لینوس ادامه میدهد: «اصلا حس نکردم که باید در این مورد با دوستان یا خانواده صحبت کنم. احساس میکردم که نباید در این مورد به کسی اصرار کنم. یادم هست که لارس ویرزنیوس در همان دوران تصمیم گرفته بود تا زنیکس که نسخه شرکت اسکو از یونیکس بود را بخرد. یادم هست که سعی میکرد دلایلی مثل این بیاورد که «البته از اینکار من اشتباه برداشت نکنیها.» تا جایی که یادم هست من اصلا ناراحت نشده بودم. بعدها سوییچ کرد به لینوکس ولی این جریان برای من مهم نبود. برای من همین که مردم از آن استفاده میکردند جذاب بود و گرفتن پاسخ هم خوشحالم میکرد؛ اما در عین حال اینها برایم چندان هم مهم نبود. من احساس نمیکردم که باید کلام مقدس را ترویج کنم. از اینکه مردم از کد نوشته شده توسط من استفاده کنند خوشحال میشدم اما هیچگاه این تصور را نداشتم که پخش کردن آن در دنیا، مهمترین کار روی کره زمین است. اینکه چند صد نفر از کد من استفاده کنند باعث نمیشد احساس کنم کار بسیار مهمی کردهام. مساله بیشتر مفرح بود تا مهم. این روزها هم همین احساس را دارم.
نمیتوانستم ناباوریام را پنهان کنم، پرسیدم: «پس احساس میکردی نیازی نیست به پدر و مادر و دوستانت در این مورد حرفی بزنی؟ در مورد چیزهایی که در حال اتفاق افتادن بود هیجان نداشتی؟»
پیش از جواب دادن، چند ثانیهای مکث کرد. «اصولا یادم نیست که آن روزها احساس داشتم، یا نه!»
تقریبا یک سال قبل بود که با ماشین روباز موستانگی که من اجاره کرده بودم، با هم از سانتاکروز بالا میرفتیم. یادم میافتد که آن روز لینوس از من خواست تا بعد از بیرون آمدن از سونا کمی در پارکینگ بمانیم و ماشینهای اسپرت را نگاه کنیم. حالا داریم از همان کوهها بالا میرویم اما این بار در ماشین اسپرت لینوس. از جاده ۱۷ که دور میزند، لبخند دارد.
من میگویم: «استحقاقش را داشتی» و کلی سیدی آهنگ از داشبورد بیرون میآورم. میپرسم کدام آهنگ پینک فلوید را میخواهد و او میگوید: «با این آهنگها بزرگ شدهام. وقتی بچه بودم هیچوقت آهنگ نخریدم ولی جنیس جوپلین همیشه در خانه بود. شاید مادرم میگذاشت. هرچند که میدانم طرفدار الویس کاستلو بود.»
عصر جمعه است. یکی از آن عصرجمعههای درخشان کالیفرنیا که همه حسها را غرق لذت میکند: آسمان نیلگون برای چشمها، آفتاب گرم برای پوست، رایحه اکالیپتوسهای کوهی، مزه شیرین هوا و موسیقی پینکفلوید از بلندگوهای تقویت شده. احتمالا برای کسانی که سبقت میگیرند، ما جوانهایی قدیمی هستیم که در ماشین آخرین مدلمان راک کلاسیک گوش میدهیم. البته ماشینهای اندکی هستند که از بی.ام.و زد ۳ لینوس سبقت بگیرند.
ماشین را کنار اتوبان و در ردیف ماشینهایی که اکثرا از ماشین لینوس قدیمیتر هستند، کمی بالاتر از سانتا کروز، پارک میکنیم و پیاده، راهمان را به سمت ساحلی که معمولا جمعیت چندانی در آن نیست ادامه میدهیم. در آفتاب گرم، روی حولهها پهن میشویم و قبل از درآوردن ضبطصوت از کولهپشتی، چند دقیقهای صبر میکنیم. دوباره از او میخواهم تا درباره لینوس روزهای اول لینوکس، صحبت کند.
روی شنها، مربعی میکشد تا نمایانگر اتاقش باشد و بعد جای کامپیوتر و تختخواب را مشخص میکند. «میتوانستم از تختخواب بیرون بخزم و ایمیلهایم را چک کنم.» و همین حرکت را با انگشتش نشان میدهد. ادامه میدهد که: «بعضی روزها اصلا از خانه خارج نمیشدم. ایمیلهایم را چک نمیکردم تا ببینم چه کسی به من ایمیل زده؛ بیشتر دنبال این بودم که ببینم فلان مشکل حل شده یا نه. شبیه این بود که چک کنم ببینم چه چیز جذابی منتظر من است یا اگر مشکلی پیش آمده، چه کسی آن را حل کرده» لینوس میگوید که زندگی اجتماعیاش در آن دوران رقتبار بوده و بعد که احساس میکند منظور را نرسانده اضافه میکند: «از آن هم بالاتر»
میگوید که: «البته صد در صد هم منزوی نبودم ولی خب حین رشد لینوکس هم من کماکان یک آدم غیراجتماعی بودم. حتما متوجه شدهای که هیچوقت تلفنی با کسی حرف نمیزنم. همیشه همینطور بوده. هیچوقت به کسی زنگ نمیزنم. اکثر دوستانم از آن تیپهایی هستند که راحت به افراد زنگ میزنند ولی من نه. میتوانی حدس بزنی رابطه عاطفی چه خواهد شد اگر هیچوقت به دختری زنگ نزنی. آن روزها فقط چند دوست داشتم که گاهگاهی به خانه میآمدند، در میزدند و در خواست میکردند برای یک فنجان چای داخل شوند. بعید میدانم کسی در آن دوران متوجه لینوکس میشد و با خود میگفت که این آدم دنیا را تکان خواهد داد. احتمالا هیچکس چنین فکری نمیکرد.»
تنها فعالیت متناوب اجتماعی لینوس در آن دوران، گردهماییهای هفتگی انجمن اسپکتروم بود که طی آن دانشجویان علوم، دور هم جمع میشدند. این دیدارها هم معمولا محورهای تکنولوژیک داشتند.
«نگران چه چیزهایی بودم؟ فقط زندگی اجتماعی. شاید نگرانی واژه مناسبی نباشد. بحث احساسی بود. گاهی به دخترها فکر میکردم. آن دوره لینوکس برایم چندان مهم نبود. هنوز هم تا حدی اهمیت چندانی ندارد. هنوز هم میتوانم گاهی بیخیالش بشوم.»
«در آن سالهای اولیه ورود به دانشگاه، چیزهای اجتماعی خیلی مهم بودند. البته جریان این طور نبود که من مثلا قوز داشته باشم و نگران آن باشم که آدمها به من بخندند. مساله این بود که من میخواستم دوست و این جور چیزها داشته باشم. یکی از دلایلی که اسپکتروم را دوست داشتم این بود که به من اجازه میداد بدون اینکه اجتماعی باشم، جزوی از یک ساختار اجتماعی باشم. روزهای جلسه یک آدم اجتماعی بودم و بقیه هفته پشت کامپیوتر. این جریان احساسیتر از هر چیز مرتبط با لینوکس بود. هیچوقت به خاطر لینوکس ناراحتی نداشتم و هیچ شبی هم به خاطر آن بیخوابی نکشیدم.»
«چیزی که من را واقعا ناراحت میکرد و هنوز هم باعث ناراحتی من است، خود تکنولوژی نیست بلکه تعاملهای اجتماعی مرتبط با تکنولوژی است؛ مثلا ناراحتی من از نامه اندرو تاننباوم به خاطر مباحث تکنیکی مطرح شده در نامه و بحثهای منتج از آن نبود. اگر آن نامه را هرکس دیگری فرستاده بود، از کنارش میگذشتم. مساله این بود که او این نامه را به فهرست پستی فرستاده بود و من را... من در مورد موقعیت اجتماعیام در بین آدمهایی که آن گروه پستی را میخواندند حساس بودم و او داشت به این موقعیت حمله میکرد.»
«یکی از چیزهایی که باعث خوبی و پیشرفت لینوکس شد، بازخوردهایی بود که میگرفتم. بازخوردها به این معنی بودند که لینوکس اهمیت داشت و من بخشی از یک گروه اجتماعی بودم. تازه من رهبر آن گروه اجتماعی بودم. شکی نیست که این مهم بود، مهمتر از آن که بخواهم دربارهاش با پدر و مادرم صحبت کنم. من بیشتر دغدغه کسانی را داشتم که از لینوکس استفاده میکردند. من یک حلقه اجتماعی درست کرده بودم و مورد احترام افراد آن حلقه بودم. البته آن دوران این طور فکر نمیکردم و الان هم نظرم کاملا این نیست، ولی این باید مهمترین جنبه بوده باشد. به همین دلیل بود که آن قدر تند به اندرو تاننباوم جواب دادم.»
خورشید در حال غروب کردن در اقیانوس آرام است و وقت ترک ساحل. لینوس اصرار دارد که من ماشینش را برانم تا حس کنم که چقدر خوب به فرمان و پدالها جواب میدهد. میگوید که از راه طولانی و پر پیچ و خم شماره ۹ به سیلیکونولی برگردیم.
لینوس میگوید که جنگ ایمیلی با صاحب گروه مینیکس، در نهایت به ایمیلهای خصوصی کشید؛ چون صحبتها آن قدر ناجور بود که نمیشد آنها را به شکل عمومی ادامه داد. جنگ چند ماهی متوقف شده بود تا اینکه تاننباوم با ارسال ایمیلی به لینوس، او را به تبلیغ پنج خطی یک نسخه تجاری از لینوکس در پشت جلد مجله بایت ارجاع داده بود.
«آخرین ایمیلی که از تاننباوم گرفتم این بود که از من میپرسید آیا واقعا این آن چیزی است که دنبالش هستم؟ آیا واقعا میخواهم افراد برنامه من را بفروشند. برایش یک جواب یک کلمهای فرستادم: بله؛ و دیگر هیچوقت از او ایمیلی نداشتم.»
تقریبا یک سال بعد که لینوس برای اولین سخنرانی عمومیاش به هلند رفته بود، به دانشگاه محل تدریس تاننباوم رفت تا از او بخواهد که نسخهای از «سیستمعاملها: طراحی و اجرا» کتابی که زندگیاش را شکل داده بود، برایش امضا کند. او بیرون در منتظر ماند ولی تاننباوم پیدایش نشد. در آن تاریخ، استاد جایی در بیرون از شهر بود و این دو هیچگاه با هم ملاقات نکردند.