صفر تا صد تاریخچه یونیکس Unix

0 319
امتیاز دهید!
 

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

پروژه Multics

در سال ۱۹۶۵ بین دانشگاه MIT، گروه Bell Labs و شرکت General Electric قراردادی امضا شد تا به همراه یکدیگر یک سیستم‌عامل را تولید کنند.

در آن زمان، دانشگاه MIT به تازگی پروژه موفق CTSS را پشت سر گذاشته بود.

CTSS یک پروژه مبتنی بر Time-Sharing بود که در آن زمان توسط MIT به اتمام رسیده بود. CTSS این اجازه را می‌داد که چند کاربر به‌صورت همزمان از یک سیستم استفاده کنند.

بعد از اتمام پروژه CTSS، دانشگاه MIT به سراغ همکاری با گروه Bell Labs (از زیرشاخه‌های شرکت AT&T) و شرکت General Electric رفت.

آن‌ها قصد داشتند با کمک یکدیگر CTSS را گسترش دهند و یک سیستم‌عامل قدرتمند تولید کنند.

هدف این پروژه، بوجود آوردن Computing Utility بود.

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

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

Main Frame به سیستمی گفته می‌شد که اولا Fault Tolerant باشد. یعنی اگر یک CPU از کار افتاد، خللی در کار سیستم وجود نداشته باشد. دوما میزان زیادی CPU و Memory داشته باشد.

اما پروژه Multics بعد از ۳ سال یعنی در سال ۱۹۶۹ شکست خورد. بعد از شکست پروزه، گروه Bell Labs نیز از آن جدا شد.

با وجود شکست پروژه Multics، تغییرات و پیشرفت‌های بسیار زیادی در زمینه سیستم‌عامل‌ها ایجاد شد. در پروژه‌های بعد از Multics نیز از بسیار از مفاهیم و پیشرفت‌های ایجاد شده در آن، استفاده شد.

ظهور یونیکس (UNIX)

در سال ۱۹۶۹ که پروژه Multics شکست خورد، افرادی از گروه Bell Labs که در پروژه Multics حضور داشتند به‌صورت جداگانه و با سرپرسی Ken Thompson اقدام به تولید یک سیستم‌عامل کردند.

در آن پروژه بسیاری از ایده‌ها و تجربه‌هایی که در پروژه‌های مختلف تولید سیستم‌عامل به‌کار رفته بودند، مورد استفاده قرار گرفتند. اما میان این پروژه و پروژه‌های قبلی تفاوت‌هایی وجود داشت. یکی از اساسی‌ترین تفاوت‌ها این بود که این پروژه قرار بود یک سیستم‌عامل برای Mini-Computerها تولید کند. در صورتی که برای مثال هدف پروژه Multics تولید سیستم‌عامل برای یک Main Frame بود.

کِن تامسون (Kenneth Lane Thompson)

بعد از اینکه Multics که با شکست مواجه شد، درخواست‌های مکرر برخی اعضای Bell Labs برای ادامه تحقیقات برروی تولید سیستم‌عامل و البته خرید تجهیزات، مورد تایید مدیران Bell Labs قرار نگرفت.

به همین دلیل کن تامسون و برخی دیگر از افراد حاضر در Bell Labs تصمیم به تولید یک سیستم‌عامل به‌صورت جداگانه گرفتند.

از این رو، کِن تامسون برای یک Mini Computer که قبلا برای پیشروی پروژه تولید شده بود ولی دیگر مورد استفاده قرار نمی‌گرفت، اقدام به تولید سیستم‌عامل کرد. البته تامسون در مسیر تولید این سیستم‌عامل تنها نبود. Dennis Ritchie و دیگر اعضای Bell Labs نیز در این مسیر با او همراهی کردند.

دنیس ریچی (Dennis MacAlistair Ritchie)

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

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

دنیس ریچی با بررسی ضعف‌های زبان B اقدام به تولید زبان C کرد. C زبان به مراتب قدرتمند‌تری بود که هدف “تولید سیستم‌عامل با حداقل کد اسمبلی ممکن” را دست یافتنی‌تر می‌کرد.

بعدا حدود ۹۷% سیستم‌عامل به زبان C نوشته شد و تنها ۳% آن به زبان اسمبلی بود. که این شرایط بسیار ایده‌آل‌تر بود و جهشی بسیار بزرگ در حوزه سیستم‌عامل را ایجاد کرد.

BSD

در سال ۱۹۷۵، شرکت AT&T نسخه‌ای از یونیکس را برای مصارف تحقیقاتی و پژوهشی ارائه داد تا دانشگاه‌ها و مراکز تحقیقاتی بتوانند برروی آن تحقیق کنند و آن را توسعه دهند.

یکی از دانشگاه‌هایی که به‌طور گسترده و البته با سرمایه‌گذاری DARPA، برروی یونیکس تحقیقاتی را انجام داد، دانشگاه Berkeley بود.

در نهایت این گروه موفق شد قابلیت‌های زیادی را به یونیکس اضافه کند که یکی از مهم‌ترین آن‌ها پروتکل استک TCP/IP بود. نسخه تولید شده توسط برکلی با عنوان BSD شناخته شد.

گروه‌های بسیار زیادی در کنار دانشگاه‌ها شروع به توسعه یونیکس کردند.

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

پیدایش POSIX و ISO/ANSI C

با گذشت زمان اندکی، علاقه‌مندی به توسعه یونیکس بسیار زیاد شد. هم‌چنین نیاز بود که توسعه‌ها به شکلی باشند که برروی سخت‌افزارهای مختلف عمل کنند. از این رو، نیاز به وجود یک استاندارد برای توسعه یونیکس احساس شد. این استانداردسازی هم برروی زبان C انجام شد و هم برروی System Callها و APIهای یونیکس.

بعد از آن به نسخه استاندارد شده C، نام ISO C و یا ANSI C دادند و هم‌چنین استاندارد تولید شده برای توسعه سیستمی یونیکس را POSIX نام‌گذاری کردند.

پس از فراگیر شدن یونیکس، بسیاری از شرکت‌ها بخش‌هایی از یونیکس را بازسازی کردند.

برخی از این شرکت‌ها توانستند با دور زدن لایسنس شرکت AT&T توزیع خودشان را ارائه کنند.

برای مثال BSD نیز یکی از همین مواردی بود که بدلیل بازسازی بخش‌های زیادی از یونیکس، توانسته بود لایسنس AT&T را دور بزند.

به همین دلیل برکلی توانسته بود، سیستم‌عامل BSD را به نام خود ارائه دهد.

پیدایش لینوکس Linux

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

چرا که یونیکس یک سیستم‌عامل برای استفاده روزمره و البته عوام مردم نبود و تنها افراد دارای تخصص می‌توانستند از آن استفاده کنند.

تننباوم و لینوس تُروالز

تننباوم (Andrew Stuart Tanenbaum) به عنوان استاد سیستم‌عامل در دانشگاه Vrije آمستردام، برای استفاده از یونیکس در کلاس‌های دانشگاه، نسخه ساده شده‌ای از آن را با نام Minix تولید کرده بود.

لینوس تروالز (Linus Benedict Torvalds) با به‌کارگیری Minix و ابزارهایی که تحت لایسنس GNU در اختیار داشت، توانست لینوکس را تولید کند.

تروالز، لینوکس را Open-Source اعلام کرد.

همین مساله باعث شد تا افراد بسیاری با ارتقا بخش‌های مختلف آن به تکامل هر چه سریعتر آن کمک کند.

علاوه برلینوکس و BSD شاخه‌ها و توزیع‌های زیادی از UNIX توسعه داده شد. تا جایی که امروزه می‌توان ردپای یونیکس را در بیشتر سیستم‌عامل‌ها مشاهده کرد.

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

Mac OS

یکی از موفق‌ترین سیستم‌عامل‌های امروزی، یعنی Mac که محصول شرکت Apple می‌باشد، رگه‌هایی از یونیکس را در خود دارد. در اصل Mac بر پایه Darwin می‌باشد و Darwin یک نسخه ارتقا یافته از BSD توسط Apple می‌باشد. همان‌طور که پیش‌تر گفتیم، BSD نیز نسخه‌ای ارتقا یافته از یونیکس است که توسط دانشگاه برکلی توسعه داده شده است. از این رو، Mac را می‌توان یکی از اعضای خانواده بزرگ یونیکس دانست.

نتیجه گیری

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

 

آکادمی ترجنس 

مطالب ما را در لینک‌های زیر نیز می‌توانید دنبال کنید:

http://thregence.blog.ir/

http://thregence.blogfa.com/

 

ارسال یک پاسخ