تولد یک سیستمعامل، بخش یازدهم
اتاق هتل بهزور بالای صفر درجه بود. من روی تخت دراز کشیده بودم؛ میلرزیدم و به سخنرانی فردا فکر میکردم. در هلند آنطور که در فنلاند اتاقها را گرم میکنند، جایی را گرم نمیکنند و این اتاق با این پنجرههای بزرگ انگار فقط برای تابستان طراحی شده؛ اما سرما تنها چیزی نبود که من را در ۴ نوامبر ۱۹۹۳ بیدار نگهداشته بود. من به شکل غیرقابل باوری، استرس داشتم.
سخنرانی جلوی جمع همیشه نقطهضعف من بوده است. در مدرسه از ما میخواستند تا درباره موضوعی که دربارهاش تحقیق کردهایم -موش و اینجور چیزها- سخنرانی کنیم و این کار همیشه برای من غیرممکن بود. من آنجا میایستادم و هیچ حرفی از دهانم خارج نمیشد. حتی وقتی که برای حل کردن مساله هم به پای تخته میرفتم، مشکل داشتم.
حالا در هلند بودم؛ یعنی در اد که تقریبا یک ساعت با قطار از آمستردام فاصله داشت. اینجا بودم چون دعوت شده بودم که در جشن دهسالگی گروه کاربران هلند سخنرانی کنم. میخواستم به خودم ثابت کنم که توان این کار را دارم. سال قبل به مناسبت مشابهی از من خواسته بودند تا در اسپانیا حرف بزنم و من به این دلیل که ترسم از صحبت برای جمع، بیشتر از عشقم به مسافرت به اسپانیا بود، نپذیرفته بودم؛ و آن موقع واقعا عاشق مسافرت بودم (هنوز هم سفر را دوست دارم ولی دیگر نه مثل بچهای که به ندرت از فنلاند بیرون رفته باشد. تنها جایی که رفته بودم، سوئد بود که گاهی برای پیکنیک به آنجا میرفتیم و مسکو که وقتی شش ساله بودم، در آنجا سری به پدرمان زده بودیم). رد کردن دعوت به اسپانیا، آن قدر برایم دردناک بود که تصمیم گرفتم دعوت بعدی برای سخنرانی را حتما قبول کنم؛ اما حالا که در تختخواب خوابیده بودم و به این فکر میکردم که نخواهم توانست دهانم را باز کنم یا از آن بدتر جلوی ۴۰۰ نفر به تتهپته خواهم افتاد، احساس میکردم که بهتر بود در تصمیمگیری برای آمدن عجله نمیکردم.
بله! واقعا اوضاع گند بود.
خودم را با حرفهای همیشگی دلداری میدادم؛ مثلا اینکه جمعیت حاضر، خواهان موفقیت من هستند و اصولا اگر من را دوست نداشته باشند، آنجا نخواهند بود. تازه موضوع را هم دقیق میدانستم: دلایل فنی پشت تصمیمگیریهای مرتبط با هسته لینوکس و دلایل انتشار آزاد آن. ولی هنوز متقاعد نشده بودم که سخنرانی با موفقیت همراه خواهد بود و مغزم مثل یک لوکوموتیو غیرقابل نگهداشتن، دلایل شکست را بررسی میکرد. واقعا مشغول لرزیدن بودم و هوای سرد بیاهمیتترین دلیل بود.
سخنرانی چه شد؟ جمعیت با آدم وحشتزدهای که جلویشان ایستاده بود، همراهی کردند و کل حواسشان را دادند به تصاویر پاورپوینت (متشکرم مایکروسافت!) و بعد هم به سوالاتشان پاسخ دادم. در واقع، پرسش و پاسخ بهترین قسمت برنامه بود. بعد از سخنرانی من، مارشال کیرک مک کوسیک که جزو افراد اصلی یونیکس BSD بود، جلو آمد و به من گفت که سخنرانیام به نظرش جذاب بوده. از این حرفش آن قدر خوشحال بودم که میخواستم به زانو بیفتم و پاهایش را ببوسم. چند نفری هستند که در دنیای کامپیوتر اخبارشان را دنبال میکنم و کیرک یکی از آنهاست. دلیلش هم این است که در اولین سخنرانیام خیلی با من مهربانی کرد.
اولین سخنرانی خیلی سخت بود؛ ولی بعدیها بهتر شد و اعتماد به نفس من هم افزایش پیدا کرد. دیوید دائم از من میپرسد که بعد از گسترش لینوکس، وضعیت من در دانشگاه چه تغییری کرد. اصلا یادم نمیآید که بعد از استادیام کسی به لینوکس اشاره کرده باشد یا دانشجویی مرا به انگشت نشان داده باشد. از این خبرها نبود. اطرافیانم در مورد لینوکس میدانستند اما اکثر هکرهایی که روی آن کار میکردند، خارج از فنلاند بودند.
در پاییز ۱۹۹۲ به عنوان کمک استاد کلاس سوئدی دانشکده علوم کامپیوتر مشغول به کار شدم (ماجرا این بود که آنها برای کلاسهای مقدماتی کامپیوتر، به دنبال کمکاستادهایی بودند که سوئدی صحبت کنند. در دانشکده علوم کامپیوتر هم تنها دو دانشجوی ارشد سوئدیزبان بود: لارس و لینوس. آنها انتخاب چندانی نداشتند). اوایل حتی از اینکه پای تخته بروم و مسالهای را حل کنم هم دچار استرس میشدم. ولی کمکم یاد گرفتم که به جای فکر کردن به خجالت کشیدن، مشغول حل مساله شوم. سه سال بعد به «کمک محقق» ارتقای مقام پیدا کردم. معنای این سمت، آن بود که به جای حقوق گرفتن به خاطر درس دادن، به خاطر نشستن در آزمایشگاه کامپیوتر و تحقیق، به خصوص در مورد لینوکس، حقوق میگرفتم. این شروع روندی بود که طی آن کسی به من پول میداد تا روی لینوکس کار کنم. این عملا همان چیزی است که در ترنسمتا هم اتفاق میافتد.
دیوید: «از کی مساله به یک موضوع جدی تبدیل شد؟»
من: «هنوز هم مساله جدی نشده.»
باشه. باید اصلاحش کنم. مساله وقتی جدیتر شد که معلوم شد چند نفر در دنیا هستند که به لینوکس به عنوان چیزی بیش از یک سیستمعامل اسباببازی وابستهاند. وقتی مردم شروع کردند به استفاده از لینوکس به عنوان یک سیستمعامل اصلی، من متوجه شدم که اگر چیزی خراب شود، من مسوول هستم. یا حداقل احساس کردم که من مسوول هستم (هنوز هم همین احساس را دارم). در طول سال ۱۹۹۲ بود که لینوکس از یک سرگرمی به یک ابزار کامل در زندگی انسانها، در تجارت آنها و در کسب درآمدشان تبدیل شد.
در ۱۹۹۲ و تقریبا یک سال بعد از اینکه من پروژه شبیهساز ترمینال را شروع کرده بودم، اولین سیستم پنجره X تحت لینوکس اجرا شد. معنی این حرف آن است که به لطف پروژه X که در MIT شروع شده بود، کاربران لینوکس میتوانستند از طریق محیط گرافیکی با کامپیوتر ارتباط برقرار کنند و در پنجرههای مختلف، برنامههای مختلفی را به شکل هم زمان اجرا کنند. این یک تغییر بزرگ بود. یادم هست که تقریبا از یک سال قبل، این موضوع مورد شوخی من و لارس بود و به او میگفتم که روزی خواهد آمد که X را تحت لینوکس اجرا کنیم. هیچوقت فکر نمیکردم که این اتفاق به این سرعت بیفتد. هکری به اسم اورست زبوروسکی توانست X را به لینوکس پورت کند.
عملکرد پنجرهها، حاصل مدیریت سیستم سرویسدهنده X روی محیط گرافیکی است. سرویسدهنده از طریق پیامهایی با کلاینتها صحبت میکند؛ مثلا کلاینتها میگویند که: «من یک پنجره به این اندازه میخواهم.» این رابطه از طریق لایهای به نام سوکتها یا به اصطلاح فنیتر یونیکس «دامین سوکتها» ایجاد میشود. این روش ارتباط داخلی یونیکس است. از همین سوکتها در اینترنت هم استفاده میکنیم. ارست اولین لایه سوکت را برای لینوکس نوشت تا X را روی آن اجرا کند. رابط ارست کمی زمخت بود و با بقیه کدها به خوبی هماهنگ نمیشد ولی با این وجود، من آن را پذیرفتم چون به آن احتیاج داشتیم.
چند وقتی طول کشید تا به این واقعیت که ما یک رابط گرافیکی داریم عادت کنم. فکر میکنم یکی دو سال اول، زیاد از آن استفاده نمیکردم. ولی خب، این روزها بدون آن نمیتوانم زنده بمانم. وقتی من مشغول کارم، تعداد زیادی پنجره باز هستند.
کار ارست نه تنها باعث شد ما پنجره داشته باشیم که دروازه آینده را هم برایمان باز کرد. دامین سوکتها برای ارتباطات داخلی استفاده میشدند که X به آن احتیاج داشت اما با استفاده از همین سوکتها توانستیم جهش بزرگی ایجاد کنیم و آن شبکه بیرونی بود. ارتباط کامپیوترها با یکدیگر. بدون شبکه، لینوکس فقط به درد کسانی میخورد که از خانهشان میخواستند با استفاده از مودم به جایی متصل شوند یا اصولا همه کارها را روی یک کامپیوتر محلی انجام دهند. ما با خوشبینی شروع کردیم به توسعه شبکه لینوکس بر پایه همان سوکتها، هرچند که این سوکتها اصولا برای کار شبکه طراحی نشده بودند.
من آن قدر به نتیجه کار مطمئن بودم که تصمیم گرفتم شماره نسخه لینوکس را با یک جهش بالا ببرم. برنامه اولیه من این بود که نسخه 0.13 را در مارس ۱۹۹۲ منتشر کنم؛ اما با دیدن رابط گرافیکی که به خوبی کار میکرد، احساس کردم که ۹۵ درصد راه برای ارائه یک سیستمعامل قابل اتکا برای کارهای روزمره و دارای امکان ارتباطات شبکهای فراهم شده است. پس نسخه جدید را 0.95 نامیدم.
پسر! من چیزی سرم نمیشد. اگر نخواهم بگویم که کلا نفهم بودم.
شبکه چیز ناجوری است و تقریبا دو سال طول کشید تا وضعیت شبکه لینوکس به جایی رسید که قابل ارائه باشد. وقتی شبکه را به یک سیستم اضافه میکنید، کلی مساله جدید ایجاد میشود. بهخصوص مسایل ایمنی. نمیدانید آن بیرون چه کسی است و دارد چهکار میکند. باید مواظب باشید که افراد با فرستادن پاکتهای بیربط، باعث کرش کردن سیستم شما نشوند. دیگر نمیتوانید کنترل کنید که چه کسانی به کامپیوتر شما وصل شوند و افراد هم تنظیمات بسیار متنوعی دارند. وقتی استاندارد مورد نظر TCP/IP باشد، برنامهریزی بازهم سختتر میشود. به نظر میرسید این مرحله تا ابد طول بکشد. در پایان سال ۱۹۹۳، قابلیت شبکه تقریبا تمام شده و قابل استفاده بود، هر چند که خیلیها هنوز با آن مشکلات جدی داشتند. شبکههای غیر ۸ بیتی در این سیستم غیرقابل استفاده بودند.
به خاطر هیجان بیمورد در نامیدن نسخه قبلی با شماره 0.95، حالا حسابی در تله افتاده بودم. در طول دو سال باقی مانده تا عرضه نسخه ۱، مجبور شدیم کلی بامبول سوار کنیم. اعداد چندانی بین 0.95 و ۱ وجود ندارد ولی ما باید دائما به خاطر اصلاحات و باگزدایی، نسخه میدادیم. وقتی به 0.99 رسیدیم، شروع کردیم به اضافه کردن اعداد برای نمایش سطوح پچها و بعد هم اضافه کردن حروف؛ مثلا در یک مرحله نسخه 0.99 سطح پچ 15A را داشتیم و بعد 0.99 سطح پچ 15B را. این ماجرا تا سطح پچ 15Z ادامه داشت ولی بالاخره سطح پچ 16 را که نسخه قابل استفاده بود، 1.0 نامیدیم. این نسخه با کلی هیاهو در مارس ۱۹۹۴ و در دانشکده علوم کامپیوتر دانشگاه هلسینکی منتشر شد.
رسیدن به این مرحله واقعا پرآشوب بود ولی هیچکدام از ماجراها نتوانست جلوی عمومی شدن لینوکس را بگیرد. حالا گروه اینترنتی خودمان را داشتیم که comp.os.linux نامیده میشد و حاصل خاکستر جنگ آتشین من و اندرو تاننباوم بود. کلی آدم در این گروه عضو شده بود. آن روزها اینترنت کابال یعنی گروهی که کمابیش مسوول اداره اینترنت بودند، آماری ماهانه از میزان جذب افراد به گروههای مختلف منتشر میکردند. این آمارها دقیق نبودند ولی تنها معیاری بودند که میزان علاقه مردم به سایتها و موضوعات مختلف -و در این مورد لینوکس- را نشان میدادند. بین همه گروهها، alt.sex همیشه رتبه اول را داشت (البته مورد علاقه من نبود ولی یکی دو بار آن را چک کردم تا ببینم این همه هیاهو برای چیست. من یک نرد با نیروی جنسی پایین بودم که ترجیح میدادم به جای خواندن در مورد پوزیشنهای جدیدا کشف شده و اینجور چیزها در alt.sex، با پردازنده ریاضی کامپیوترم ور بروم).
بر اساس آمار ماهانه کابال، من به راحتی میتوانستم میزان محبوبیت comp.os.linux را بسنجم و واقعا هم این کار را میکردم (هرچند ممکن است من الگو و قهرمان کسی باشم ولی هیچوقت آن آدم از خودگذشته و غیرخودخواه و فدایتکنولوژیای که گاهی رسانهها از من ترسیم میکنند نیستم). در پاییز ۱۹۹۲، برآورد فهرست خبری ما، در حد چند ده هزار نفر بود. این تعداد آدم خبرها را میخواندند تا ببینند چه خبر است ولی همگی کاربر لینوکس نبودند. در گزارشهای ماهانه، فهرستی هم بود از چهل گروه که بیشترین کاربر را داشتند و این فهرست به شکل پیشفرض در گروه خبری قرار میگرفت. اگر گروه خبری شما یکی از این چهل گروه پرخواننده نبود، میتوانستید فهرست کامل را از یک گروه اختصاصی دیگر دریافت نمایید. من معمولا باید میرفتم سراغ این فهرست کامل.
گروه خبری لینوکس در حال بالا آمدن از پلکان بود. یکبار که به یکی از چهل گروه پرخواننده تبدیل شد، من بسیار خوشحال بودم. واقعا جالب بود. یادم هست که نامهای کنایهدار در comp.os.linux نوشتم و سیستمعاملهای مختلف از جمله مینیکس و رتبه گروههایشان را در آن آوردم و نوشتم «هی ببینید! ما محبوبتر از ویندوز هستیم» البته فراموش نکنید که آن دوران، طرفداران ویندوز در اینترنت نبودند. در ۱۹۹۳ بود که لینوکس یکی از پنج گروه پرطرفدار شد. آن شب، مملو از رضایت به تخت رفتم چون لینوکس به اندازه سکس محبوب شده بود.
البته در گوشه دنیایی که من زندگی میکردم خبر چندانی نبود. من واقعا زندگی خاصی نداشتم. همان طور که قبلا هم گفتم، در این دوره با تلاش پیتر آنوین، مردم ۳۰۰۰ دلار پول داده بودند تا من قسط کامپیوترم را بدهم و من هم تا پایان ۱۹۹۳ این کار را کرده بودم. برای کریسمس هم دستگاهم را به یک 486DX2 ارتقا داده بودم که سالها کامپیوتر اصلی من ماند. زندگی من این بود: خوردن؛ خوابیدن؛ گاهی به دانشگاه رفتن؛ کد نویسی و کلی ایمیل خواندن. خبر داشتم که بعضی از دوستان شیطنتهایی هم میکنند ولی من مشکلی با زندگیام نداشتم.
در حقیقت هم بیشتر دوستان دور و بر من، بازنده بودند.