بسيار خوب
من قسمت اول آموزش رو مي گذارم تا بعد
حتما نظر بدين
امنيت در سيستم عامل FreeBSD و مقايسه آن با ويندوز و لينوكس
مقدمه
BSD چيست؟
تاريخچه: BSD از كجا شروع شد؟
پايه BSD و Unix بر پايه AT&T گذاشته شد. BSD يكي از شاخه هاي Unix است. AT&T تمام پروژه هايي كه در پروژه Unix استفاده مي كرد، متعلق به خودش نبود و البته FreeBSD نمي تواند اسم Unix را داشته باشد . با وقوع اتفاقاتي كه در فاصله سال هاي 1992-1994 روي داد اسم Unix را از FreeBSDگرفتند. يكي از تيم هايي كه از پروژه هاي آنها استفاده مي كرد CSRG (Computer Science Research Group) بود كه در دانشگاه بركلي مشغول به كار بود و تيم دانشجويي بودند و هسته اصلي FreeBSDاز آنجا گرفته شد. در سال 1976 كار اين تيم انتشار برنامه هاي ساده براي كاربران بودكه نام محصولات خود را (Beckley Software Distribution) گذاشتند. پس هسته اصلي از گروه CSRG بود. گروهCSRG با APRA يك قرارداد نوشت كه يك پروتكل ارتباطي براي بهبود شبكه هاي اين سازمان بنويسد كه بعد ها نام IP و سپس نام TCP/IPبر خود گرفت. BSDاولين محصول خود را با نام TCP/IP ارائه داد و در سال 1980 سرمايه گذاري بر روي آن پايان يافت. در سال 80 شركت هاي توليدكننده محصولات به اين نتيجه رسيدند كه به جاي آنكه خود سيستم عامل توليد كنند، ليسانس AT&T Unix را خريداري كنند. مثل شركت Sun كه سيستم عامل Sun/OS را توليد كرد. در نظر داشته باشيم كه ببينيم چطورBSD كه Open Source نبود و بايد License براي آن خريداري مي شد چگونه به OpenBSD و FreeBSD تبديل شد. همانطور كه اشاره شد در سال 1980 بودجه گذاري در CSRG به پايان رسيد و يك سري از اعضاي آن گروه تصميم به نشر BSD گرفتند. هنگامي كهAT&T/Unix اجازه گرفت محصول خود را به صورت تجاري وارد بازار كند اسم آن را System 5 گذاشت كه از شبكه سازي حمايت نمي كرد و تنها يك Kernel به همراه يك سري Device بود كه نياز هاي يك سيستم عامل بود. پس نياز به يك مجموعه اي بود كه از شبكه سازي حمايت مي كرد و بهترين چيز BSD بود كه همراه آن يك پوسته و يك اديتور بود. در سال 1992 گروه نسخه بتاي386BSD را ارائه كرد كه ليسانس نداشت . گروه پس از آناليز كرنل متوجه شد كه 20% كرنل ناقص است كه شخصي به نام ويليام جوليت پس از آناليز دوباره، كد ناقص را تكميل كرد. در همان راستا شركت BSD نيز توسط گروه ثبت شد. در سال 1993، 386BSD هيچگاه كامل نشد ولي دو پروژه بسيار با ارزش FreeBSD و OpenBSD از آن خارج شد و نيز بعد ها NetBSD ارائه شد . دليل واگرايي اين تيم ها اين بود كه براي به نتيجه رسيدن 386BSD صبر نكردند . NetBSD مي خواست به حداكثر Portability برسد اما FreeBSD مي خواست قابليت اطمينان بالاتري داشته باشد. در سال 1996، OpenBSD از NetBSD جدا شد.
چه كسي مالك BSD است؟
BSD متعلق به هيچ فرد يا شركتي نيست بلكه توسط يك سري مهندسان بسيار توانا بنيان گذاري شده و توسط همانها رشد مي كند و همه مي توانند Component هاي خود را به آن شركت Apply كنند.
BSD چگونه رشد مي كند و چگونه به روز مي شود؟
تعداد بسيار زيادي از مهندسين در سراسر دنيا روي BSD كار مي كنند كه به 3 دسته تقسيم مي شوند:
1- Contributors: مهندسيني كه كد يا مي نويسند ولي خودشان نمي توانند كد را مستقيما وارد درخت اصلي كنند.
2- Committers: مهندسيني كه كد را وارد درخت اصلي مي كنند .
3- The core team: فقط FreeBSD وNetBSD آن را دارند.Core team در حين انجام پروژه ايجاد مي شود و در حين پروژه تغيير مي كند و امكان حذف و اضافه اعضا وجود دارد. اعضاي هيچ لزومي ندارد كه برنامه نويس باشند ( مانند جان هبارد)
نسخه هاي BSD:
هر كدام از نسخه هاي كرنل درخت سورس خودش را دارد . نسخه هاي موجود به 3 بخش تقسيم مي شوند:
1- :Current نسخه در حال تغيير و رو به بهبود
براي كساني كه مايل به همكاري با تيم هستند مناسب است.
FreeBSD 5.0-CURRENT , NetBSD 1.4.3.G , OpenBSD current
2- Release: در فواصل منظم 2- 4 بار در سال نسخه هاي current، release مي شوند.
FreeBSD 2.6 RELEASE
3- Stable : تنها FreeBSD از اين واژه استفاده مي كند و NetBSD و OpenBSD در همان حالت باقي مي مانند.
ما EndUser هستيم و بايد از نسخه Stable استفاده كنيم.
چه نسخه هايي از BSD در دسترس است؟
OpenSource:
FreeBSD : High performance <YAHOO!>
NetBSD : Maximum probability <NASSA>
OpenBSD : Security and code purity
CloseSource:
BSD/OS
Mac OS/X
چرا BSD همچنان مورد توجه نيست؟
1- تيم BSD علاقه مند به تصحيح كد خودش است به آنكه آن را بفروشد. (برعكس Linux).
2- مسائل خارجي سيستم عامل (مانند Linux) بر آن تاثير گذار است . Linux يك كرنل است كه با پروژه Gnome جمع مي شود و يك سيستم عامل مي شود. در ادامه به تفصيل در اين مورد بحث مي شود.
3- توسعه دهندگان BSD، Interface خشك و شايد مسخره ه اي براي آن در نظر گرفته اند كه ساده نيست. آنها به تجربه كاربر توجه دارند به علاقه او.
4- در سال 1992، AT&T برعليه BSD شكايت كرد كه تاثير منفي در ديدگاه كاربر گذاشت.
5- اينگونه به نظر مي رسد كد پروژه BSD تكه تكه شده و از هم جدا به نظر مي آيد.
چرا BSD مهم است؟
ارزش و دقت
Value and Accuracy
ديدگاهي كه 30 سال است File System مي نويسد با ديدگاه مهندس مايكروسافت قابل مقايسه نيست (Blue page of death). در BSD شما Are you sure to restart your computer نمي بينيد. دليل آنكه براي هر كاري بخصوص در Win98 نياز به Restart است آن است كه چون سيستم Close Source است تيم هاي مختلف ايزوله هستند و تيم فرض مي كند كه يك سري مقدماتي كه نياز است آماده است . آنها براي ورود به يك سيستم نياز به يك Safe mode دارند كه بدانند اين چيزها آماده است. در نتيجه چون ويندوز نمي تواند در حين كار حالت Safe mode را به سرويس بدهد نياز به است.
Security:
ويندوز بدون آنكه بخواهيم براي مايكروسافت report مي كند. امنيت كدها و اينكه چه چيزي بايد باشد يا نباشد در اختيار ما نيست. در حالي كه سيستم عامل كد باز اينگونه نيست.
صفحه آبي مرگ:Blue Page of death
Performance:
FreeBSD اين قابليت را دارد كه به عنوان يك سيستم عامل قابل اعتماد براي هندل كردن بار ترافيكي بسيار سنگين كار كند. مانند Yahoo!. Linux كارايي بهينه اي در مقابل بار سنگين ترافيكي ندارد و تكليف ويندوز نيز كاملا مشخص است. براي كارهاي روتين مناسب است، اما قادر به هندل كردن كارهاي سنگين شبكه اي نيست. براي سرور اينترنت Hotmail ، مايكروسافت از FreeBSD استفاده مي كند.
Linux به طور پيش فرض Asynch است. در سيستم عاملي كه به صورتSynch كار مي كند، يك عمل يا انجام ميشود يا يك پيغام خطا مبتني بر عدم انجام آن صادر مي شود اما در Asynch ممكن است پيغام موفقيت انجام كار صادر شود اما سيستم عامل بنا بر دلايلي آن را به بعد موكول كند كه اين روش سرعت بهتري براي سيستم عامل فراهم مي كند اما امكان دارد در mount يك Device به مشكل بر بخوريم.
Security:
FreeBSD
خود سيستم OpenSource است.
در FreeBSD تمام Component ها OpenSource است و تمام پروژه هاي امنيتي بر روي آن تست شده اند. Kernel در FreeBSD سطح بندي شده است و علاوه بر آن شامل ابزار ها و فلگ هايي است كه قدرت زيادي به شما مي دهد.
Linux، OpenSource است. كد آن بسيار سريع و توسط مهندسيني كم تجربه نوشته شده است.( به صورت پيش فرض Insecure است). ادعا مي كند امن است اما نه خودش ابزاري براي امنيت در اختيار شما مي گذارد و نه ابزاري به طور رايگان براي اين كار توسط ديگران نوشته شده.
File System:
سيستم فايل:
FreeBSD از سيستم (Unix File System) UFS استفاده مي كند كه مقداري پيچيدگي بيشتري از ext دارد. يك option جديد در FreeBSD به نام Soft Update وجود دارد كه مكاني بين Synch و Asynch است كه براي I/O Base ها مانند بانك اطلاعاتي بسيار مناسب است.
mount: در اختيار گرفتن يكdevice از طريق سيستم عامل راmount گويند.FreeBSD بدترينhard carsh را با كمترين درصد از دست دادن اطلاعات وmount مجدد سيستم فايل تحمل مي كند. درWindows ،Fat وNTFS داريم كه 15 سال قبل طراحي شد كه هستند و در آنها طبيعتا به امنيت فكر نشده است. درFreeBSD ، سيستم فايل ،Sector base نيست يعني فقط خودش مي داند كه فايل را كجا نوشته است.Linux از مفاهيمي مانندVirtual Memory براي بالا بردن كارايي خود استفاده مي كند.
Device Drivers:
در پروژهLinux (GNOME) اگر بخواهيم از كد آن استفاده كنيم، بايد كد خودمان را همpublic domain كنيم. پس اگر كسي بخواهد درايوري را درLinux بگذارد بايد كد درايور خودش را همrelease كند. پس درLinux زمان زيادي طول مي كشد تا يك درايور براي آن نوشته شود. اما درFreeBSD بخاطر آنكهLicense متفاوتي باGNOME دارد اين اجازه را به شما مي دهد كه فقط باينري كد را وارد كنيد و در حالي كه ويندوز براي تقريبا تمامي Device ها درايور مربوط به آن را پشتيباني مي كند كه از نقاط قوت آن است.
Commercial Applications:
برنامه هاي تجاري:
درFreeBSD تعدادCommercial Applications روزبه روز در حال افزايش است اما در مقابلWindows قابل مقايسه نيست. تمام برنامه هاي تجاري تحت ويندوز وجود دارند و اكثر آنها فقط تحت ويندوز نوشته مي شوند. اين در حالي است كهFreeBSD مي تواند باينري كد هاي توليد شده توسط ساير سيستم عامل ها را run كند، اما درlinux اين خاصيت را نداريم.
در ضمن آنكه آنچه درlinux كمپايل شده درFreeBSD با performance بهتري run مي شود.
Free Applications:
نرم افزار هاي رايگان:
نرم افزار هاي بسيار زيادي تحتlinux وFreeBSD وجود دارند كهopen source و رايگان هستند. آما آن چيزي كه بايد در نظر گرفت تفاوتFreeBSD وlinux است. درFreeBSD يك موجوديت وcollection داريم كه نام آن ports است. تمام نرم افزار هايي كه تحتFreeBSD نوشته مي شوند بايد خود را درPorts رجيستر كنند. لينك به تمام نرم افزار هاي مورد نياز در دسترس است و در صورت لزوم مي توان آن را به همراه دانلود كرد.linux هم شرايط مشابهي دارد اما چونports را نداردrevision هاي مختلفي ازsoftware هاي مختلف وجود دارد. يعني ممكن است مثلا نرم افزاري تحتlinux نوشته شود و بعد همان نرم افزار باrevision هاي متفاوت در Linux داشته باشيم كه اين بدان دليل است كه مديريت مركزي (ports) وجود ندارد.
در ويندوز بيشتر بحثshareware مطرح است ولي ماsource code نداريم.
Developed Enviroment:
محيط توسعه يافته:
FreeBSD شامل مجموعه بسيار گسترده از ابزارهاي توسعه است و در حاليكهLinux شامل ابزارهايي شبيه بهFreeBSD است اما برنامه هايي كه در يك نسخه از لينوكس كمپايل مي شود ممكن است در نسخه ديگر كار نكند. در ويندوز هزينه بسيار بالاي تهيه برنامه ها از ارزش آن ها مي كاهد.
CVS: ( Component Versioning System)
مباني توسعه:
فرض كنيد مجموعه اي هستيم كه مي خواهيم پروژه اي را انجام دهيم و هر كدام به تيم هايي تقسيم مي شويم. پس احتياج به سيستمي استت كه مديريت پروژه ها را انجام دهد. علاوه بر آن بايد قابليتlock داشته باشيم. يعني اگر يك در اختيار يك يا چند تيم است ساير تيم ها نبايد دسترسي به آنI/O داشته باشند.FreeBSD از طريقCVS اين كار را انجام مي دهد در حالي كهLinux اين قابليت را ندارد. درLinux تنها كسي كه اجازه نوشتن در درخت سورس را دارد آقايLinus است. بايد تمام Bug ها ميل شود و ايشان بررسي آنها را انجام دهد كه عملا كار بسيار مشكلي است و مديريت توسط يك نفر بسيار سخت مي شود. در ويندوز اطلاعات راجع به كد بسيار بسيار محدود است.
Support:
پشتيباني:
FreeBSD وLinux هر دو در سطوح مختلف پشتيباني را به نحو احسن انجام مي دهند و پشتيباني كاملا رايگان است. اما در 2000 بر خلاف ادعاي مايكروسافت، ساپورت بسيار طولاني و هزينه بر است و باگ ليست ها بر اساس زمانبندي مايكروسافت و نه درخواست شما رسيدگي مي شود و هيچ گارانتي نيز وجود ندارد.
FreeBSD رايگان است و User Licening ندارد.Linux نيز شرايط مشابهي دارد اما در ويندوز 2000 بيش از 700$ هزينه داريم كه هم اقتصادي نيست و هم زمانبر است.
مراجع:
1:
www.freebsd.org
2:
www.geocrawler.com
3:
www.dbforums.com
4: Net Programing by Unix (1998 – Jhone Williams)