تولد یک سیستمعامل، بخش نهم
-- اطلاعیه ارسال لینوکس نسخه 0.02
اوایل اکتبر، نسخه 0.02 ارائه شد که شامل اصلاح چند باگ و اضافه شدن چند برنامه جدید بود. ماه بعد نسخه 0.03 را منتشر کردم.
احتمالا در اواخر سال ۱۹۹۱ کار را متوقف کردم. خیلی از کارهایی که به نظرم جالب میآمد را تمام کرده بودم. همه چیز به شکل کامل کار نکرده بود ولی کشف کرده بودم که در دنیای نرمافزار همین که احساس کردید مسایل پایهای را حل کردهاید، خیلی راحت انگیزه خود را برای حل جزییات از دست میدهید. این همان چیزی بود که داشت برای من هم پیش میآمد. تلاش برای باگزدایی نرمافزار کار جذابی نیست؛ اما دو چیز اتفاق افتاد که باعث شد راه را ادامه دهم. اول اینکه به شکل اتفاقی پارتیشن مینیکس کامپیوترم را خراب و نابود کردم. دوم اینکه مردم هنوز برایم بازخورد میفرستادند.
تا آن روز با اینکه کامپیوتر را در لینوکس بوت میکردم، از مینیکس به عنوان محل اصلی توسعه نرمافزار استفاده میکردم. بیشترین کاری که در لینوکس انجام میدادم، عبارت بود از خواندن خبرها از کامپیوتر دانشگاه توسط برنامه شبیهساز ترمینالی که نوشته بودم و از آنجایی که خط تلفن کامپیوتر دانشگاه همیشه مشغول بود، یک برنامه کوچک نوشته بودم که به شکل خودکار آن قدر شماره میگرفت تا بالاخره خط آزاد شود؛ اما در دسامبر، به جای شماره گرفتن روی مودم، اشتباها روی هارددیسک شماره گرفتم. در اصل، قرار بود dev/tty1/ که درگاه سریال مودم بود را به شمارهگیر بدهم، ولی اشتباها dev/hda1/ را به عنوان ابزار به شمارهگیر خودکار دادم که مشخص کننده دیسکسخت کامپیوترم بود. نتیجه کار این بود که اطلاعات نامناسبی در حساسترین نقاط دیسکسخت نوشته شد. درست جایی که مینیکس از آن بوت میشد و دیگر نتوانستم مینیکس را بوت کنم.
این همان مرحله لحظه حساس بود: باید تصمیم میگرفتم که مینیکس را از اول نصب کنم؛ یا بپذیریم که لینوکس آن قدر کارا شده که برای کارهایم نیازی به مینیکس ندارم. در حالت دوم باید برنامههای جدید برای لینوکس را در خود لینوکس مینوشتم و هر وقت هم احساس میکردم که به خصوصیتی از مینیکس احتیاج دارم که در لینوکس نیست، باید آن را به لینوکس اضافه میکردم. از نظر مفهومی، ترک کردن محیط توسعه مادر و متکی کردن یک سیستمعامل به خودش قدمی آن قدر بزرگ است که تصمیم گرفتم نسخه بعدی که در اواخر نوامبر منتشر شد را 0.10 بنامم. چند هفته بعد، نسخه 0.11 هم درآمد.
از اینجا بود که کمکم مردم واقعا شروع کردند به استفاده از لینوکس و انجام کارهایی تحت آن. تا این موقع حداکثر چند باگزدایی تک خطی برایم ارسال میشد. ولی حالا دیگر مردم شروع کرده بودند به اضافه کردن قابلیتهای جدید به لینوکس و فرستادن آنها برای من. یادم هست که رفتم و حافظه کامپیوترم را از ۴ مگابایت به ۸ مگابایت ارتقا دادم تا حافظه کافی برای کارها داشته باشم. همچنین به بازار رفتم و یک کمکپردازنده ریاضی هم خریدم؛ چون دائما از من سوال میشد که آیا لینوکس از کمکپردازندهها هم پشتیبانی میکند یا نه. این سختافزار جدید به کامپیوترم اجازه میداد تا محاسبات اعداد اعشاری را بدون دردسر انجام دهد.
یادم هست که در دسامبر، آقایی از آلمان که فقط ۲ مگابایت رم داشت، میخواست کرنل را کمپایل کند ولی نمیتوانست gcc را اجرا کند چرا که gcc به تنهایی بیشتر از یک مگابایت رم میخواست. او از من پرسید که آیا میتوان لینوکس را با کمپایلر کوچکتری که اینهمه حافظه نخواهد کمپایل کرد. من هم تصمیم گرفتم با وجود اینکه خودم به این موضوع نیازی نداشتم، آن را فقط به خاطر او برآورده کنم. این خاصیت حافظه-به-دیسک خوانده میشود و به این معنا است که کسی که فقط دو مگابایت حافظه دارد، میتواند برای جبران این نقیصه، از دیسک به عنوان حافظه رم استفاده کند. تاریخ این ماجرا به حدود کریسمس ۱۹۹۱ برمیگردد. یادم هست که روز ۲۳ دسامبر داشتم تلاش میکردم حافظه به دیسک را راه بیندازم. روز بیست و چهارم، برنامه کار میکرد ولی گاهگداری باعث کرش سیستم میشد. روز بیست و پنجم، همه چیز به درستی کار میکرد. این عملا اولین خصوصیتی بود که به خاطر یک نفر دیگر به لینوکس اضافه کرده بودم.
و به این افتخار میکردم.
تا به حال در این مورد به خانوادهام که گاهگداری برای خوردن یک وعده گوشت و ماهی هارینگ در خانه مادربزرگ پدری (فارمار!) جمع میشدند، چیزی نگفته بودم. جامعه کاربران لینوکس به شکل روزانه در حال گسترش بود و حالا دیگر هر روز از جاهایی که آرزوی دیدنشان را داشتم، ایمیل دریافت میکردم. جاهایی مثل استرالیا و آمریکا. نپرسید چرا ولی هیچوقت احساس نکردم باید در این باره چیزی به مادر و پدرم، خواهرم یا بقیه فامیل بگویم. آنها از کامپیوتر سر در نمیآوردند. تصورم این بود که نخواهند فهمید چه چیزی در جریان است.
تا آنجایی که به آنها مربوط میشد، کار من فقط اشغال کردن دائمی تلفن بود. در هلسینکی، هزینه تلفن در طول شب ثابت بود و به همین علت من هم سعی میکردم بیشتر کارم را در دیروقت انجام دهم؛ ولی خب گاهی هم تلفن در تمام طول روز اشغال میماند. حتی سعی کردم یک خط تلفن مجزا برای خودم بگیرم ولی ساختمانی که خانه مادرم در آن قرار داشت آن قدر قدیمی بود که هیچ خط اضافهای نداشت و کسی هم علاقهای به کشیدن خطوط جدید برای آن احساس نمیکرد. سارا در آن دوره کاری نداشت جز اینکه با دوستانش تلفنی صحبت کند. حداقل برداشت من که این بود. پس گاهگداری با هم دعوا داشتیم. البته دعواهای مجازی. وقتی او مشغول حرف زدن بود من مودم را تنظیم میکردم تا شماره بگیرد و حاصل اینکار صداهای بیب-بیب-بیببب در تلفن بود. اینکار سارا را عصبانی میکرد ولی در عوض میفهمید که من واقعا به آزاد شدن خط تلفن و خواندن ایمیلهایم احتیاج دارم. هیچوقت ادعا نکردهام که بهترین برادر بزرگتر دنیا هستم.
حافظه به دیسک، قدم بزرگی بود چون مینیکس هیچوقت به سراغ آن نرفته بود. این قابلیت در نسخه 0.12 اضافه شد که در اولین هفته از ژانویه ۱۹۹۲ توزیع شد. مردم سریعا شروع کردند به مقایسه لینوکس نه فقط با مینیکس که با کوهیرنت که نسخه کوچکی از یونیکس بود و توسط شرکت مارک ویلیامس گسترش یافته بود. اضافه کردن حافظه به دیسک، باعث شده بود لینوکس از رقبای خود یک سر و گردن بالاتر باشد.
خیز لینوکس از همان روز شروع شد. حالا کسانی را داشتیم که از مینیکس به لینوکس سوییچ میکردند. در آن موقع، لینوکس قادر نبود همه کارهایی که مینیکس میکرد را انجام دهد، ولی از پس اکثر کارهایی که برای مردم ارزش داشت، برمیآمد. البته لینوکس حالا یک قابلیت جدید هم داشت که همه به دنبال آن بودند: حافظه-به-دیسکی که میتوانست باعث شود افراد قادر باشند برنامههایی بزرگتر از حافظه کامپیوترشان را اجرا کنند. معنی این قابلیت آن است که هر وقت حافظه کامپیوتر کم آمد، بخشی از حافظه به دیسک منتقل میشود و سیستمعامل به یاد میسپارد که آن را از کجا برداشته و در کجا ذخیره کرده و در نهایت مقداری از حافظه که به این روش خالی شده است را به برنامههای جدید اختصاص میدهد. این جریان برای هفتههای اول سال ۱۹۹۲ چیز مهمی به حساب میآمد.
ماه ژانویه بود که تعداد کاربران لینوکس از پنج، ده و بیست نفری که من میتوانستم با آنها ایمیل داشته باشم و اسمهایشان را به خاطر بسپارم فراتر رفت و به صدها نفری رسید که دیگر قابل شناسایی نبودند. من همه کاربران لینوکس را نمیشناختم و این مفرح بود.
درست در همان روزها، یکی از این دروغهای اینترنتی هم در حال گردش در شبکه بود. یک پسر فقیر به اسم کریگ در حال مرگ از سرطان بود و یک نامه زنجیرهای مشهور از شما میخواست که برایش کارتپستال بفرستید. بعدا معلوم شد که این جریان، شوخی بیمارگونه یک آدم است. احتمالا هیچوقت کریگی وجود نداشته، چه برسد به اینکه از سرطان در حال مرگ باشد؛ اما به هرحال این درخواست میلیونها کارتپستال به آن آدرس جاری کرد. من هم وقتی از مردم خواستم که در صورت استفاده از لینوکس به جای پول برایم کارتپستال بفرستند، حرفی نیمه جدی و نیمه شوخی زده بودم. از نظر من آن نامه یک جور جوک «خدایا! یک ایمیل دیگر با درخواست ارسال کارتپستال» بود. آن روزها در دنیای کامپیوترهای شخصی، گرایش زیادی به نرمافزارهای اشتراکافزاروجود داشت. برنامه را دانلود میکردید و در صورت استفاده، از شما انتظار میرفت که مبلغی در حد ده دلار برای نویسنده بفرستید. مردم هم برای من ایمیل میزدند و میپرسیدند که آیا علاقهمندم پولی در حد سی دلار برایم بفرستند یا نه. باید جوابی به آنها میدادم.
الان که به گذشته نگاه میکنم به نظرم میرسد که درخواست پول ممکن بود مفید باشد. چیزی حدود ۵۰۰۰ دلار وام دانشجویی داشتم و ماهی هم باید ۵۰ دلار قسط کامپیوترم را میدادم. خرجهای دیگرم عبارت بودند از پیتزا و آبجو. البته لینوکس آن قدر من را مشغول خودش کرده بود که به ندرت بیرون میرفتم؛ شاید حداکثر هفتهای یک بار. برای بیرون بردن دخترها هم که هیچ پولی لازم نداشتم و هرچند امکان خرج پول برای ارتقای سختافزاری وجود داشت، ضرورتی به این کار احساس نمیکردم. شاید یک پسر دیگر، برای نرمافزاری که نوشته بود درخواست پول میکرد و آن را به عنوان بخشی از اجاره خانه به مادر سرپرست خانوادهاش میداد. من هیچوقت به این فکر نیفتادم. از من شاکی باشید.
من بیشتر علاقهمند بودم تا ببینم که مردم واقعا از لینوکس استفاده میکنند. به جای پول، از آنها کارتپستال خواستم و از همه جا کارتپستال سرازیر شد. از نیوزلند گرفته تا ژاپن و از هلند تا ایالات متحده. معمولا سارا بود که نامهها را چک میکرد و به ناگهان متعجب شده بود که چطور این برادر پردردسرش یکهو اینهمه دوست از سراسر دنیا پیدا کرده. این اولین باری بود که احساس میکرد من در آن همه ساعتی که تلفن اشغال بود، مشغول کار مفیدی بودم. تعداد کارتپستالها به صدها عدد رسیده بود ولی هیچ ایدهای ندارم که چه بلایی سر آنها آمده است. احتمالا در یکی از اسبابکشیها گم شدهاند. آووتون من را «شخصی با حداقل نوستالژی ممکن» میخواند.
در حقیقت پول نخواستن من دلایل متعددی داشت. وقتی برای اولین بار لینوکس را به اینترنت میفرستادم، احساس میکردم که قدم در مسیری گذاشتهام که قرنها دانشمندان و دانشگاهیان در آن حرکت کردهاند. به گفته سر ایزاک نیوتن، احساس میکردم روی دوش غولها ایستادهام. حاصل کارم را به اشتراک گذاشته بودم تا دیگران علاوه بر استفاده از آن، به من بازخورد دهند (قبول! همچنین دنبال تمجید هم بودم). اینکه از کسانی که توانایی بهتر کردن کار مرا داشتند، پول درخواست کنم چندان منطقی نبود. شاید اگر در جایی به جز فنلاند که در آن بروز دادن کوچکترین نشانهای از خست، با شک و تردید نگریسته میشود بزرگ شده بودم، روش دیگری در پیش میگرفتم (البته این قضیه بعد از موفقیت چشمگیر نوکیا و پیش آمدن این جریان که در جیب هر آدمی در هر کجای جهان یک گوشی نوکیا است و حسابهای بانکی تعدادی فنلاندی از این راه هر روز پرتر و پرتر میشود تا حدی تغییر کرده است)؛ و بله! شاید اگر تحت نظر یک پدربزرگ فدایی دانشگاه و یک پدر فدایی کمونیسم رشد نکرده بودم هم روند دیگری در پیش میگرفتم.
به هرحال به دنبال فروش لینوکس نبودم. البته نمیخواستم کنترلم بر آن را هم از دست بدهم؛ یعنی نمیخواستم کس دیگری توان فروش آن را داشته باشد. این موضوع را به طور مشخص در یادداشت کپیرایتی که همراه نسخه اولیهای که در سپتامبر پخش کردم، مشخص کرده بودم. خوشبختانه بنا به موافقتنامه برن که در قرن نوزدهم تصویب شده، شما مالک کپیرایت چیزی هستید که تولید کردهاید مگر اینکه آن را به دیگری واگذار کنید. من به عنوان صاحب کپیرایت، حق داشتم قوانین را مشخص کنم: حق دارید از سیستمعامل به شکل رایگان استفاده کنید به شرطی که آن را به کسی نفروشید و اگر تغییری در کدها دادید باید آنها را به شکل کد منبع (و نه کدهای باینری که غیرقابل دسترسی هستند) برای استفاده همگانی منتشر کنید. اگر شما با این قوانین موافق نبودید، حق نداشتید کد اصلی را کپی کنید یا در آن تغییری دهید.
خودتان قضاوت کنید. شش ماه از زندگیتان را روی چیزی میگذارید و میخواهید آن را برای همه قابل دسترسی کنید، ولی نمیخواهید کس دیگری کنترل آن را در دست بگیرد. من دوست داشتم مردم به این کد دسترسی داشته باشند و از آن استفاده کنند و بنا به سلیقه خود آن را بهبود بخشند؛ اما در عین حال میخواستم که بدانم مردم دارند با آن چهکار میکنند. لازم بود من هم به کد اصلی دسترسی داشته باشم تا اگر کسی تغییری مثبتی ایجاد کرد، خودم هم بتوانم از آن بهرهمند شوم. از نظر من بهترین روش برای کمک به توسعه لینوکس این بود که آن را پاک نگه دارم. ورود پول به ماجرا، آب را گلآلود میکرد. اگر پولی در بین نباشد، آدمهای طمّاع هم وارد بازی نمیشوند.
با اینکه من علاقهای به درخواست پول در مقابل لینوکس نداشتم، بعضیها نسبت به اینکه در مقابل دادن دیسکهای حاوی سیستمعامل به دیگران درخواست کمی پول داوطلبانه بکنند، شرمی نداشتند. در فوریه دیگر عجیب نبود اگر آدمهایی را میدیدید که با دیسکهای حاوی لینوکس در دست، به سراغ نشستهای مرتبط با یونیکس میروند. آنها شروع کرده بودند به پرسیدن اینکه آیا اشکالی دارد اگر در مقابل هر دیسک مبلغی در حد پنج دلار درخواست کنند که هزینه دیسک و زمان مصرف شده را پوشش دهد. مشکل این بود که این کار مخالف کپیرایت نوشته شده توسط من بود.
دیگر وقت آن بود تا درباره سیاست «لینوکس برای فروش نیست» تجدیدنظر کنم. از طرفی بحثهای آنلاین در مورد لینوکس هم آن قدر زیاد شده بود که دیگر نگران نبودم کسی لینوکس را برای خودش بردارد و فرار کند؛ چیزی که بزرگترین کابوس من بود. حداقل انجام این کار بدون ایجاد کلی واکنش منفی، امکان نداشت. اگر کسی به فکرش میزد تا لینوکس را بدزدد و آن را به یک نرمافزار تجاری تبدیل کند بدون شک با واکنشهای منفی زیادی روبرو میشد. هکرهای زیادی در جامعه لینوکس بودند تا با دیدن این صحنه داد بکشند که «هی! این لینوکس است! تو حق نداری این کار را بکنی.» البته نه به این مودبی که من گفتم.
چرخ لینوکس به حرکت درآمده بود. هر روز هکرهایی از سراسر دنیا تغییرات پیشنهادی خود را برای من میفرستادند. ما به شکل دست جمعی در حال خلق بهترین سیستمعامل این حوالی بودیم و به راحتی هم ممکن نبود از مسیر منحرف شویم. به همین دلیل و از آنجایی که لینوکس دیگر شناخته شده بود، احساس کردم اشکالی ندارد اگر مردم شروع به فروش آن کنند.
البته قبل از اینکه خودم را آقای نیکوکار جا بزنم، اجازه بدهید یک نکته حیاتی دیگر را در مورد این تصمیم شرح دهم. واقعیت این است که برای کاربردی کردن لینوکس، از ابزارهای زیادی استفاده کرده بودم که به شکل آزاد روی اینترنت قرار داده شده بودند. من روی دوش غولها بالا رفته بودم. یکی از مهمترین این نرمافزارهای آزاد کمپایلر gcc بود. این نرمافزار تحت کپیرایت پروانه جامع همگانی یا به شکلی که بیشتر در سطح جهان شناخته شده است GPL (یا کپیلفت) که فرزند معنوی ریچارد استالمن بود، منتشر شده بود. در دیدگاه GPL پول جایگاهی ندارد. اگر کسی علاقهمند به پرداخت باشد، میتوانید میلیونها دلار از او درخواست کنید، اما باید کدهای منبع را هم در اختیار بگذارید. در عین حال کسی که کدهای منبع را از شما میخرد یا میگیرد تمامی حقوق شما را هم خواهد داشت. این یک ابزار فوقالعاده است. البته من بر خلاف طرفداران پر و پا قرص GPL که معتقدند هر ابداع جدید نرمافزاری باید بر اساس پروانه جامع همگانی برای تمام جهانیان قابل استفاده شود، اعتقاد دارم که مبتکرین حق دارند در مورد شیوه استفاده از اختراعشان شخصا تصمیم بگیرند.
من کپیرایت قدیمی را کنار گذاشتم و از GPL استفاده کردم؛ یعنی از کپیرایتی که استالمن آن را نوشته و گروهی از وکلا آن را بررسی کردهاند (چون وکلا درگیر ماجرا هستند، این سند چندین صفحه را اشغال میکند).
کپیرایت جدید از نسخه 0.12 اعمال شد و یادم هست که شب اول از فکر اینکه بخش تجاری با محصول من چه کار خواهد کرد، خوابم نبرد. حالا که به گذشته نگاه میکنم این نگرانی به نظرم خندهدار میرسد، چون بخش تجاری توجه نسبتا کمی به این جریان نشان داد. چیزی به من میگفت که باید مواظب باشم. یکی از نگرانیهایم این بود -و هنوز هم هست- که کسی بیاید و لینوکس را بدون توجه به کپیرایتش صاحب شود. آن موقع نگران این بودم که شکایت از کسی که در آمریکا این کپیرایت را نقض کند عملا غیر ممکن است. هنوز هم این نگرانی را دارم. شکایت کردن و تعقیب قضایی افراد در این گونه موارد مشکل نیست ولی من نگران افرادی هستم که تا وقتی قانونا متوقف نشدهاند، به این استفاده غیرقانونی ادامه میدهند.
و این ترس آزار دهنده هم هست که شرکتهایی در جاهایی مثل چین بدون توجه به GPL هرکار که بخواهند میکنند. عملا هیچچیزی در قانون آنها نیست که جلوی نقض کپیرایت را بگیرد و در دنیای واقعی هم پیگیری قضایی این قانونشکنان هیچ فایدهای نخواهد داشت. این همان کاری است که شرکتهای نرمافزاری بزرگ و صنایع موسیقی سعی کردهاند انجام دهند و تا امروز موفقیت چندانی هم به دست نیاوردهاند. نگرانیهای من در برخورد با وقایع، تخفیف پیدا کردند. شاید کسی برای مدتی کپیرایت را نقض کند، ولی در نهایت آدمهایی که به قانون احترام میگذارند و آنهایی که تغییرات خود را برای همه قابل دسترس میکنند، پیش میافتند. آنها بخشی از روند پیشرفت کرنل هستند. در مقابل، آنهایی که تغییرات خود را در اختیار دیگران نمیگذراند همانهایی هستند که از بهروزرسانیها هم بهرهای نمیبرند و عقب میمانند و مشتریانشان را از دست میدهند. این امید من است.
در کل، من کپیرایت را از دو دیدگاه میبینم. فرض کنید کسی هست که روزی ۵۰ دلار درآمد دارد. آیا انتظار دارید این آدم ۲۵۰ دلار پول یک نرمافزار را بدهد؟ به نظر من که اگر از نسخه غیرقانونی استفاده کند و آن ۵۰ دلار را خرج غذا کند، کاری غیراخلاقی نکرده. این شکل از نقض کپیرایت، اخلاقا مشکلی ندارد. به نظرم غیر اخلاقی -و احمقانه- است اگر کسی این «خلافکار» را تحت تعقیب قضایی قرار دهد. در مورد لینوکس هم مهم نیست اگر یک نفر بدون توجه به GPL از آن برای کاربردهای شخصی استفاده کند. بحث بر سر کسی است که به دنبال پولدار شدن سریع است. این کار به نظر من غیراخلاقی است؛ چه در آفریقا باشد و چه در آمریکا. تازه همینجا هم درجهبندیهای مختلفی هست.
اما به هرحال طمع هیچوقت خوب نیست.