تاریخچه FreeBSD

نمودار سیر تکاملی سیستم عامل های Unix و شبه Unixنمودار سیر تکاملی سیستم عامل های یونیکس و شبه یونیکس - منبع تصویر: ویکی پدیا

اگر از یک سیستم عامل آزاد و کد باز استفاده می نمائید، به احتمال قریب به یقین مبتنی بر گنو و هسته لینوکس می باشد. اما باید بدانید این پلتفرم های کد باز و آزاد نه تنها اولین نرم افزارها در نوع خود نبوده، حتی حرفه ای ترین و یا موفق ترین نرم افزارهای کد باز تجاری شده در نوع خود نیز محسوب نخواهند شد. در هر سه این موارد Berkeley Software Distribution یا به اختصار BSD از GNU/Linux پیشی می گیرد. حال سوال اصلی اینجاست که چرا BSD در اکوسیستم نرم افزارهای آزاد به حاشیه رانده شده است، در حالی که توزیع های مختلف GNU/Linux گوی سبقت را از آن ربوده اند؟

در سه قسمت اول از سری آموزش های FreeBSD در ابتدا به تاریخچه آن خواهیم پرداخت. در قسمت دوم اقدام به بررسی ماهیت و ویژگی های آن نموده و با ساختار و مفاهیم آن آشنا خواهیم شد. و در نهایت در قسمت سوم آن را با GNU/Linux مقایسه می نماییم. پس از این سه قسمت در مقالات بعدی اقدام به نصب و راه اندازی FreeBSD جهت استفاده در Server به همراه نصب سرویس های مختلف از جمله Web Server, FTP Server, Mail Server, DNS Server و … جهت استفاده در محیط های Production می نمائیم. در کنار آن به نصب و پیکربندی FreeBSD در Desktop جهت Web Browsing, Multimedia و … خواهیم پرداخت. همچنین اقدام به توضیح مفاهیم یونیکس از ابتدا می نمائیم. در ادامه این مقاله به قسمت اول، تاریخچه FreeBSD خواهیم پرداخت.


فهرست


BSD

درک BSD نیازمند کاوش تاریخچه آن و بازگشت به عقب تا مبدا آن یعنی UNIX می باشد. سیستم عاملی که اولین بار در سال 1969 توسط AT&T Bell Labs منتشر شد. در سال 1969 Ken Thompson و Denise Ritchie کار را بر روی سیستم عاملی بی نام که بعدها UNIX نامیده شد در AT&T Bell Labs آغاز نمودند. در ابتدا این سیستم عامل بر روی یک DEC PDP-7 که یک مینی کامپیوتر بود توسعه و اجرا می شد. برای قریب یک دهه توسعه UNIX تحت نام هائی که با عدد شناخته می شد در AT&T انجام می گرفت. V4 (1974) به شکل کامل در C بازنویسی شد که گام بزرگی جهت پرتابل نمودن این سیستم عامل در دستگاه های مختلف تلقی می شد. V6 (1975) اولین نسخه از این سیستم عامل بود که در خارج از Bell Labs در دسترس قرار گرفت و اولین UNIX در دانشگاه برکلی بر مبنای آن توسعه داده شد. در آغاز BSD حیات خود را به عنوان گونه ای از UNIX توسط گروهی از دانشجویان در دانشگاه برکلی کالیفرنیا که در آغاز توسط Bill Joy – موسس شرکت Sun Microsystems که بعدها توسط Oracle خریداری شد - رهبری می شدند آغاز کرد.

Bell Labs همچنان کار بر روی UNIX تا دهه 80 میلادی را ادامه داد. با تصمیم AT&T مبنی بر تجاری سازی UNIX تقاضا برای عرضه نسخه ای رایگان و آزاد از UNIX بدون پرداخت حق لیسانس سنگین آن بالا گرفت. از آنجا که بخش عمده ای از کدهای BSD UNIX را کدهای AT&T UNIX تشکیل می داد تمامی استفاده کنندگان BSD می بایست حق لیسانس استفاده از آن را به AT&T پرداخت می نمودند. در نتیجه برنامه نویسان دانشگاه برکلی به منظور جدا نمودن کد خود از AT&T تلاش بی وقفه ای جهت توسعه و عرضه سیستم عاملی مشابه UNIX را آغاز نمودند. با عرضه BSD 4.2 در 1984 دانشگاه ها و شرکت های بسیاری اقدام به مهاجرت به آن نمودند تا آنجا که UNIX BSD پس از UNIX اصلی به عنوان دومین UNIX مورد استفاده تلقی می شد. حتی برخی از قابلیت های آن به نسخه SVR4 سیستم عامل UNIX راه یافت.

تلاش ها تا سال 1991 و عرضه نسخه Networking Release 2 یا به اختصار Net/2 از BSD ادامه یافت. برخلاف نسخه قبلی Net/1 (1989) و نسخ پیش از آن که فقط برخی قابلیت ها مانند TCP/IP, Virtual Memory و Unix File System را به کد UNIX اصلی اضافه کرده بود و یک سیستم عامل کاملا آزاد محسوب نمی شد این نسخه یک سیستم عامل شبه یونیکس کامل بود که فقط 6 فایل سورس از Kernel اصلی UNIX را به همراه داشت. در واقع پس از عرضه Net/1 به پیشنهاد Keith Bostic بسیاری از بخش ها و ابزارهای کمکی AT&T از نو بازنویسی و با کد جدید جایگزین شد. به عنوان نمونهvi که مبتی بر ed در نسخه اصلی UNIX بود با nvi یا new vi جایگزین شد. پس از عرضه Net/2 در کمتر از 6 ماه William Jolitz - که با نام Bill Jolitz هم شناخته می شود - به همراه همسرش Lynne Jolitz شش فایل ذکر شده را بازنویسی و جایگزین نموده، سپس BSD را به میکرو پروسسورهای خانواده Intel 80386 پورت نمودند. آن ها این نسخه را 386BSD نامیده و آن را بر روی FTP در دسترس همگان قرار دادند.

از آنجائی که Net/2 BSD تحت لیسانس بسیار دست و دلبازانه ای عرضه می شد و به همگان اجازه استفاده، مطالعه، تغییر و حتی ایجاد یک سیستم عامل جدید بر اساس سورس کدش را می داد به یقین اولین سیستم عامل Open Source متن باز محسوب می شود. با وجود این که در آن زمان عبارت Open Source وجود نداشت و Net/2 هیچگاه مورد تائید Free Software Foundation یا به اختصار FSF (بنیاد نرم افزارهای آزاد) قرار نگرفت این سیستم عامل هنوز هم یک گام رو به جلوی بزرگ برای جامعه نرم افزارهای آزاد محسوب می شد چرا که ثابت نمود توسعه نسخه ای آزاد از UNIX امکان پذیر است.


GNU/Linux

البته BSD تنها تلاش جهت توسعه و عرضه یک UNIX آزاد نبود. Richard Stallman در سال 1983 در انستیتو تکنولوژی دانشگاه Massachusetts یا به اختصارMIT، پروژه GNU را معرفی و در سال 1984 کار بر روی آن را آغاز نمود. GNU مخفف عبارت GNU’s Not UNIX می باشد. تا اوایل دهه 90 میلادی بخش عمده ای از این سیستم عامل آزاد تحت نظارت FSF که Stallman موسس آن بود شامل GNU C Library همچنین Bourne Again Shell یا به اختصار BASH و GNU C Compiler یا به اختصار GCC می شد با موفقیت توسعه داده شد، جز یک بخش آن: کرنل. در اوایل دهه 90 میلادی کار بر روی GNU Hurd که هسته این سیستم عامل بود آغاز شد. از آنجا که با تصمیم Stallman معماری هسته این سیستم عامل Microkernel در نظر گرفته شد توسعه آن به دلیل پیچیدگی های فراوان با سرعت بسیار پائینی صورت می گرفت.

در پائیز سال 1991 در دانشگاه Helsinki فنلاند دانشجوئی به نام Linus Torvalds با الهام از سیستم عاملی به نام MINIX کهAndrew S. Tanenbaum جهت آموزش مفاهیم سیستم عامل به دانشجویان در کتاب خود، توسعه داده بود، کار توسعه هسته Linux را آغاز نمود. این نسخه از MINIX شامل 12,000 خط کد C بود و برای کامپیوترهای شخصی IBM توسعه داده شده بود. در نهایت رویای Stallman با قرار گرفتن هسته Linux در کنار GNU به واقعیت پیوست و در سال 1994 نسخه 1.0 از Linux منتشر شد. بسیاری این سیستم عامل را به نام Linux می شناسند، هرچند از آن جا که Linux فقط یک هسته است ترجیح Stallman این است که این سیستم عامل GNU/Linux نامیده شود.


FreeBSD

از آنجائی که توسعه 386BSD بسیار کند پیش می رفت، گروهی از کاربران آن از جمله Nate Williams, Rod Grimes و Jordan Hubbard تصمیم به ایجاد سیستم عامل دیگری بر اساس کد 4.3BSD-Lite (Net/2) (که توسط دانشگاه برکلی ارایه شده بود) به همراه بهبودهائی که از طریق 386BSD حاصل شده بود نمودند. همچنین این سیستم عامل بخش هائی از پروژه GNU که توسط FSF ارایه شده بود را به همراه داشت. نام FreeBSD توسط David Greenman پیشنهاد شد. Hubbard جهت منتشر نمودن این سیستم عامل به سراغ کمپانی Walnut Creek CDROM رفت. سرانجام FreeBSD 1.0 در نوامبر 1993 منتشر شد. این کمپانی علاوه بر انتشار FreeBSD بر روی CD برای افرادی که به اینترنت دسترسی نداشتند، یک دستگاه کامپیوتر قدرتمند و یک خط اینترنت پرسرعت را در اختیار پروژه قرار داد. تا سال 1997، FreeBSD موفق ترین محصول این کمپانی شناخته شد. در سال 2000 این کمپانی با BSDI که خود توسط یکی از کلیدی ترین چهره های دنیای اینترنت Rick Adams و چهره های کلیدی دنیای BSD از گروه Computer Systems Research Group یا به اختصار CSRG شامل Marshall Kirk McKusick, Keith Bostic, Mike Karels, Bill Jolitz و Donn Seeley می شد، تلفیق شد. در سال 2001 تمامی متعلقات نرم افزاری BSDI شامل FreeBSD, Slackware Linux و BSD/OS توسط شرکت Wind River Systems خریداری شد و مابقی شرکت با تمرکز بر سخت افزار به iXsystems تغییر نام داد. پس از آن Wind River Systems به پشتیبانی از Slackware Linux خاتمه داد در حالیکه بخش FreeBSD به عنوان یک واحد مستقل تحت نام FreeBSD Mall, Inc. به کار خود ادامه داد. تا به امروز iXsystems و FreeBSD Mall از اصلی ترین حامیان FreeBSD محسوب می شوند.

پس از اولین نسخه موفقیت آمیز از FreeBSD، نسخه 1.1 این سیستم عامل در ماه مه 1994 عرضه شد. به دلیل مسایل حقوقی که در ادامه بدان خواهیم پرداخت، آخرین نسخه از FreeBSD 1.x تحت عنوان 1.1.5.1 در جولای همان سال عرضه و کار بر روی آن متوقف شد. سپس کار بر روی 4.4BSD-Lite که عاری از کد Net/2 و مسایل حقوقی بود آغاز گشت. با توجه به مسایل حقوقی، تیم CSRG دانشگاه برکلی مجبور به حذف بخش های عمده ای از Net/2 در نسخه 4.4BSD-Lite به خصوص پورت Intel آن شده بود که باعث می شد این نسخه از BSD حتی قابل Boot شدن هم نباشد. تا نوامبر همان سال تیم FreeBSD موفق به انتقال به این نسخه از BSD گشت و در نهایت در دسامبر 1994 نسخه 2.0 این سیستم عامل عرضه شد. به دلیل مشکلاتی که در این نسخه از FreeBSD وجود داشت در ژوئن 1995 نسخه پایداری از آن تحت عنوان FreeBSD 2.0.5 عرضه شد.

از آن زمان تا کنون به شکل مستمر نسخه های FreeBSD یکی پس از دیگری، با افزایش پایداری، سرعت و قابلیت های جدید عرضه می شود. آخرین نسخه از این سیستم عامل در زمان این نوشتار 10.2 می باشد. انتظار می رود بزودی و در سال جاری مطابق برنامه، نسخه 11.0 این سیستم عامل عرضه شود.

شایان ذکر است که از سال 2001 به بعد پروژه FreeBSD تحت نظر The FreeBSD Foundation یا بنیاد FreeBSD اداره می شود.


دلایل عدم اقبال عموم به BSD

خب! سوال اصلی اینجاست که اگر BSD Net/2 اولین سیستم عامل کدباز بود، پس چرا فرصت درخشش در نزد عموم نصیب GNU/Linux شد؟ دلایل این موضوع را می توان در موارد ذیل خلاصه نمود:

  • مسایل حقوقی: مدل Source Code Licensing شرکت AT&T به سایر شرکت ها در ازای پرداخت حق لیسانس، اجازه ساخت سیستم عامل مبنی بر UNIX خود را با برند اختصاصی می داد (از آن جمله Microsoft Xenix که بعدها به SCO فروخته شد، SunOS که بعدها مبنای Solaris قرار گرفت، AIX شرکت IBM و HP-UX). در ابتدای دهه 90 میلادی Unix System Laboratories یا به اختصار USL که زیر مجموعه ای از Bell Labs بود پس از تلفیق با بخش دیگری از این شرکت با نام UNIX Software Operation مسئولیت توسعه و لیسانس نمودن UNIX را به عهده گرفت. بعدها این شرکت مستقلا زیرمجموعه AT&T شد. پس از این اتفاق در دعوای حقوقی که USL vs BSDI شناخته می شود این کمپانی شرکت Berkeley Software Design, Inc. به همراه هیات امنای دانشگاه برکلی را با ادعای زیرپا نهادن حقوق مالکیت مادی و معنوی USL مورد تعقیب قضائی قرار داد. در سال 1992 دادگاه بسیاری از موارد را نامعتبر دانسته و در مقابل دانشگاه کالیفرنیا دعوای حقوقی دیگری را علیه USL مطرح می نماید که باعث به درازا کشیده شدن مسایل حقوقی می شود. پس از خرید USL توسط Novell در سال 1993، سرانجام در یک سری از مذاکرات دوستانه مسایل حقوقی تا اوایل سال 1994 حل و فصل می شود. متاسفانه مجموعه این مسایل حقوقی سر نوشت این سیستم عامل را در نگاه بسیاری تیره و تار جلوه می داد. لازم به ذکر است که Linux هم مسایل حقوقی مشابهی را در سال های ابتدائی 2000 تجربه می نماید که در سال 2007 به نفع GNU/Linux خاتمه می یابد. Santa Cruz Operation یا به اختصار SCO - که بخش تجاری UNIX را در سال 1995 از Novell خریداری می نماید - شکایات متعددی را برعلیه توزیع کنندگان عمده تجاری GNU/Linux (شامل IBM و Novell) و چند شرکت استفاده کننده GNU/Linux مطرح می نماید. این در حالی است که Novell در زمان فروش تجارت UNIX به SCO تمامی حقوق UNIX را به کنسرسیوم X/Open که در سال 1996 پس از تلفیق با Open Software Foundation با نام The Open Group شناخته می شود، منتقل می نماید.
  • لیسانس: یکی از دلایل عدم علاقه بسیاری از برنامه نویسان و hacker ها به BSD، لیسانس بسیار دست و دلبازانه آن است. بگذارید این را با مثالی بیان کنم. فرض کنید شما دو فرزند دارید. در حالیکه که دیگر فرزند شما حضور ندارد، یک جعبه شکلات به فرزندتان می دهید. شما به فرزندتان گوشزد می نمائید که دقیقا نیمی از شکلات ها را به برادر یا خواهرش بدهد. در این جا فرزند شما هیچ حق انتخابی ندارد و شما به عنوان کسی که شکلات را به او می دهد تصمیم گیرنده هستید. این لیسانس دقیقا GNU/Linux یا همان GPL (GNU General Public License) است. در این حالت شما باید تمامی حقوق مورد استفاده خود را به کاربر بعدی بدهید. حال فرض کنید به جای حالت قبلی به فرزندتان می گوئید که می تواند هر میزان شکلات که خواست برای خودش بردارد و مابقی آن را به برادر یا خواهرش بدهد یا اینکه اصلا هیچ شکلاتی به او ندهد و تمامی را برای خودش بردارد! در واقع حق انتخاب با اوست و شما دست او را باز می گذارید. این همان لیسانس BSD است (و البته لیسانس های مشابه مانند MIT, zlib و …). شما می توانید حقوق مورد استفاده خود را به کاربر بعدی بدهید یا خیر. با وجود این که هر دوی این لیسانس ها 4 حق استفاده، مطالعه، تغییر و توزیع مجدد کد را به کاربران می دهند تفاوت این دو در این است که GPL از کد محافظت می نماید در مقابل BSD که انتخاب را در دست توسعه دهنده بعدی قرار می دهد. BSD به مزاق کمپانی هائی که نگران Source Code های محصولاتشان هستند خوش می آید و GPL به مزاق هکرها، که باز بودن و شفافیت را ترجیح می دهند. برای نمونه شرکت Microsoft کد TCP/IP Stack سیستم عامل Windows خود و برخی از ابزارهای خط فرمان آن را از BSD برداشته است. و یا شرکت Apple که بخش عمده ای از کد هسته سیستم عامل های iOS و Mac OS X را مدیون سیستم عامل کد باز Darwin است که آن هم به نوبه خود از BSD قرض گرفته است. اگر کد BSD بر اساس لیسانس GPL عرضه می شد این شرکت ها مجبور به انتشار سورس کد های محصولات خود مطابق با پیش نیازهای GPL بودند. در مقابل این لیسانس دست و دلبازانه، بخشی از سرمایه توسعه FreeBSD توسط همین کمپانی ها تامین می شود. برای مثال سرویس WhatsApp که در سال 2014 مبلغ 1 میلیون دلار را به این پروژه کمک کرد. البته نکته قابل توجه این است که حتی اگر WhatsApp از یک سیستم عامل با لیسانس GPL هم استفاده می نمود نیازی به انتشار سورس کدهای سرویسش نبود چرا که آن ها کد آن سیستم عامل را به کاربر دیگری نمی فروشند. بلکه مطابق قوانین GPL فقط از آن استفاده نموده اند (مطابق قوانین GPL شما فقط در زمان استفاده از حق چهارم که توزیع می باشد بایستی تمامی حقوق رو به کاربر بعدی بدهید).
  • مدل توسعه: به شکل سنتی مدل توسعه BSD آنچه که Eric S. Raymond افسانه ای در کتاب خود The Cathedral and the Bazaar مدل Cathedral می نامد، می باشد. کار توسعه BSD توسط یک تیم آکادمیک و حرفه ای اما کوچک و متمرکز از توسعه دهندگان که استاد برنامه نویسی می باشند، انجام می شود. این در حالیست که Linux توسط Linus Torvalds به شکل غیر متمرکز، با همکاری شبکه ای از برنامه نویسان بدون ساختار مشخص در سرتاسر اینترنت که تنها نیازمندی جهت تائید صلاحیتشان قابلیت به ثمر رساندن وظیفه محول شده می باشد توسعه می یابد. این چیزی است که Raymond مدل Bazaar می نامد. هر چند که کد هسته سیستم عامل های خانواده BSD بسیار تمیزتر و خواناتر از Linux می باشد، اما برگ برنده Linux که منجر به نوآوری سریع آن در سال های آغازین توسعه و در نتیجه شهرت آن شده است دقیقا همین مدل توسعه می باشد. مدل توسعه بسیار کارائی که خانواده BSD هیچ وقت به چشم ندیده است. چیزی که Linus Torvalds بر حسب اتفاق کشف نمود. جالب آنکه مدل توسعه GNU هم در 15 سال اول توسعه اش به مانند BSD همان مدل Cathedral بوده است.

میراث BSD

البته با به شهرت رسیدن Linux در اواسط دهه 90 میلادی، BSD هیچ گاه منقرض نشد. در مقابل سیستم عامل های متعددی از جمله FreeBSD, OpenBSD, NetBSD, DragonFly BSD, PC-BSD, GhostBSD, MidnightBSD, PureDarwin و … با انجمن ها و گروه های کاربری محدود، اما مشتاق و سرزنده به حیات خود ادامه می دهند. حتی محصولات متعددی مانند FreeNAS, pfSense, BSD Router Project, m0n0wall و … به شکل مستمر براساس آن ها توسعه داده می شود. از آن جالب تر این که Distro های خوش نام دنیای Linux مانند Debian یا Gentoo اقدام به عرضه همزمان توزیع های خود با هسته BSD به جای Linux هم نموده اند. از قبیل: Debian GNU/kFreeBSD, Gentoo/FreeBSD, Gentoo/NetBSD, Gentoo/OpenBSD, Gentoo/DragonFlyBSD و …

شایان ذکر است که سیستم Ports سیستم عامل FreeBSD منبع الهام Daniel Robbins خالق توزیع های Gentoo و Funtoo در جهت ساخت Package Manager سیستم عامل Gentoo به نام Portage بوده است.

چنانچه سیستم عامل، محصولات و سرویس های کد بسته مانند Mac OS X, iOS, Windows, Sony PlayStation 3, Sony PlayStation 4, Juniper Junos, Netflix, WhatsApp, Yahoo, Netcraft, Rambler, Yandex و … هم در نظر گرفته شوند کدهای BSD به همان میزان که Linux و Android در حال استفاده هستند بی نام و نشان در حال انجام وظیفه بر روی میلیاردها سرویس و دستگاه می باشند.

اگر Linux در زمان خود قابل به رندر فیلم تایتانیک بوده است، رندر فیلم ماتریکس هم با کمک FreeBSD مسیر شده است.

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

در مقاله بعدی به تشریح ماهیت، مفاهیم، ویژگی ها و اهداف FreeBSD خواهیم پرداخت.


منابع


مقالات مرتبط