موضوع مقاله: توزیع نرم‌افزاری برکلی | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # توزیع نرم‌افزاری برکلی | مقدمه: انگشتی|چپ|میزان استفاده از نسخه‌های مختلف بی‌اس‌دی توزیع نرم‌افزاری برکلی یا به اختصار بی‌اس‌دی (BSD) (که به عنوان بی‌اس‌دی یونیکس نیز شناخته می‌شود) یکی از مشتقات سیستم‌عامل یونیکس بود که در طی سال‌های ۱۹۷۷ تا ۱۹۹۵ در دانشگاه کالیفرنیا، برکلی توسط گروه تحقیقاتی سیستم‌های کامپیوتری توسعه داده و منتشر می‌شد. | ## بخش 1: توزیع نرم‌افزاری برکلی | امروزه واژه بی‌اس‌دی برای اشاره به خانواده‌ای از سیستم‌عامل‌های شبه‌یونیکس استفاده می‌شود که همگی از نوادگان همان بی‌اس‌دی یونیکس هستند. سیستم‌عامل‌هایی که از کد اصلی بی‌اس‌دی مشتق شده‌اند هنوز هم توسعه فعالی دارند و به‌طور گسترده استفاده می‌شوند. چون کدهای اولیه بی‌اس‌دی از کدهای اصلی یونیکس سرچشمه گرفته‌اند و به همراه سیستم‌عامل اصلی یونیکس AT&T طراحی شده‌است. تاریخچه نسخه‌های آغازین PDP-11 اولین نسخه‌های یونیکس که در دهه ۱۹۷۰ توسط آزمایشگاه‌های بل توزیع می‌شدند، حاوی کدهای منبع این سیستم‌عامل بودند که به محققان دانشگاه‌ها اجازه می‌داد تا بتوانند یونیکس را تغییر داده و گسترش دهند. اولین سیستم یونیکسی در دانشگاه برکلی یک PDP-11 بود که در سال ۱۹۷۴ نصب شد و دپارتمان علوم رایانه از این رایانه به منظور تحقیقات وسیع خود استفاده می‌کرد. بیل جوی، یک دانشجوی مقطع فوق لیسانس در دانشگاه برکلی، در سال ۱۹۷۷، شروع به کامپایل کردن اولین نسخه از توزیع نرم‌افزاری برکلی کرد که 1BSD نام گرفت و در ۹ مارس ۱۹۷۸ منتشر شد. 1BSD بیشتر یک افزونه برای ویرایش ششم یونیکس بود تا یک سیستم‌عامل کامل، اجزای اصلی این سیستم‌عامل یک کامپایلر پاسکال و یک ویرایشگر خطی به نام اکس بودند. دومین توزیع نرم‌افزاری برکلی (2BSD) در می ۱۹۷۹ منتشر شد و حاوی نرم‌افزارهای بروز شده 1BSD و همین‌طور دو برنامه جدید بود که توسط بیل جوی نوشته شده بودند و تا به امروز هم در سیستم‌عامل‌های مبتنی بر یونیکس باقی مانده‌اند: یکی ویرایشگر متن وی‌آی (یک نسخه بصری از ویرایشگر اکس) و دیگری سی شل نسخه‌های VAX در سال ۱۹۷۸ یک رایانه VAX در برکلی نصب شد، اما پورتی از یونیکس که مخصوص این رایانه بود و UNIX/32V نام داشت، نمی‌توانست از توانایی‌های حاظه مجازی این معماری بهره ببرد. هسته 32V به طرز قابل توجهی توسط دانشجویان برکلی بازنویسی شد تا قابلیت حافظه مجازی در آن پیاده‌سازی شود. در اواخر سال ۱۹۷۹، یک سیستم‌عامل کامل حاوی این هسته جدید، پورت‌هایی از برنامه‌های 2BSD برای معماری وکس، و همچنین برنامه‌هایی از 32V، تحت عنوان 3BSD منتشر شد. موفقیت 3BSD یکی از عوامل اصلی بود که دارپا را بر آن داشت تا گروه تحقیقاتی سیستم‌های رایانه‌ای را مورد حمایت مالی قرار دهد تا یک نسخه استاندارد از یونیکس را برای پروژه تحقیقاتی آینده دارپا، پروژه VLSI توسعه داده و آماده کند. بر طبق گفته جان کوارتمن و همکاران: «4BSD سیستم‌عامل منتخب رایانه‌های VAX از همان ابتدا تا منتشر شدن سیستم سه بود. بسیاری از سازمان‌ها یک مجوز 32V می‌خریدند، اما به خودشان زحمت نمی‌دادند تا نوار نصب 32V را تهیه کنند و در عوض، 4BSD را از برکلی سفارش می‌داند. بسیاری از نسخه‌های نصب شده در سیستم بل، نسخه 4.1BSD بود (و هنوز هم همین نسخه را اجرا می‌کنند، و خیلی‌های دیگر هم 4.2BSD را اجرا می‌کنند). از جمله قابلیت‌های مهم این نسخه می‌توان به قابلیت کنترل کار، برنامه دلیورمیل (جد سندمیل)، سیگنال‌های «قابل اطمینان» و کتابخانه برنامه‌نویسی کورسز اشاره کرد. 4.1BSD که در ژوئیه ۱۹۸۱ منتشر شد، پاسخی بود به انتقادهایی که از کارایی بی‌اس‌دی نسبت به سیستم‌عامل رایج در رایانه‌های VAX, VMS می‌شد. هسته 4.1BSD به شکل سیستماتیک توسط بیل‌جوی بهینه‌سازی شد تا اینکه توانست در برخی از آزمایش‌ها نتایج یکسانی را با VMS به‌دست آورد. قرار بود نتیجه کار تحت عنوان 5BSD منتشر شود، اما پس از اعتراض‌هایی از طرف AT&T این نام تغییر یافت. | ## بخش 2: توزیع نرم‌افزاری برکلی | 4.1b حاوی سیستم‌فایل سریع بی‌اس‌دی بود که توسط مارشال کیرک مک‌کیوسیک پیاده‌سازی شده بود و نسخه 4.1c هم آخرین نسخه موقتی بود که در ماه‌های پایانی توسعه 4.2BSD منتشر شد. آزمایشگاه‌های بل از 4.1cBSD به عنوان سیستم پایه برای ویرایش هشت یونیکش استفاده کرد. این نسخه، نسخه‌ای از یونیکس بود که از پشتیبانی تجاری برخوردار بود و از طریق mtXinu در دسترس بود. جدا از سیستم‌فایل سریع برکلی، تعدادی قابلیت دیگر هم از توسط مشارکت‌کنندگان خارج پروژه پیاده‌سازی شدند، از جمله قابلیت سهمیه‌بندی دیسک و کنترل کار. سان مایکروسیستمز هم پیش از منتشر شدن این نسخه، آن را بر روی رایانه‌های Motorola 68000 آزمایش کرد تا این اطمینان حاصل شود که سیستم به اندازه کافی پورتابل است. این نسخه به این شهرت دارد که اولین نسخه‌ای بود که پس از جدا شدن بیل جوی از پروژه در سال ۱۹۸۳ و بنیان‌گذاری کردن سان‌مایکروسیستمز منشتر می‌شد؛ از این موقع به بعد، مایکل کالز و مارشال کیرک مک‌کیوسیک راهبری پروژه را به‌دست گرفتند. این نسخه همچنین به خاطر نشان غول بی‌اس‌دی که توسط جان لستر طراحی شده بود و بر روی یک کتاب راهنما که توسط یوزنیکس منتشر شده بود هم شهرت دارد. تغییرات عمده این نسخه، بهینه‌سازی و بهبود دادن قابلیت‌هایی بود که به نسخه قبلی، 4.2BSD اضافه شده بودند، چرا که این قابلیت‌های جدید به اندازه کدهای 4.1BSD مورد بازبینی و بهبوددهی قرار نگرفته بودند. پس از مباحثاتی در مورد اینکه بالاخره کدام پشته در نسخه 4.3BSD قرار گیرد، توافق بر این شد که پشته بی‌اس‌دی از TCP/IP در 4.3BSD استفاده شود، چرا که پس از انجام برخی آزمایش‌ها نشان داده شده بود که کارایی بهتری در بیشتر موارد نسبت به پشته BBN دارد. با این حال، پورتی برای این معماری به نام 4.3BSD-Tahoe که در ژوئیه ۱۹۸۸ منتشر شد، کاری ارزشمند محسوب می‌شد، چرا که در این پورت، کدهای وابسته به ماشین و کدهای مستقل از ماشین از یکدیگر جدا شده بودند که این کار باعث می‌شد تا بتوان در آینده BSD را راحت‌تر به دیگر سکوها پورت کرد. جدا از تلاش برای پورتابل کردن سیستم، CSRG تلاش می‌کرد تا همچنین پشته پروتکل OSI را هم پیاده‌سازی کند، بهینه‌سازی‌هایی در حافظه مجازی انجام دهد و همین‌طور الگوریتم‌های TCP/IP جدید را در جهت انطباق با رشد اینترنت، توسعه دهد. اما مجوزها بسیار گران‌قیمت شده بودند و چندین شرکت و سازمان خارج از پروژه، برای منتشر شدن کدهای پشته شبکه به صورت مجزا، ابراز علاقه کرده بودند، که این پشته به‌طور کامل در خارج از AT&T توسعه داده شده بود و نیازی به تهیه مجوز از AT&T نداشت. نت/۲ و مسائل قانونی بعد از نت/۱، یکی از توسعه‌دهندگان بی‌اس‌دی به نام کیث باستیک پیشنهاد کرد که تمامی کدهای AT&T با کدهایی تحت پروانه BSD جایگزین شوند. برای رسیدن به این هدف، او پروژه‌ای را شروع کرد تا بیشتر برنامه‌های استاندارد یونیکس را مجدداً و بدون استفاده از کدهای AT&T پیاده‌سازی کند. به عنوان مثال، ویرایشگر متن VI که بر اساس نسخه یونیکسی ED بود، به صورت مجدد پیاده‌سازی شد و نام این پیاده‌سازی جدید NVI (وی‌آی جدید) نام گرفت. در طول ۱۸ ماه، تمام ابزارهایی که متعلق به AT&T بودند بازنویسی شدند و از AT&T تنها تعداد کمی فایل در هسته باقی‌مانده بود. این فایل‌ها هم از هسته پاک شدند و نتیجه کار در ژوئن ۱۹۹۱ با نام نت/۲ عرضه شد که تقریباً یک سیستم‌عامل کامل بود که به صورت آزاد منتشر می‌شد. یکی ۳۸۶بی‌اس‌دی بود که توسط ویلیام ژولیتز و دیگری یک نسخه انحصاری به نام بی‌اس‌دی/۳۸۶ بود که توسط BSDi برای این معماری پورت شده بودند. | ## بخش 3: توزیع نرم‌افزاری برکلی | اما نقش تاریخی بزرگی ایفا کرد و پایه و اساس سیستم‌عامل‌های فری‌بی‌اس‌دی و نت‌بی‌اس‌دی شد که این دو پروژه کمی بعد از ۳۸۶بی‌اس‌دی و از روی پچ‌کیت‌های غیررسمی آن به وجود آمده بودند. این دادگاه باعث شد تا سرعت توسعه مشتقات BSD نزدیک به دو سال آهسته شود، چرا که مالک کدها مشخص نبود. در نتیجه، زمینه برای توسعه یافته سیستم‌های مبتنی بر لینوکس فراهم شد، چرا که کدهای لینوکس مشکل نامشخص بودن مالک نداشتند. هرچند که 386BSD تا سال ۱۹۹۲ منتشر نشد، اما با این حال، لینوس توروالدز گفته بود که اگر وقتی که کار بر روی لینوکس را شروع کردم، 386BSD وجود داشت، شاید لینوکس هیچگاه به وجود نمی‌آمد. از حدود ۱۸٫۰۰۰ فایلی که در BSD بود، تنها ۳ فایل باید حذف می‌شد و ۷۰ فایل دیگر هم باید طوری تغییر می‌کردند تا نشان‌دهنده اعلان کپی‌رایت USL را باشند. همچنین دیگر نتیجه دادگاه این بود که USL دیگر هرگز در برابر کاربران یا توزیع‌کنندگان کدهای BSD درخواست دادخواست نکند. مارشال کیرک مک‌کیوسیک راجع بع دادگاه و پیامدهای آن چنین گفته‌است: چیزی که ادعا شده بود کپی‌برداری از کدها و دزدیدن اسرار تجاری بود. دادگاه می‌توانست بیشتر از اینها هم طول بکشد اما شرکت ناول USL را از AT&T خریداری کرد و این شرکت به‌دنبال برقراری آتش‌بس و حل و فصل کردن اختلافات بود. در پایان، ۳ فایل از مجموع ۱۸٫۰۰۰ فایلی که سیستم را تشکیل می‌داندند، حذف شدند و تغییرات جزئی دیگری هم به دیگر فایل‌ها اعمال شد. علاوه بر آن، دانشگاه [برکلی] قبول کرد که حق تکثیر USL را به حدود ۷۰ فایل اضافه کند، مشروط بر اینکه این فایل‌ها همچنان آزادانه قابل تکثیر باشند. از آن هنگام تا کنون، تعدادی سیستم‌عامل دیگر که به‌طور مستقیم یا غیرمستقیم بر اساس بی‌اس‌دی هستند، توسط داوطلبان توسعه داده می‌شوند. علاوه بر آن، طبیعت سهل‌گیرانه پروانه بی‌اس‌دی به بسیاری از دیگر سیستم‌عامل‌ها چه آزاد و چه انحصاری این اختیار را داده تا قادر باشند کدهای بی‌اس‌دی را در خود بگنجانند. برای مثال، مایکروسافت ویندوز از کدهای بی‌اس‌دی در پشته TCP/IP خود استفاده کرده‌است؛ و از ویندوز ۲۰۰۰ به بعد، نسخه‌های بازکامپایل‌شده از ابزارهای خط فرمان بی‌اس‌دی که مربوط به شبکه می‌شوند را در سیستم‌عامل خود قرار داده‌است. رابطه با یونیکس نسخه‌های سیستم‌عامل ریسرچ یونیکس از ویرایش هشتم به بعد رابطه نزدیکی با بی‌اس‌دی دارند. این روند در نسخه‌های بعدی مثل ویرایش نهم هم ادامه داشت که هم کدهای منبع و هم اصلاحات دیگری را از 4.3BSD در خود گنجانده بود. نتیجه این شد که نسخه‌های بعدی ریسرچ یونیکس بیشتر از اینکه به System V نزدیک باشند، به بی‌اس‌دی نزدیک بودند. دنیس ریچی در پستی در یوزنت مربوط به سال ۲۰۰۰، رابطه بی‌اس‌دی و ریسرچ یونیکس را این گونه توصیف می‌کند: ویرایش هشتم ریسرچ یونیکس، از BSD 4.1c شروع شد (فکر می‌کنم)، اما بخش‌های زیادی از این سیستم برداشته شد و با چیزهای خودمان جایگزین شد. | ## جمع‌بندی | مجموعه دستورهای کاربری روزمره، اگر اشتباه نکنم، بیشتر ویژگی‌های بی‌اس‌دی را داشتن تا SysV را، اما این به‌شدت متنوع بود.