مینکس اور لینکس

لینکس ایک آزاد مصدر آپریٹنگ سسٹم ہے اور آپ یہ بات جانتے بھی ہیں، اور کچھ بعید نہیں کہ آپ اسے استعمال بھی کرتے ہوں، تاہم ہوسکتا ہے کہ آپ نے مینیکس MINIX آپریٹنگ سسٹم کے بارے میں نہ سنا ہو۔ مختصراً ہم کہہ سکتے ہیں کہ مینیکس وہ پہلا بیج تھا جس نے لینکس کو جنم دیا۔ اس کی ایک کہانی ہے، اس کہانی سے ہم کچھ سبق حاصل کر سکتے ہیں۔ اگر آپ کو اس میں کچھ دلچسپی ہے تو ازراہِ کرم مضمون کا مطالعہ جاری رکھیں۔

اینڈریو ایس تانیبوم(Andrew S. Tanenbaum) اپنی مشہورِ زمانہ کتاب Operating Systems: Design and Implementation میں مختصراً مینیکس کا قصہ سناتے ہیں جس کے لیے ایک الگ ذیلی باب متعین ہے جس کا عنوان ہے "مینکس کی تاریخ”۔

یہ مضمون مذکورہ کتاب کے اسی ذیلی باب پر انحصار کرتا ہے۔ یہ کتاب آپریٹنگ سسٹم کے نظریات، اور ان کی ایک چھوٹے سے تعلیمی (مگر حقیقی) آپریٹنگ سسٹم پر پریکٹیکل پر بحث کرتی ہے اور اس ضمن میں ایک اچھوتی کتاب ہے۔ اس کتاب کے ذریعے طالبِ علم نظریاتی اصولوں یعنی تھیوری کی تعلیم کے دوران عملی یعنی پریکٹیکل پہلوؤں سے بخوبی آشنا ہوسکتے ہیں۔ در حقیقت کتاب کا تین چوتھائی حصہ مینکس آپریٹنگ سسٹم کے سورس کوڈ کے بیان پر مشتمل ہے جو 27600 سطور سے زیادہ ہے۔ دلچسپ بات یہ ہے کہ تانیبوم نے کچھ اسمبلی لینگویج کے ساتھ سارا آپریٹنگ سسٹم سی لینگویج میں خود لکھا اور اسے کتاب کے پہلے ایڈیشن کے ساتھ 1987ء میں مکمل شائع کردیا۔ یونیورسٹی میں درس و تدریس میں مصروف

ایک پروفیسر کو ایک آپریٹنگ سسٹم لکھنے کی کیا سوجھی؟

اینڈریو تانیبوم

کہانی یہ ہے کہ ’’یونیکس UNIX‘‘ کا مصدر یا سورس کوڈ آپریٹنگ سسٹم کے موضوع کو پڑھانے کے لیے یونیورسٹیوں میں استعمال ہوتا ہے (یقیناً ہماری یونیورسٹیوں میں نہیں کیونکہ اس مرحلے میں ہمارا طالبِ علم بمشکل تمام کوڈ پڑھنے کے قابل ہوتا ہے۔ تاہم یہ ایک الگ کہانی ہے)۔ معاملہ یہاں تک پہنچا کہ کسی نے ایک کتابچہ تحریر فرمایا اور آپریٹنگ سسٹم کے کوڈ کی سطر باسطر تفصیل لکھ ڈالی۔ یہ کتابچہ کئی یونیورسٹیوں میں اے ٹی اینڈ ٹی AT&T کی اجازت سے جہاں پہلی بار یونیکس کو تیار گیا تھا، پڑھایا جاتا رہا۔ یونیکس کے چھٹے ورژن تک معاملات یوں ہی چلتے رہے، ساتویں ورژن سے اے ٹی اینڈ ٹی کو یونیکس کی ایک تجارتی پراڈکٹ کے طور پر قیمت کا اندازہ ہوگیا۔ چنانچہ اس نے یونیکس کے کوڈ کو تدریسی مواد میں پڑھانے پر پابندی لگادی۔ اس پر زیادہ تر یونیورسٹیوں کا ردِ عمل حسبِ توقع تھا۔ انہوں نے یونیکس کو پڑھانا بند کردیا اور صرف تھیوری کی تدریس پر اکتفاء کرنے لگے۔ مگر تانیبوم کا ردِ عمل عجیب اور انوکھا تھا۔ اس نے محسوس کیا کہ آپریٹنگ سسٹم کی صرف نظریاتی تدریس ناقص ہے اور طالبِ علم کو آپریٹنگ سسٹم کی حقیقت کا صرف یک طرفہ اور ناقص تصور دیتی ہے۔ وہ نظریات جن پر عام طور پر زور دیا جاتا ہے (جیسے scheduling algorithms)عملی طور پر اتنی اہمیت کی حامل نہیں ہوں گے۔ جبکہ کچھ اہم عملی حصوں کو کم نظریاتی کوریج ملے گی (جیسے فائل سسٹم) کیونکہ نظریاتی طور پر اس پر کہنے کو کچھ زیادہ نہیں ہے۔

تانیبوم نے پھر کیا کیا؟ اس نے کس طرح اس برتاؤ پر اعتراض اٹھایا؟

اس نے اپنے کمپیوٹر کے سامنے کرسی کھینچی اور صفر سے ایک نیا آپریٹنگ سسٹم لکھ ڈالا۔ مگر صارف کے نقطہء نظر سے ، انتہائی سمجھداری سے، مینیکس یونیکس جیسا ہی ہے اور اس میں وہ تمام جانے پہچانے پروگرام موجود ہیں (جیسے cat اور grep اور ls اور make وغیرہ)۔ لیکن اپنے ڈھانچے اور کوڈ میں یہ قطعی مختلف ہے۔ تانیبوم نے یونیکس 7 کے کوڈ میں سے ایک سطر تک استعمال نہیں کی تاکہ کسی قسم کی ممکنہ قانونی پیچیدگیوں سے بچا جاسکے۔ ساتھ ہی اس نے مینیکس کو سیکھنے کی غرض سے آسان بنایا۔اس کی ترکیب واضح رکھی اور اس کی انحصاریوں کو مختصر کیا۔ اس طرح طالب علموں کو ایک جانا پہچانا اور پڑھنے میں آسان آپریٹنگ سسٹم دستیاب ہوگیا جس کی وہ بخوبی تشریح کر سکتے تھے جیسے –

تانیبوم کے بقول-حیاتیات کے طالبِ علم مینڈک کی تشریح کرتے ہیں۔

مینکس کا ڈیسک ٹاپ

1987ء میں کتاب کے پہلے ایڈیشن کے ساتھ مینیکس 1 جاری کیا گیا، پھر 1997ء میں کتاب کے دوسرے ایڈیشن کے ساتھ مینیکس 2 جاری کیا گیا اور پھر 2005ء میں کتاب کے تیسرے ایڈیشن کے ساتھ جاری ہونے والے مینیکس 3 کے ذیلی نسخوں پر کام جاری ہے جو اب کافی ترقی کر گیا ہے۔ اب یہ کوشش کی جا رہی ہے کہ اسے ایک تعلیمی آپریٹنگ سسٹم کی بجائے ایک بھرپور اور ہر طرح سے مکمل آپریٹنگ سسٹم بنایا جائے اور اس کام میں پروفیسر تانیبوم کی مدد اس کے کچھ طالب علموں کا ایک گروہ کر رہا ہے۔ اگر آپ کو اس آپریٹنگ سسٹم میں دلچسپی ہے اور آپ اس کی ترقی میں کوئی کردار ادا کر سکتے ہیں تو آپ اسے مفت میں اس کی ویب سائٹ http://www.minix3.org/ سے ڈائون لوڈ کر سکتے ہیں۔ جبکہ نظام کے بارے میں ویب سائٹ پر مزید تفصیلی معلومات بھی آپ کو مل جائیں گی نیز اس کی انسٹالیشن کا طریقہ کار اور ڈاکیو مینٹیشن بھی اس ویب سائٹ پر موجود ہے۔ بہرحال ہمیں اس وقت اس آپریٹنگ سسٹم کی مشہورِ زمانہ آپریٹنگ سسٹم لینکس سے تعلق پر دلچسپی ہے۔ ویسے MINIX در حقیقت mini-Unixکا مخفف ہے۔

مینیکس کے پہلی بار منظرِ عام پر آنے کے بعد اس پر بحث کے لیے USENET پر comp.os.minix نامی گروہ بنایا گیا۔ چند ہی ہفتوں میں گروہ کے ارکان کی تعداد چالیس ہزار سے تجاوز کر گئی اور روزانہ کی بنیاد پر ہزاروں تجاویز کی بھرمار ہوگئی جو تانیبوم کے لیے مسئلہ بن گیا۔ بعض حضرات نے تو پروفیسر صاحب کی مدد کے لئے باقاعدہ کوڈ لکھ لکھ کر بھیجنے شروع کردیے تاہم تانیبوم کئی سالوں تک ان تجاویز پر مزاحمت کرنے میں کامیاب رہا۔ اس کی وجہ یہ تھی کہ وہ مینیکس کو صاف ستھرا، پیچیدگیوں سے پاک اور مختصر رکھنا چاہتا تھا تاکہ طالب علم اسے آسانی سے سمجھ سکیں اور کم سے کم انحصاریوں پر اسے چلایا جاسکے جو طالب علم آسانی سے دستیاب کر سکیں۔یہاں تانیبوم کا جذبہ قابل ستائش ہے کہ وہ چاہتے تو اس آپریٹنگ سسٹم کو بھی تجارتی پیمانے پر فروخت کرسکتے تھے، مگر انہوں نے اپنے مقصد سے انحراف نہیں کیا۔

کئی طالب علموں نے اپنے کمپیوٹر خریدے اور مینیکس نصب کر کے اس کے کوڈ کا مطالعہ شروع کردیا۔ ان طالب علموں میں فن لینڈ کا ایک طالب علم لینس ٹوروالڈز(Linus Torvalds) بھی تھا۔ مینیکس کو نصب کرنے اور اسے پڑھنے کے بعد اس نے مینیکس سے ایسے کام لینے چاہے جو اس وقت مینیکس کے بس کے نہیں تھے۔ چنانچہ اس نے اپنی طرف سے اس میں مزید خوبیوں کا اضافہ شروع کردیا اور اس طرح اگست 1991ء  تک اس کے پاس ایک ابتدائی کرنل تیار ہوگیا۔ 25 اگست 1991ء میں اس نے اس کرنل کا comp.os.minix میں اعلان کردیا جس سے کئی دوسروں لوگوں کی اس میں دلچسپی پیدا ہوئی اور وہ اس کی مدد کرنے آپہنچے۔یوں 13 مارچ 1994ء میں لینکس 1.0جاری کیا گیا جو اس کے بعد کبھی نہیں رکا بلکہ دیگر تجارتی آپریٹنگ سسٹمز کے لیے خطرہ بن گیا۔آج لینکس ترقی کی جس بلند عمارت پر براجمان ہے، اس کی بنیاد ننھے مینیکس پر تھی، یہ بات بڑی منفرد محسوس ہوتی ہے۔

مینیکس کی تاریخ کے اس مختصر بیان کے بعد ہم چند نکات کی طرف توجہ دلانا چاہتے ہیں جو اس ساری کہانی میں نوٹ کیے جاسکتے ہیں:

پہلا نکتہ: درس و تدریس کی دنیا کا ایک رکن ایک حقیقی آپریٹنگ سسٹم لکھ سکتا ہے۔ ہم نے اوپر سوال کیا تھا کہ یونیورسٹی میں مصروف ایک پروفیسر کو ایک آپریٹنگ سسٹم لکھنے کی کیا سوجھی؟ در حقیقت یہ سوال درست نہیں ہے۔ اصل سوال یہ ہے کہ کیا یونیورسٹی کا کوئی پروفیسر آپریٹنگ سسٹم لکھ سکتا ہے؟

ہمارے زمینی حقائق کے پیشِ نظر یہ تصور ہی بذات خود ہمارے لیے عجیب وغریب ہے۔ہم جانتے ہیں کہ وریجی یونیورسٹی نیدرلینڈ کے ہر پروفیسر نے آپریٹنگ سسٹم نہیں لکھا۔ تاہم اس سے ہمیں ان یونیورسٹیوں میں پڑھانے والے اساتذہ کی اہلیت کا ایک نمونہ ضرور ملتا ہے (دیگر مثالیں بھی موجود ہیں)۔ کیا ایسی مثالیں ہماری یونیورسٹیوں میں ہیں؟
غور کریں کہ تانیبوم نے یہ محض اپنے طالب علموں پر اپنی توجہ کے باعث کیا تاکہ انہیں سیکھنے کے لیے کوئی حقیقی چیز مل سکے۔ اس محرک سے بھی قطع نظر کچھ کر دکھانے کی اس کی یہ اہلیت دوسرے نکتے کی طرف لے جاتی ہے…!

دوسرا نکتہ: بیرونی جامعات میں تعلیم کا معیار اور نوعیت، وہی سوال دوبارہ دہرایا جاتا ہے، مگر اس بار لینس ٹوروالڈز کو سامنے رکھتے ہوئے ۔کیا ہماری یونیورسٹوں کا کوئی طالب علم آپریٹنگ سسٹم (یا اس کا کوئی حصہ) لکھ سکتا ہے؟ اگر ہمارے اس مجوزہ طالب علم کو ایسی یونیورسٹیوں کی تعلیم نہ ملتی، تانیبوم کی کتاب جیسی کوئی کتاب نہ ملتی، مینیکس جیسا آزاد مصدر تعلیمی آپریٹنگ سسٹم نہ ملتا تو کیا وہ ایسا کر سکتا تھا؟ یہ دیکھ کر افسوس ہوتا ہے کہ ہمارے طالب علم کو آپریٹنگ سسٹمز سے متعلقہ اصطلاحات تک کا بمشکل تمام علم ہوتا ہے۔ یہ بھی عام طور پر دیکھا گیا ہے کہ متعلقہ شعبے کے طالب علموں میں سے شاید ہی کسی کو یہ پتہ ہو کہ آپریٹنگ سسٹم کیسے بوٹ کرتا ہے اور اس کے بنیادی اصول کیا ہیں کجا یہ کہ وہ ایسا کوئی کوڈ لکھ سکیں جو مکمل طور پر یہ کام انجام دے سکے۔یہاں اہم ان طالبعلموں کا ذکر نہیں کررہے جو اپنی خدا داد صلاحیتیوں کے بل بوتے پر خود یہ تمام ضروری چیزیں سیکھتے ہیں۔ ہمارا مقصد اس تعلیمی نظام و نصاب کو تنقید کا نشانہ بنانا ہے جو طالب علموں کو ایک کمپیوٹر آپریٹر تو بنا دیتا ہے لیکن ایک تخلیقی ذہن تیار نہیں کرسکتا۔

تیسرا نکتہ: یہ ایک پیچیدہ نکتہ ہے جس پر ایک طویل مباحثے کی ضرورت ہے تاہم ہم اسے یہاں چند سطور میں بیان کرنے کی کوشش کرتے ہیں۔ عام طور پر درست آغاز درست انجام تک لے جاتا ہے اور برعکس بھی۔ ہمیں درست سمت میں اٹھتے معمولی پیش قدمیوں کے نتائج کی اہمیت کم نہیں کرنی چاہیے۔ ایک طالبِ علم کی ایک آزاد مصدر آپریٹنگ سسٹم میں دلچسپی، اپنی ضروریات پوری کرنے کے لیے اس میں کی گئی تبدیلیاں اور دیگر دلچسپی لینے والوں کا اس میں تعاون، لینکس جیسے انقلاب پر منتج ہوا جس نے کمپیوٹنگ کی دنیا کا نقشہ ہی بدل دیا۔ یہاں ہمیں حوصلہ بڑھانے، ناممکن کا مقابلہ کرنے، ہار نہ ماننے اور مسلسل کوشش کرتے رہنے کا مشورہ دینے والی کئی آوازیں اٹھتی دکھائی دیتی ہیں … لیکن جو بات ذہنوں سے پوشیدہ رہتی ہے یہ ہے کہ لینس کی کوشش در حقیقت ایک ایسے شخص کی طرف سے آئی جو اہل تھا اور کوشش کرنے کے قابل اور اس کے لیے تیار بھی تھا۔ ہر چیز کی کوئی نہ کوئی وجہ ضرور ہوتی ہے اور درست تیاری کی ہر میدانِ جنگ میں ضرورت ہوتی ہے۔ کسی کو اس مغالطے میں ڈالنا کہ اس کی سچی کوشش ہی منزل تک پہنچنے کے لیے کافی ہے، غلط ہے۔ آپ کو پہلے اس سے درست تیاری کروانی ہوگی، پھر اچھے نتائج کے انتظار میں اس سے ذرا بھی رعایت نہ برتیں۔

ایک آخری بات جو اتنی اہمیت کی حامل تو شاید نہ ہو مگر ہم اس پر سوچنے سے خود کو باز نہیں رکھ پا رہے۔ اگر سالوں پہلے تانیبوم لوگوں کے مشوروں پر عمل کرتا اور مینیکس کی ایک بھرپور آپریٹنگ سسٹم کے طور پر لینس سے پہلے خامیاں دور کرتا تو کیا لینکس کا انقلاب مینیکس کے نام سے ہوسکتا تھا؟ یا اگر تانیبوم اور لینس کے ذہن خدمت کے بجائے پیسہ سوار ہوجاتا تو کیا ہوتا؟ جواب خود تلاش کیجیے

linuxlinux urduminixاوپن سورسلینکسمینکس