یونیکس

از آغاز تا عرضه

داستان از سال ۱۹۶۰ آغاز می‌شود. در این زمان فکر سامانه‌های اشتراک زمان مطرح بود و نخستین سیستم‌عامل چند کاربره طراحی شد که به عنوان کارگزار(Server) می‌توانست با نصب شدن بر روی یک رایانه به چند رایانه دیگر سرویس دهد. این سیستم‌عامل که CTSS نام داشت و می‌توانست ۲۰ کاربر را با یک رایانه IBM ۷۰۹۰ به خوبی اداره کند به شدت مورد توجه و مفید واقع شد و همه دریافتند که بخش عظیمی از رایانه‌های آینده از این فناوری بهره خواهند گرفت. به‌طوری‌که در سال ۱۹۶۵ سه شرکت از برجسته‌ترین نقش آفرینان رایانه در جهان، مؤسسه فناوری ماساچوست، آزمایشگاه‌های بل و جنرال الکتریک، یک سیستم‌عامل اشتراک زمان آزمایشی برای مین‌فریم جی‌ای-۶۴۵ طراحی کردند که مولتیکس نامیده می‌شد.
مولتیکس نوآوری‌های بسیاری را پیش روی نهاد، اما در عوض مشکلات فراوانی هم داشت. این سیستم اجزای زیادی داشت و از حد معین بزرگ‌تر شد. آزمایشگاه‌های بل که از پیچیدگی زیاد مولتیکس ناامید شده بود، به آهستگی از پروژه کناره گرفت. آخرین محققان آن‌ها، کن تامسون، دنیس ریچی، داگلاس مکیلروی و جو اوسانا تصمیم گرفتند کار را از آغاز اما در مقیاسی کوچک‌تر از سر بگیرند. ریچی گفت «چیزی که ما می‌خواستیم، تنها یک محیط خوب برای برنامه‌نویسی نبود، بلکه سامانه‌ای بود که بتوان گرد آن دوستی را شکل داد.»
در ۱۹۷۰، پیتر نیومن نام Unics را برای پروژه ابداع کرد. این نام در حقیقت یک جور بازی با نام مولتیکس (Multics) بود. دنیس ریچی، کن تامسون و برایان کرنیگان، یونیکس (Unics) را بر اساس مولتیکس در آزمایشگاه بل پدید آوردند. بعدها که Unics توانست هم‌زمان به چند کاربر سرویس دهد، به Unix آوازه یافت.
تا آن زمان، هیچ حمایت مالی از طرف آزمایشگاه‌های بل وجود نداشت. وقتی که گروه تحقیقات علوم رایانه می‌خواست از یونیکس بر روی یک رایانه بزرگ‌تر از پی‌دی‌پی-۷ استفاده کند، تامسون و ریچی قول دادند که برای ماشین پی‌دی‌پی۱۱/۲۰‎، قابلیت‌های پردازش متن را به یونیکس اضافه کنند. این کار باعث حمایت مالی آزمایشگاه بل شد. برای اولین بار در سال ۱۹۷۰، سیستم‌عامل یونیکس رسماً نامگذاری و بر روی یک پی‌دی‌پی۱۱/۲۰‎ اجرا شد. یک برنامه قالب‌بندی متن به نام roff و یک ویرایشگر متن هم اضافه شدند. تمام این سه جزء (یونیکس، roff و ویرایشگر متن) به زبان اسمبلی ماشین پی‌دی‌پی۱۱/۲۰‎ نوشته شده بودند. آزمایشگاه‌های بل از این سیستمِ پردازش متن اولیه که از یونیکس، roff و ویرایشگر تشکیل شده بود، برای پردازش متن برنامه‌های پتنت شده‌استفاده کرد. roff به زودی به troff، اولین برنامه چاپ و نشر الکترونیکی با قابلیت کامل حروف‌چینی تبدیل شد. کتاب راهنمای برنامه‌نویسان یونیکس هم در سوم نوامبر ۱۹۷۱ چاپ شد.
از آن جا که ای‌تی‌اندتی، یکی از شرکت‌های دست اندرکار، از پروژه کنار گرفته بود، بنا بر قوانین آمریکا نمی‌توانست از یونیکس استفادهٔ بازرگانی کند؛ به این ترتیب یونیکس رایگان به بازار عرضه شد. ای‌تی‌اندتی نیز یونیکس را برای دانشگاه‌های مختلف فرستاد و یونیکس کم‌کم در محافل علمی محبوب شد.

بازنوشتن به زبان سی

در ۱۹۷۲، یونیکس به زبان سی بازنوشته شد. این برخلاف پندار همگانی آن زمان بود که می‌گفت «هر چیز پیچیده‌ای مثل یک سیستم‌عامل که باید با رویدادهای حساس به زمان سر و کار داشته باشد، باید منحصراً به زبان اسمبلی نوشته شود.» نتیجه مهاجرت از زبان اسمبلی به زبان سطح بالاتر سی این بود که کد یونیکس پرتابلتر و قابل حمل‌تر شد و برای اجرا بر روی ماشین‌های دیگر تنها کافی بود قسمت‌های کوچکی از آن به زبان اسمبلی مخصوص همان ماشین نوشته شوند.
ای‌تی‌اندتی کد منبع یونیکس را تحت مجوزهایی در دسترس دانشگاه‌ها، شرکت‌های تجاری و دولت ایالات متحده قرار داد. مجوزها در همه جای کد منبع قرار داده شده بودند، حتی کدهای وابسته به ماشین در داخل هسته سیستم‌عامل، که به زبان اسمبلی پی‌دی‌پی-۱۱ نوشته شده بودند. در اواخر دهه ۱۹۷۰، کدهای منبع یونیکس در کتابی به نام «نسخه ۶ یونیکس به روایت لیونز، به همراه کد منبع» که توسط جان لینوز نوشته شده بود، به صورت گسترده منتشر شد. این کار باعث شد یونیکس به شکل قابل توجهی برای مقاصد آموزشی استفاده گردد.

ویرایش‌های گوناگون

نسخه‌های سیستم‌عامل یونیکس، توسط ویرایش‌های کتاب راهنمای کاربرانش مشخص می‌شدند. برای مثال «پنجمین ویرایش یونیکس» و «نسخه ۵ یونیکس» هر دو برای اشاره به یک نسخه استفاده می‌شدند. توسعه یونیکس با انتشار نسخه‌های ۴، ۵ و ۶ که در سال ۱۹۷۵ ادامه یافت. در این نسخه‌ها مفهوم تازهٔ لوله‌ها اضافه شده بود که به طراحی ماژولار یونیکس و چرخه توسعه سریع‌تر آن کمک کرد. نسخهٔ ۵ و به ویژه نسخهٔ ۶، به پیدایش نسخه‌های مختلفی از یونیکس، چه در داخل آزمایشگاه‌های بل و چه در خارج از آن انجامید. مانند پی‌دبلیوبی/یونیکس و همچنین اولین نسخه تجاری یونیکس یعنی آی‌اس/۱. همان‌طور که قسمت‌های بیش‌تری از یونیکس به زبان سی بازنویسی می‌شد، پرتابل بودن آن هم افزایش می‌یافت و آسان‌تر می‌شد آن را به دیگر سکوها انتقال داد. یونیکس توسط گروهی در دانشگاه ولونگوگ به اینتردیتا ۷/۳۲ پورت شد. آزمایشگاه‌های بل هم چند نسخه مختلف برای اهداف تحقیقاتی و استفاده داخلی در همان جا توسعه داد.
در سال ۱۹۷۴ دانشجویان دانشگاه برکلی آغاز به برنامه‌نویسی برای یونیکس می‌کردند و آن را برای دانشگاه‌های دیگر و ای‌تی‌اندتی فرستادند وبا ادامهٔ این کار یونیکس در سال ۱۹۷۷ به یک سیستم‌عامل کامل تبدیل می‌شود.
در می ۱۹۷۵، دارپا مزایای سیستم اشتراک زمانی یونیکس که «چند قابلیت جالب ارائه کرده بود» را در RFC 681 مستند کرد. در ۱۹۷۸، یونیکس/۳۲وی برای وی‌ای‌اکس، سیستم جدید DEC عرضه شد. در آن هنگام، یونیکس به اَشکال مختلفی بر روی ۶۰۰ ماشین اجرا می‌شد. آخرین نسخه تحقیقاتی از یونیکس، یعنی نسخه ۷ یونیکس، در سال ۱۹۷۹ منشتر شد. نسخه‌های ۸، ۹ و ۱۰ هم در دهه ۱۹۸۰ نوشته شدند اما فقط در بین چند دانشگاه منتشر شدند. دانشگاه‌های دیگر نیز مانند ام‌آی‌تی، Purdue، استنفورد و... کارهای بسیاری برای یونیکس کردند.
با نوشتن برنامه‌های اینترنتی برای یونیکس در سال ۱۹۸۰ به وسیلهٔ دانشگاه برکلی یونیکس در سازمان‌های دولتی و شرکت‌های شبکه و کارگزارها(Servers) به گستردگی به کار گرفته شد.