مقایسه لینوکس و freebsd
|
2012-01-29, 11:52 PM,
ارسال : #1
|
|||
|
|||
مقایسه لینوکس و freebsd
گنو/لینوکس محبوبترین سیستم عاملی است که با نرم افزارهای free/opensource نوشته شده. با این حال تنها سیستم عامل در این حیطه نیست. Freebsd به خاطر پایداری، امنیت و قدرتمندی که دارد به سرعت در حال محبوب شدن است.
Freebsd سیستم عاملی است برپایه BSD (Berkeley Software Distribution) که خودش تغییر یافته AT&T’s UNIX است که توسط دانشگاه کالیفرنیا نوشته شده است. در هنگام توسعه freebsd برای پرهیز از ایجاد مشکل با صاحبان کد منبع، توسعه دهندگان تصمیم گرفتند به جای کپی کردن کدمنبع، BSD اصلی را بازسازی کنند. در مقایسه با گنو/لینوکس که تمام قسمتهای آن به طور جدا توسعه داده میشود و اینها تحت عنوان توزیع عرضه میشوند، freebsd به شکل یک سیستم عامل کامل توسعه داده میشود: هسته، device driver ها، ابزارهای مدیریت سیستم و تمام قطعات در یک revision control system نگه داری میشود. توسعه اولیه لینوکس در سال ۱۹۹۱ توسط لینوس تروالدز آغاز شد که از سیستم عامل مینیکس – که برای اهداف آموزشی توسط اندرو تننباوم ساخته شده بود--، به عنوان پایهای برای سیستم خود استفاده کرد. در سال ۱۹۹۰، پروژه گنو، که از سال ۱۹۸۳ توسط ریچارد استالمن آغاز شده بود، یک مجموعه از کتابخانه ها، کامپایرلرها، ویرایشگر متن، پوسته و دیگر نرم افزارهای مورد نیاز برای یک سیستم عامل آزاد، به جز یک هسته آماده کرده بود. توسعه دهندگان هسته لینوکس تصمیم گرفتند که هسته شان را برای کار با نرم افزارهای گنو برگزینند تا یک سیستم عامل کامل بسازند: گنو/لینوکس متولد شد. هسته و کدهای اصلی freebsd تحت مجوز BSD انتشار مییابد هرچند بعضی از اجزا، از مجوزهای آزاد دیگری مانند GPL , LGPL یا ISC استفاده میکنند. هسته لینوکس و بیشتر نرم افزارهای پروژه گنو تحت اجازهنامه GNU GPL که توسط بنیاد نرم افزارهای آزاد نوشته شده، توسعه می یابند. تفاوتهای فنی freebsd و لینوکس، هر دو از فلسفه یونیکس پیروی میکنند ولی این سیستمها کمی با هم فرق دارند. اجازه دهید نگاهی به این تفاوتها داشته باشیم. دستگاهها لینوکس برای هر دستگاه اسامی از قبل تعریف شده دارد، مثلاً eth0 اولین اولین کارت شبکه اترنت با هر chip-set است. در طرف دیگر freebsd از اسامی متفاوتی برای هر دستگاه و chip-set اش استفاده میکند. برای مثال یک کارت شبکه با چیپ ست RealTek 8129 در فریبی اس دی rl0 نامیده میشود. در لینوکس اطلاعات مربوط به سختافزار از دایرکتوری /proc به دست می آید. یک دستور مثل lspci یا lsusb هم میتواند استفاده شود. کاری که آن دستورات انجام میدهند این است که ابتدا اطلاعات خود را از دایرکتوری /proc میگیرند و بعد آنها را به شکل قابل فهم برای انسان نمایش میدهند. Freebsd از دایرکتوری /proc استفاده نمیکند. به جای آن دستور sysctl تمام اطلاعات مربوط به سخت افزارهای متصل شده به سیستم را نمایش میدهد. همچنین این دستور برای پیکربندی این دستگاهها نیز مورد استفاده قرار میگیرد. سطوح اجرایی و اسکریپت های آغازین (Runlevels and startup scripts) runlevel مفهومی است که برای توصیف نحوه عملکرد یک سیستم مثل حالت reboot,shutdown تک کاربره و چند کاربره استفاده میشود. در گنو/لینوکس فایل /etc/inittab سطوح اجرایی مختلف را تشریح میکند. همچنین پروسه init برای تغییر سطح اجرایی فعلی مورد استفاده قرار میگیرد. Freebsd از دستوراتی مانند reboot یا shutdown -h برای تغییر سطح اجرایی استفاده میکند. در حالی که لینوکس از دستور telinit برای این کار استفاده میکند. در لینوکس هر runlevel یک دایرکتوری تحت /etc یا /etc/rc.d بسته به توزیع، دارد. برای مثال در دبیان گنو/لینوکس این پوشه /etc/ است. در این پوشه زیر دایرکتوریهایی به نام rc0.d , rc1.d و همینطور تا آخرین runlevel وجود دارد. (معمولاً هفت سطح اجرایی وجود دارد) در هر پوشه rcX.d یک لینک نرم به اسکریپتهای آغازین موجود در /etc/init.d وجود دارد. این اسکریپتها برای اجرا یا توقف سرویسها استفاده میشوند. این اسکریپتها یا با حرف S و یا K شروع میشوند. اسکریپتهایی که با S شروع میشوند باعث start شدن یک سرویس و اسکریپتهایی که با K شروع میشوند باعث kill شدن یک سرویس میشوند. در freebsd اسکریپتهای آغازین در مسیر /etc/rc.d (برای سیستم ) و همچنین در مسیر /usr/local/etc/rc.d/ (برای برنامههای جانبی) وجود دارند. برای استفاده از این اسکریپتها باید یک پارامتر مانند start یا stop برای آنان ارسال کرد. هسته آشکار است که هسته های این دو سیستم عامل در طراحی دارای شباهتها و تفاوتهایی میباشند. این شباهتها عبارتند از: ماژولها: برای اضافه کردن و یا کم کردن یک قابلیت بدون نیاز به کامپایل یا راه اندازی مجدد. version: هر کرنل رسمی، دارای یک نسخه عددی است. ساخت کرنل سفارشی: از فواید کامپایل یک کرنل سفارشی میتوان به افزایش سرعت بوت، استفاده کمتر از حافظه اصلی و پشتیبانی از سخت افزارهای بیشتر اشاره کرد. دستورات برای بارگزاری ، باراندازی (unloading)، لیست کردن در سیستمها متفاوت است. لینوکس از دستور modprobe برای بارگذاری و باراندازی و همچنین نمایش لیست کلیه ماژولها استفاده میکند. همچنین دستور lsmod برای نمایش ماژولهای فعال در هسته استفاده میکند. ولی freebsd از kldstat برای نمایش ماژولهای فعال در هسته، از kldload برای بارگزاری یک ماژول و از kldunload برای باراندازی یک ماژول استفاده میکند. کرنل لینوکس از سه عدد برای هر نسخه استفاده میکند. اولین عدد نمایانگر نسخه اصلی هسته است که در این لحظه ۳ است. دومین عدد میگوید که آیا این نسخه یک نسخه پایدار است(اگر زوج باشد) یا ناپایدار(اگر فرد باشد) و آخرین عدد نمایانگر وصله (patch) است. مثلاً ۳.۲.۲ . ولی هسته freebsd دو عدد دارد. اولی نمایانگر نسخه اصلی کرنل و دومی نمایانگر شماره انتشار. ساخت یک کرنل سفارشی در هر سیستم نیازمند کامپایل آن از کد منبع است. با این حال هر سیستم روشی جدا برای این کار دارد. اولین قدم دانلود کردن کد منبع از اینترت یا یک CD است. این مرحله در هر دو سیستم لازم است. لینوکس هم ابزارهای متنی و هم ابزارهای گرافیکی برای ساخت کرنل فراهم کرده در حالی که در freebsd باید با استفاده از یک ویرایشگر متن گزینه های مورد نیاز برای کامپایل کرنل را comment یا uncomment کنید. نصب نرمافزار نرم افزارهای جانبی (third party) هم به صورت باینری و هم به صورت کد منبع توزیع میشوند. معمولاً این نرمافزارها توسط ابزارهای فشردهسازی مثل gzip و tar بسته بندی میشوند. با این حال توزیعهای مختلف لینوکس از قالب مربوط به خودشان برای نصب ، حذف یا پیکربندی استفاده میکنند. برای مثال دبیان از بسته های .deb استفاده میکند و ابزارهای dpkg و apt-get را برای مدیریت این بسته ها ارائه میکند. با استفاده از این ابزارها نصب یک نرمافزار از خط فرمان بسیار آسان است. مثال زیر چگونگی نصب برنامه گیمپ (برنامه ویرایش تصاویر گنو) را نشان میدهد: کد : apt-get install gimp freebsd از دو تکنولوژی جالب برای نصب نرمافزار استفاده میکند. بسته ها یک بسته، یک فایل فشرده شده است که دربرگیرنده باینریها،مستندات و فایلهای پیکربندی شامل اطلاعاتی که به سیستم اجازه میدهد برنامه را در جای درست نصب کند. ابزارهایی مانند pkg_add , pkg_delete و pkg_info برای مدیریت این بسته ها استفاده میشوند.برای دانلود و نصب خودکار یک بسته کافیست دستور pkg_add را به صورت زیر استفاده کنید: کد : # pkg_add -r gimp پورتها: در freebsd اصطلاح پورت به فایلهایی گفته میشود که برای کامپایل کردن خودکار یک برنامه از کدمنبع طراحی شده است. یکی از مزیت پورتها این است که میتوانید کنترل کامل بر روی پارامترهایی که در هنگام کامپایل لازم است را داشته باشید. در طرف مقابل نصب یک بسته باینری احتیاج به درک کاربر از چگونگی کامپایل برنامه ندارد. در هر حال هر کاربر میتواند از هر دو تکنولوژی که گفته شد استفاده کند. میتوانیم نرمافزارها را در هر دو سیستم عامل هم از طریق بسته های باینری و هم از طریق کد منبع نصب کنیم. پوسته ها bash پوسته پیشفرض در اکثر توزیعهای لینوکس است که توسط پروژه گنو نوشته شده است. Freebsd از tcsh استفاده میکند. اگر پوسته دیگری را ترجیح میدهید، میتوانید آن را توسط package manager هایی که شرح داده شد نصب کنید. و بعد از طریق فرمان chsh آن را پوسته پیشفرض خود سازید. انتخاب پوسته امری شخصی است و بستگی به تجربه و کارهای روزانه تان دارد. جامعه کاربری لینوکس جامعه کاربری بزرگتر ولی نامتمرکز دارد. Freebsd جامعه کاربری کوچکتر ولی متمرکز دارد. این امر بر روی مدل توسعه این سیستم عاملها تأثیر میگذارد. کل سیستم freebsd توسط یک گروه توسعه دهنده فداکار توسعه داده میشود. در حالی که هر قسمت یک سیستم لینوکس توسط طیف وسیعی از تیمها توسعه داده میشود. پشتیبانی از سختافزار به طور کلی لینوکس طیف وسیعتری از سخت افزارها را پشتیبانی میکند و نسبت به freebsd به پلتفرم های بیشتری پورت شده است. مستندات freebsd دارای یک کتاب راهنمای (handbook) بسیار عالی و تمام مستندات در یک جا freebsd.org است. Freebsd به طور پیشفرض به همراه کد منبع تمام سیستم عرضه میشود. که در مسیر /usr/src نصب شده است. در حالی که لینوکس اینطور نیست ولی کد منبع به آسانی قابل دانلود کردن است. فایل سیستم ها: هر دو از فایل سیستمهای زیر به طور مشترک پشتیبانی میکنند. کد : ext2, ext3, FAT, FUSE, ISO9660, NFS, NTFS (experimental), procfs, RAM disk, SMBFS, swap, UDF هر دو از فایل سیستم encrypt شده و سهمیه بندی و RAID پشتیبانی میکنند. Freebsd کد : AFS, Coda (experimental), ReiserFS (read only), UFS/UFS2, XFS (experimental), ZFS, FFS, others لینوکس کد : ReiserFS, EXT4, UFS (read only), XFS, JFS, BTRFS, SQUASHFS, others اجازه نامه freebsd اجازه نامه BSD را ترجیح میدهد. این مجوز copyfree (محتوای آزاد)، برای هسته freebsd استفاده شده است. بعضی از ابزارهای اصلی جزء پروژه GNU هستند و تحت اجازهنامه های GPL یا GPL2 عرضه میشوند. ولی توسعه دهندگان سعی دارند تا این ابزارها را جایگزین کنند. هسته لینوکس تحت اجازه نامه GPLv2 عرضه میشود که یک اجازه نامه copylefted است. تعدا زیادی از ابزارهای پایه در بیشتر توزیعهای لینوکس تحت اجازه نامه BSD هستند. و هنوز تحت این اجازه نامه نگه داشته شده اند. آزادی که برای کپی کردن یک کد BSD-licensed وجود دارد، استفاده از کدهای freebsd را در لینوکس راحتتر میسازد تا استفاده از کدهای لینوکس در freebsd. گروه کاربران ایرانی BSD |
|||
2012-09-01, 10:23 AM,
ارسال : #2
|
|||
|
|||
Re: مقایسه لینوکس و freebsd
ببخشید ولی FreeBSD اصلا runlevel نداره این هم مرجع:
http://www.freebsd.org/doc/en_US.ISO8859...artup.html اعتراض به عملکرد دولت در زمینه IT اینترنت حداقل 5M + یک laptop حق مسلم هر ایرانیست. |
|||
2012-09-01, 01:29 PM,
ارسال : #3
|
|||
|
|||
Re: مقایسه لینوکس و freebsd
حرف شما کاملا درست هست و من هم با شما موافقم. البته اگه بخوایم مفهموم سطوح اجرایی (که برای توصیف حالات عملکرد سیستم در لینوکس استفاده میشه) رو به FreeBSD تعمیم بدیم، میشه گفت FreeBSD چهار تا سطح اجرایی داره: خاموش بودن سیستم، راهاندازی مجدد، حالت تک کاربره (که در منوی بوت قابل انتخاب هست) و حالت نرمال و عادی سیستم. البته در هیچ جای متن هم گفته نشده که FreeBSD از مفهموم runlevel مثل لینوکس استفاده میکنه. البته باز هم میشه این مفهوم رو به دیگر سیستمعاملها مثل ویندوز هم نعمیم داد. حالت عادی، خاموش، راهاندازی مجدد، safe mode,safe mode با خط فرمان، و حالتهای دیگه که اگر در هنگام راهاندازی سیستم F8 رو بزنیم قابل انتخاب هستند.
گروه کاربران ایرانی BSD |
|||
2012-09-01, 10:42 PM,
ارسال : #4
|
|||
|
|||
Re: مقایسه لینوکس و freebsd
دوست گرامی نیاز به تعمیم دادن نداره ، چون این یه بحث خاص مربوط به سیستمهای SystemV مثل سولاریس و لینوکس هستش.
اعتراض به عملکرد دولت در زمینه IT اینترنت حداقل 5M + یک laptop حق مسلم هر ایرانیست. |
|||
2012-09-02, 10:59 AM,
ارسال : #5
|
|||
|
|||
Re: مقایسه لینوکس و freebsd
m_pahlevanzadeh نویسنده :دوست گرامی نیاز به تعمیم دادن نداره ، چون این یه بحث خاص مربوط به سیستمهای SystemV مثل سولاریس و لینوکس هستش.یه سوال: توزیع هایی که از systemٰV استفاده میکنن شامل این بحث نیستن؟ یا میشه تعمیم داد؟ :wink: |
|||
2012-09-02, 12:07 PM,
ارسال : #6
|
|||
|
|||
Re: مقایسه لینوکس و freebsd
هر چیزی جا و فرهنگ خودش رو داره مثل این میمونه که واژه خسته نباشید ایرانی رو بیارید تو دامنه اصطلاحات انگلیسی... کلا خنده دار میشه.
اعتراض به عملکرد دولت در زمینه IT اینترنت حداقل 5M + یک laptop حق مسلم هر ایرانیست. |
|||
2012-09-03, 07:23 AM,
ارسال : #7
|
|||
|
|||
Re: مقایسه لینوکس و freebsd
ببخشید! من الان به چشمم خورد! منظورم systemd بود!
نقل قول :یه سوال: توزیع هایی که از systemd استفاده میکنن شامل این بحث نیستن؟ یا میشه تعمیم داد؟ :wink: |
|||
2012-09-03, 02:48 PM,
ارسال : #8
|
|||
|
|||
Re: مقایسه لینوکس و freebsd
منظورتون از systemd چیه؟ یه SystemV داریم ولی systemd نشنیدم.
اعتراض به عملکرد دولت در زمینه IT اینترنت حداقل 5M + یک laptop حق مسلم هر ایرانیست. |
|||
2012-09-04, 08:31 AM,
ارسال : #9
|
|||
|
|||
Re: مقایسه لینوکس و freebsd
الان اکثر دیستروهای جدید رفتن رو systemd
<!-- m --><a class="postlink" href="http://en.wikipedia.org/wiki/Systemd">http://en.wikipedia.org/wiki/Systemd</a><!-- m --> رو آرچ و فدورا و دبیان که خودم کار کردم باهاش... |
|||
2012-09-04, 04:41 PM,
ارسال : #10
|
|||
|
|||
Re: مقایسه لینوکس و freebsd
حداقل دبیان و فدورا و زوزه رو مطمئن هستم که هنوز رو SystemV موندن.
از طرفی runlevel داشتن یا نداشتن BSD نمیدونم چرا داره به systemd ختم میشه؟؟؟ اعتراض به عملکرد دولت در زمینه IT اینترنت حداقل 5M + یک laptop حق مسلم هر ایرانیست. |
|||
2012-09-05, 06:37 AM,
ارسال : #11
|
|||
|
|||
Re: مقایسه لینوکس و freebsd
m_pahlevanzadeh نویسنده :حداقل دبیان و فدورا و زوزه رو مطمئن هستم که هنوز رو SystemV موندن.دوست عزیز بهتره یه مطالعه مجدد بفرمایید! چون فدورا از نسخه ۱۶، سوزه از ۱۲.۱ رفتن رو systemd و دبیان تستینگ هم الان روی systemd هست! m_pahlevanzadeh نویسنده :از طرفی runlevel داشتن یا نداشتن BSD نمیدونم چرا داره به systemd ختم میشه؟؟؟شما گفتی: m_pahlevanzadeh نویسنده :دوست گرامی نیاز به تعمیم دادن نداره ، چون این یه بحث خاص مربوط به سیستمهای SystemV مثل سولاریس و لینوکس هستش.و من هم گفتم: mearaji نویسنده :یه سوال: توزیع هایی که از systemd استفاده میکنن شامل این بحث نیستن؟ یا میشه تعمیم داد؟ :wink:با توجه به اینکه شکل کلی runlevel تو systemd با systemV فرق میکنه، تقریبا این بحث در آینده با دنیای لینوکس فاصله میگیره... |
|||
|