موضوع مقاله: نت‌بی‌اس‌دی | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # نت‌بی‌اس‌دی | مقدمه: نت‌بی‌اس‌دی یک سیستم عامل شبه یونیکس و آزاد است که از بی‌اس‌دی یونیکس مشتق شده‌است. | ## بخش 1: نت‌بی‌اس‌دی | در بین سیستم‌عامل‌های خانواده بی‌اس‌دی، نت‌بی‌اس‌دی قدیمی‌ترین محسوب می‌شود و هنوز هم به‌طور فعالانه‌ای در حال توسعه است. نت‌بی‌اس‌دی به خاطر پورتابل بودن شهرت دارد و از ۵۷ سکوی سخت‌افزاری مختلف از جمله ۱۷ نوع معماری پردازنده مختلف پشتیبانی می‌کند. همانند دیگر سیستم‌عامل‌های خانواده بی‌اس‌دی، نت‌بی‌اس‌دی هم یک سیستم‌عامل کامل است و هسته و برنامه‌های فضای کاربری آن با هم نگهداری و توسعه داده می‌شوند. پروژه نت‌بی‌اس‌دی در درجه اول روی طراحی با کیفیت بالا، ثبات، و عملکرد سیستم تمرکز کرده‌است. با توجه به قابلیت انتقال (به معماری‌های متفاوت) و استفاده از مجوز بی‌اس‌دی این سیستم‌عامل اغلب در سامانه‌های توکار استفاده می‌شود. دلیل منشعب شدن پروژه نت‌بی‌اس‌دی از 386BSD این بود که بیل ژولیتز، توسعه‌دهنده اصلی 386BSD، به اندازه کافی وقت نداشت تا خیل عظیم وصله‌هایی که برای برطرف کردن اشکلات و بهبود سیستم‌عامل ارسال می‌شد را مدیریت کرده و آن‌ها را در سیستم اعمال کند. در عرض چند ماه پس از انتشار اولیه 386BSD، گروهی از کاربران 386BSD، نت‌بی‌اس‌دی را بنیان نهادند تا با کمک هم از سیستم نگهداری کرده و آن را توسعه دهند. آن‌ها بالا بودن کیفیت کدهای منبع و همینطور پورتابل بودن سیستم و وابسته نبودن آن به یک سکوی سخت‌افزاری خاص را هدف اولیه پروژه انتخاب کردند. مخزن کدمنبع نت‌بی‌اس‌دی در تاریخ ۲۱ مارس ۱۹۹۳ ایجاد شد و اولین نسخه رسمی از نت‌بی‌اس‌دی، نسخه ۰٫۸، در آوریل سال ۱۹۹۳ منتشر شد. چند ماه پس از بنیان نهاده شدن نت‌بی‌اس‌دی، گروه دیگری هم پروژه‌ای تحت عنوان فری‌بی‌اس‌دی را به صورت مستقل بنیان نهادند. پس از شکایت کردن AT&T از شرکت برکلی سافتور دیزاین به اتهام استفاده غیرمجاز از کدهای منبع یونیکس در بی‌اس‌دی/اواس، توسعه‌دهندگان نت‌بی‌اس‌دی از بیم پیش آمدن مشکل با AT&T، تصمیم گرفتند تا به جای استفاده از 386BSD به عنوان کدبیس سیستم، از 4.4BSD-lite استفاده کنند که به تازگی منتشر شده بود و عاری از کدهای AT&T بود. در سال ۱۹۹۴، یکی از بنیان‌گذاران پروژه به نام تئو دو راد، به علت مشکلات شخصی و درگیری در لیست پستی پروژه، از این پروژه کناره‌گیری کرد. او بعدها در اواخر سال ۱۹۹۵ پروژهٔ دیگری به نام اوپن‌بی‌اس‌دی را بنیان نهاد که تمرکز خود را بر روی امنیت نهاده است. اتفاق مهمی که در سال ۱۹۹۸ افتاد، معرفی کردن یک سیستم مدیریت بسته‌های نرم‌افزاری به نام پکیج سورس بود. این سیستم از پورت‌های فری‌بی‌اس‌دی اقتباس شده بود و روشی ساده به منظور نصب کردن برنامه‌های کاربری در نت‌بی‌اس‌دی را فراهم می‌کرد. در سال ۲۰۰۹ نت‌بی‌اس‌دی ۵۹ پلتفرم سخت‌افزاری (شامل ۱۵ معماری پروسسور متفاوت) را پشتیبانی می‌کرد. سیستم‌عامل نت‌بی‌اس‌دی از همه توزیع‌های لینوکس پلتفرم‌های سخت‌افزاری بیشتری را پشتیبانی می‌کند. کرنل و فضای کاربری در این پلتفرم‌ها همه ساخته شده از منبع کد درختی متحد است که به وسیلهٔ CVS مدیریت می‌شود. در حال حاضر بر خلاف سایر سیستم‌عامل‌ها مانند مو سی لینوکس، نت‌بی‌اس‌دی برای اجرا به واحد مدیریت حافظه برای اجرا روی سخت‌افزار نیاز دارد. سازگاری نت‌بی‌اس‌دی به دلیل استفاده از واسط‌های لایه انتزاع سخت‌افزار برای دسترسی سطح پایین مانند ورودی/خروجی باس یا حافظه دسترسی مستفیم است. با استفاده از این لایه سازگاری، راه‌اندازهای دستگاه می‌توانند به اجزای «وابسته به ماشین» و «مستقل از ماشین» تقسیم شوند. این به راه‌انداز اجازه می‌دهد تا به آسانی در پلتفرم‌های متفاوت استفاده شود بدون نیاز به اطلاع از جزئیات چگونگی دسترسی راه‌انداز به سخت‌افزار و کاهش مقدار کار مورد نیاز برای پورت (انتقال) به یک معماری جدید. در مقایسه کد درایورهای دستگاه‌های لینوکس اغلب نیاز دارند که برای هر معماری جدید دوباره نوشته شود. | ## بخش 2: نت‌بی‌اس‌دی | در نتیجه در تلاش برای پورت‌کردن در نت‌بی‌اس‌دی و لینوکس، توسعه‌دهندگان نت‌بی‌اس‌دی زمان کمتری برای انتقال به سخت‌افزارهای جدید صرف می‌کنند. این چندسکویی به توسعه سامانه‌های توکار کمک کرده‌است، به خصوص از نت‌بی‌اس‌دی ۱.۶، هنگامی که تمام زنجیره ابزار مترجم، اسمبلر، پیوندده و باقی ابزارها به‌طور کامل ترجمه دوگانه را پشتیبانی کردند. در سال ۲۰۰۵ به عنوان شعار نت‌بی‌اس‌دی یعنی سازگاری و شایستگی برای برنامه‌های توکار، سیستم‌های تکنولوژیکی، یک فروشنده سخت‌افزار سامانه‌های توکار یک توستر آشپزخانه با سیستم‌عامل نت‌بی‌اس‌دی را طراحی و نمایش داد. از آنجا که چارچوب بیشتر سیستم‌های شبه یونیکس را پشتیبانی می‌کند می‌توان بی‌اس‌دی را حتی در یک سیستم عامل متفاوت ساخت. چندین سامانه توکار که از نت‌بی‌اس‌دی استفاده می‌کنند به محیط‌های توسعه اضافه به جز زنجیره ابزار و میزبان نیاز ندارند. همانند خود سیستم‌عامل نت‌بی‌اس‌دی، پکیج سورس هم به صورت پورتابل طراحی شده‌است و در حال حاضر علاوه بر نت‌بی‌اس‌دی، می‌توان از پکیج سورس بر روی سیستم‌عامل‌های دیگری نظیر فری‌بی‌اس‌دی، اوپن‌بی‌اس‌دی، برخی از گونه‌های تجاری یونیکس نظیر سولاریس، مک اواس ده، ایریکس، و همچنین دیگر نسخه‌های متن‌باز یونیکس نظیر لینوکس و مینیکس ۳ هم استفاده کرد. همچنین سیستم‌عامل دراگون‌فلای بی‌اس‌دی هم از نسخه ۱٫۴ به بعد پکیج سورس را به عنوان مدیر بسته اصلی خود پذیرفت.با این حال دراگون‌فلای بی‌اس‌دی بعدها مدیربسته مخصوص به خود موسوم به DPorts را به‌وجود آورد. فرایند نصب نرم‌افزارها به وسیلهٔ پکیج سورس از چندین مرحله تشکیل می‌شود که تمام این مراحل به صورت خودکار انجام می‌شوند. ابتدا نرم‌افزار از نظر وجود داشتن آسیب‌پذیری‌های امنیتی بررسی می‌شود و در صورت وجود داشتن چنین آسیب‌پذیری‌هایی یک هشدار نمایش داده می‌شود. سپس نرم‌افزار از طریق اینترنت دانلود می‌شود، در مرحله بعد فایل‌های دانلود شده بررسی می‌شوند تا مبادا اشتباهاً یک فایل مخرب دانلود شده باشد. همینطور وصله‌های مورد نیاز بر روی برنامه اعمال می‌شوند تا برنامه به‌درستی بر روی نت‌بی‌اس‌دی اجرا شود. در آخرین مرحله، تمام فایل‌هایی که توسط برنامه بر روی سیستم نصب می‌شود، در یک پایگاه داده ثبت می‌شوند و یک بسته باینری از نرم‌افزار مورد نظر ایجاد می‌شود. چند پردازشی متقارن نت‌بی‌اس‌دی از زمان انشار نسخه ۲ در سال ۲۰۰۴ از چند پردازشی متقارن پشتیبانی می‌کند، که در ابتدا با استفاده از روش قفل بزرگ به اجرا گذاشته شده بود. در طول چرخه توسعه انشار نت‌بی‌اس‌دی۵، کار عمده برای بهبود پشتیبانی از چند پردازشی متقارن انجام شد. در فوریه ۲۰۰۷ همگام‌سازی جدید به اجرا درآمد و زمان‌بندی فعالانه با مدل چندریسمانی ۱.۱ جایگزین شد. یک زمان‌بند چندریسمانی M2 مقیاس پذیر اجرا شد، هرچند زمانبندهای قدیمی بی‌اس‌دی۴.۴ همچنان پیش‌فرض باقی می‌مانند اما برای سازگاری با چند پردازشی متقارن تعییر یافتند. چارچوب فایل‌سیستم، از جمله فایل سیستم مجازی، و فایل سیستم‌های اصلی برای MP safe بودن ویرایش شدند. از آوریل ۲۰۰۸ تنها زیرسیستم که به وسیلهٔ قفل بزرگ اجرا می‌شود پروتکل‌های شبکه و بسیاری از راه‌اندازی‌ها دستگاه‌ها است. چارچوب مجوز دهی هسته (یا Kauth) یک زیرسیستم است که تمام درخواست‌های مجوز در داخل هسته را مدیریت می‌کند و به عنوان سیستم امنیتی در سطح سیستم استفاده می‌شود. برای مثال به اسکریپت‌های پرل تنها در صورتی اجازه اجرا بدهد که با اثر انگشتشان مطابقت داشته باشند . مجازی‌سازی مانیتور ماشین مجازی Xen از نسخهٔ ۳.۰ به بعد از نت‌بی‌اس‌دی پشتیبانی می‌کند. نت‌بی‌اس‌دی از چندین فناوری مجازی‌سازی پشتیبانی می‌کند که امکان اجرای سیستم‌عامل‌های مختلف یا ایزوله‌سازی پردازش‌ها را فراهم می‌آورند. این قابلیت به کاربران اجازه می‌دهد تا چندین سیستم‌عامل را به‌صورت همزمان روی یک سخت‌افزار اجرا کنند. | ## بخش 3: نت‌بی‌اس‌دی | NVMM برای کاربرانی که به یک راهکار مجازی‌سازی بومی و سبک نیاز دارند، انتخاب مناسبی است. برخی از ابزارهای جدیدتر نیز امکان ایجاد محیط‌های ایمن‌تر و کنترل‌شده‌تر را برای اجرای برنامه‌ها فراهم کرده‌اند. ذخیره‌سازی نت‌بی‌اس‌دی دارای یک زیرساخت ذخیره‌سازی پیشرفته است که امکان مدیریت بهینه داده‌ها و دیسک‌ها را فراهم می‌کند. این ویژگی‌ها، NetBSD را به یک سیستم‌عامل قدرتمند و انعطاف‌پذیر برای سناریوهای متنوع ذخیره‌سازی و مدیریت داده‌ها تبدیل کرده‌اند. نت‌بی‌اس‌دی همچنین در معماری‌ها پردازنده مناسب، سیستم‌کال باینری سازگار با چندین سیستم عامل مشتق شده از یونیکس و شبه یونیکس، شامل لینوکس، دیگر انواع بی‌اس‌دی مانند فری‌بی‌اس‌دی، داروین اپل، سولاریس و sunos 4 دارد. این به کاربران نت‌بی‌اس‌دی اجازه می‌دهد تا برنامه‌های زیادی که تنها به صورت باینری و برای دیگر سیستم‌عامل‌ها منتشر شده را (معمولاً بدون از دست دادن کارایی زیاد) اجرا کنند. مجوز کدهای منبع نت‌بی‌اس‌دی تحت نسخه‌های مختلف اجازه‌نامه‌های بی‌اس‌دی منتشر می‌شوند که یک مجوز نرم‌افزار آزاد است. در ۲۰ ژوئن ۲۰۰۸، بنیاد نت‌بی‌اس‌دی اعلام کرد که کدهای منبع نت‌بی‌اس‌دی تا جای ممکن به مجوز دوماده‌ای بی‌اس‌دی تغییر پروانه داده‌اند و این پروانه، از این پس پروانه اصلی مورد استفاده توسط پروژه نت‌بی‌اس‌دی خواهد بود. این کدها در شاخه‌ای مجزا نگه‌داری می‌شوند تا جایگزین کردن آن‌ها با مجوز دیگری، آسان باشد. Net به این خاطر که مشارکت‌کنندگان و توسعه‌دهندگان پروژه نت‌بی‌اس‌دی، از کانال‌های ارتباطی مبتنی بر اینترنت برای ارتباط با هم استفاده می‌کنند و بسیاری از آن‌ها هرگز یکدیگر را به صورت رودررو ملاقات نکرده‌اند و BSD هم به این علت که نت‌بی‌اس‌دی از سیستم‌عامل‌های 386BSD و 4.4BSD مشتق شده‌است. لوگوی قدیمی پروژه نت‌بی‌اس‌دی، تعدادی غول بی‌اس‌دی را به تصویر می‌کشید که بر روی تکه‌های قراضه لوازم رایانه‌ای ایستاده بودند و در حال برافراشتن پرچمی بودند که بر روی آن نشان NetBSD حک شده بود و به نیزه سه‌شاخه غول بی‌اس‌دی شباهت داشت. بعدها پروژه نت‌بی‌اس‌دی در صدد جایگزین کردن این نشان برآمد و مسابقه‌ای را برای طراحی یک نشان جدید تدارک دید و مبلغ ۱۰۰ دلار آمریکا را هم برای برنده آن در نظر گرفتند؛ چرا که آن‌ها معتقد بودند نشان فعلی، بیش از حد پیچیده بود، طراحی مجدد آن سخت بود و از نظر فرهنگی و دینی مشکل‌ساز بود. در ۳۰ اکتبر ۲۰۰۴ (میلادی)، نشان جدید را از میان ۴۰۰ نشان که توسط ۲۳۸ هنرمند طراحی شده بودند، انتخاب کرد. بنیاد نت‌بی‌اس‌دی یک نهاد حقوقی غیر-انتفاعی است که کمک‌های مالی اهدایی به پروژه، سخت‌افزارها و سرویس‌ها را اداره می‌کند و همینطور مالک نشان‌های تجاری و حق تکثیر پروژه است. نت‌بی‌اس‌دی در پروژه SAMS-II ناسا در اندازه‌گیری میکروگرانشی محیط در ایستگاه فضایی بین‌المللی استفاده شده‌است؛ و برای تحقیقات TCP برای استفاده در شبکه‌های ماهواره‌ای نیز استفاده شده‌است. شبکه شرکت Force10 از نت‌بی‌اس‌دی به عنوان سیستم‌عامل زمینه استفاده می‌کند که از سیستم‌عامل FTOS (سیستم‌عامل Force10) قدرت می‌گیرد و در سوئیچ‌ها و روترهای با مقیاس‌پذیری بالا مورد استفاده قرار می‌گیرد. Force10 در سال ۲۰۰۷ برای تحقیق بیشتر و کمک به جامعه متن‌باز به بنیاد نت‌بی‌اس‌دی کمک مالی کرد. شرکت Wasabi Systems یک محصول تجاری بر پایه نت‌بی‌س‌دی با ویژگی‌های اختصاصی و الحاقات فراهم کرده‌است که تمرکز ساخت آن برای سامانه توکار، کارسازها و برنامه‌های ذخیره‌سازی است. در سال ۲۰۰۴ SUNET از نت‌بی‌اس‌دی برای تنظیم کردن رکورد سرعت اینترنت۲ استفاده کرده‌است. شرکت اپل در سیستم‌عامل داروین خود از برخی از قسمت‌های نت‌بی‌اس‌دی از جمله برنامه‌های فضای کاربری آن استفاده کرده‌است. حداقل یکی از توسعه‌دهندگان اپل به مخزن کد منبع نت‌بی‌اس‌دی دسترسی دارد و تغییرات مفید را به پروژه نت‌بی‌اس‌دی برمی‌گرداند. | ## جمع‌بندی | پشتیبانی از زبان اسکریپت‌نویسی لوا به هسته نت‌بی‌اس‌دی اضافه شده‌است؛ بنابراین این امکان وجود دارد که با استفاده از این زبان، با قسمت‌های مختلف هسته نت‌بی‌اس‌دی تعامل برقرار کرد و حتی به گسترش قابلیت‌های هسته پرداخت.