منبع اصلی نوشتار زیر در این لینک قرار دارد

۱۰ تفاوت عمده بین Linux و BSD

کمی بیشتر از یک سال و نیمی میشود که با سیستم عامل شبه یونیکس‌تری مثل BSD در سطح اینترپرایز کار میکنم. قبل از آن تجربه کار با لینوکس را داشتم. با توزیع های لینوکسی که بیشتر شبه یونیکس هستند مثل آرچ لینوکس هم چه دوران هایی که با آن نداشتم و چه شب هایی که تا صبح با آن سر و کله نزدم. کار کردن با BSD‌ها واقعا تجربه کار با لینوکس می طلبد و خیلی سخت میشود با منطق و عادات کاربران ویندوز جور و هماهنگ شود. حتی به تعبیر من سویچ کردن کاربران معمولی از توزیع هایی بر پایه Debian و Fedora هم شاید کمی اذیت کننده باشد ولی غیر ممکن نیست و کمی صبر و حوصله و خواندن داکیومنت کار را ساده تر میکند.

\"\"

از نظر من ( البته نظر تجربه شخصی من ! ) شاید بهترین راه برای ورود به دنیای BSD میتواند کار کردن با توزیع هایی مثل Arch Linux و Gentoo باشد که از بین لینوکس‌ها بیشترین شباهت را به BSD دارند. از Source Based بودن پکیج‌ها گرفته تا سیستمهای ABS و Portage و تنظیمات سیستمی یکپارچه rc.conf همه و همه میتواند بکگراندی باشد برای شروع کار با سیستم های مشابه در BSD.

در این مطلب بیشتر هدفم بر این است که تفاوت های دو سیستم عامل BSD و Linux را از دید خودم و تجربه حداقل یک ساله خودم معرفی کنم. اگر در جایی از این مطلب صحبتی از Linux میشود در بعضی موارد میتواند GNU/Linux باشد و در مواردی هم میتواند کرنل لینوکس باشد درک مفهوم آن بستگی به کاربر و درک آن در این مطلب است . همچنین این پست میتواند نقطه صفر کسانی باشد که تمایل دارند گریزی به BSD داشته باشند ولی همواره ترس از اسم آن باعث شده همیشه فقط آنرا در حد یک اسم و یک نماد جن یا شیطان قرمز بشناسند و بس…

\"\"

۱) لایسنس و مجوز:
لینوکس تحت مجوز GPL منتشر میشود و لایسنسی که BSD از آن استفاده میکند ‌BSD License است. تفاوت عمده ای که بین این ۲ سیستم عامل در سطح لایسنس وجود دارد این است که لایسنس GPL تضمین میکند یک نرم افزار که در اینجا لینوکس است تا همیشه آزاد بماند و کسی که آنرا استفاده میکند یا تغییر میدهد به همان شکل و با همان لایسنس بدون بستن بعضی از کدها بازتوزیع کند و به دست شخص بعدی برساند. در کل GPL این ضمانت را میکند که نرم افزار برای همیشه آزاد خواهد ماند.
از طرفی لایسنس ‌BSD قوانین سخت گیرانه به شکل GPL در آزاد ماندن نرم افزار ندارد و کسی که از سورس این نرم افزار استفاده میکند و آنرا تغییر میدهد الزامی ندارد که آنرا باز توزیع یا با همان لایسنس منتشر کند و حتی این مجوز را دارد که نرم افزار را به شکل سورس بسته هم با شخص بعدی بدهد.

۲) کنترل پروژه:
شیوه مدیریت کنترل پروژه در لینوکس به این شکل است که تصمیمات نهایی توسط یک شخص آن هم Linus Torvalds انجام میگیرد که قبلا شیوه توسعه و مدیریت کرنل لینوکس را توضیح داده‌ام. (پیشنهاد میکنم حتما این پست را در این مورد بخوانید). ولی شیوه توسعه BSD بر خلاف لینوکس است. در پروژه BSD تصمیمات نهایی توسط یک برد مدیریتی گرفته میشود و شخص خاصی نظر شخصی‌اش را در پروژه اعمال نمیکند.

۳) یکپارچگی سیستم عامل:
لینوکس فقط یک کرنل و هسته سیستم عامل است و در واقعا پیوستن پروژه GNU و چندین ابزار دیگر خارج از این ۲ پروژه باعث میشود که یک سیستم عامل تشکیل شود و به شکل دیستروهایی مثل Debian و Fedora و Ubuntu و… توزیع شود ولی در برابر آن BSD علاوه‌بر اینکه هسته و کرنل خود را دارد ابزار کاربردی خود را نیز همراه دارد که همه در کنار هم باعث میشود یک سیستم عامل یکپارچه محصول یک پروژه واحد ایجاد شود. البته ناگفته نماند ابزاری از پروژه GNU هم در BSD وجود دارد که از آنها استفاده میشود ولی نبود آن ابزار باعث نمیشود که در کامل بودن سیستم عامل کمبودی احساس شود.

۴) شبه یونیکس بودن:
همیشه شبه یونیکس بودن از خصوصیات هر ۲ سیستم عامل Linux و BSD بوده است. اوائل دهه ۱۹۹۰ میلادی این ۲ پروژه با الهام گرفتن از سیستم عامل Unix آغاز شدند و هدف هر دو ایجاد سیستم عاملی شبیه به یونیکس بود. طی مدت ۲۰ سال لینوکس سعی کرد سیستم عامل مدرن‌تری باشد و کمی از پایه های بنیادی یونیکس فاصله گرفت و همین توانست رمز موفقیت آن در بین بقیه سیستم عامل ها باشد. ولی از آن سو BSD سعی کرد خود را بیشتر شبیه یونیکس نگه دارد و در این امر هم موفق بود و تا به این لحظه میتوان شبه یونیکس ترین سیستم عامل را همین BSD نامید.

۵) پایه‌ی سیستم:
مورد پنجم شاید درک آن کمی مشکل باشد ولی تا حدودی هم به مورد سوم مرتبط میشود. زمانی که صحبت از Base System میشود شاید اولین چیزی که به ذهن خطور کند هسته سیستم عامل باشد. لینوکس به دلیل اینکه از دو پروژه کرنل لینوکس و پروژه گنو تشکیل شده شاید بتوان گفت که Base System همان کرنل لینوکس است که خود کرنل به تنهایی برای استفاده کاربردی ندارد و حتما باید در کنار ابزار دیگر قرار گیرد. ولی در BSD این مسئله کمی فرق میکند. زمانی که صحبت از پایه‌ی سیستم عامل میشود هسته و کرنل BSD هستش که در کنار بعضی از ابزارهای دیگر قرار میگیرد و Base System را ایجاد میکند که اگر سیستم کاربردی را برای ما فراهم نکند ولی میتوان حداقل از آن به شکل عملی استفاده کرد.

۶) Source Based بودن:
این مورد برای کاربران Arch Linux و Gentoo قابل درک تراست چون کاربران حرفه‌ای این سیستم عامل‌ها به صورت روزمره با آن سر و کار دارند. یکی از نقاط قدرت BSD تکیه بر Port Collection آن است. اگر بخواهیم معادل آن را در لینوکس مثال بزنم باید ارجاع بدهم به سیستم ABS در آرچ لینوکس و Portage در جنتو که دقیقا همین سیستم را پیاده سازی کرده اند. شما با استفاده از پورت قادر خواهید بود که نرم افزارها ٫ لایبرری‌ها را از سورس بدون هیچ دردسر پیدا کردن پیشنیازها (Dependencies) تنها با یک کامند کامپایل و نصب کنید. بر خلاف BSD در لینوکس بسته ها از مخازن نرم افزاری همان توزیع دانلود و نصب میشوند و در واقع بسته های باینری نرم افزارها قبلا توسط اشخاص دیگر برای راحتی کار کاربر ایجاد شده است. البته ناگفته نماند که BSD از بسته های باینری هم استفاده می کند.)

۷) آپگرید سیستم:
یکی از مزایای لینوکس این است که همواره از یک مدیر بسته Built-in استفاده میکند. مثل apt در اوبونتو و دبیان یا yum در فدورا و ردهت یا pacman در آرچ لینوکس یا… . مدیریت بسته ها و به روزآوری آنها توسط پکیج منیجر انجام میشود و عملیات آپگرید کردن سیستم به صورت یکپارچه انجام میشود. از ظرفی در BSD هم میتوان این چنین ویژگی را پیدا کرد ولی نه به قدرت پکیج منیجر لینوکس. و اگر کاربر بخواهد از Port Collection برای نصب پکیج های خود استفاده کند برای ارتقاء کلی همه آنها ممکن است با کمی دشواری روبه‌رو شود.

۸) پایداری سیستم:
طبق تجربه کاری من و طبق مستندات و داکیومنت هایی که به صورت روزانه میخوانم و با آنها سروکار دارم خانواده BSD‌ها را میتوان پایدارترین سیستم عامل‌های دنیای IT دسته بندی کرد. کاربران ‌BSD شاید به این جمله برخورده باشند که “If it isn’t broken, don’t fix it,” ! اگر چیزی خراب نشده بهش دست نزن ! این جمله معروفی هستش که قدرت و پایداری BSD را بازگو میکند.شاید این جمله را بتوان اینگونه هم تعبیر کرد که اصلا چیزی خراب نمیشود که بخواهید درستش کنید. از طرفی لینوکس به این شکل نیست. در بعضی اوقات ممکن است بدون اینکه شما دست به جایی زده باشید با تغییر دادن یا نصب بخش دیگری از سیستم عامل مجبور شوید کل سیستم را از نو نصب کنید. ( مثل بعضی از توزیع هایی که بر پایه مخازن ناپایدار توزیع دیگر ایجاد میشود \':D\' ) البته برای کاربران تازه‌کار و معمولی. ولی به هرحال واقعیتی است که هر کاربر کنجکاو به سیستم عامل با آن روبه‌رو میشود.

۹) پشتیبانی سخت افزاری:
یکی از مشکلاتی که میتوان به BSD وارد دانست عدم پشتیبانی به موقع از سخت افزارها و تکنولوژی‌های سخت افزاری همراه با سایر سیستم عامل ها دانست. اگر یک لپ تاپ با آخرین سخت افزارهای موجود بازار خریداری کرده باشید نباید انتظار داشته باشید که BSD به خوبی با آن کار کند. به همین دلیل است که BSD را نمیتوانید مثل لینوکس بر روی سیستم های دسکتاپ و کاربران معمولی ببینید. ولی از طرفی در لینوکس این مسئله کمی فرق میکند . شاید پشتیبانی از تکنولوژی های جدید سخت افزاری قبل از اینکه حتی در ویندوز به عمل بیاید در لینوکس زودتر این اتفاق بیافتد.

۱۰) کاربرپسند بودن:
شاید مورد آخر را بتوان چکیده ای از ۹ مورد قبل دانست و آن هم کاربرپسند بودن آن است. با مروری دوباره بر ۹ مورد قبل خواهید فهمید که BSD برای کاربر معمولی و دسکتاپ شاید چندان مناسب نباشد هرچند هستند کسانی که اهل ریاضت کشیدنند و حاضر هستند برای یادگرفتن چیزهای جدید٫ از BSD هم برای دسکتاپ استفاده کنند (اشاره غیر مستقیم به خودم \':D\' ) ولی هر جور که به موضوع نگاه کنید در خواهید یافت که لینوکس می‌تواند به مراتب از BSD کاربر پسندتر باشد با وجود اینکه برای داشتن یک دسکتاپ ایده‌ال هنوز برای لینوکس جای پیشرفت است.

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

\"\"

پی نوشت: این مواردی بود که من در مواجه و کار با FreeBSD و OpenBSD به آنها پی بردم و مطمئنا هنوز مواردی هست که میتوان آنها را به عنوان تفاوت های اصلی بین Linux و BSD برشمرد. اگر ایده یا نظری دارید یا موردی هست که در این لیست ۱۰تایی جا افتاده است کامنت های همین پست میتواند محل خوبی باشد برای بحث و تبادل نظر.



برچسب ها : , , , , , , , , , , , , , , , , , , , , , ,