یونیکس

تایم لاین یونیکس
سخنرانان کنفرانس تابستانی یوزنیکس در سال ۱۹۸۴، دنیس ریچی، اریک آلمن، ساموئل لفلر، مایکل کارلز و تعدادی دیگر در تصویر دیده می‌شوند.
یونیکس یک سیستم‌عامل با قابلیت چندکارگی و چند کاربره است که در سال ۱۹۶۹ به دست گروهی از کارمندان آزمایشگاه‌های بل متعلق به شرکت تلفن و تلگراف آمریکا (.AT-T Corp) شروع به توسعه شد. این گروه را کن تامسون، دنیس ریچی، برایان کرنیگان، داگلاس مکیلروی مایکل لسک و جو اوسانا شکل می‌دادند.
یونیکس در آغاز به زبان اسمبلی نوشته شد اما در سال ۱۹۷۳ به‌طور کلی به زبان سی بازنویسی شد، که این کار توسعه یونیکس و پورت کردن آن به دیگر platform (سکو)ها را ساده‌تر می‌کرد. یونیکس در ابتدا برای استفاده در بل سیستم در نظر گرفته شد ولی از اواخر دهه ۷۰ .AT-T Corp مجوز یونیکس را به طرف‌های بیرونی مختلفی داد که منجر به گونه‌های آکادمیک و تجاری از یونیکس شد، مانند BSD از دانشگاه کالیفرنیا، برکلی، AIX از آی‌بی‌ام، SunOS/سولاریس از سان مایکروسیستمز و زنیکس از مایکروسافت. شرکت تلفن و تلگراف آمریکا در ابتدای دهه ۹۰ حقوق خود در یونیکس را به شرکت نوول فروخت که نوول هم تجارت یونیکس را به شرکت سانتا کروز اوپریشن در سال ۱۹۹۵ فروخت؛ ولی نشان تجاری یونیکس در اختیار اوپن گروپ که یک کنسرسیوم استانداردهای تجاری است قرار گرفت و این گروه این نشان را به نام خود ثبت کرده‌است. تنها سیستم‌هایی که به صورت کامل با مشخصات یونیکس یکتا سازگار باشند و مبلغی پول به کنسرسیوم اوپن گروپ بپردازند، واجد شرایط استفاده از نام یونیکس هستند. دیگر سیستم‌ها می‌توانند شبه یونیکس نامیده شوند، هرچند که موسسه اوپن گروپ این نام را رد کرده‌است.
در اواخر دهه ۱۹۷۰ و اوایل دهه ۱۹۸۰، نفوذ یونیکس در محافل دانشگاهی (به‌ویژه ویرایش BSD که از دانشگاه برکلی سرچشمه گرفته‌است) باعث پذیرش گسترده یونیکس توسط شرکت‌های مختلف شد و نسخه‌های تجاری مختلفی از یونیکس پدید آمد، همانند SunOS, اچ‌پی-یواکس, AIX.
علاوه بر یونیکس‌های تایید شده که اسامی بعضی از آن‌ها ذکر شد، سیستم‌عامل‌هایی هم وجود دارند که شبه یونیکس نامیده می‌شوند مانند مینیکس، نوادگان بی‌اس‌دی مانند فری‌بی‌اس‌دی, نت‌بی‌اس‌دی، اپن‌بی‌اس‌دی، دراگون‌فلی‌بی‌اس‌دی و لینوکس. این سیستم‌ها با آن که با استانداردهای یونیکس کاملا یا کمابیش سازگار اند، اما توسط موسسه اپن گروپ تایید نشده‌اند و حق استفاده از نام Unix را ندارند. اصطلاح یونیکس سنتی ممکن است برای توصیف سیستم‌عامل‌هایی که مشخصات و ویژگی‌های نسخه ۷ یونیکس یا نسخه ۵ یونیکس را دارند، استفاده شود.
هنگامی که کن تامسون هنوز به مولتیکس دسترسی داشت، شبیه‌سازهایی برای سیستم صفحه‌بندی و فایل سیستم نوشت. او همچنین یک بازی رایانه‌ای به نام سفر فضایی نوشت، اما این بازی برای اجرا شدن به یک ماشین کارامدتر و ارزان‌تر احتیاج داشت و سرانجام او یک پی‌دی‌پی-۷ کم‌استفاده در آزمایشگاه‌های بل پیدا کرد. در سال ۱۹۶۹ تیمی به رهبری تامسون و ریچی، بر روی این ماشین پی‌دی‌پی-۷ یک سیستم فایل سلسله مراتبی، مفاهیم فرایند و فایل دستگاه، یک مفسر خط فرمان و تعدادی برنامه کوچک دیگر نوشتند.
اگر گفته شود یونیکس آغازگر «دوره اطلاعات» و در امتداد آن «عصر اینترنت» است، سخنی گزاف نیست. در واقع تا همین امروز هم، تقریبا ٪۱۰۰ پروتکل‌های مهم و باز که جنبش اینترنت را پدید آورده‌اند، مانند وب، از خانواده یونیکس آمده و می‌آیند. اینترنت در آغاز در یونیکس گسترش یافت و تا سال‌ها، واژه «اینترنت» در میان کاربران یونیکس واژه‌ای کاملا عادی و روزمره بود، درحالی که دیگران حتی این واژه را نشنیده بودند یا با اکراه تمام به آن بی‌اعتنایی و حتی آن را مسخره می‌کردند.
سیستم‌های یونیکس امروزی به شاخه‌های مختلفی تبدیل شده‌است که در مرور زمان به دست ای‌تی‌اندتی توسعه داده شده. یونیکس طوری طراحی شده‌است تا قابل انتقال به هر سیستم چندکاره و چندکاربره باشد. سیستم‌های یونیکس با ایده‌های جدیدی که مطرح کرده‌اند، شناخته می‌شوند: پرونده‌های متنی ساده، مفسر خط فرمان و فایل سیستم سلسله مراتبی و غیره. در مهندسی نرم‌افزار، از یونیکس به خاطر زبان برنامه‌نویسی سی و فلسفه یونیکس یاد می‌شود.
پیشینه
از آغاز تا عرضه
داستان از سال ۱۹۶۰ آغاز می‌شود. در این زمان فکر سامانه‌های اشتراک زمان مطرح بود و نخستین سیستم‌عامل چند کاربره طراحی شد که به عنوان کارگزار(Server) می‌توانست با نصب شدن بر روی یک رایانه به چند رایانه دیگر سرویس دهد. این سیستم‌عامل که CTSS نام داشت و می‌توانست ۲۰ کاربر را با یک رایانه IBM ۷۰۹۰ به خوبی اداره کند به شدت مورد توجه و مفید واقع شد و همه دریافتند که بخش عظیمی از رایانه‌های آینده از این فناوری بهره خواهند گرفت. به‌طوری‌که در سال ۱۹۶۵ سه شرکت از برجسته‌ترین نقش آفرینان رایانه در جهان، موسسه فناوری ماساچوست، آزمایشگاه‌های بل و جنرال الکتریک، یک سیستم‌عامل اشتراک زمان آزمایشی برای مین‌فریم جی‌ای-۶۴۵ طراحی کردند که مولتیکس نامیده می‌شد.
مولتیکس نوآوری‌های بسیاری را پیش روی نهاد، اما در عوض مشکلات فراوانی هم داشت. این سیستم اجزای زیادی داشت و از حد معین بزرگ‌تر شد. آزمایشگاه‌های بل که از پیچیدگی زیاد مولتیکس ناامید شده بود، به آهستگی از پروژه کناره گرفت. آخرین محققان آن‌ها، کن تامسون، دنیس ریچی، داگلاس مکیلروی و جو اوسانا تصمیم گرفتند کار را از آغاز اما در مقیاسی کوچک‌تر از سر بگیرند. ریچی گفت «چیزی که ما می‌خواستیم، تنها یک محیط خوب برای برنامه‌نویسی نبود، بلکه سامانه‌ای بود که بتوان گرد آن دوستی را شکل داد.»
در ۱۹۷۰، پیتر نیومن نام Unics را برای پروژه ابداع کرد. این نام در حقیقت یک جور بازی با نام مولتیکس (Multics) بود. دنیس ریچی، کن تامسون و برایان کرنیگان، یونیکس (Unics) را بر اساس مولتیکس در آزمایشگاه بل پدید آوردند. بعدها که Unics توانست هم‌زمان به چند کاربر سرویس دهد، به Unix آوازه یافت.
تا آن زمان، هیچ حمایت مالی از طرف آزمایشگاه‌های بل وجود نداشت. وقتی که گروه تحقیقات علوم رایانه می‌خواست از یونیکس بر روی یک رایانه بزرگ‌تر از پی‌دی‌پی-۷ استفاده کند، تامسون و ریچی قول دادند که برای ماشین پی‌دی‌پی۱۱/۲۰، قابلیت‌های پردازش متن را به یونیکس اضافه کنند. این کار باعث حمایت مالی آزمایشگاه بل شد. برای اولین بار در سال ۱۹۷۰، سیستم‌عامل یونیکس رسما نامگذاری و بر روی یک پی‌دی‌پی۱۱/۲۰ اجرا شد. یک برنامه قالب‌بندی متن به نام roff و یک ویرایشگر متن هم اضافه شدند. تمام این سه جزء (یونیکس، roff و ویرایشگر متن) به زبان اسمبلی ماشین پی‌دی‌پی۱۱/۲۰ نوشته شده بودند. آزمایشگاه‌های بل از این سیستم پردازش متن اولیه که از یونیکس، roff و ویرایشگر تشکیل شده بود، برای پردازش متن برنامه‌های پتنت شده‌استفاده کرد. roff به زودی به troff، اولین برنامه چاپ و نشر الکترونیکی با قابلیت کامل حروف‌چینی تبدیل شد. کتاب راهنمای برنامه‌نویسان یونیکس هم در سوم نوامبر ۱۹۷۱ چاپ شد.
از آن جا که ای‌تی‌اندتی، یکی از شرکت‌های دست اندرکار، از پروژه کنار گرفته بود، بنا بر قوانین آمریکا نمی‌توانست از یونیکس استفاده بازرگانی کند؛ به این ترتیب یونیکس رایگان به بازار عرضه شد. ای‌تی‌اندتی نیز یونیکس را برای دانشگاه‌های مختلف فرستاد و یونیکس کم‌کم در محافل علمی محبوب شد.
بازنوشتن به زبان سی
در ۱۹۷۲، یونیکس به زبان سی بازنوشته شد. این برخلاف پندار همگانی آن زمان بود که می‌گفت «هر چیز پیچیده‌ای مثل یک سیستم‌عامل که باید با رویدادهای حساس به زمان سر و کار داشته باشد، باید منحصرا به زبان اسمبلی نوشته شود.» نتیجه مهاجرت از زبان اسمبلی به زبان سطح بالاتر سی این بود که کد یونیکس پرتابلتر و قابل حمل‌تر شد و برای اجرا بر روی ماشین‌های دیگر تنها کافی بود قسمت‌های کوچکی از آن به زبان اسمبلی مخصوص همان ماشین نوشته شوند.
ای‌تی‌اندتی کد منبع یونیکس را تحت مجوزهایی در دسترس دانشگاه‌ها، شرکت‌های تجاری و دولت ایالات متحده قرار داد. مجوزها در همه جای کد منبع قرار داده شده بودند، حتی کدهای وابسته به ماشین در داخل هسته سیستم‌عامل، که به زبان اسمبلی پی‌دی‌پی-۱۱ نوشته شده بودند. در اواخر دهه ۱۹۷۰، کدهای منبع یونیکس در کتابی به نام «نسخه ۶ یونیکس به روایت لیونز، به همراه کد منبع» که توسط جان لینوز نوشته شده بود، به صورت گسترده منتشر شد. این کار باعث شد یونیکس به شکل قابل توجهی برای مقاصد آموزشی استفاده گردد.
ویرایش‌های گوناگون
نسخه‌های سیستم‌عامل یونیکس، توسط ویرایش‌های کتاب راهنمای کاربرانش مشخص می‌شدند. برای مثال «پنجمین ویرایش یونیکس» و «نسخه ۵ یونیکس» هر دو برای اشاره به یک نسخه استفاده می‌شدند. توسعه یونیکس با انتشار نسخه‌های ۴، ۵ و ۶ که در سال ۱۹۷۵ ادامه یافت. در این نسخه‌ها مفهوم تازه لوله‌ها اضافه شده بود که به طراحی ماژولار یونیکس و چرخه توسعه سریع‌تر آن کمک کرد. نسخه ۵ و به ویژه نسخه ۶، به پیدایش نسخه‌های مختلفی از یونیکس، چه در داخل آزمایشگاه‌های بل و چه در خارج از آن انجامید. مانند پی‌دبلیوبی/یونیکس و همچنین اولین نسخه تجاری یونیکس یعنی آی‌اس/۱. همان طور که قسمت‌های بیش‌تری از یونیکس به زبان سی بازنویسی می‌شد، پرتابل بودن آن هم افزایش می‌یافت و آسان‌تر می‌شد آن را به دیگر سکوها انتقال داد. یونیکس توسط گروهی در دانشگاه ولونگوگ به اینتردیتا ۷/۳۲ پورت شد. آزمایشگاه‌های بل هم چند نسخه مختلف برای اهداف تحقیقاتی و استفاده داخلی در همان جا توسعه داد.
در سال ۱۹۷۴ دانشجویان دانشگاه برکلی آغاز به برنامه‌نویسی برای یونیکس می‌کردند و آن را برای دانشگاه‌های دیگر و ای‌تی‌اندتی فرستادند وبا ادامه این کار یونیکس در سال ۱۹۷۷ به یک سیستم‌عامل کامل تبدیل می‌شود.
در می‌۱۹۷۵، دارپا مزایای سیستم اشتراک زمانی یونیکس که «چند قابلیت جالب ارائه کرده بود» را در RFC 681 مستند کرد. در ۱۹۷۸، یونیکس/۳۲وی برای وی‌ای‌اکس، سیستم جدید DEC عرضه شد. در آن هنگام، یونیکس به اشکال مختلفی بر روی ۶۰۰ ماشین اجرا می‌شد. آخرین نسخه تحقیقاتی از یونیکس، یعنی نسخه ۷ یونیکس، در سال ۱۹۷۹ منشتر شد. نسخه‌های ۸، ۹ و ۱۰ هم در دهه ۱۹۸۰ نوشته شدند اما فقط در بین چند دانشگاه منتشر شدند. دانشگاه‌های دیگر نیز مانند ام‌آی‌تی، Purdue، استنفورد و… کارهای بسیاری برای یونیکس کردند.
با نوشتن برنامه‌های اینترنتی برای یونیکس در سال ۱۹۸۰ به وسیله دانشگاه برکلی یونیکس در سازمان‌های دولتی و شرکت‌های شبکه و کارگزارها(Servers) به گستردگی به کار گرفته شد.
سیستم عامل‌های شبه‌یونیکس
از این زمان شمار فراوانی از شرکت‌های بازرگانی نیز از یونیکس برای کارهای بازرگانی خود بهره می‌جویند و نسخه‌های بازرگانی یونیکس هم به بازار می‌آیند که از این گروه می‌توان پخش‌های زیر را نام برد.
زنیکس از مایکروسافت
ای‌آی‌اکس از آی بی‌ام
اچ پی-یواکس از اچ‌پی
ULTRIX by Digital
سان او اس از سان مایکروسیستمز
گذشته از سیستم عامل‌هایی که موسسه اپن گروپ، آن‌ها را کاملا سازگار با مشخصات یونیکس یکتا دانسته، سیستم عامل‌های فراوانی در عرضه شده‌اند که اگرچه استانداردهای لازم را فراهم آورده‌اند اما با نام شبه یونیکس آوازه دارند. ویرایش‌های پرشمار سیستم عامل متن باز لینوکس از این دسته‌اند. همچنین سیستم عامل نکست‌ستپ (NextStep) که بر مبنای بی‌اس‌دی دانشگاه برکلی پدید آمد، خود پایه سیستم عامل مک ا. اس (Mac OS X) شرکت اپل شد. اپل آی. ا. اس (iOS) را نیز بر پایه مک ا. اس گسترش داد. بسیاری از سیستم‌عامل‌های دیگر مانند اربیت (Orbis) که بر روی پلی استیشن چهار ارائه می‌شود نیز بر مبنای یکی از انواع سیستم عامل بی‌اس‌دی گسترش یافته‌اند.
شبه یونیکس
گنو
پازیکس
BSD
لینوکس
متن‌باز