بایگانی برچسب: s

داستان پروژه جبیر – عملکرد وزنیاک، همچنان رویای جابز (قسمت دوم)

در مطلب پیشین (لینک) اشاره کردم که ایده‌ها و جرقه‌های ابتدایی پروژه جبیر، از کجا به ذهنم رسید و چرا مهم بود که اون ایده رو پیاده کنم و حتما به اون هدف برسم. این موضوع، باعث شد که من بیش از پیش تلاش کنم که به هدفی که برای خودم گذاشتم برسم.

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

بررسی راه‌های ساخت یک سیستم‌عامل

ابتدای راه، باید بررسی می‌کردم که سایرین چطور سیستم‌عامل ساختند و چطور شده که سیستم‌های عاملشون، رشد و نمو خوبی داشته. همونطور که در قسمت اول هم اشاره کردم، یکی از idol های من در زندگی، استیو جابز بود (و کماکان هم هست) و طبیعتا اولین سیستم‌عاملی که به نظرم اومد که داستان موفقیتش رو مطالعه کنم، مک بود. اما مک یک مشکل بزرگ داشت. بررسی درست و حسابیش نیازمند این بود که حتما یک سیستم اپل تهیه کنم. حالا چه آی‌مک، چه مک‌بوک و … . به همین خاطر، مک رو بیخیال شدم.

داستان موفقیت ویندوز هم تقریبا اظهر من الشمسه. این سیستم‌عامل عمده محبوبیتش رو به این خاطر داره که روی سیستم‌های سازگار با PC های IBM نصب می‌شد و از قضا، همون دوره IBM تصمیم گرفته بود که لایسنس تولید کامپیوترهای شخصی مشابه کامپیوترهای خودش رو به کمپانی‌های دیگری مثل Dell, Compaq, HP و … هم بفروشه. پس تعداد بیشتر، مصادف شده بود با مصرف بیشتر و محبوبیت بیشتر.

نهایتا، با خودم گفتم که «خب، می‌رم بین محبوبیت توزیع‌های لینوکس جستجو می‌کنم». اونجا بود که فهمیدم چندین توزیع ایرانی مثل پارسیکس (متوقف شده)، کارآمد (متوقف شده) و آریوس (متوقف شده) وجود دارند. در عین حال، فهمیدم این‌ها ویژگی‌های مشترک زیادی دارند. خلاصه که این مورد رو گذاشتم در لیست مطالعه که بعدتر در موردش مطالعه کنم و ببینم که دنیا دست کیه.

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

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

به همین خاطر، یک تحقیق بزرگی در مورد سیستم‌عامل‌های متن‌باز موجود کردم که ببینم کدوم بعنوان پایه سیستم‌عامل می‌تونه گزینه خوبی باشه. گنو/لینوکس، بی‌اس‌دی‌ها، هایکو و حتی کولیبری رو چک کردم و به این نتیجه رسیدم که خب، لینوکس بهترین گزینه‌ست! حتی در این میان داشتم به اندروید هم فکر می‌کردم ولی باز پس ذهنم گنو/لینوکس رو داشتم. حالا وقت این بود که ببینم از کدوم یکی میشه یک نسخه شخصی‌سازی‌شده بهتر ساخت.

پیدا کردن توزیع مناسب به عنوان مبنا

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

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

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

وقتی دیدم اینطوریه، با خودم گفتم چرا پایه این قضیه مینت نباشه؟ به همین خاطر مینت نصب کردم تا ببینم چی به چیه و دروغ چرا؟ عاشقش شدم. روی مینت گنوم ۳ نصب کردم و کلی باهاش کار کردم و دیدم عجب چیز خوبیه. خلاصه اینجا بود که کاندیداهای من به مینت و اوبونتو، تقلیل پیدا کردند.

پیدا کردن راهی برای پکیج کردن مجدد توزیع شخصی‌سازی شده

اینجا دیگه روی لپتاپ مینت نصب کرده بودم. شخصی‌سازی‌های مختلفی رو روش انجام داده بودم و وقتش رسیده بود که یک پکیج ازش بسازم. در واقع می‌خواستم یک ISO بسازم که بتونم بعدا روی لپتاپ خودم یا کامپیوترهای دیگر به طور کل، نصبش کنم. به همین خاطر از Relinux استفاده کردم (این پروژه تقریبا دو سالی میشه که از رده خارج شده، ولی اون موقع جوان اول ابزارهای ساخت توزیع بود). حالا وقت این رسیده بود که یک مینت خوش رنگ و لعاب با هزاران هزار بسته رنگارنگ، به ISO تبدیل بشه و همین تبدیل همانا و سیستم‌عامل‌ساز شدن من همان!

اما اینجا یه مشکلی پیش اومد. انقدر نرم‌افزارها زیاد بودند که حجم ISO تولیدی توسط Relinux بالای ۴ گیگابایت رفت. اگر این پست رو تشریف ببرید بخونید، توضیح دادم که استاندارد ISO9660 یک محدودیت روی حجم داره و بیش از چهار گیگابایت رو نمی‌تونه در خودش جای بده. همین امر، باعث شد که پروژه رو بکوبم و از اول بسازم. به همین خاطر، دوباره DVD اوبونتو 11.10 رو برداشتم (و در همون حین نخستین بتاهای ۱۲.۰۴ هم داشتند میومدند) و روی لپتاپ نصبش کردم. پس از نصب، تغییراتی روش دادم مثل جایگزینی یونیتی با گنوم، نصب تعدادی نرم‌افزار و جایگزینی تعداد دیگر. این بار شد! این بار واقعا شد و خب خوشحال و خرم بودم.

عکس از توزیع کاپریس است – کاپریس در سال ۹۹ ساخته شد.

انتشار نسخه اول به صورت LTS و اولین اشتباهات

خب در فروردین سال ۱۳۹۱، نخستین نسخه جبیر آمد. یادمه که ده روز قبل از انتشارش حتی این پست رو در فروم اوبونتو ایجاد کردم که خب همونطور که می‌تونید بخونید؛ کم هم حاشیه نداشته. خلاصه اینجا بود که اولین اشتباهات رو متوجه شدم. در این قسمت بیش از این که بخوام پیرامون این که جبیر چه بود مانور بدم، میخوام روی اشتباهات مانور بدم.

اولین اشتباه شاید برمی‌گشت به جهان‌بینی من. اینطور بخوام بگم که این جهان‌بینی این طور بود که اگر در ۱۶ سالگی یک سیستم‌عامل مثل جبیر ساختم، دیگه ته دنیای تکنولوژی و اینام. به قول یه بنده‌خدایی، دچار سندرم «جلوزدگی از خود» شده بودم. خب این مورد در سنین نوجوانی طبیعیه و حتی همین الان باور دارم که نسبت به سن و سال اون زمانم، واقعا کارم خفن بوده ولی نه اونقدری که خودم همیشه فکر می‌کردم. بهرحال در دوران نوجوانی خیلی‌ها دوست دارند کارهای بزرگ کنن و همونطور که در مطلب پیشین عرض کردم، این قضیه باعث شد من بشم اینی که الان هستم.

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

نسخه ۲، رابط کاربری افسانه‌ای

توزیع آریوس، علاوه بر این که ریمستر از اوبونتو بود دو ویژگی داشت که از سایر توزیع‌های ریمستر؛ متمایزش می‌کرد. یکیش نصاب آفلاین درایورها بود، دیگری این که یک رابط کاربری خیلی خوشگلی هم داشت که خب به شکل یک نشست روی گنوم اجرا می‌شد. در نسخه دوم تصمیم گرفتم چنین تغییری رو ارائه بدم. به همین خاطر، با کمک AWN, Mutter و یک سری تغییر ریز دیگر، یک رابط کاربری نسبتا کاستوم ساختم و اسمش هم گذاشتم Legendary UI یا «رابط کاربری افسانه‌ای». همچنین در کنار اون نسخه، یک ایزو با XFCE هم ارائه کردم که خب در این مقطع، جبیر با دو میز کار داشت عرضه می‌شد.

حقیقتا نسخه ۲ تا حد خوبی ترکوند. به حدی که با این پروژه به جشنواره‌های استانی و کشوری (من‌جمله خوارزمی) راه پیدا کرده بودم. این رو هم اینجا بگم چرا که واقعا نمی‌تونم این رفرنس رو اینجا ندم 😁 در فیلم The Social Network – که داستان ساخت و رشد فیسبوک رو به شکل سینمایی روایت می‌کنه – کرکتر Divya Narendra (یکی از شرکای دوقلو‌های وینکلواس در پروژه Harvard Connection) در مورد مارک زاکربرگ می‌گه که «مارک بزرگترین شخصیت دانشگاه شده بود. اون هم دانشگاهی که نوزده‌تا برنده نول و پونزده‌تا برنده پولتیزر و حتی یک ستاره سینمایی داره». حقیقتا در میان دانش‌آموزان اون مدرسه و حتی شهر بندرعباس من چنین حسی داشتم و همینجا بود که دوباره کمی از خودم جلو زدم. اما این تمام ماجرا نبود. جزییات این بخش رو، در قسمت‌های بعدی این داستان خواهیم خوند.

نسخه ۳ و ۴، مشکل اینترنت و متاع خنده؟

در نسخه ۳، تغییر خاصی نبود جز این که قبل از این که Ubuntu GNOME Remix منتشر بشه، این توزیع با میزکار گنوم عرضه شد (حقیقتا جا داشت این مورد شدیدا بهش اشاره بشه). اگر دوست دارید در مورد این نسخه بیشتر بدونید می‌تونید به این مصاحبه من با لینوکس سیزن مراجعه کنید و کمی با ذهنیت من در اون سال آشنا شید. نسخه ۳ خیلی حاشیه نداشت. در عین حال، خیلی هم سر و صدا و برند نساخت. یک توزیعی بود که نصب می‌شد و خلق‌الله استفاده می‌کردند.

نسخه ۴، برای من خیلی مهم بود. در این حد که حتی اسم نسخه‌ش هم خواستم یک چیز باحال انتخاب کنم و از همین رو، اسم رو گذاشتم Pirates of Galaxy یا «غارتگران کهکشان». در این یکی نسخه خیلی سعی داشتم که همه‌چی رو مینیمال در عین حال شخصی نگه دارم. اما یک مشکل اساسی اینجا پیش آمد. مشکل چی بود؟ مشکل این که اوبونتو باگی داشت که اگر شما اون رو باز دوباره بسته‌بندی می‌کردی، نمی‌تونست کارت شبکه رو درست شناسایی کنه و به اینترنت متصل نمی‌شد. همین موضوع باعث این کامنت از جادی شد:

جادی

خب بخش اول کامنت تذکری بود به دوستی که ظاهرا ادب رو رعایت نکرده بود. بخش دوم هم از نظر من بد نیست، اما نکته مهم برخورد جامعه نرم‌افزار آزاد با این موضوع بود. چرا؟ چون من یادمه حتی سال ۹۶ که خودمم یادم نبود چه کرده بودم تو این سیستم‌عامل، در بعضی جلسات لاگ و بعضی رویدادها این موضوع شده بود متاع خنده! طبیعتا هیچکس خوشش نمیاد کاری که در نوجوانی کرده و حتی کار بدی هم نبوده (ساخت توزیع لینوکس واقعا کار بدی نیست، شاید بیهوده باشه ولی بد، نه!) سوژه خنده یک جمع باشه.

خلاصه اینجا دیگه شد آخرین جایی که جبیر بعنوان یک توزیع گنو/لینوکس عرضه شد و دفترش به پایان آمد. اما حکایتش همچنان باقی ماند.

رفتن سراغ BSD

بعد از جبیر ۴، دیگه تصمیم رو جدی گرفتم. با خودم گفتم لینوکس برای من سیستم بشو نیست :)) در این حد که هرجا بحثی از لینوکس می‌شد، سریعا اشاره می‌کردم به این که در PlayStation 4 از FreeBSD استفاده شده، واتسپ داره FreeBSD استفاده می‌کنه و OpenBSD ایمن‌ترین سیستم‌عامل جهانه و اپل با BSD اپل شد و این‌ها و در عین حال لگدی هم به لینوکس می‌زدم و می‌گفتم این سیستم‌عامل، یک سیستم‌عامل مرده‌ست.

در همین حین، ما باز به تهران برگشتیم و خب کمی سخت بود که روی توسعه جبیر کار کنم چرا که اینترنت درست و درمونی نداشتم، لپتاپم برای کامپایل کردن کد‌های FreeBSD ضعیف بود و کلی داستان و مشکل از این قبیل پیش آمد. خلاصه پس از این که مدتی گذشت و کمی این مشکلات حل شد، موفق شدم که جبیر رو دوباره از نو با کرنل FreeBSD تولید کنم و بعد مدتی حتی اسم کرنل رو از FreeBSD به JabirOS تغییر دادم (که خب این خودش یک اشتباه خیلی خیلی بزرگ محسوب می‌شد چون عملا از پورت‌ها نمی‌شد دیگه استفاده کرد) و کلا در مسیری بودم که با خودم می‌گفتم «دو سال دیگه به اپل رسیدم».

یکی از دلایلش، این بود که من کم کم داشتم وارد مدیای خارجی می‌شدم. مثلا این وبسایت، خبر انتشار جبیر جدید رو کار کرد یا این یکی، با من مصاحبه‌ای ترتیب داد. همه این موارد دست به دست هم دادند تا من خیلی بیشتر از پیش، از خودم جلو بیفتم.

اما خب این موضوعات پشت سر هم، پیش‌دانشگاهی و کنکور و ورود به دانشگاه باعث شدند که کلا بیخیال پروژه جبیر بشم و این مورد باعث شد که ذهنم برای پروژه‌های دیگری که در این سال‌ها انجام دادم بازتر بشه.

این داستان ادامه دارد

فکر می‌کردم شاید این داستان چهار یا پنج قسمت بشه، اما تا اینجا که توضیحاتم رو ارائه کردم، فکر کنم کلا یک مطلب دیگر که کلیت این دو قسمت رو جمع‌بندی کنه و کمی به رفتارهای اطرافیان – بخصوص جامعه نرم‌افزار آزاد – و داستان‌هایی مشابه شرکت در جشنواره خوارزمی و … اشاره کنه، کافی باشه.

خلاصه، دوست دارم ازتون تشکر کنم که تا اینجای مطلب رو خوندید و همراه من بودید. من همیشه دوست داشتم این تجربه رو مکتوب کنم و خب اتفاقات اخیر، موجب این شد که این مطالب مکتوب بشند و در وبلاگ هم به رشته تحریر دربیان.

در نهایت، برای تک‌تک خوانندگان این بلاگ، آرزوی موفقیت و خوشحالی می‌کنم.

 

Share

داستان پروژه جبیر – رویای نوجوانی استیو جابز شدن (قسمت اول)

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

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

چرا این مطلب نوشته شد؟

حقیقتا از سال ۹۴ به بعد که دیگه وبسایت پروژه جبیر آپدیت نشد و حتی از برند جبیر برای پروژه‌ای استفاده نشد، دلم نخواست که راجع بهش چیزی بنویسم. چرا که این پروژه علیرغم تمام خوبی‌ها و آموزه‌هاش برای من، خاطرات بدی هم داشت و خب هرچیزی، لازمه که روزی کنار گذاشته بشه. در حقیقت، جایی که انسان حس می‌کنه باید رها کنه، باید رها کنه و برای من این زمان سال ۹۴ بود. زمانی که همه‌جا اعلام کردم پروژه جبیر، چه در قالب «توزیع لینوکس» و چه در قالب «نسخه‌ای از BSD» دیگر عرضه نخواهد شد.

اما چندی پیش، پای یکی از پست‌های جبیر (لینک) نظری دریافت کردم (که البته تایید نشده) و در بخش آمار وبگاه (که به کمک افزونه Jet Pack بررسی می‌کنم) هم متوجه شدم که افرادی هستند که در حال رصد کردن گذشته من هستند. یکی از چیزهایی که عمیقا بهش باور دارم اینه که نباید در گذشته افراد زیاد کند و کاو کرد، چرا که تهش شما یا خودت ضایع میشی یا چیزی که دنبالش می‌گردی چیزی در حد زیربغل مار خواهد بود. پس با این حساب، تصمیم گرفتم که در یک سلسله مطلب جامع، داستان جبیر او اس رو جمع کنم.

حالا وقت اینه که حدودا ده سال در زمان سفر کنم و برسیم به سال ۸۹-۹۰ که این پروژه رو استارت زدم، بگم چی شد که این پروژه به ذهنم رسید و چطور شد که رفتم سمت لینوکس و … .

جرقه‌های اولیه

بسیاری از افرادی که من رو می‌شناسند، از ارادتی که نسبت به استیو جابز دارم، خبر دارند. سال حدود ۸۹ بود و من در مجلاتی که اون زمان به صورت روتین از قیمت فلان گوشی و فلان کامپیوتر و فلان کارت گرافیک می‌نوشتند از رونمایی از محصولات جدید اپل مثل iPhone 4 یا iPad می‌خوندم. بعد مدتی، با استیو جابز و زندگی اون آشنا شدم و فهمیدم که این بابا، آدمی بوده که خیلی خیلی از صفر شروع کرده (تقریبا بر خلاف خیلی از ابرپولدارهای سیلیکون‌ولی، ایشون اصلا خونواده متمول و حتی اهل فنی نداشته و خونواده‌ای که درش رشد کرده بوده یک خونواده خیلی معمولی بوده).

خلاصه آشنایی با استیو جابز، بعدش خریدن یک iPod Touch 3G در من جرقه‌ای روشن کرد. جرقه‌ای مبنی بر این که «من باید دنیا را تغییر بدم». تغییر دنیا، کار سختیه. خیلی از ما جایی از زندگی این قصد رو داشتیم ولی کار خاصی براش نکردیم. خیلی‌ها هم حرکتایی زدیم ولی بعدا سرمون به سنگ خورده. خلاصه که خیلیامون اونقدری دیوانه بودیم که روزی بخوایم دنیا رو تغییر بدیم و به قول استیو جابز، افرادی که اونقدر دیوانن که فکر می‌کنن می‌تونن دنیا رو تغییر بدن، دقیقا همونایین که دنیا رو تغییر میدن.

در همون سال‌ها بود که ما مهاجرتی از تهران به بندرعباس داشتیم و خب حقیقتا این مهاجرت و دوری از فضای تهران – بویژه محله‌ای که درش بزرگ شده بودم و طبیعتا بسیاری از هم‌کلاسی‌های دبیرستانم هم قرار بود همون بچه‌های راهنمایی و دبستان باشند – باعث شده بود کمی ناامید و افسرده باشم. تمام این دلایل دست به دست هم دادند که من تصمیم بگیرم که بخوام استیو جابز دوم باشم (شاید اشتباه همین بود، هوم؟).

خلاصه شبانه‌روز در حال ایده‌پردازی بودم. اما ایده‌ها همین جا متوقف نشدند. ایده‌ها خیلی بیش از اون چه که فکر کنید پیش رفتند در ذهنم. اما نیاز داشتم یک محرک خیلی اولیه داشته باشم. نمی‌دونستم چه محرکی ولی بهرحال یک محرک نیاز بود.

محمدرضا حقیری (چپ) و رضا باقرزاده (راست) - توسعه‌دهندگان پروژه جبیر

من باید سیستم‌عامل بسازم

بالاخره پیداش کردم. محرکی که لازم داشتم تا باهاش دنیا رو تغییر بدم، پیدا کرده بودم. شاید باورتون نشه ولی به معنای واقعی در نقطه نقطه بدنم شور و شوق رو حس می‌کردم و برای انجام این کار، انگیزه بسیار بسیار زیادی داشتم. حالا که این انگیزه بود، سوال اینجاست که چرا نه؟ اما قبل از هرچیزی بهتره ببینیم که این انگیزه چی بود.

نمی‌دونم شما چقدر با نشریات قدیمی آشنایید ولی نشریه مورد علاقه من، یا بهتر بگم یکی از نشریات مورد علاقه من، مجله دانشمند بود. مجله دانشمند مطالب علمی و فنی جالبی داشت. در اون می‌شد از ژنتیک و زیست‌شناسی تا هوش مصنوعی و … رو خوند و یاد گرفت و لذت برد. در بسیاری از شماره‌هاش، کارهای عملی رو توضیح می‌داد که شما می‌تونستید در خانه انجام بدید و … . خلاصه کلام که یکی از بهترین نشریاتی بود که می‌خوندم.

در تابستان ۸۹ یا ۹۰ بود که درست یادم نیست؛ در یکی از شماره‌های دانشمند کتاب «سیستم‌های عامل: طراحی و پیاده‌سازی» اثر «اندرو استوارت تنن باوم» معرفی شده بود. به صورت خلاصه بگم، در این مطلب اومده بود که انگیزه تنن‌باوم از نوشتن این کتاب چی بوده و چه فرایندی (بسته شدن کد منبع یونیکس نسخه ۷) باعث شد که سیستم‌عامل خودش رو از بیخ بنویسه و بعد از اون، شروع کنه به این که مراحل توسعه رو مستند کنه و در قالب یک کتاب برای دانشجویانش و هم‌چنین علاقمندان عرضه‌ش کنه.

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

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

نخستین مطالعات، نخستین پیاده‌سازی‌ها

خب من بعد از خوندن اون مطالب یادمه که کتابی به اسم «کلید لینوکس» که آموزشش بر مبنای «اوبونتو ۱۰.۰۴» بود رو خوندم و خیلی چیزا ازش یاد گرفتم. در عین حال، روی یک ماشین مجازی اوبونتو نصب کردم و کمی از آموزش‌هایی که از لینوکس دیده بودم بهره بردم که ببینم چه خبره و دنیاش دست کیه. بعد از اون خلاصه اینطور شد که یک روز تصمیم گرفتم اوبونتو ۱۱.۰۴ (یا دقیق یادم نیست، ۱۱.۱۰) رو روی لپتاپم نصب کنم و حین نصب کل دیتام هم پرید.

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

این داستان ادامه دارد …

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

امیدوارم که این مطالب، اطلاعات خوبی به شما از روند یک پروژه اوپن سورس که از قضا در جاهای مختلفی به شدت اشتباه زده؛ بده و براتون مفید واقع بشه. از این که وقت گذاشتید و این مطلب رو خوندید، ممنونم.

Share