شنبه, ۸ اردیبهشت, ۱۴۰۳ / 27 April, 2024
مجله ویستا

نقش خانواده سیستم عاملهای BSD در توسعه تکنولوژی اینترنت


نقش خانواده سیستم عاملهای BSD در توسعه تکنولوژی اینترنت
هر روز میلیون ها نفر گستره وسیعی از نیازهای روزمره خود را از طریق اینترنت تامین می کنند و در کنار آن از کار کردن با واسط های گرافیکی و مشاهده صفحه های پرزرق و برق «وب» لذت می برند. از زمانی که دولت ایالات متحده - که سرمایه گذار اصلی چیزی است که امروزه اینترنت نامیده می شود - تصمیم گرفت بازیگران تجاری را به آن راه دهد، روز به روز بر سهولت کار با اینترنت افزوده شد. سهولت کار با اینترنت برای توسعه فراگیر آن کاملاً حیاتی بود. در سایه همین سهولت استفاده است که یک نوجوان مدرسه ای بدون هیچ پیش زمینه قبلی در اولین تلاش خود برای اتصال به شبکه جهانی موفق می شود و خاطره شیرین اولین وب گردی را برای همیشه با خود نگاه می دارد. از طرف دیگر این مسئله اصلاً اتفاقی نیست و نتیجه سرمایه گذاری هنگفت غول های اقتصادی و تلاش متخصصانی است که معماری شبکه و طراحی پروتکل ها و در نهایت پیاده سازی آنها را بر عهده داشتند. در تمام این مراحل همواره پشت متخصصان به یک ابزار قوی گرم بوده و هست. این ابزار در ایجاد و توسعه اینترنت چنان نقش مهمی ایفا کرده که به جرات می توان آن را مادر اینترنت نامید. نام این ابزار قوی Unix است. UNIX وقتی با حروف بزرگ نوشته می شود یک محصول تجاری است. در عین حال از این کلمه برای اشاره به خانواده وسیعی از سیستم عامل ها نیز استفاده می شود که همگی استاندارد های خاصی را رعایت می کنند که مهم ترین آنها استانداردی به نام POSIX است. برای کاربرد اخیر در این مقاله از شکل Unix استفاده می کنیم.
خانواده ای که با نام کلی Unix شناخته می شود چنان وسیع است که خود از چندین زیرخانواده مهم تشکیل شده است. به عنوان مثال تمام انواع توزیع های Linux اعضای زیرخانواده Linux به شمار می روند. از دیگر زیر خانواده های مهم می توان به System V و BSD اشاره کرد. در هر یک از این خانواده ها چندین سیستم عامل جای می گیرند و علاوه بر اینکه هر زیرشاخه ویژگی های کلی خاص خود را دارد هر یک از اعضای آنها با در عین داشتن شباهت های بی شمار با دیگران، ویژگی های خاص خود را نیز دارد. متخصص هر یک از این سیستم ها به سادگی می تواند دانش خود را به دیگری منتقل کند و هیچ یک از آنها نمی تواند جای دیگران را بگیرد. به عنوان نمونه ای از ویژگی ها کلی جالب است بدانیم خانواده System V بیشتر در میان تولیدکنندگان تجاری محبوبیت دارد در حالی که BSDها همین وضعیت را در مجامع دانشگاهی دارند. خانواده BSD بستر توسعه قسمت عمده تکنولوژی هایی است که امروزه اینترنت براساس آنها کار می کند. مجموعه این فناوری ها تحت عنوان کلی TCP/IP شناخته می شوند. از همین رو است که سیستم عامل های این خانواده بالاترین کارایی را در محیط هایی دارند که وابستگی شدید به ارتباطات شبکه دارد. به علاوه این سیستم عامل ها سابقه بسیار درخشانی در زمینه امنیت و پایداری و از همه مهم تر پشتیبانی از معماری های مختلف سخت افزاری دارند. BSDها همیشه سیستم عامل هایی دانشگاهی- صنعتی بوده اند. امروزه نیز عموماً صنایع بسیار رادیکال از نظر فنی که ارتباط خود با دانشگاه ها را از شروط اساسی موفقیت خود می دانند از این سرمایه های عظیم و رایگان بهره می برند. یک مثال خوب از این قبیل شرکت ها، غول اینترنتی معروف یعنی Yahoo! است. این شرکت که مستقیماً از Stanford بیرون آمده یکی از مهم ترین پشتیبان های سیستم عامل های پیشرفته BSD است.
● تاریخچه BSD
تاریخچه ایجاد این خانواده و زیرشاخه های مختلف آن از جذاب ترین و آموزنده ترین داستان های علمی است. در این نوشته این داستان زیبا را مرور می کنیم. قبل از پرداختن به چگونگی توسعه این سیستم عامل ها خوب است مشخص کنیم این داستان برای چه کسانی مفید است. به عقیده نگارنده مخاطبان اصلی چنین داستان هایی متولیان توسعه تکنولوژیکی در داخل دولت و نیز دانشگاه ها هستند. این افراد در کشور ما هنوز به خوبی نمی دانند با متخصصین و محققین دانشگاهی چگونه ارتباط برقرار کنند، چگونه آنها را به انجام کار های مورد نظر خود تشویق کنند و به طور خلاصه چگونه توانایی های آنها را به کار گیرند.
در اوایل دهه ۱۹۶۰ هنوز اکثر کامپیوتر ها و Mainframeها توسط سیستم عامل های دسته ای که اصطلاحاً Batch Processing Operating System نامیده می شوند به کار گرفته می شدند. اولین بار در دهه ۱۹۵۰ ایده سیستم عامل های اشتراک زمانی مطرح شده بود، اما به دلیل محدودیت های کامپیوتر های آن زمان که حتی به اندازه یک تلفن همراه امروزی حافظه نداشتند امکان استفاده مناسب از این ایده فراهم نبود. اولین سیستم عامل اشتراک زمانی معروف، CTSS نام داشت. نقاط قوت ذاتی فراوان این سیستم عامل همه غول های دنیای کامپیوتر را متوجه ساخته بود که دیر یا زود سیستم عامل هایی از این دست فراگیر خواهند شد. برای پیشی گرفتن از دیگران شرکت General Electric به همراه شرکت مخابرات آمریکا یعنی AT&T و با همکاری تحقیقاتی دانشگاه MIT پروژه ای به نام Multics را شروع کردند. هدف از این پروژه تولید سیستم عاملی بود که Mainframeهای بزرگ را به صورت اشتراک زمانی در اختیار هزاران هزار کاربر قرار دهد. Multics در واقع بسیار فراتر از زمان خود بود و اهداف اقتصادی بنیانگذاران خود را تامین نمی کرد. در نتیجه رشد بسیار کند پروژه، AT&T از Multics کناره گرفت و پس از این اتفاق Multics به حیات خود ادامه داد اما هرگز به یک سیستم عامل فراگیر تبدیل نشد.
دو نفر از محققین AT&T که در یکی از آزمایشگاه های تحقیقاتی AT&T به نام Bell Labs بر روی Multics کار می کردند کن تامپسون و دنیس ریچی بودند. این دو نفر با همکاری افراد دیگری با بهره گیری از ایده های بسیار پیشرفته ای که در Multics وجود دارد و برای به کار انداختن کامپیوتر PDP-۷ که در آزمایشگاه در اختیار داشتند سیستم عاملی بسیار ساده ساختند و نام آن را Unics (بر عکس Multics) نهادند که بعد ها به Unix تغییر پیدا کرد. به تدریج توانایی های ذاتی Unix و دانش و تجربه طراحان آن، این سیستم عامل را در قسمت های مختلف AT&T معروف ساخت و کاربرد های واقعی آن باعث شد بودجه بیشتری برای توسعه آن در اختیار این افراد قرار بگیرد. اما همچنان Unix یک سیستم عامل آزمایشگاهی و بستری برای تحقیقات در زمینه های مختلف کامپیوتر بود. در آن زمان بنابر قوانین ایالات متحده AT&T حق کسب درآمد از طریق فروش نرم افزار را نداشت. محققین Bell Labs از این فرصت بهره جسته، Unix را به صورت رایگان در اختیار متقاضیان که عموماً مراکز تحقیقاتی و دانشگاهی بودند قرار دادند. این امر نقش بسیار مهمی در توسعه فناوری های مختلف در دل این سیستم عامل جدید داشت و موجب رشد بسیار سریع آن به خصوص در میان قشر تحصیل کرده و محققین شد، امری که همچنان در کنار معماری خاص Unix عامل اصلی توسعه پایدار سیستم عامل ها ی این خانواده است. در کنار این مسئله باز بودن متن Unix نقش بسزایی در توسعه دانش سیستم عامل و نیز خود Unix داشت.
کن و دنیس اولین مقاله در زمینه Unix را در سمپوزیوم «اصول سیستم عامل ها» در دانشگاه «پرودو» در نوامبر سال ۱۹۷۳ ارائه کردند. یکی از حاضران به نام پروفسور باب فابری که از اساتید دانشگاه کالیفرنیا بود به این سیستم عامل جدید علاقه مند شد و از تامپسون خواست نسخه ای از Unix را در اختیار دانشگاه وی قرار دهد. برای نصب این سیستم عامل یک کامپیوتر جدید لازم بود. تا آن زمان تمام کامپیوتر های دانشگاه برکلی mainframe هایی بودند که پردازش دسته ای انجام می دادند. در نهایت سه دپارتمان علوم کامپیوتر، ریاضیات و آمار توانستند با کمک هم یک کامپیوتر PDP-۱۱خریداری کنند. پس از تلاش بسیار Unix بر روی این ماشین جدید نصب شد. به زودی این کامپیوتر کاربرد های فراوانی در برکلی پیدا کرد. از جمله گروه توسعه پایگاه داده INGRES محیط پردازش دسته ای را رها کرده نرم افزار خود را به Unix منتقل کرد. آنها پس از مدتی نرم افزار خود را به صورت رایگان و با متن باز در اختیار متقاضیان قرار دادند. این روند در برکلی ادامه پیدا کرد و به این ترتیب نرم افزار های فراوانی به صورت رایگان در اختیار متقاضیان قرار می گرفتند. این نرم افزار ها تحت عنوان BSD یا Barkeley Software Distribution توزیع می شدند. کسانی که با دنیای Unix آشنایی دارند، همچنان با بسیاری از آنها مانند ویرایشگر vi زندگی می کنند.
تحقیق و توسعه به شکل خودجوش و داوطلبانه تا سال ۱۹۷۹ در برکلی ادامه پیدا کرد. تا این زمان سه نسخه از BSD منتشر شده بود. این نسخه ها به عنوان مکملی برای Unix اصلی که توسط AT&T منتشر می شد عمل می کردند. علاوه بر این دانشگاه برکلی نقش عمده ای در قابل اجرا کردن Unix بر روی یکی از مهم ترین سخت افزار های آن زمان به نام VAX ایفا کرد. Unix در آن زمان سیستم عاملی محسوب می شد که می توانست با کم ترین هزینه بر روی سخت افزار های جدید اجرا شود. این امر ناشی از این واقعیت بود که بر خلاف سیستم عامل های دیگر رایج در آن زمان Unix به زبان ماشین نوشته نشده بود بلکه آن را با زبانی «سطح بالا» به نام C _ که اختراع Dennis Ritchie بود_ نوشته بودند.
در همین زمان اتفاق مهم دیگری در آژانس تحقیقات پیشرفته وزارت دفاع آمریکا (DARPA) در حال رخ دادن بود که تاثیر بسیار مهمی بر Unix و به خصوص BSD داشت. DARPA پایه گذار شبکه ای به نام ARPAnet بود که پدر اینترنت محسوب می شود. یکی از مشکلات اصلی DARPA وابستگی به محصولات یک شرکت خاص برای رایانه های ARPAnet بود. DARPA ترجیح می داد به محققانی که از ARPAnet استفاده می کردند این امکان را بدهد که هر سخت افزاری را انتخاب کنند و با نصب یک سیستم عامل استاندارد بر روی آن بتوانند با تمام کامپیوتر های دیگر موجود در ARPAnet ارتباط برقرار کنند. پس از مطالعاتی در این زمینه مدیران DARPA سیستم عامل Unix را با توجه به قابلیت انتقال سریع به سخت افزار های جدید به عنوان سیستم عامل استاندارد ARPAnet انتخاب کردند.
بالاخره با سرمایه گذاری DARPA، محققان دانشگاه برکلی فعالیت خود را با سازماندهی جدید و با هدف تولید سیستم عامل مورد نظر آنان شروع کردند. اولین مرحله کار اعمال تغییرات لازم و نیز توسعه بخش های جدیدی در Unix موجود برای تامین نظر DARPA بود. این تغییرات عبارت بودند از تولید یک سیستم فایل کارا، فراهم آوردن امکان داشتن پردازه های با فضای آدرس بزرگ و تکنیک های ارتباط بین پردازه ها برای تسهیل انجام محاسبات توزیع شده در ARPAnet. در کنار این ویژگی ها اولین پیاده سازی پروتکل های TCP/IP در BSD صورت گرفت و تلاش زیادی برای بهبود کارایی آن صورت گرفت.روش کار به این ترتیب بود که کد تغییر یافته Unix که در برکلی تولید می شد به صورت رایگان در اختیار متقاضیان قرار می گرفت، مشروط بر آنکه دریافت کننده هزینه مجوز استفاده از UNIX را به AT&T بپردازد. بالاخره در سال ۱۹۸۹ کد های تولید شده توسط CSRG به صورت جداگانه تحت عنوان Networking, Release۱ و با مجوزی که امروزه به مجوز BSD معروف است ارائه شد. محبوبیت این توزیع به دلیل رایگان بودن آن به حدی رسید که توسعه دهندگان اصلی در CSRG وسوسه شدند تمام قسمت هایی را که متعلق به AT&T Unix بود را دوباره بنویسند تا بتوانند یک سیستم عامل کامل را تحت مجوز آزاد BSD در اختیار همگان قرار دهند.
مشکل اصلی ارائه یک سیستم عامل کامل بازنویسی حجم قابل توجه برنامه های کاربردی و کتابخانه های C بود. برای انجام این کار CSRG به یک ابتکار جالب دست زد. آنها در محافل مختلف علاقه مندان Unix، هدف خود را اعلام کردند و از افراد داوطلب خواستند این قسمت های سیستم عامل را بازنویسی کنند و در مقابل نام آنها در کنار توسعه دهندگان CSRG منتشر خواهد شد. این روش بر خلاف آنچه در آغاز به نظر می رسید کاملاً موفق بود و در مدتی حدود دو سال تمام این قسمت ها بازنویسی شدند. پس از آن توسعه دهندگان اصلی در CSRG، کار دشوار بازنویسی قسمت های مختلف هسته را شروع کردند. پس از چندین ماه کار تقریباً تمام شده بود و تنها ۶ فایل مربوط به هسته باقی مانده بود که باید بازنویسی می شد. بازنویسی این فایل ها به زمان نسبتاً طولانی نیاز داشت. در نهایت CSRG تصمیم گرفت به جای صرف وقت لازم برای بازنویسی این ۶ فایل آنچه را که موجود بود در اختیار همگان قرار دهد.برای توزیع این مجموعه جدید که در واقع یک نسخه کاملاً جدید و رایگان از سیستم عامل Unix بود اتفاق بسیار جالب توجهی افتاد. با توجه به حجم عظیم کار انجام شده کاملاً منطقی بود که کد جدید با یک نام جدید و مناسب ارائه شود. اما CSRG به این نتیجه رسید زمان و هزینه لازم برای طی کردن مراحل حقوقی توزیع کار انجام شده تحت یک نام جدید ارزش چندانی ندارد و در نتیجه تمام این سیستم عامل جدید تحت عنوان Networking, Release۲ عرضه شد، در حالی که آنچه در اختیار کاربران قرار می گرفته در واقع یک سیستم عامل کاملاً رایگان بود.
● BSDهای مدرن
ویژگی های منحصر به فردی که از همان ابتدا در کد BSD وجود داشت ادامه حیات آن را به صورت فعال تضمین می کند. هم اکنون BSDها یک خانواده مهم از Unix محسوب می شوند که چندین عضو مهم دارد. بیشتر این سیستم عامل ها همچنان ماهیت باز و رایگان خود را حفظ کرده اند. در این قسمت سه سیستم عامل که از بقیه مهم ترند را معرفی می کنیم.
▪ NetBSD
جایگزین کردن ۶ فایل باقی مانده کار چندانی نداشت. شخصی به نام Jolis به سادگی این فایل ها را برای معماری Intel۳۸۶ ایجاد کرد و سیستم عامل حاصل را BSD ۳۸۶ نامید. وی نتایج کار خود را بر روی شبکه قرار داد تا هرکه مایل بود آن را Download کرده استفاده کند. BSD ۳۸۶ بسیار محبوب شد و کاربران زیادی پیدا کرد. متاسفانه خود Jolits وقت کافی برای تکمیل و اصلاح BSD ۳۸۶ نداشت و حتی نمی توانست اصلاحاتی را که کاربران علاقه مند به او می دادند در سیستم اصلی اعمال کند. در نتیجه عده ای از کاربران حرفه ای۳۸۶ BSD گروهی به نام NetBSD را تشکیل دادند تا امکانات ۳۸۶ BSD را توسعه داده اشکالات آن را برطرف کنند. به تدریج گروه NetBSD شروع به توسعه سیستم کرد. این افراد هدف خود را پشتیبانی از تمام سخت افزار های ممکن قرار دادند و از روشی مشابه آنچه در CSRG استفاده می شد برای تحقیق و توسعه استفاده کردند. گروه NetBSD همچنان در حال فعالیت است و سیستم عامل NetBSD جایگاه بسیار ویژه ای در میان محققین و دانشگاه ها دارد.
▪ FreeBSD
کمی بعد از تاسیس گروه NetBSD عده ای دیگر از علاقه مندان BSD گروهی به نام FreeBSD تشکیل دادند تا اشکالات موجود در۳۸۶ BSD را حل کنند و سیستم عاملی قوی برای سخت افزار های PC ایجاد کنند که برای همه کاربران _ حتی کاربران غیر حرفه ای- قابل استفاده باشد. امروزه FreeBSD یکی از پرکاربرد ترین Unixها است. هزاران هزار کارگزار اینترنتی از این سیستم عامل پیشرفته اینترنتی برای ارائه خدمات خود استفاده می کنند. تلاش های توسعه دهندگان FreeBSD در جهت افزایش کارآیی آن در کنار ویژگی هایی که از BSD به ارث رسیده است FreeBSD را به یکی از کاراترین Unixهای موجود تبدیل کرده است.
▪ OpenBSD
در سال ۱۹۹۵ در پی اختلافاتی که میان تیم NetBSD و یکی از اعضای اصلی این تیم پیش آمد، سیستم عامل جدیدی به نام OpenBSD از NetBSD مشتق شد. تیم OpenBSD هدف اصلی خود را توسعه یک سیستم عامل امن قرار داده است و در این زمینه بسیار موفق بوده است. هم اکنون به اعتراف همگان امن ترین سیستم عامل موجود سیستم عامل رایگان OpenBSD است. این سیستم عامل یکی از سردمداران عرصه امنیت سیستم عامل ها است.بسیاری از حفاظ ها (دیوار های آتش) در شبکه های کوچک و بزرگ از سیستم عامل فوق العاده امن OpenBSD استفاده می کنند. بسیاری دیگر از کسانی که حساسیت های امنیتی بالایی دارند این سیستم عامل را به عنوان گزینه اول در نظر می گیرند.
منبع : شرکت نرم‌افزاری ایده‌تک


همچنین مشاهده کنید