توسعه دهنده گان
موضوعات داغ

مصاحبه‌ای با لینوس توروالدز

لینوس توروالدز را همه به‌عنوان پدر لینوکس می‌شناسند. اخیرا رابرت یانگ به مصاحبه با توروالدز پرداخته است تا از گذشته، حال و آینده‌ی لینوکس صحبت کنند.

اولین شماره از نشریه‌ی Linux Journal حاوی مصاحبه‌ای میان رابرت یانگ و لینوس توروالدز بود. رابرت یانگ بعدها به‌عنوان یکی از موسسان ردهت شناخته شد و صد البته توروالدز را هم همه‌ی علاقه‌مندان دنیای فناوری به‌خاطر توسعه‌ی کرنل لینوکس می‌شناسند. اکنون، پس از ۲۵ سال، این دو شخص پای صحبت یکدیگر نشسته‌اند تا آن مصاحبه‌ی قدیمی را به‌گونه‌ای تکرار کنند. پیشاپیش بابت سبک محاوره‌ای نوشته‌های ذیل، که ناشی از ماهیت صمیمانه‌ی این مصاحبه است عذرخواهی می‌کنیم.

رابرت یانگ: باعث خوشحالی ما است که بهانه‌ای برای ارتباط برقرار کردن با شما داشته باشیم. خودتان و خانواده‌تان چطور هستید؟ فرزندان شما اکنون باید دانشگاه را به اتمام رسانده باشند. من، نانسی و سه دخترم هم حال‌مان خوب است. بزرگ‌ترین دخترمان، زوئی، که در زمان شروع به کار ردهت یازده‌ساله بود، اکنون منتظر دومین فرزندش است. این بدین معنی است که من یک پدربزرگ هستم.

لینوس توروالدز: راستش هیچ‌کدام از فرزندان من هنوز دانشگاه را تمام نکرده‌اند. البته پاتریشیا (بزرگ‌ترین فرزندم) ماه مه امسال فارغ‌التحصیل می‌شود. سلست (جوان‌ترین فرزندم) هم آخرین سال دبیرستان را به پایان می‌رساند. پس تا شش ماه آینده، تمام فرزندانم خانه‌ی ما را ترک می‌کنند.

حالِ هر سه فرزندم خوب است و احتمال می‌دهم و امیدوارم که در چند سال آینده من هم پدربزرگ شوم.

رابرت: وقتی اولین‌بار در سال ۱۹۹۴ با شما مصاحبه کردم، آیا فکر می‌کردید که در سال ۲۰۱۹ نیز هنوز در حال کار روی این چیز (لینوکس) باشید؟

لینوس: فکر می‌کنم حتی در سال ۱۹۹۴ هم متعجب بودم که چطور آخرین پروژه‌ی من (لینوکس) خاتمه پیدا نکرده است؛ پروژه‌ای جذاب که تا زمان تکمیل شدن آن را ادامه دهم و سپس سراغ کار جدیدی بروم. البته در آن زمان در مراحل اولیه‌ی توسعه‌ی آن بودیم؛ اما تا همان موقع هم چند سال را برایش صرف کرده بودم و این (پروژه) به‌گونه‌ای راه خود را پیدا کرده بود.

منظورم این نیست که انتظار داشتم چند دهه بعد هم مشغول کار روی آن باشم؛ اما در آن زمان هم [لینوکس] به بخش بزرگی از زندگی من تبدیل شده بود. من هیچ وقت برنامه‌ی درازمدتی برای لینوکس نداشته‌ام و هر کار را به‌صورت روزانه انجام می‌دهم؛ به‌جای اینکه نگران پنج یا ده سال آینده باشم.

رابرت: یک نقل قول قدیمی و مشهور در رابطه با دستیابی به رویاها وجود دارد. در آن زمان وقتی از در مورد اهداف شما برای آینده‌ی لینوکس می‌پرسیدم، به شوخی از «تسلط بر جهان» صحبت می‌کردید. اکنون که شما و جامعه‌ی نرم‌افزارهای آزاد به این هدف رسیده‌اید، قدم بعدی چیست؟

لینوس: خوب مدت‌ها است که از شوخی درباره‌ی «تسلط بر جهان» دست کشیده‌ام؛ چرا که با گذر زمان، جنبه‌ی شوخی بودنِ این مسئله کمتر و کمتر می‌شد. ولی این همیشه یک شوخی بود. دلیل من (و دیگر توسعه‌دهندگان) برای کاری که انجام دادیم، تسلط بر جهان نبود. ما همواره می‌خواستیم فناوری بهتر و چالش‌هایی جذاب پیش روی خود داشته باشیم.می‌خواستیم فناوری بهتری پیش روی خود داشته باشیم

البته پایه و اساس این (خواسته‌)-ها عوض نشده‌اند؛ اما جزئيات تغییر کرده‌اند. سخت‌افزار امروز بسیار متفاوت است، مشکلات کاملا متفاوتی پیش روی ما قرار دارند و نقش من نیز بسیار تغییر کرده است. اما مانند همیشه در حال «بهبودِ چیزها و روبه‌رویی با چالش‌های جذاب» هستیم.

برای مثال، در سال ۱۹۹۴، من بیشتر یک توسعه‌دهنده بودم. البته نقش هماهنگ‌کننده‌ی ارشد را هم داشتم و بیشتر وقتم را برای قرار دادن کدهای مختلف کنار یکدیگر صرف می‌کردم؛ اما در عین حال کدهای خودم را هم می‌نوشتم. این روزها به‌ندرت کدنویسی می‌کنم. کدهایی که می‌نویسم هم اغلب «شِبه کد» هستند؛ یا نمونه‌هایی از وصله‌ها که با ایمیل برای توسعه‌دهندگان واقعی ارسال می‌کنم. دوست ندارم خود را «مدیر» بنامم، چون راستش کارهایی مثل بررسی‌های سالانه، برنامه‌ریزی بودجه و… را انجام نمی‌دهم. بدون شک، من بیشتر یک رهبر فنی هستم و نه یک برنامه‌نویس واقعی. این چیزی است که در چندین و چند سال اخیر صحت داشته است.

با این حساب، چهارچوب اصلی کار تغییری نکرده است؛ اما نقش من و دیگر جزئیات کار، در مقایسه با سال ۱۹۹۴، کاملا متفاوت هستند.

رابرت: شما و این کد (کرنل لینوکس) در ربع قرن آینده در چه جایگاهی قرار خواهید داشت؟

لینوس: خوب آن موقع من ۷۵ ساله خواهم بود و فکر می‌کنم که در آن زمان به‌طور روزانه با پروژه درگیر نخواهم بود. البته باتوجه‌به اینکه ۳۰ سال اخیر را با لینوکس طی کرده‌ام، احتمالا در آن زمان نیز پیگیر پروژه خواهم بود.

خبر خوب این است که ما مجموعه‌ای قابل‌اعتماد از توسعه‌دهندگان را در اختیار داریم و من نگران این مسئله نیستم که «سرنوشت لینوکس چه خواهد شد؟». قطعا از مدت‌ها پیش خیلی از افراد راجع به این مسئله صحبت می‌کنند که توسعه‌دهندگان کرنل در حال پیر شدن هستند. این بدیل دلیل نیست که ما شخص جدیدی را به گروه اضافه نکرده‌ایم؛ بلکه به این خاطر است که افراد زیادی از مدت‌ها پیش در این کار دخیل هستند و هنوز هم از آن لذت می‌برند.

قبلا فکر می‌کردم که سیستم‌عاملی جذاب و کاملا متفاوت جایگزین لینوکس خواهد شد (درواقع، در سال ۱۹۹۴ فکر می‌کردم که Hurd این کار را انجام می‌دهد)؛ اما مسئله فقط این نیست که از مدت‌ها پیش در حال انجام کارمان هستیم و آن را به‌خوبی انجام می‌دهیم. من به این نتیجه رسیده‌ام که ساخت یک سیستم‌عامل جدید بسیار سخت‌تر از چیزی است که فکر می‌کردم. این کار نیازمند تلاش فراوان از سوی افراد زیادی است. قدرت لینوکس و دیگر نرم‌افزارهای متن‌باز نیز همین است که می‌توان چیزی را به تلاش‌های دیگران افزود.

با این حساب، اگر شاهد تغییری شگرف در رابطه با رایانه‌ها نباشیم، فکر می‌کنم که در ربع قرن آینده هم لینوکس کار خود را به‌خوبی انجام خواهد داد. این توانایی الزاما ربطی به ویژگی‌های کد لینوکس ندارد؛ بلکه به‌خاطر الگوی توسعه و حل مسئله‌ای است که از آن بهره می‌برد.

شاید در آن زمان (۲۵ سال آینده) من فعال نباشم و بخش زیادی از کدها به‌روزرسانی و جایگزین شده باشند؛ ولی فکر می‌کنم که پروژه ماندگار خواهد بود.

رابرت: آیا شما و تیم توسعه‌دهنده‌ی کرنل، کدهای کرنل را براساس ترجیح خود به‌روزرسانی می‌کردید؟ آیا نیاز یا فشاری وجود دارد که بخشی از مجموعه کدهای ۲۵ ساله‌ی لینوکس را بازنویسی کنید؟ شاید با زبانی مدرن‌تر از C؟

لینوس: طی سال‌ها، اغلب زیرسیستم‌ها را به‌طور عمده بازنویسی کرده‌ایم؛ هرچند که این‌کار به یک‌باره انجام نشده است. البته برخی از کدها نیز چیزهایی هستند که هیچ‌کس قصد تغییرشان را ندارد (این‌ها اغلب درایورهای سخت‌افزارهای قدیمی هستند که عده‌ی کمی از آن‌ها استفاده می‌کنند و ما هنوز هم از آن‌ها پشتیبانی می‌کنیم).

اما یکی از مزایای داشتنِ مرجعی بزرگ و مشترک برای تمام کرنل این است که هر وقت بخواهید بخشی از آن را تغییر دهید، می‌توانید این تغییر را به انجام برسانید. البته برخی از درایورها خارج از شاخه‌ی [توسعه] هستند؛ اما همواره سیاست ما این است که اگر چیزی خارج از شاخه‌ی [توسعه] است، آن‌چیز نباید برای توسعه‌ی کرنل مهم باشد. با این حساب، می‌توان در زمان نیاز تغییرات لازم را ایجاد کرد.

در رابطه با زبان برنامه‌نویسی C باید بگویم که زبان بهتری برای جایگزینی با C ایجاد نشده است. ما منابع کرنل را برای ویژگی‌های جدید و بهتر به‌روزرسانی کرده‌ایم (زبان C نیز طی انجام این کار تغییر کرده است). به‌علاوه، ما افزونه‌های متعددی را هم برای کنترل و بررسیِ اجرا و بهینه‌سازی کدها به C اضافه کرده‌ایم. اما در مجموع، به‌جز برخی جزئیات کوچک، زبان برنامه‌نویسی مورد استفاده‌ی ما همان زبان قدیمی است.

اگر بخواهم صادق باشم، احتمالا تغییری هم ایجاد نخواهد شد. زبان‌های برنامه‌نویسی که تحت توسعه‌ی فعال قرار می‌گیرند برای برنامه‌نویسی سیستم‌های سطح پایین نیستند. آن‌ها برای این به‌وجود آمده‌اند تا ساخت اپلیکیشن‌های کاربردی با رابط کاربری زیبا را ساده‌تر کنند. آن‌ها نمی‌خواهند کارهایی را انجام دهند که کرنل به آن‌ها نیاز دارد؛ برای مثال، مدیریت سطح پایین حافظه.

می‌توانم این را تصور کنم که برای تولید درایورها و موارد مشابه، نوعی زبانِ «قالبی» خواهیم داشت. البته به‌طور داخلی نیز زبان ساده‌سازی‌شده‌ی خود را برای انجام پیکربندی‌ها داریم و از چند زبان دیگر برای ایجاد این پروسه استفاده می‌کنیم. پس این‌گونه نیست که C تنها زبان مورد استفاده‌ی ما است. اما اغلب کدها و بخش‌های اساسی کرنل با این زبان نوشته می‌شوند.

برچسب ها
نمایش بیشتر

نوشته های مشابه

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا
بستن