سیستم عامل یونیکس
سیستم عامل یونیکس
سیستم عامل یونیکس: یونیکس یک سیستمعامل با قابلیت چندکارگی و چند کاربره است که در سال ۱۹۶۹ به دست گروهی از کارمندان آزمایشگاههای بل متعلق به شرکت تلفن و تلگراف آمریکا (.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) که بر روی پلی استیشن چهار ارائه میشود نیز بر مبنای یکی از انواع سیستم عامل بیاسدی گسترش یافتهاند (سیستم عامل یونیکس).