نتبیاسدی یک سیستم عامل کامپیوتر شبه یونیکس متنباز است که از بیاسدی، یک سیستم عامل مشتق شده از یونیکس در دانشگاه کالیفرنیا، برکلی، گرفته شدهاست. نتبیاسدی دومین نسل متنباز بیاسدی بعد از ۳۸۶بیاسدی (به انگلیسی: ۳۸۶BSD) است که بصورت رسمی منتشر شدهاست و همچنان بطور فعال در حال توسعهاست. پروژه نتبیاسدی در درجه اول روی طراحی با کیفیت بالا، ثبات، و عملکرد سیستم تمرکز کردهاست. با توجه به قابلیت انتقال (به معماریهای متفاوت) و استفاده از مجوز بیاسدی این سیستمعامل اغلب در سامانههای توکار استفاده میشود.
امکانات
سازگار کردن
همانطور که شعار پروژه نتبیاسدی نشان میدهد نتبیاسدی با تعداد زیادی از معماریهای ۳۲ و ۶۴ بیت سازگار شدهاست. از مینیکامپیوترهای VAX تا رایانههای جیبی. در سال ۲۰۰۹ نتبیاسدی ۵۹ پلتفرم سختافزاری (شامل ۱۵ معماری پروسسور متفاوت) را پشتیبانی میکرد. توزیع نتبیاسدی از همه توزیعهای لینوکس پلتفرمهای سختافزاری بیشتری را پشتیبانی میکند. کرنل و فضای کاربری در این پلتفرمها همه ساخته شده از منبع کد درختی متحد است که بوسیله CVS مدیریت میشود. در حال حاضر بر خلاف سایر هستهها مانند مو سی لینوکس نتبیاسدی برای اجرا به واحد مدیریت حافظه برای اجرا روی سختافزار نیاز دارد.
سازگاری نتبیاسدی به دلیل استفاده از واسطهای لایه انتزاع سختافزار برای دسترسی سطح پایین مانند ورودی/خروجی باس (به انگلیسی: bus) یا حافظه دسترسی مستفیم (به انگلیسی: DMA) است. با استفاده از این لایه سازگاری راهاندازهای دستگاه میتوانند به اجزای «وابسته به ماشین» و «مستقل از ماشین» تقسیم شوند.
این به راهانداز اجازه میدهد تا به آسانی در پلتفرمهای متفاوت استفاده شود بدون نیاز به اطلاع از جزئیات چگونگی دسترسی راهانداز به سختافزار و کاهش مقدار کار مورد نیاز برای پورت (انتقال) به یک معماری جدید.
این به عنوان مثال یک راهانداز برای یک کارت PCI خاص را قادر میسازد که چه کارت یک اسلات PCI در IA-32 یا alpha یا پاورپیسی یا اسپارک یا سایر معماریها باشد با باس PCI بدون مشکل کار کند. در مقایسه کد درایورهای دستگاههای لینوکس اغلب نیاز دارند که برای هر معماری جدید دوباره نوشته شود. در نتیجه در تلاش برای پورتکردن در نتبیاسدی و لینوکس، توسعهدهندگان نتبیاسدی زمان کمتری برای انتقال به سختافزارهای جدید صرف میکنند.
این چندسکویی به توسعه سامانههای توکار کمک کردهاست، به خصوص از نتبیاسدی ۱.۶، هنگامی که تمام زنجیره ابزار مترجم، اسمبلر، پیوندده و باقی ابزارها بطور کامل ترجمه دوگانه را پشتیبانی کردند.
در سال ۲۰۰۵ به عنوان شعار نتبیاسدی یعنی سازگاری و شایستگی برای برنامههای توکار، سیستمهای تکنولوژیکی، یک فروشنده سختافزار سامانههای توکار یک توستر آشپزخانه با سیستمعامل نتبیاسدی را طراحی و نمایش داد.
انتقالهای تجاری به پلتفرمهای توکار شامل AMD Geode LX800، پروسسور Freescale PowerQUICC، Marvell Orion، خانواده AMCC 405 از پروسسور پاورپیسی، سری XScale IOP و IXP اینتل که بوسیله شرکت Wasabi system حمایت و در دسترسی قرار دارد.
چارچوب نرمافزاری قابل حمل
چارچوب ترجمه دوگانه نتبیاسدی (همچنین به عنوان build.sh) شناخته میشود به یک سیستم کامل نتبیاسدی برای یک معماری اجازه میدهد تا در یک سیستم با معماری کاملا متفاوت (معمولا سریعتر یا با منابع سختافزاری بیشتر) ساخته شود. از آنجا که چارچوب بیشتر سیستمهای شبه یونیکس را پشتیبانی میکند میتوان بیاسدی را حتی در یک سیستم عامل متفاوت ساخت.
چندین سامانه توکار که از نتبیاسدی استفاده میکنند به محیطهای توسعه اضافه به جز زنجیره ابزار و میزبان نیاز ندارند.
مجموعه بسته pkgsrc
یکی از ویژگیهای نتبیاسدی pkgsrc (کوتاه شده package source)، یک چارچوب برای ساخت و مدیریت بستههای نرمافزار کاربردی شخص سوم است.
در ژانویه سال ۲۰۰۹ مجموعه pkgsrc شامل بیش از ۸۱۰۰ بسته بود. ساخت و نصب بستههایی مانند کیدیای، گنوم، کارساز اچتیتیپی آپاچی یا پرل با استفاده از سیستم میکفایل انجام شدهاست. این میتواند بصورت خودکار کد منبع را بگیرد، بسته را باز کند، پچ کند، پیکربندی کند، بسته را بسازد و نصب کند همچنین میتواند بسته را حذف کند. یک جایگزین برای کامپایل از روی کد منبع استفاده از بستههای باینری از قبل کامپایل شدهاست. در هر صورت هر پیش شرط/ وابستگی بصورت خودکار و بدون نیاز به راهنمای کاربر بوسیله سیستم مدیریت بسته نرمافزاری نصب خواهد شد.
pkgsrc فقط از پلتفرم سختافزاری که نتبیاسدی اجرا شده پشتیبانی نمیکند بلکه همچینی از چندین سیستم عامل شبه یونیکس دیگر مانند لینوکس، انواع دیگر بیاسدیها، سولاریس، سیستمعامل داروین مک، irix، interix و باقی موارد نیز پشتیبانی میکند. pkgsrc همچنین به عنوان سیستم مدیریت بستههای نرمافزاری رسمی برای دراگون فلای بیاسدی به تصویب رسیدهاست.
چند پردازشی متقارن
نتبیاسدی از زمان انشار نتبیاسدی ۲ در سال ۲۰۰۴ از چند پردازشی متقارن پشتیبانی میکند، که در ابتدا با استفاده از روش قفل بزرگ (به انگلیسی: Giant lock) به اجرا گذاشته شده بود. در طول چرخه توسعه انشار نتبیاسدی۵، کار عمده برای بهبود پشتیبانی از چند پردازشی متقارن انجام شد. اعلب زیر سیستمهای هسته ویرایش شدند تا MP safe باشند (قابلیت اجرا بصورت چندنخی را داشته باشند) و از روش قفلگذاری fine-grained استفاده کنند. در فوریه ۲۰۰۷ همزمانی جدید به اجرا در آمد و زمانبندی فعالانه با مدل چندریسمانی ۱.۱ جایگزین شد. یک زمانبند چندریسمانی M2 مقیاس پذیر اجرا شد، هرچند زمانبندهای قدیمی بیاسدی۴.۴ همچنان پیشفرض باقی میمانند اما برای سازگاری با چند پردازشی متقارن (به انگلیسی: Symmetric multiprocessing) تعییر یافتند. وقفههای چندریسمانی نرمافزار برای بهبود هماهنگی اجرا شد. سیستم حافظه مجازی، اختصاصدهنده حافظه (به انگلیسی: memory allocator) و trap handling بصورت MP safe شد. چارچوب فایلسیستم، از جمله فایل سیستم مجازی، و فایل سیستمهای اصلی برای MP safe بودن ویرایش شدند. از آپریل ۲۰۰۸ تنها زیرسیستم که بوسیله قفل بزرگ اجرا میشود پروتکلهای شبکه و بسیاری از راهاندازیها دستگاهها است.
امنیت
نتبیاسدی ویژگیهای مختلفی را در زمینه امنیت فراهم میکند. چارچوب مجوز دهی هسته (یا Kauth) یک زیرسیستم است که تمام درخواستهای مجوز در داخل هسته را مدیریت میکند و به عنوان سیستم امنیتی در سطح سیستم استفاده میشود. این به ماژولهای خارجی اجازه میدهد به روند کسب اجازه متصل شوند. نتبیاسدی همچنین شامل ویژگیهای کاهش اکسپلویت، ASLR و حفاظت از حافظه و Segvguard از پروژه PaX است. همچنین شامل افزونه Stack Smashing Protection برای جیسیسی است.تایید اجرایی یا (Veriexec) یک زیرسیستم یکپارچگی فایل در نتبیاسدی است که به کاربر اجازه میدهد برای فایلها اثرانگشت (hash) تنظیم کند و اگر فایلها با اثرانگشت مطابقت نداشت عمل خاصی را بروی فایل انجام دهد. برای مثال به اسکریپتهای پرل تنها در صورتی اجازه اجرا بدهد که با اثرانگشتشان مطابقت داشته باشند .
سازگاری با سیستم عاملهای دیگر
ر سطح کد منبع، نتبیاسدی به طور کامل با (POSIX.1 (EEE 1003.1-1990 سازگار است و غالبا با (POSIX.2 (IEEE 1003.2-1992 موافق است.
نتبیاسدی همچنین در معماریها پردازنده مناسب، سیستمکال باینری سازگار با چندین سیستم عامل مشتق شده از یونیکس و شبه یونیکس، شامل لینوکس، دیگر انواع بیاسدی مانند فریبیاسدی، داروین اپل، سولاریس و sunos 4 دارد. این به کاربران نتبیاسدی اجازه میدهد تا برنامههای زیادی که تنها بصورت باینری و برای دیگر سیستمعاملها منتشر شده را (معمولا بدون از دست دادن کارایی زیاد) اجرا کنند.
همچنین انواع فایل سیستمهای دیگر مانند جدول تخصیص فایل یا فت، انتیافاس، فایل سیستم لینوکس ext2fs، فایل سیستم مک او اس اپل UFS و RISC OS FileCore/ADFS و AmigaOS Fast File System و فایل سیستم EFS سیستم عامل IRIX و بسیاری فایل سیستمهای دیگر با استفاده از FUSE در نتبیاسدی پشتبانی میشود.
مجوز
همه هسته نتبیاسدی و بیشتر سورس کد هسته فضای کاربری تحت شرایط پروانه بیاسدی (نوع دو سه و چهار) منتشر شدهاست. این مجور به همه اجازه استفاده، ویرایش، توزیع، فروش برنامه و کد را میدهد تا زمانی که اعلان کپی رایت و متن پروانه را حذف نکنند (بند چهار همچنین شامل موارد اصطلاحات مربوط به موارد تبلیغاتی است). به این ترتیب توسعه محصولات بر پایه نتبیاسدی بدون نیاز به منتشر کردن عمومی تغییرات در کد امکانپذیر است. در نقطه مقابل جیپیال که تصریح میکند تغییرات در کد باید پس از انتشار نسخه تغییر یافته به گیرنده برنامه داده شود.
در ۲۰ ژوئن ۲۰۰۸ بنیاد نتبیاسدی اعلام کرد که انتقال به بند دو مجور بیاسدی، با استناد به نگرانیهای به پشتیبانی UCB از بند ۳ و کاربرد صنعت از بند ۴.
نتبیاسدی همچنین شامل ابزارهای توسعه گنو و دیگه بستههایی است که تحت مجوز جیپیال و سایر مجوزهای متنباز هستند. مانند سایر پروژههای بیاسدی نتبیاسدی این کدها را در منبع درخت خود جدا کردهاست تا جدا کردن این کدهای با مجوز محدودتر آسانتر باشد. همانند بستهها میتوان مجوز نرمافزارهای نصب شده را با تغییر لیست مجوزهای مجاز در فایل پیکربندی pkgsrc با نام (mk.conf) کنترل کرد.
لوگو
آرم پرچم نتبیاسدی که بوسیله Grant Bissett طراحی شدهاست در سال ۲۰۰۴ معرفی شد و یک انتزاع از لوگوی قدیمیتر است که در سال ۱۹۹۴ بوسیله Shawn Mueller طراحی شده بود. لوگوی طراحی شده بوسیله Mueller بر اساس عکس معروف جنگ جهانی دوم برافراشتن پرچم در ایوو جیما است که برخی تصور میکردند که برای یک پروژه بیالمللی نامناسب است.
بنیاد نتبیاسدی
بنیاد نتبیاسدی شخصیت حقوقی است که مالک علائم تجاری و مالیکت معنوی نتبیاسدی است. در ۲۲ ژانویه سال ۲۰۰۴ میلادی یک سازمان ناسودبر معاف از مالیات شد. اعضای بنیاد توسعهدهندگانی هستند که CVS commit access دارند. بنیاد نتبیاسدی یک هیئت مدیره دارد که هر دو سال یکبار با رای اعضا انتخاب میشوند.
نمونههایی از استفاده
طراحی تمیز نتبیاسدی، کارایی بالا، مقیاسپذیری و پشتیبانی از معماریهای متفاوت دلیلی برای استفاده از این سیستم عامل در سامانه توکار و سرورها بخصوص برنامههای شبکه شدهاست.
کیواناکس (یک سیستم عامل تجاری بیدرنگ) از یک پشته شبکه که بر پایه کد نتبیاسدی است استفاده میکند و تعداد زیادی راهانداز که از نتبیاسدی منتقل شده را فراهم میکند.
شبکه شرکت Force10 از نتبیاسدی به عنوان سیستمعامل زمینه استفاده میکند که از سیستمعامل FTOS (سیستمعامل Force10) قدرت میگیرد و در سوئیچها و روترهای با مقیاسپذیری بالا مورد استفاده قرار میگیرد. Force10 در سال ۲۰۰۷ برای تحقیق بیشتر و کمک به جامعه متنباز به بنیاد نتبیاسدی کمک مالی کرد.
شرکت Wasabi Systems یک محصول تجاری بر پایه نتبیسدی با ویژگیهای اختصاصی و الحاقات فراهم کردهاست که تمرکز ساخت آن برای سامانه توکار، کارسازها و برنامههای ذخیرهسازی است.
نتبیاسدی در پروژه SAMS-II ناسا در اندازهگیری میکروگرانشی محیط در ایستگاه فضایی بینالمللی استفاده شدهاست. و برای تحقیقات TCP برای استفاده در شبکههای ماهوارهای نیز استفاده شدهاست.
در سال ۲۰۰۴ SUNET از نتبیاسدی برای تنظیم کردن رکورد سرعت اینترنت۲ استفاده کردهاست. نتبیاسدی به دلیل مقیاسپذیری کد TCP مورد استفاده قرار گرفت.
نتبیاسدی همچنینی در روتر بیسیم AirPort Extreme اپل و بیسیم Time Capsule اپل به جای مک اواس ده استفاده شدهاست.
سیستمعامل تلفن هوشمند T-Mobile Sidekick LX 2009 بر پایه نتبیاسدی است.
منبع : bsdtube
نوشته با نت بی اس دی آشنا شویم اولین بار در مرجع اپن سورس ، گنو/لینوکس پدیدار شد.