می 21, 2023
وزن | 3 |
توضیحات | داوطلب باید بتواند FreeBSD، NetBSD و OpenBSD را نصب کند. علاوه بر این، داوطلبها باید بتوانند یک نصب BSD موجود را ارتقا دهند. |
حوزه های دانش کلیدی:
سیستم عامل های FreeBSD، NetBSD و OpenBSD را با استفاده از گزینه های پیش فرض نصب کنید.
سیستم عامل نصب شده FreeBSD، NetBSD یا OpenBSD موجود را ارتقا دهید.
نوع و نسخه سیستم عامل نصب شده را تعیین کنید.
در زیر لیستی جزئی از فایل ها، اصطلاحات و ابزارهای استفاده شده برای آزمون متخصص BSD آمده است:
وزن | 4 |
توضیحات | داوطلبان باید قادر به نصب، مدیریت و به روز رسانی نرم افزار بر روی یک سیستم BSD باشند. این شامل استفاده از نرم افزار باینری از پیش کامپایل شده با استفاده از مدیر بسته و همچنین کامپایل نرم افزار از کد منبع و استفاده از پورت ها می شود. |
حوزه های دانش کلیدی:
• داوطلبان باید مکانیسم های مدیریت نرم افزار در سیستم های BSD را درک کنند.
• بسته های باینری از پیش کامپایل شده را نصب، جستجو و حذف نصب کنید.
• از پورت ها برای کامپایل نرم افزار استفاده کنید.
• تعیین کنید کدام نرم افزار نصب شده دارای به روز رسانی های معلق یا آسیب پذیری های امنیتی برجسته است و ارتقاهای موجود را نصب کنید.
در زیر لیستی جزئی از فایل ها، اصطلاحات و ابزارهای استفاده شده برای آزمون متخصص BSD آمده است:
وزن | 3 |
توضیحات | داوطلبان باید فرآیند بوت BSD را درک کنند و بتوانند سرویسها را مدیریت کنند، از جمله پیکربندی سرویسهایی که در زمان راهاندازی شروع میشوند. علاوه بر این، داوطلبان باید بتوانند یک سیستم BSD را راه اندازی و راه اندازی مجدد کنند. |
حوزه های دانش کلیدی:
• فرآیند بوت هر سیستم عامل BSD را درک کنید.
• نقش و اصول یک بوت لودر، از جمله مراحل بوت لودر BSD را درک کنید.
• از اسکریپت های راه اندازی rc برای شروع، توقف، راه اندازی مجدد و بررسی وضعیت سرویس ها استفاده کنید.
• پیکربندی سرویس ها برای شروع در زمان راه اندازی.
• یک سیستم BSD را راه اندازی و راه اندازی مجدد کنید.
• یک سیستم BSD را در حالت تک کاربره قرار دهید.
در زیر لیستی جزئی از فایل ها، اصطلاحات و ابزارهای استفاده شده آمده است:
وزن | 2 |
توضیحات | داوطلبان باید بتوانند سخت افزار یک سیستم را بررسی کنند و نحوه عملکرد BSD با دستگاه های سخت افزاری را پیکربندی کنند. این شامل درک نقش ماژول های هسته و بارگیری و مدیریت ماژول های هسته موجود است. |
حوزه های دانش کلیدی:
• تعیین کنید چه سخت افزاری روی یک سیستم نصب شده است.
• تعیین کنید که کدام سخت افزار در زمان بوت شناسایی شده است.
• ابزارهای ویژه BSD که می توانند برای عیب یابی و دستکاری دستگاه های PCI، ATA و SCSI استفاده شوند.
• مشاهده، بارگیری و بارگذاری ماژول های هسته.
• در دسترس بودن ماژول های هسته در سیستم عامل های مختلف BSD.
در زیر لیستی جزئی از فایل ها، اصطلاحات و ابزارهای استفاده شده آمده است:
وزن | 2 |
توضیحات | داوطلب باید پارامترهای هسته قابل تنظیم (MIBs) را درک کند و باید بتواند پارامترهای هسته را مشاهده و تنظیم کند. این شامل درک و تنظیم سطوح امن BSD است. |
حوزه های دانش کلیدی:
• مفهوم MIB های هسته را درک کنید.
• MIB ها را مشاهده کنید و MIB ها را در زمان اجرا و به طور دائم تغییر دهید.
• مفهوم و محدودیت های سطوح امن BSD را درک کنید.
• درک کنید که در چه شرایطی می توان سطح امن را بالا یا پایین برد.
در زیر لیستی جزئی از فایل ها، اصطلاحات و ابزارهای استفاده شده آمده است:
وزن | 2 |
توضیحات | داوطلبان باید مفاهیم جداول پارتیشن دیسک و برچسبهای دیسک را بدانند و بتوانند پارتیشن بندی یک دیسک سخت را مشاهده، ایجاد و اصلاح کنند. |
حوزه های دانش کلیدی:
• مفاهیم جداول پارتیشن دیسک و برچسب های دیسک را درک کنید.
• جدول پارتیشن دیسک،بوت رکورد اصلی یا برچسب دیسک را مشاهده، ایجاد یا ویرایش کنید.
در زیر لیستی جزئی از فایل ها، اصطلاحات و ابزارهای استفاده شده آمده است:
وزن | 1 |
توضیحات | داوطلبان باید بتوانند سیستم های فایل ایجاد کرده و یکپارچگی آنها را بررسی کنند. این شامل شناسایی فایل هایی است که بیشترین فضای دیسک را مصرف می کنند. |
حوزه های دانش کلیدی:
• سیستم های فایل UFS و ZFS ایجاد کنید.
• استفاده از فضای دیسک و فضای موجود را تعیین کنید.
• سازگاری یک سیستم فایل UFS یا سلامت یک استخر ZFS را بررسی کنید.
• آگاهی از بکاپهای فوری ZFS.
در زیر لیستی جزئی از فایل ها، اصطلاحات و ابزارهای استفاده شده آمده است:
وزن | 2 |
توضیحات | داوطلبان باید بتوانند فایل سیستم های نصب شده را مشاهده کنند، سیستم های فایل را mount یا unmount کنند و تعیین کنند که کدام فایل سیستم در هنگام بوت نصب می شود. |
حوزه های دانش کلیدی:
• تعیین کنید که کدام سیستم فایل محلی در حال حاضر نصب شده است.
• سیستم های فایل UFS یا ZFS را نصب و جدا کنید.
• پیکربندی فایل سیستم هایی که در زمان بوت نصب می شوند.
• خطاهای نصب را برطرف کنید.
در زیر لیستی جزئی از فایل ها، اصطلاحات و ابزارهای استفاده شده آمده است:
وزن | 3 |
توضیحات | داوطلبان باید مالکیت و مجوزهای فایل را درک کنند و بتوانند آن را مدیریت کنند. |
حوزه های دانش کلیدی:
• مجوزهای سنتی یونیکس را درک کنید.
• مشاهده و تغییر مجوزها با استفاده از سیمبولیک و اکتال.
• بیت SUID، بیت SGID و بیت استیکی را درک کرده و از آن استفاده کنید.
• مجوزهای فایل و دایرکتوری پیش فرض را تنظیم کنید.
• مشاهده و تغییر مالکیت فایل ها و دایرکتوری ها.
در زیر لیستی جزئی از فایل ها، اصطلاحات و ابزارهای استفاده شده آمده است:
وزن | 1 |
توضیحات | داوطلبان باید بتوانند پیوندهای سیمبولیک و سخت را مدیریت کنند. |
حوزه های دانش کلیدی:
• تفاوت بین پیوندهای سیمبولیک و سخت را درک کنید.
• ایجاد، مشاهده و حذف هر دو نوع پیوند.
در زیر لیستی جزئی از فایل ها، اصطلاحات و ابزارهای استفاده شده آمده است:
وزن | 2 |
توضیحات | داوطلبان باید چیدمان دایرکتوری BSD را درک کنند و بتوانند فایل ها را بر اساس معیارهای مختلف جستجو و پیدا کنند. |
حوزه های دانش کلیدی:
• چیدمان دایرکتوری مورد استفاده توسط سیستم های BSD را درک کنید.
• بدانید از کدام ابزارهای کمکی می توان برای یافتن باینری ها، منبع، صفحات مدیریتی و فایل ها استفاده کرد.
• پایگاه داده مکان یابی را به روز کنید.
• از Find برای مکان یابی فایل ها استفاده کنید، از جمله استفاده از معیارهای جستجو مانند زمان آخرین تغییر، اندازه، نوع، پرچم فایل، UID یا GID، مجوزها یا الگوی متنی.
در زیر لیستی جزئی از فایل ها، اصطلاحات و ابزارهای استفاده شده آمده است:
وزن | 3 |
توضیحات | داوطلبان باید قادر به ایجاد و مدیریت حساب های کاربری و سیستم و همچنین گروه ها و عضویت گروه باشند. |
حوزه های دانش کلیدی:
• ایجاد، تغییر و حذف حساب های کاربری و سیستم و همچنین گروه ها.
• مدیریت عضویت در گروه.
• قفل و باز کردن حساب ها.
• رمز عبور کاربر را تغییر دهید.
• ویژگی های کاربر، مانند پوسته پیش فرض را تغییر دهید.
• کنترل کنید که کدام فایل ها در دایرکتوری اصلی کاربر جدید در حین ایجاد حساب کپی شوند.
در زیر لیستی جزئی از فایل ها، اصطلاحات و ابزارهای استفاده شده آمده است:
وزن | 2 |
توضیحات | داوطلبان باید مکان اسکریپت های سیستم دوره ای را بدانند و بتوانند با استفاده از cron، اجرای خودکار دستورات خود را برنامه ریزی کنند. |
حوزه های دانش کلیدی:
• اسکریپت های سیستم دوره ای را درک کنید.
• پیکربندی کنید که کدام اسکریپت های سیستم دوره ای روزانه، هفتگی و ماهانه اجرا شوند.
• یک اسکریپت سیستمی دوره ای را به صورت دستی اجرا کنید.
• تفاوت بین crontab سیستم و crontabs کاربر، از جمله تمام فیلدهای موجود را درک کنید.
• از ویرایشگر crontab برای ایجاد یا ویرایش یک crontab کاربر استفاده کنید.
• کنترل کنید که کاربران می توانند کرونتب های خود را ایجاد کنند.
در زیر لیستی جزئی از فایل ها، اصطلاحات و ابزارهای استفاده شده آمده است:
وزن | 1 |
توضیحات | داوطلبان باید بتوانند زمان سیستم را تنظیم کنند و از NTP برای همگام سازی زمان استفاده کنند. |
حوزه های دانش کلیدی:
• مفاهیم NTP را درک کنید.
• NTP را پیکربندی کرده و به صورت دستی با سرور زمان همگام سازی کنید.
در زیر لیستی جزئی از فایل ها، اصطلاحات و ابزارهای استفاده شده آمده است:
وزن | 2 |
توضیحات | داوطلبان باید بتوانند فایل های گزارش سیستم را بررسی کرده و چرخش فایل گزارش را پیکربندی کنند. |
حوزه های دانش کلیدی:
• لاگ سیستم و محل فایل های لاگ را درک کنید.
• مشاهده فایل های لاگ، از جمله لاگهای در حال ثبت ویا فشرده و آرشیو شده.
• پیکربندی روتیت لاگ بر اساس زمان یا اندازه.
در زیر لیستی جزئی از فایل ها، اصطلاحات و ابزارهای استفاده شده آمده است:
وزن | 1 |
توضیحات | داوطلبان باید نقش یک سیستم ارسال نامه را درک کنند و نام مستعار و ارسال نامه را در MTA محلی خود و همچنین ایمیل های خروجی را با استفاده از یک رله پیکربندی کنند. |
حوزه های دانش کلیدی:
• نقش عامل انتقال نامه (MTA) را درک کنید.
• تعیین کنید که کدام MTA در سیستم استفاده می شود.
• یک نام مستعار ایمیل برای Sendmail و Postfix ایجاد کنید.
• Sendmail و Postfix را برای استفاده از یک رله برای نامه های خروجی پیکربندی کنید.
• صف ایمیل را مشاهده و پاک کنید.
• تفاوت بین نوع فرمت فایل مقصد ایمیل mbox و maildir را درک کنید.
در زیر لیستی جزئی از فایل ها، اصطلاحات و ابزارهای استفاده شده آمده است:
وزن | 1 |
توضیحات | داوطلبان باید نحوه عملکرد چاپ روی سیستم BSD را بدانند و باید بتوانند صف چاپ را بررسی کنند و کارهای چاپی را دستکاری کنند. |
حوزه های دانش کلیدی:
• سیستم چاپ BSD lpr را بشناسید.
• معنی ورودی های /etc/printcap را درک کنید.
• صف چاپ را مشاهده کنید و کارهای داخل صف را دستکاری کنید.
در زیر لیستی جزئی از فایل ها، اصطلاحات و ابزارهای استفاده شده آمده است:
وزن | 1 |
توضیحات | داوطلبان باید بتوانند شناسایی کنند که کدام کاربران در حال حاضر به سیستم وارد شده اند و تاریخچه ورود کاربران را بررسی کنند. |
حوزه های دانش کلیدی:
• تعیین کنید چه کسانی در حال حاضر در سیستم هستند.
• آخرین باری که کاربر در سیستم بوده است را تعیین کنید.
در زیر لیستی جزئی از فایل ها، اصطلاحات و ابزارهای استفاده شده آمده است:
وزن | 2 |
توضیحات | داوطلبان باید پروتکل های مهم شبکه و همچنین آدرس دهی و زیرشبکه اولیه IPv4 و IPv6 را بدانند. |
حوزه های دانش کلیدی:
• آدرس دهی و زیرشبکه IPv4 را درک کنید.
• آدرس دهی و زیرشبکه اولیه IPv6 را درک کنید.
• یک محدوده آدرس زیر شبکه را به نمادهای اعشاری نقطهدار، هگزادسیمال یا CIDR تبدیل کنید.
• آدرس های میزبان معتبر و همچنین آدرس زیرشبکه برای IPv4و آدرس انتشار یک شبکه معین را تعیین کنید.
• ویژگی های کلیدی TCP، UDP و ICMP را درک کنید.
در زیر لیستی جزئی از فایل ها، اصطلاحات و ابزارهای استفاده شده آمده است:
وزن | 3 |
توضیحات | داوطلبان باید بتوانند تنظیمات IP رابط های شبکه را پیکربندی کنند. |
حوزه های دانش کلیدی:
• تنظیمات IP را به صورت موقت و دائم پیکربندی کنید.
• درک اساسی از اجاره نامه های DHCP را نشان دهید.
• تنظیمات ثبت شده از DHCP فعلی را مشاهده کنید، آن را آزاد کنید و تنظیمات را تمدید کنید.
• یک سرویس گیرنده DHCP را برای لغو تنظیمات دریافت شده از یک سرور DHCP پیکربندی کنید.
• درک و پیکربندی نام مستعار رابط.
• پیکربندی خودکار IPv6 را با استفاده از SLAAC و DHCPv6 درک کنید.
در زیر لیستی جزئی از فایل ها، اصطلاحات و ابزارهای استفاده شده آمده است:
وزن | 3 |
توضیحات | داوطلبان باید بتوانند مشکلات ساده اتصال شبکه را تجزیه و تحلیل و حل کنند. |
حوزه های دانش کلیدی:
• پیکربندی IP فعلی یک سیستم را تعیین کنید.
• اتصال IPv4 و IPv6 را عیب یابی کنید.
• تعیین کنید کدام پورت های TCP یا UDP روی یک سیستم باز هستند.
• در دسترس بودن سرویس TCP/IP را بررسی کنید.
در زیر لیستی جزئی از فایل ها، اصطلاحات و ابزارهای استفاده شده آمده است:
وزن | 2 |
توضیحات | داوطلبان باید اصول DNS را بدانند و بتوانند وضوح نام میزبان را پیکربندی کنند. |
حوزه های دانش کلیدی:
• تئوری اساسی DNS، از جمله انواع سوابق منابع، جستجوهای معکوس، و انواع سرورهای DNS را درک کنید.
• یک سرور DNS را برای نوع خاصی از رکورد جستجو کنید.
• بازه نام دامنه ، و ترتیب بازه نام دامنه و سرور DNS بازگشتی را پیکربندی کنید.
• عیب یابی مشکلات DNS.
در زیر لیستی جزئی از فایل ها، اصطلاحات و ابزارهای استفاده شده آمده است:
وزن | 2 |
توضیحات | داوطلبان باید بتوانند از یک شل استفاده کرده و آن را سفارشی کنند و تفاوت بین شل های مختلف ارائه شده در سیستم BSD را درک کنند. داوطلبان همچنین باید بتوانند از manpages استفاده کنند. |
حوزه های دانش کلیدی:
• تفاوت بین شل های استاندارد در سیستم های BSD را درک کنید.
• در استفاده از شل های sh، csh یا tcsh راحت باشید.
• مشاهده و تغییر متغیرهای محیطی، به صورت موقت و دائم.
• ورودی و خروجی را به/از فایل ها و دستورات هدایت کنید.
• از مشخصات ساده و پیشرفته رایج در دستورات استفاده کنید.
• بخش های manpage را درک کنید و از manpages استفاده کنید.
• رفتار شل را هم به طور موقت و هم به طور دائم تغییر دهید، از جمله جلوگیری از هنگ کردن فایل های موجود توسط شل و استفاده از جایگزینی هیستوری.
• نام مستعار دستور را تنظیم کنید و به طور موقت نام مستعار دستور را دور بزنید.
• یک فرمان را چندین بار با آرگومان های مختلف برای هر فراخوانی اجرا کنید.
در زیر لیستی جزئی از فایل ها، اصطلاحات و ابزارهای استفاده شده آمده است:
وزن | 3 |
توضیحات | داوطلبان باید بتوانند فایلها را در سیستم BSD مدیریت کنند. این شامل شناسایی نوع فایل ها و ایجاد آرشیو فایل ها می شود. |
حوزه های دانش کلیدی:
• کپی، انتقال، و حذف فایل ها و دایرکتوری ها.
• چندین فایل و دایرکتوری را به صورت بازگشتی کپی کنید.
• فایل ها و دایرکتوری ها را به صورت بازگشتی حذف کنید.
• تعیین کنید که یک فایل یک فایل باینری، متنی یا داده ای است.
• استفاده از ابزارهای معمول پشتیبان گیری خط فرمان یونیکس.
در زیر لیستی جزئی از فایل ها، اصطلاحات و ابزارهای استفاده شده آمده است:
وزن | |
توضیحات | داوطلبان باید بتوانند فرآیندها را مدیریت کنند، از جمله شناسایی فرآیندهایی با استفاده گسترده از منابع، اولویت بندی و خاتمه فرآیندها. |
حوزه های دانش کلیدی:
• بار کاری سیستم را در 1، 5 و 15 دقیقه آخر نظارت کنید.
• نظارت بر سیستم حافظه مجازی، از جمله نظارت بر مبادله و فعالیت صفحه بندی.
• فرآیندهای فعال را مشاهده کنید و مصرف بی رویه CPU را تشخیص دهید.
• رایج ترین سیگنال های یونیکس، از جمله نام آنها را درک کنید.
• تفاوت بین SIGTERM و SIGKILL را درک کنید.
• یک سیگنال به یک فرآیند فعال ارسال کنید.
• پایان دادن به یک فرآیند یا تغییر اولویت آن.
• فرآیندی را در پسزمینه شروع کنید، یک فرآیند موجود را در پسزمینه قرار دهید، بررسی کنید که آیا هر کاری در حال حاضر در پسزمینه اجرا میشود یا خیر، و یک فرآیند پسزمینه را به پیشزمینه برگردانید.
در زیر لیستی جزئی از فایل ها، اصطلاحات و ابزارهای استفاده شده آمده است:
وزن | 2 |
توضیحات | کاندیداها باید بتوانند از عبارات منظم ساده و حروف عام برای جستجوی متن در فایل ها و جریان ها استفاده کنند. |
حوزه های دانش کلیدی:
• الگوهای متن را هنگام تجزیه و تحلیل خروجی برنامه یا جستجو در میان فایل ها مطابقت دهید.
• محدوده ای از کاراکترها را در [] مشخص کنید، یک کلمه را مشخص کنید، از عملگر تکرار استفاده کنید، یک متاکاراکتر را تشیخیص دهید و یک فیلتر معکوس ایجاد کنید.
در زیر لیستی جزئی از فایل ها، اصطلاحات و ابزارهای استفاده شده آمده است:
وزن | 2 |
توضیحات | داوطلبان باید بتوانند از ویرایشگر vi برای ویرایش اولیه فایل استفاده کنند. |
حوزه های دانش کلیدی:
• فایل ها را با استفاده از ویرایشگر vi ویرایش کنید.
• یک فایل فقط خواندنی را تغییر دهید یا بدون ذخیره هیچ گونه ویرایشی در فایل از vi خارج شوید.
در زیر لیستی جزئی از فایل ها، اصطلاحات و ابزارهای استفاده شده آمده است:
وزن | 2 |
توضیحات | داوطلب باید مفهوم شل اسکریپت نویسی را درک کند و بتواند اسکریپت های ساده Bourne shell بنویسد. |
حوزه های دانش کلیدی:
• مزایا و معایب استفاده از اسکریپت Bourne shell را به جای اسکریپت csh یا bash shell درک کنید.
• مجوزها، shebang، یادداشت و اسکریپت را درک کنید.
• از پارامترهای موقعیتی، پارامترهای خاص و حروف عام استفاده کنید.
• از نقل قول و بک اسلش استفاده کنید.
• از شرایط و حلقه ها استفاده کنید.
• عیب یابی یک اسکریپت.
در زیر لیستی جزئی از فایل ها، اصطلاحات و ابزارهای استفاده شده آمده است:
همه مطالبی که درخصوص مدارک مربوط به سیستم عاملهای BSD باید بدانید در این مقاله با عنوان همه چیز در باره مدارک BSD به زبان فارسی گرد آوری کرده ایم .
از آنجایی که تعداد سیستمعاملهای رسمی خانواده بی اس دی ۴ سیستم عامل (FreeBSD,NetBSD,OpenBSD,DragonflyBSD)
می باشد لذا گواهینامنه جامعی نیاز است تا تمامی آنهارا پوشش داده و دارنده آن توانایی کار بعنوان راهبر سیستم با تمامی آنها را دارا باشد ،
لذا گروهی به عنوان BSDCG گروه گواهینامه BSD با مدیریت خانم (درو لیوینگ) تاسیس شد .این گروه گواهینامه را به دو بخش سطع تازه کار(BSDA) و حرفه ای (BSDP) تقسیم بندی و اقدام به برگزاری آزمون نمود.
درباره گروه صدور گواهینامه BSD (BSDCG)
BSD Certification Group (BSDCG) که در سال 2005 تأسیس شد، یک سازمان غیرانتفاعی است که متعهد به ایجاد و حفظ یک استاندارد گواهینامه جهانی برای مدیریت سیستم در سیستم عامل های مبتنی بر BSD است. BSDCG با جامعه BSD و sysadmin به منظور ارائه یک گواهینامه عملی و مرتبط کار می کند.
اما در ادامه: گروه BSDCG با گروه LPI به توافق همکاری رسیدند ،
همه چیز در باره مدارک BSD: توافقی که طی آن گواهینامه BSD بر اساس مباحث مطرح شده توسط BSDCG از طرف LPI صادر میشود.
موسسه (LPI)، بزرگترین سازمان صدور گواهینامه در جهان برای متخصصان لینوکس و متن باز، و گروه گواهی BSD (BSDCG)، سازمانی که استاندارد صدور گواهینامه را برای مدیران سیستم BSD تعیین می کند، ادغام BSDCG با LPI را اعلام کرده اند. این مشارکت شامل ایجاد یک کمیته مشورتی BSD است که با LPI و جامعه BSD همکاری خواهد کرد.
جی. متیو رایس، مدیر اجرایی LPI، گفت: «همکاری جدید برای دو طرف سودمند است. به گفته درو لاوین، رئیس BSDCG، “استفاده از BSD Unix با متخصصان BSD درگیر در هر صنعت به سرعت و در سطح جهانی در حال رشد است. پیوستن به با LPI به ما کمک میکند تا ارائه امتحان خود را در عین حفظ کیفیت برنامه صدور گواهینامه افزایش دهیم.”
یکی از اولین وظایف این ادغام، راه اندازی نسخه بعدی آزمون گواهینامه BSDA در سال 2018 بود که با الزامات مسیر صدور گواهینامه فناوری باز مطابقت دارد. گواهینامه های فعلی BSDA همچنان به رسمیت شناخته می شوند و در صورت درخواست، این گزینه را خواهند داشت که اعتبارنامه امتحانی خود را در پورتال LPI Candidate تایید کنند.
درباره موسسه حرفه ای لینوکس (LPI)
حدود 20 سال است که ، LPI استاندارد جهانی گواهینامه و سازمان پشتیبانی حرفه ای برای متخصصان متن باز است. با بیش از 500000 آزمون ارائه شده، این اولین و بزرگترین مرجع صدور گواهینامه لینوکس و منبع باز در جهان است. LPI دارای متخصصین معتبر در بیش از 180 کشور است، امتحانات را به 9 زبان ارائه می دهد و بیش از 400 شریک آموزشی دارد.
حالا بر اساس استاندارد های LPI تغییراتی در ساختار مدارک BSD داده شده در ذیل توضیحات تکمیلی ارائه میگردد:
نکته مهم اینکه سیستم عامل DragonflyBSD از فهرست سیستم عاملهای این مدرک حذف شده .
گواهینامه متخصص BSD موسسه LPI سطح مقدماتی
گواهینامه تخصصی BSD بخشی از برنامه گواهینامه فناوری باز موسسه (LPI) است.
همه چیز در باره مدارک BSD: این آزمون بر مهارت های عملی مورد نیاز برای کار با موفقیت در محیط FreeBSD، NetBSD یا OpenBSD تمرکز دارد و دانش و مهارت های مورد نیاز برای مدیریت سیستم عامل های BSD را آزمایش می کند.
دارنده گواهینامه تخصصی BSD ، یک مدیر سیستم برای سیستم عامل های BSD است.
دارنده گواهینامه درک درستی از معماری سیستم عامل های BSD دارد. که شامل توانایی مدیریت جنبههای مختلف نصب BSD، از جمله مدیریت حسابهای کاربری و گروهها، فرآیندها، سیستمهای فایل، نرمافزار های نصبشده، و پیکربندی شبکه میشود. داوطلب در استفاده از ابزارهای استاندارد BSD و Unix در خط فرمان تجربه دارد.
نسخه فعلی: 1.0 (کد امتحانی 702-100)
کد: 702-100
پیش نیاز: هیچ مدرک پیش نیازی برای شرکت در آزمون مهندسی متخصص BSD وجود ندارد. با این حال، اکیداً توصیه می شود که یک داوطلب بیش از یک سال تجربه در مدیریت سیستم های BSD در انواع مختلف داشته باشد.
شرایط: قبولی در آزمون تخصصی BSD. آزمون 90 دقیقه ای شامل 60 سوال چند گزینه ای و جای خالی است.
مدت اعتبار: 5 سال
هزینه: برای قیمت آزمون در کشور خود اینجا را کلیک کنید.
زبان های آزمون موجود در مراکز آزمون VUE: انگلیسی
زبانهای امتحانات آنلاین از طریق OnVUE در دسترس هستند: انگلیسی
برای دریافت گواهینامه تخصصی BSD، داوطلب باید:
آشنایی با سیستم عامل های FreeBSD، NetBSD و OpenBSD
قادر به نصب، مدیریت و پیکربندی سیستم عامل BSD باشد
قادر به پیکربندی سخت افزار، تنظیم پارامترهای هسته و مدیریت امنیت سیستم باشد
دانش اولیه در مدیریت سیستم BSD، برنامه ریزی و اتوماسیون سیستم داشته باشد
دانش اولیه مدیریت شبکه را داشته باشد
سرفصل های آزمون BSD Specialist | مشاغل اصلی برای متخصصان BSD |
---|---|
1- نصب BSD و مدیریت نرم افزارها 2- دستگاه های ذخیره سازی و سیستم های فایل BSD 3- مدیریت پایه سیستم BSD 4- مدیریت پایه شبکه BSD 5- مهارت های پایه یونیکس | مدیران سیستم مدیر سیستم FreeBSD مدیر سیستم NetBSD مدیر سیستم OpenBSD مدیر یونیکس مدیر سرور مدیر فناوری اطلاعات مهندسان کارشناس سیستم های امنیتی مهندس شبکه مهندس سیستم یونیکس مهندس DevOps مهندس قابلیت اطمینان سایت (SRE) |
این سیستم عامل که بر پایه نت بی اس دی توسعه یافته است ، شامل ابزار های مختلفی برای امور رمز نگاری ، تست نفوذ ، باز یابی اطلاعات ، مهندسی معکوس ، محرمانگی و بسیاری ابزار های امنیتی دیگر می باشد .
دریافت نسخه x86-64 برای نصب بر روی فلش مموری
راهنمای نصب :
BSD: gunzip -c /path/to/irBSD.img.gz | sudo dd of=/dev/sd0 bs=1m Linux: gunzip -c /path/to/irBSD.img.gz | sudo dd of=/dev/sda bs=1M
Username: irBSD Password: irbsd.net راهنمای کاربر وب سایت
Copyright © ۱۹۹۴-۲۰۱۸ The NetBSD Foundation, Inc. ALL RIGHTS RESERVED. NetBSD® is a registered trademark of The NetBSD Foundation, Inc.
فیلمهای آموزشی
بحث و معرفی M0n0wall فایروال و یوتی ام بر مبنای فری بی اس دی :عبدالرحمن همائی ، محمد عابدینی و محمد دشتی زاده(نیک خصال)
کنفرانس ۳ نفره بحث پیرامون فایروالها و معرفی PF فایروال OPEN (BSD) عبدالرحمن همائی ، محمد عابدینی و محمد دشتی زاده(نیک خصال)
آموزش نصب سیستم عامل NetBSD بهمراه محیط گرافیکی و ابزار های مربوطه
آموزش نصب سیستم عامل FreeBSD بهمراه محیط گرافیکی و ابزار های مربوطه
آموزش نصب سیستم عامل OpenBSD بهمراه محیط گرافیکی و ابزار های مربوطه
[wpforms id=”1740″]
همیشه سرورهای کامپیوتری هارد های اضافی، منبع برق اضافی رو برای بخش جایگزین خود دارند، در سرور های OpenBSD قابلیت جدید وجود دارد که به شما این امکان رو می دهد که ارتباط شبکه هم پشتیبان داشته باشد به وسیله قرار دادن چند کارت شبکه در قالب یک کارت شبکه.
شما می توانید کارت شبکه را در قالب یک لینک بزرگتر قرار دهید و ترافیک را بین آنها تقسیم کنید.OpenBSD از ۵ روش متفاوت برای توزیع ترافیک در بین کارتهای شبکه تقسیم کند که البته در همه محیط ها این پنچ روش قابل استفاده نیست. برای مشاهده لیست کامل از این پروتکلها به صفحه man مربوط به trunk(4) مراجعه کنید. در محیط واقعی سه روش Link Aggregation Control Protocol (LACP) ، roundrobin و failover استفاده می شود. روش LACP یک استانداردی است تجمیع کردن چند لینک در یک لینک، در این روش پهنای باند کارت شبکه مجازی شما می شود مجموع پهنای باند همه کارت های شبکه فیزیکی. این روش شما را در برابر خطاهای پیش آمده شما را بسیار کمک می کند ولی شرط راه اندازی ان این است که سویچ شما از این قالیت پشتیبانی کند.
در متد roundrobin سیستم عامل OpenBSD با استفاده از مدل roundrobin اقدام به ارسال بسته ها در بین کارتهای شبکه می کند. این قابلیت نیازی به تنظیم در سیوچ شما ندارد فقط باید کارتهای شبکه شما در یک vlan قرار داشته باشند.
در متد failover سیستم عامل OpenBSD همه بسته ها را ارسال می کند در اولین لینک trunk و اگر این لینک به هر دلیلی از دسترس خارج شود به صورت خودکار OpenBSD برروی لینک دیگر سویچ می کند. این قابلیت پهنای باند شما را افزایش نمی دهد و نیازی به هیچ تنظیم خاصی در سویچ شما ندارد و شما با یک هاب ساده می توانید آنرا راه اندازی کنید.
در یک مثال ساده قصد دارید دو کارت شبکه em0 و em1 را با متد failover در یک trunk به نام trunk0 ایجاد کنیم. به این نکته هم توجه کنید که پیکربندی کارت های شبکه در بخش سخت افزاری را انجام داده اید فقط در این بخش باید trunk رو ایجاد کنید و بعد به آن آدرس IP اضافه کنید. در بخش اول شما دو کارت شبکه را در حالت up قرار دهید با فرمان های زیر:
# ifconfig em0 up
# ifconfig em1 up
حال با استفاده از فرمان ifconfig باید trunk0 رو ایجاد کنید و کارت های شبکه را به آن اضافه کنید به صورت زیر:
# ifconfig trunk0 trunkproto failover
# ifconfig trunk0 trunkport em0
# ifconfig trunk0 trunkport em1
حال شما باید با استفاده از فرمان ifconfig به کارت شبکه trunk0 ادرس ip دهید به صورت زیر:
# ifconfig trunk0 192.0.2.8 netmask 255.255.255.0
# route add default 192.0.2.1
همانطوری که می دانید زمانی که شما از فرمان ifconfig استفاده می کنید این تنظیمات دایمی نیستن و بعد از راه اندازی سیستم از بین می روند. برای دایمی کردن این تنظیمات شما باید به فایل های مربوط به هر کارت شبکه مراجعه کنید و یک فایل برای کارت شبکه trunk0 ایجاد کنید. همانطوری که می دانید فایل های مذکور در زیر شاخه etc به صورت hostname.interfacename قرار دارند مثلا برای کارت شبکه em0 به فایلی به نام hostname.em0 نیاز دارید. برای اجرای بخش اول فرمانها کافیست فقط کلمه up را در دو فایل مربوط به کارت های شبکه قرار دهید.
در مرحله بعد باید فایلی به نام hostname.trunk0 در زیر شاخه /etc ایجاد کنید و خطوط زیر را در آن تایپ کنید، البته همه فرمان های نوشته شده را می توانید در یک خط بنویسید ولی برای راحتی در پیکربندی کافیست که انها را در خطوطی جدا از هم بنویسید به صورت زیر:
trunkproto failover
trunkport em0
trunkport em1
netmask 255.255.255.0
با اضافه کردن این خطوط در فایل های مورد نظر بعد از راه اندازی مجدد سیستم شما هم باز این دو کارت شبکه در حالت trunk قرار می گیرند.
در OpenBSD یک کارت شبکه می تواند به چندین و چند درخواست و آدرس Ip پاسخ دهد، این امر از آن جهت مهم است که شاید شما نیاز به سروری داشته باشید که شامل صدها حوزه اسمی باشد و برای هریک از این حوزه ها شما نیاز به یک آدرس IP دارید.
برای اضافه کردن ادرس Ip های جدید به یک کارت شبکه باید از ادرس های alias، با استفاده از این نوع از آدرس های IP شما به کارت شبکه خود این امکان را می دهید که به درخواستهار جدید مربوط به آدرس جدید را هم پاسخ دهد. برای اضافه کردن این نوع آدرس شما باید از فرمان ifconfig با کلمه کلیدی alias بعد از نام کارت شبکه خود استفاده کنید. فقط به این نکته توجه کنید که بخش شبکه یا همان netmask همه آدرس های شما ۲۵۵٫۲۵۵٫۲۵۵٫۲۵۵ یا همان ۳۲/ باشد. در ادامه یک مثال در این مورد را مشاهده می کنید:
# ifconfig fxp0 alias 192.0.2.230/32# ifconfig fxp0inet 192.0.2.226 netmask 0xfffffff0 broadcast 192.0.2.239inet 192.0.2.230 netmask 0xffffffff
در این مثال آدرس IP اصلی کارت شبکه fxp0 192.0.2.230 و آدرس alias آن ۱۹۲٫۰٫۲٫۲۳۹ است. به این نکته هم توجه کنید که همه ارتباط های خروجی از سمت سرور شما با آدرس اصلی برروی کارت شبکه شما انجام می شود. برای مثال شما ۱۰۰عدد آدرس مجازی دارید و شما از سرور خود یک نوع ارتباط ssh برقرار می کنید، این ارتباط با آدرس IP اصلی شما انجام می شود.
در OpenBSD هسته این سیستم عامل هیچ تفاوتی بین آدرس های مجازی و اصلی قرار نمی دهد و از اولین آدرس IP موجود در لیست برای برقرار ارتباط از سمت سرور استفاده می کند مگر اینکه شما به سرویس خود بگویید که از کدام آدرس IP استفاده کند.
برای پاک کردن یک آدرس alias شما باید از فرمان ifconfig با کلمه کلیدی delete استفاده کنید مثل فرمان زیر:
# ifconfig fxp0 delete 192.0.2.230
همانطوی که می دانید و در مقاله پیکربندی شبکه در OpenBSD برای شما توضیح داده شده در OpenBSD به ازای هر کارت شبکه یک فایل به صورت hostname.networkcard در زیر شاخه etc قرار دارد، برای مثال برای کارت شبکه fxp0 یک فایل به صورت زیر در شاخه مورد نظر قرار دارد /etc/hostname.fxp0 شما برای اعمال هر تغییر دایمی که در زمان راه اندازی سیستم اعمال شود نیاز به ویرایش این فایل دارید. برای اضافه کردن آدرس مجازی ابتدا باید آدرس اصلی و بعد آدرس مجازی را به صورت زیر در این فایل قرار دهید:
$ cat /etc/hostname.fxp0inet 192.0.2.226 255.255.255.0inet alias 192.0.2.230 255.255.255.255inet alias 192.0.2.231 255.255.255.255
یکی از مباحث مورد نیاز استفاده از فلش در OpenBSD است. این قابلیت با شبیه سازی از راه اندازی SCSI در OpenBSD انجام می شود. برای انجام این امر شما باید دسترسی کاربر root داشته باشید. این امر در چند بخش به صورت زیر انجام می شود:
بعد از اتصال فلش به درگاه مربوطه فرمان sysctl را به روش زیر اجرا کنید تا نام دیسک فلش متصل شده را پیدا کنید(البته در ورژن جدید از هسته OpenBSD بعد از اتصال نام فلش توسط هسته نمایش داده می شود):
# sysctl hw.disknames
خروجی این فرمان به صورت زیر است:
hw.disknames=wd0:3af96a8b7d621ab2,cd0:,sd0:
اخرین نام یعنی sd0 نام فلش اضافه شده به سیستم است برای دریافت اطلاعات بیشتر از فرمان dmesg استفاده کنید به صورت زیر:
# dmesg | grep sd0
در این فرمان با استفاده از فرمان grep بخش هایی که با sd0 شروع می شود را نمایش می دهد به صورت زیر:
sd0 at scsibus1 targ 1 lun 0: SCSI2 0/direct removable
sd0: 1956MB, 512 bytes/sector, 4005888 sectors
sd0 detached
sd0 at scsibus1 targ 1 lun 0: SCSI2 0/direct removable
sd0: 1956MB, 512 bytes/sector, 4005888 sectors
با استفاده از این فرمان شما می توانید حجم فلش را مشاهده کنید.
برای پارتیشن های موجود برروی فل از فرمان disklabel به صورت زیر استفاده کنید:
# disklabel sd0
خروجی این فرمان شامل اطلاعات زیر است:
# /dev/rsd0c:
type: vnd
disk: vnd device
label: fictitious
duid: 97d41b01a9d85387
flags:
bytes/sector: 512
sectors/track: 100
tracks/cylinder: 1
sectors/cylinder: 100
cylinders: 5120
total sectors: 4005888
boundstart: 0
boundend: 512000
drivedata: 0
۱۶ partitions:
# size offset fstype [fsize bsize cpg]
a: ۵۱۲۰۰۰ ۰ ۴٫۲BSD ۲۰۴۸ ۱۶۳۸۴ ۱
c: ۴۰۰۵۸۸۸ ۰ unused
#
به صورت سنتی شاخه به نام mnt در زیر / وجود داره که شما می توانید دیسک های اضافی مثل فلش، cd و غیره را در زیر شاخه های انتخابی خود به استفاده mount کنید برای این منظور و مرتب سازی برای هر دیسک یک شاخه ایجاد کنید به صورت زیر، این شاخه انتخابی است .
# mkdir /mnt/flash1
حال در مرحله آخر با استفاده از فرمان mount پارتیشن i فلش را به این شاخه mount کنید:
# mount /dev/sd0i / mnt/flash1
حال شما بعد از وارد شدن به این شاخه می توانید با استفاده از فرمان ls محتوای شاخه را مشاهده کنید.
برای از حالت mount خارج کردن فلش از فرمان umount به صورت زیر استفاده کنید فقط به این نکته توجه کنید که در زیر شاخه mount شده قرار نداشته باشید. این فرمان را به صورت زیر اجرا کنید:
# umount /mnt/ flash1
یکی از بخش های مهم هر سیستمی بخش گزارشگیری است که در حقیقت ثبت وقایع اتفاق افتاده در زمانی هست که مدیری سیستم به سیستم وارد نشده و در روز می تواند با خواندن این گزارشات از وضعیت سرور و سیستم خود آگاه شود. قابلیت گزارشگیری در سیستم های مبتنی بر یونیکس با استفاده از برنامه syslog انجام می شود و در محل خاصی ذخیره می شود. در برنامه syslog دو متغییر وجود دارد برای تهیه کردن گزارش، Facility و priority. همچنین این برنامه قابلیت ارسال کردن گزارشات خود را به یک سرور اصلی در شبکه را دارا می باشد. این برنامه با استفاده از دو قابلیت facility و priority برنامه هایی را که به آن اعلام می شود را گزارشگیری می کند. در ادامه در مورد این دو قابلیت توضیحاتی داده می شود.
Facility در حقیقت منبع یک برنامه را مشخص می کند، در اصل هر برنامه ای که به یک فایل گزارش جداگانه نیاز دارد باید از facility استفاده کند. هر برنامه یا پروتکلی مثل ftp mail و … facility جداگانه ای را به خود اختصاص داند. در این برنامه یک سری facility های پیش فرض به صورت زیر وجود دارد:
auth اطلاعاتی در مورد ورود کاربران به سیستم را ذخیره می کند، این امکان زمانی که کاربر به سیستم وارد شود یا از su استفاده کند فعال می شود.
Cron پیامی هایی که از برنامه cron دریافت می شود با استفاده از این facility قابل گزارشگیری است.
ftp پیام هایی که از سرور ftp راه اندازی می شود با استفاده از این facility قابل گزارشگری است.
Ker مربوط می شود به بخش هسته سیستم عامل.
Mail پیام هایی که از سرور mail راه اندازی می شود با استفاده از این facility قابل گزارشگری است.
Syslog پیام هایی که از سرور syslog راه اندازی می شود با استفاده از این facility قابل گزارشگری است.
البته این امکان هم وجود دارد که شما به تناسب درخواست خود برنامه مورد علاقه خود را به برنامه گزارشگیری اضافه کنید.
برنامه های مختلفی که شما قصد دارید گزارشات آنها را مشاهده کنید همه گزارش های خود را به سمت syslog ارسال می کنند، اما همه آنها برای شما مفید و حیاتی نیست و شاید به بعضی از آنها هم نیازی نداشته باشید، برای جلوگیزی از حجم زیاد اطلاعات برنامه syslog در ۹ ردیف اولویت تعیین کرده است و از طریق این ۹ ردیف است که تشخیص می دهد کدام گزارش برای شما لازم است و کدام گزارش را شما درخواست به ذخیره سازی آنرا دارید تا برای شما ذخیره کند، در ادامه با این ۹ ردیف آشنا می شود:
emerg: گزارشات اضطراری سیستم. این پیام ها برروی ترمینال براینکه حیاتی و اضطراری هستند نمایش داده می شود. شما با استفاده از این اولویت پیغام های اضطراری هر سرویسی را گزارش گیری کنید.
critical : با این اولویت مشکلات بحرابی برای شما ذخیره می شود مثل از دست رفتن یک هارد دیسک.
alert: این الویت به شما خبر می دهد مه سرویس در حال کار است ولی شاید در آینده نزدیک دچار خطا و مشکل شود.
err: خطاهای پیش امده را ذخیره می کند. این خطاها نیاز به توجه دارد ولی به سیستم شما اسیبی نمی رساند.
warning: پیام های متفرقه در این بخش قرار می گیرند. این پیغام ها باعث توقف هیچ سرویسی برای سیستم شما نمی شود.
notic: اطلاعات مهم در مورد deamon ها مثل راه اندازی و خاموش شدن سرویس مورد نظر را برای شما ذخیره می کند.
info: اطلاعات پایه ای در این بخش نمایش و ذخیره می شوند. بیشتر برای سرویس هایی که اطلاعات منتقل می کنند استفاده می شودمثل پیغام های ارسال شده توسط mail server یا پرسجو در Web سرور.
Debug: این اطلاعات برای برنامه نویسان مهم است که کار باگ گیری انجام می دهند.
برنامه syslog پیغام هایی را دریافت می کنند که الویت و امکانات ان در فایل syslog.conf ذخیره شده است. این فایل به دو بخش تقسیم می شود، بخش اول نوع log را مشخص می کند که شامل الویت و امکانات است و بخش دوم محلی را مشخص می کند که پیغام ها در آنجا دخیره شود. یک مثال در زیر مشاهده می کنید:
daemon.info /var/log/daemon
شما می توانید در این بخش از قواعد ستاره (wildcards) به صورت زیر استفاده کنید:
mail.* /var/log/mail
با استفاده از این خط برای سرویس میل تمام پیغام های خطا در فایل /var/log/mail ذخیره می شود. با استفاده از این قابلیت شما می توانید با استفاده از خط زیر همه همه پیغام ها را در فایل مورد نظر ذخیره کنید:
*.* /var/log/all
شما می توانید با استفاده از ; بعضی از قابلیت ها را جدا کنید، مثل خط زیر که همه پیغام ها را ذخیره کن بجز authpriv.none :
*.*;authpriv.none /var/log/all
شما می توانید چندین امکان رو در یک سطح از اولویت را در یک فایل به صورت زیر ذخیره کنید:
auth,daemon,syslog,user.info /var/log/info
اضافه کردن برنامه خواص به لیست:
در بعضی از موارد شما دوست دارید برنامه خاصی که در لیست امکانات نیست را گزارشگیری کنید، برای این کار شما باید اسم برنامه را در فایل syslog.conf اضافه کنید در قالب دو خط یک خط نام برنامه و خط بعدی نوع لاگ و محل لایگ مثل خط زیر:
!sudo
*.* /var/log/sudo
با این خط همه گزارشاتی که برنامه sudo از خود ارسال می کند در فایل مورد نظر شما ذخیره می شود.
در بعضی از موارد شما قصد دارید که برنامه شما فقط در فایل مورد نظر فایل ذخیره کند نه در جای دیگری برای این منظور از دو علامت !! قبل از نام برنامه استفاده کنید به صورت زیر:
!!sudo
*.* /var/log/sudo
!*
در خط پایانی هم باید از !* استفاده کنید.
در این مقاله میخواهیم سرویس NSD را که به تازگی به عنوان DNS پیشفرض OpenBSD معرفی شده است را بررسی و نحوه راه اندازی آن را شرح دهیم.
این سرویس یک سرویس معتبر DNS است که هم primary و هم secondary را پشتیبانی میکند و تنظیمات آن بسیار شبیه به سرویس bind است.
فایل های مربوط به تنظیمات این سرویس در مسیر /var/nsd قرار دارد و در واقع این سرویس موقع اجرا برای مسائل امنیتی به این مسیر change root میکند. در این مسیر دو دایرکتوری مهم به نام های etc و zone وجود دارد در اولی فایل های تنظیمات سرویس nsd قرار دارد و در دومی فایل های مربوط به zoneهای primary و secondary .
برای اینکه بتوانیم از این سرویس استفاده کنیم ابتدا باید یک zone برای آن تعریف کنیم به همین منظور به مسیر /var/nsd/zone/primary میرویم و مانند نمونه زیر یک فایل میسازیم.
# vi netbsd.ir.zone
$ORIGIN netbsd.ir.
$TTL 86400
@ ۳۶۰۰ SOA ns.netbsd.ir. admin.netbsd.ir. (
۲۰۱۶۰۱۲۸۲۰ ; serial
۱۸۰۰ ; refresh
۷۲۰۰ ; retry
۱۲۰۹۶۰۰ ; expire
۳۶۰۰ ) ; negative
#NS
Netbsd.ir. IN NS ns.netbsd.ir.
#MX
Netbsd.ir. IN MX ۰ ftp.netbsd.ir.
ns IN A ۱۹۲٫۱۶۸٫۲۰٫۲۵
mail IN A ۱۹۲٫۱۶۸٫۲۰٫۱۰۰
توجه داشته باسید که شما باید محتویات بالا را بسته به شبکه خود تنظیم کرده و در فایل netbsd.ir.zone قرار دهید و دخیره کنید.
بعد از انجام کار بالا و ساختن فایل zone نوبت به ویرایش فایل تنظیمات NSD میرسد.
برای این منظور به مسیر /var/nsd/etc رفته و در این مسیر فایل nsd.conf را مانند فایل نمونه زیر ویرایش میکنیم.
server:
hide-version: yes
ip-address: 192.168.20.15
remote-control:
control-enable: yes
zone:
name: “netbsd.ir”
zonefile: “master/netbsd.ir.zone”
در زیر برای قسمت های مهمی که آورده ایم توضیحاتی آمده است:
Ip-address : در جلوی این قسمت ip آدرس سرور NSD را وارد میکنیم.
Zone : در این قسمت zoneی که ساخته ایم را به NSD معرفی میکنیم.
بعد از انجام تنظیمات بالا با استفاده از دستورات زیر سرویس NSD را فعال و اجرا میکنیم
rcctl enable nsd#
rcctl start nsd#
برای چک کردن صحت عملکرد سرویس میتوانید از دستور dig استفاده کنید. در زیر مثالی برای این منظور آمده اسنت
Dig ftp.netbsd.ir @192.168.20.15
در این مقاله میخواهیم با دستور doas آشنا بشویم. درواقع این دستور در openbsd جایگزین دستور sudo شده است و انعطاف پذیری زیادی را در اختیار مدیر سیستم برای دادن اختیارات مختلف به کاربران سیستم میدهد.
این دستور شامل یک فایل تنظیمات به اسم doas.conf در مسیر etc میباشد که در ادامه توضیحداده خواهد شد.
این دستور آرکوکان های مختلفی دارد که در زیر درباره هر کدام توضیحاتی داده شده است.
C- با این آرگومان میتوانیم فایل صحت فایل کانفیک را بررسی کنیم
doas –C /etc/doas.conf$
n – با این آرگومان درصورتی که کاربر ملزم به زدن پسورد شده باشد اجرا با خطا روبرو میشود.
s – با این آرگومان پوسته فرمانی که در فایل /etc/passwd برای کاربر اختصاص داده شده است اجرا میشود.
u- با این آرگومان فرمان با سطح دسترسی کاربری که معرفی میکنیم اجرا میشود.
doas –u mohammad /usr/sbin/pkg_add$
بعد از معرفی آرگمان های نوبت به معرفی پارامترهایی که در فایل تنظیمات استفاده میشود میپردازیم.
این فایل به صورت پیشفرض در مسیر /etc/doas.conf قرار دارد .
Permit/deny با استفاده از این کلمات میتوانیم اجازه اجرا و عدم اجرای یک دستور خاص را با استفاده از سطح دسترسی کاربر خاص را به کاربران بدهیم
Nopass با استفاده از این کلمه به doas میگوییم که آیا کاربر هنگام اجرای دستور کلمه عبور خود را وارد کند یا نه
Keepenv با استفاده از این کلمه میگوییم هنگام اجرای دستور با استفاده از doas دستور با متغییرهای محیطی کاربری که خصیصه هایش را قرض میگیریم اجرا شود یا نه
As با استفاده از این کلمه کاربری که میخواهیم سطح دسترسی آن را قرض بگیریم را مشخص میکنیم .
نکته: برای دادن دسترسی یک گروه بصورت زیر عمل میکنیم
:نام گروه مثال =< :wheel
Cmd با استفاده از این کلمه میتوانیم دستورهایی که میخواهیم کاربر اجازه دسترسی به آن را داشته باشد را مشخص میکنیم. بهتر است که مسیر کامل دستور را بنویسیم.
در زیر مثال هایی برای ویرایش فایل doas.conf آمده است.
permit nopass mohammad as root cmd /usr/sbin/pkg_add
در خط بالا به doas میگوییم که کاربر mohammad بتواند دستور /usr/sbin/pkg_add با سطح دسترسی root را اجرا کند.
permit nopass keepenv { ENV PS1 SSH_AUTH_SOCK } :wheel cmd /usr/sbin/pkg_add
در خط بالا به doas میگوییم کاربرانی که در گروه wheel هستند بتوانند بدون رمز عبور و با متغییرهای محیطی مربوطه دستور /usr/sbin/pkg_add را اجرا کنند
برنامه opensmtpd بر اساس ساختار daemon در Unix ایجاد شده. OpenSMTP یک سرور ارسال و دریافت پست الکترونیکی برای یک سیستم محلی یا یک smtpسرور دیگر است. این سرور اولین بار به صورت رسمی در ۱۷ March 2013 در ورژن ۵٫۳ از سیستم عامل OpenBSD ارایه شده بعد از اولین ارایه آن در سال ۲۰۰۸٫ این برنامه توسط سه نفر از افراد پروژه OpenBSD به نام های Gilles Chehade, Eric Faurot و Charles Longeau طراحی شده است. هدف اصلی این پروژه امنیت، سادگی در پیکربندی و قابلیت اعتماد سازی است. به دلیل ارایه کد این برنامه تحت حق کپی رایت ISC license گستره بزرگی از کابران می توانند از آن استفاده کنند، حتی OpenSMTP را می توانید در لینوکس هم نصب و راه اندازی کنید.
این سرور با قابلیت portable یعنی قابل حمل بودن در همه ساختار های کد باز طراحی شده است و شما می توانید OpenSMTP را در سیستم عامل های FreeBSD، NetBSD ، DragonFlyBSD و بسیاری از سیستم عاملهای مبتنی بر لینوکس نصب کنید.
دیدگاه اصلی این برنامه در دو هدف اصلی استوار است یک سادگی در پیکربندی که مشکلات پیکربندی که سایر سرور های میل دارند را برطرف می کند و ارایه شده در لایسنی که به راحتی بتوان از آن استفاده کرد.
پس از یک دوره توسعه در این سرور اولین بار در ورژن ۴٫۶ از OpenBSD ارایه شد و در ورژن ۵٫۳ به عنوان بخش اصلی در این سیستم عامل به صورت سرویس میل پیش فرض قرار گرفت. در تست امنیتی که در ماه اکتبر سال ۲۰۱۵ برروی ورژن ۵٫۴٫۴ از ان انجام شد تعداد نه عدد مشکل امنیتی در آن پیدا شد که در ورژن ۵٫۷٫۲ همه مشکلات آن برطرف شده است.
با مدیریت استفاده از CPU و حافظه سیستم این برنامه با کمترین مصرف این دو عامل به عنوان یک سرور میل بزرگ می تواند ایفای نقش کند.
برنامهSmtpd : برنامه اصلی راه اندازی OpenSMTP در بخش پس زمینه سیستم عامل است.
فایل smtpd.conf: فایل پیکربندی است که برنامه Smtpd از آن برای تغییرات در برنامه استفاده می کند.
فرمان smtpctl: از این فرمان برای مدیریت کردن Smtpd استفاده می شود.
فرمان newaliases : این فرمان برای ایجاد کرد alias از روی فایل alias استفاده می شود.
فرمان makemap: این فرمان برای ایجاد کردن فایل map برای smpt استفاده می شود.
فایل aliases: این فایل ساختار نوشتاری alias را نمایش می دهد.
این برنامه به عنوان یک daemon اصلی برای برنامه انتقال میل (Simple Mail Transfer Protocol ) است. برنامه smtpd هم می تواند بر روی کارت شبکه سرور شما به گوش دادن برای دریافت یک میل استفاده شود و هم می تواند رابطی برای برنامه های دیگری مثل sendmail باشد. این برنامه می تواند از یک سرور دیگر پست الکترونیکی دریافت کند و با استفاده از کی از دو روش mbox یا maildir پست دریافتی را به کاربر مورد نظر ارسال کند پیام دریافت شده را در صندوق پستی کاربر مربوطه قرار دهد. این برنامه بر اساس ساختار RFC 532 طراحی شده است و شما می توانید با استفاده از فرمان smtpctl با این برنامه ارتباط برقرار کند.
برای این برنامه گزینه های زیر در نظر گرفته شده است:
D macro=value- با استفاده از این سویچ شما می توانید یک ست از متغییر ها را در یک خط بصورت مارو به سرور smptd خود ارسال کنید که الویت آن بر فایل پیکربندی مقدم است.
-d اگر برنامه Smtpd را با این سویچ راه اندازی کنید همه وقایع معروف به log در خروجی صفحه نمایش برای شما نمایش داده می شود.
-f file شما با استفاده از این سویچ می توانید یک فایل پیکربندی دیگری را به smtpd معرفی کنید.
-n فقط باعث چک شدن فایل پیکربندی می شود و سرور را راه اندازی نمی کند.
-v در زمان راه اندازی پیغام های بیشتری از سمت Smtpd نمایش داده می شود.
دو سویچ دیگر به نامه های –P و –T هم در این بخش وجود دارد که با استفاده از فرمان smtpctl قابل اعمال تغییر است. این دو
بخش در بخش فرمان smtpctl بیان می شود.
بی اس دی به انگلیسی( BSD: Berkeley Software Distribution) و به فارسی (توزیع نرمافزاری برکلی) یکی از مشتقات سیستمعامل یونیکس بود که در طی سالهای ۱۹۷۷ تا ۱۹۹۵ در دانشگاه کالیفرنیا برکلی توسط گروه تحقیقاتی سیستمهای کامپیوتری توسعه داده و منتشر میشد . امروزه واژه بی اس دی برای اشاره به خانوادهای از سیستمعاملهای شبهیونیکس استفاده میشود که همگی از نوادگان همان بیاسدی یونیکس هستند.
گفتنی است BSD تنها یک سیستم عامل نیست بلکه نرمافزاری است که از چند فرهنگ دانشگاهی مانند متنباز، نرمافزار رایگان و امن برخاسته است و برعکس لینوکس که به فردی ویژه تعلق دارد BSD به هیچ کس تعلق ندارد و متعلق به یک گروه است . در سال ۱۹۹۲ متن برنامههای BSD ازمتنهای AT&T جدا شدند و BSDLight انتشار یافت .هم اکنون از نسخه های امروزی BSD میتوان نمونههای زیر را نام برد:
OpenBSD,NetBSD , Mac OS X, DragonFly BSD, GhostBSD, FreeBSD, …
از برجستهترین سیستمعاملهایی که از بی اس دی سرچشمه گرفتهاند و هم اکنون هم در حال استفاده شدن هستند عبارتند از فری بی اس دی، نت بی اس دی و اوپنبیاسدی.
فریبیاسدی: در گسترش FreeBSD تاکید بر کارایی خوب ،کاربرپسندی و استفاده آسان است و پرکاربردترین یونیکس است و برای نمونه هم اکنون بیش از دو میلیون سرور در دنیا از این سیستم عامل استفاده می کنند. که برای نمونه می توان Yahoo, TaraSolution و Apache را نام برد.شعار این سیستم عامل پایداری می باشد.
نت بی اس دی: یک سیستم عامل قابل حمل وپرتابل است که بیش از ۵۷ پلتفرم را پشتیبانی میکند . شعار این سیستم عامل قابلیت نصب نت بی اس دی بر روی تُستر نان می باشد.این سیتسم عامل منظم ترین ساختار توسعه کدنویسی را در میان تمام سیستمهای نرم افزاری متن باز دارد . تیمی منسجم و بسیار فنی . از قابلیتهای مهم اراِئه شده توسط تیم توسعه آن می توان به مدیریت کننده بسته PKGSRC اشاره نمود که یکی از بهترینها در نوع خود می باشد .
اپن بیاسدی بر اساس NetBSD ساخته شد و اعضای توسعه دهنده آن در واقع از موسسان تیم نت بی اس دی بودند که بر مبنای یک اختلاف نظر از این تیم جدا شده و اوپن بی اس دی (OpenBSD) را توسعه دادند . کسانی که اپن بی اس دی (OpenBSD) گسترش دادند به دنبال یک سیستم عامل با امنیت بالا و متمرکز بر قابلیتهای امنیتی همچون رمز نگاری بودند. هم اکنون اپن بی اس دی(OpenBSD) امنترین یونیکس برای کاربری همگانی است.این سیستم عامل از زمان ارائه تا کنون رکورد دار ثبت تنها دو حفره امنیتی بصورت پیش فرض پس از نصب می باشد که این در میان سیستم عاملها بی رقیب می باشد . الته یکی از این حفرهها مربوط به سرویس ssh1 بود. از نکات مهم تیم توسعه این سیستم عامل ارائه افتخارات و قابلیتهای بزرگی به دنیای حرفه ای فناوری اطلاعات می باشد که از ان جمله می توان به توسعه سرویس OpenSSH , OpenSMTPD ,OpenNTPD و دیواره آتش PF را نام برد .
این سیستم عامل بر اساس فری بی اس دی نسخه ۴.۹ توسعه یافته و تمرکز بر توزیع پذیری و مجازی سازی دارد. از ویژگی های قابل توجه آن می توان به ارائه فایل سیستم هامر (Hammer) اشاره کرد که از قابلیتهای ویژه ای در دنیای فایل سیستم ها برخوردار است.
یک سیستم عامل دسکتاپ رایگان بر پایه فری بی اس دی(Free BSD) می باشد که از رابط کاربری گرافیکی زیبا استفاده میکند. کاربرانی که علاقه مند به استفاده از اعضای خانواده بی اس دی را بعنوان سیستم عامل بر روی ایستگاههای کاری خود دارند می توانند به راحتی از این سیستم عامل استفاده نمایند و از امکانات خوب و زیبایی آن لذت ببرند.
سیستم عامل بازرگانی است که بر پایه بی اس دی ساخته شده است. (مک اُ اس ده (Mac OS X) را با مک اُ اس اشتباه نکنید.) مک اُ اس ده (Mac OS X) با اینکه متن باز است تجاری هم هست که این همان فرهنگ BSD است .(Darwin and OpenDarwin) مک اُ اس ده (Mac OS X) امن ترین سیستم عامل تجاری به حساب آمده و بزرگترین بخش دنیای یونیکس برای کاربران مکینتاش است.بیشتر سیستمعاملهای فعلی بی اس دی به صورت متنباز، بدون هیچ هزینهای و همچنین تحت پروانه بیاسدی قابل دانلود شدن هستند، به جز مک اواس ده و آیاواس. این سیستمها عموماً از یک هسته یکپارچه برخوردار هستند، به جز دراگونفلی بی اس دی و اواس ده که یک هسته ترکیبیدارند. پروژههای بی اس دی متنباز عموماً هم هسته سیستمعامل و هم برنامههای فضای کاربری و کتابخانههارا با هم و در یک مخزن کد منبع نگهداری و مدیریت میکنند.
یکی از بخش های مهم در مدیریت سیستم عامل ها بحث اضافه کردن و مدیریت کردن کاربران است. این بخش در سیستم عامل های مبتنی بر BSD بخصوص OpenBSD با دقت طراحی و ایجاد شده است.
از دیرباز همه کاربران این نوع از سیستم عامل ها علاقه داشتند که با کاربر root وارد سیستم شوند و اعمال مدیریتی خود را اعمال کنند.
امروز این امر کار خطرناکی محسوب می شود و حتما برای جلوگیری از خطر حمله به سرویس های موجود برروی سیستم شما و در دست گرفتن اختیار سیستم شما با دسترسی کاربر root کاربران سیستمی و جداگانه ای با
سطوح دسترسی کم طراحی و ایجاد شده است که در صورت بروز اشکالی در سرویس شما خطری برای سیستم شما ایجاد نکند. در ادامه این مقاله شما یاد خواهید گرفت که با استفاده از فرمان Adduser کاربر جدید در سیستم خود اضافه کنید.
برای اضافه کردن کاربر جدید باید از فرمان adduser استفاده کرد که راه اندازی این فرمان در اختیار کاربر root است. اگر برای اولین بار این فرمان را اجرا کنید با یک سری سوالات پیش فرض مواجه می شود به صورت زیر:
# adduser
Couldn’t find /etc/adduser.conf: creating a new adduser configuration file
Reading /etc/shells Enter your default shell: csh ksh nologin sh tcsh [ksh]: Your default shell is: ksh -> /bin/ksh
Default login class: authpf bgpd daemon default staff [default]:
Enter your default HOME partition: [/home]:
Copy dotfiles from: /etc/skel no [/etc/skel]:
Send welcome message?: /path/file default no [no]: Do not send message(s)
Prompt for passwords by default (y/n) [y]:
Default encryption method for passwords: auto blowfish des md5 old [auto]:
بعد از راه اندازی این فرمان به دنبال فایلی به نام adduser.conf در شاخه etc می گردد و اگر فایل مورد نظر در انجا وجود نداشت آن فایل را ایجاد می کند، به این نکته توجه کنید که بعدا شما می توانید با ویرایش کردن این فایل سوالات پیش فرض را تغییر دهید.
در خط بعد از شما خط فرمان پیش فرض همه کاربران اضافه شده را سوال می کند،
اطلاعات Shell های نصب شده برروی سیستم شما را این فرمان از طریق خواندن فایل /etc/shells به دست می اورد و به صورت پیش فرض خط فرمان موجود در OpenBSD به نام ksh را انتخاب می کند.
در OpenBSD کلاس های مختلفی برای ورود به سیستم وجود دارد که در مقالات بعدی به صورت جامع در مورد همه آنها توضیح داده می شود،
فقط در همین حد بدانید که شما می توانید با استفاده از این کلاس ها ورش های ورود به سیستم، میزان مصرف و سایر موارد ورود به سیستم را تغییر دهید در این بخش شما مقدار پیش فرض که محدودیت خاصی ندارد را انتخاب کنید.
هر کاربر برای خود یک شاخه به نام home دارد که فایل های خود را در ان ذخیره می کند و فقط خودش بالاترین سطح دسترسی را به فایلها و زیر شاخه دارد. شما می توانید مسیر مورد نظر خود را در این بخش وارد کنید.
هر کاربر یک سری فایل های تنطیمات به نام dotfiles دارد که در شاخه کاربر اضافه شده کپی می شود. این فایلها شامل تنظیمات پیش فرض است.
به این دلیل به dotfiles معروف هستند که با نقطه شروع می شوند و هر فایل که با نقطه شروع می شود از دید کاربر مخفی می شود و به اصطلاح hiden است.
شما در این بخش محل پیش فرض این فایل ها را برای همه کاربران مشخص می کنید. مسیر پیش فرض در شاخه /etc/skel است. شما در این مسیر می توانید این فایلها را ویرایش کنید.
برای ایجاد یک کاربر شما به رمزعبور نیاز دارید اگر کاربری ایجاد شود که رمزعبور نداشته باشد این کاربر تا زمان تنظیم رمزعبور غیر فعال می باید در خط Prompt for passwords by default (y/n) [y] از شما سوال می شود که ایا در زمان ایجاد کاربر جدید رمز عبور از شما سوال شود یا خیر.
رمزعبور هر کاربری در قالب کد شده در فایل های passwd و masterpasswd قرار می گیرد.
شما در بخش پایانی این فرمان می توانید روش رمزنگاری رمزعبور در این فایل ها را انتخاب کنید گزینه پیش فرض و خوب در OpenBSD رمزنگاری blowfish است.
شما در این بخش با روش ایجاد کردن فایل adduser.conf اشنا شدید در بخش بعدی با استفاده از فرمان Adduser روش ایجاد کردن یک کاربر جدید را مشاهده می کنید.
همانطور که در بخش قبلی در مورد مراحل راه اندازی سیستم عامل OpenBSD بحث شد یکی از بخش های راه اندازی برنامه Boot Loader است که به شما در راه اندازی kernel های خاص خود و وارد شدن به حالت single user mode کمک می کند. بخش single user mode در بخش قبلی توضیح داده شد، حال در این بخش به شما روش های بارگذاری هسته های انتخابی و مورد نظر خود را آموزش می دهیم.
نکته:
در بعضی از موارد وقنی شما سرور راه داری دارید که از طریق برنامه های vnc به آن دسترسی دارید و قصد دارید به صورت کامل سیستم عامل فعلی خود را ارتقا، دهید به شرط اینکه تمام داده های دیسک سخت شما پاک شود می توانید هسته سیستم عامل ورژن بالاتر مورد نظر خود را از طریق شبکه برروی سیستم خود دانلود کرده و سیستم را راه اندازی کنید و در محل راه اندازی برنامه boot loader هسته قابل راه اندازی یا همان bsd.rd را راه اندازی کنید و به صورت نصب کامل سیستم عامل خود را نصب کنید. این بخش در ادامه آموزش داده می شود.
سیستم عامل OpenBSD دارای سه نوع هسته متفاوت است به نام های هسته تک پردازشی به نامه bsd هسته چند پردازشی به نام bsd.mp و هسته بروزرسانی و نصب به نام bsd.rd ، برای بارگذاری هر یک از این هسته ها شما می توانید در زمان راه اندازی boot Loader مسیر کامل هسته را بعد از فرمان boot ذکر کنید تا هسته مورد نظر شما بارگذاری شود مثل فرمان زیر:
boot> boot /bsd.rd
در این بخش حتی شما می توانید هسته ها را با گذینه های دلخواه راه اندزی کنید مثلا هسته چند پردازشی را در حالت single user mode راه اندازی کنید به صورت زیر:
boot> boot -s /bsd.sp
در بعضی از موارد نیاز بر آن است که شما هسته دلخواه خود را که برروی دیسک سخت شما قرار دارد را بارگذاری کنید. در نکته قبلی به این موضوع اشاره کردیم. برای این منظور شما باید سه مرحله را طی کنید:
نام دیسک های موجود در سیستم عامل های خانواده BSD بصورت /dev/sd0 یا /dev/wd1 است، این مدل نام ها زمانی برای سیستم عامل قابل فهم است که هسته سیستم عامل راه اندازی شده باشد. برنامه Boot Loader از سیستم نامگذاری هارد در حالت Bios استفاده می کند. برای اینکه شما از برنامه Boot Loader در مورد نام دیسک های موجود برروی سیستم خود سوال کنید ابتدا باید فرمان machine diskinfo را در بخش خط فرمان Boot Loader به صورت زیر اجرا کنید تا خروجی آنرا مشاهده کنید:
boot> machine diskinfo
Disk BIOS# Type Cyls Heads Secs Flags Checksum
fd0 ۰x0 *none* ۸۰ ۲ ۱۸ ۰x4 ۰x0
hd0 ۰x80 label ۱۰۲۴ ۲۵۵ ۶۳ ۰x2 ۰x51db843d
hd1 ۰x81 label ۱۰۲۴ ۲۵۵ ۶۳ ۰x2 ۰x9329b723
hd2 ۰x82 label ۱۰۲۴ ۲۵۵ ۶۳ ۰x2 ۰xcfadb343
boot>
همانطور که مشاهده می کنید در این بخش برنامه Boot Loader برای شما چهار دیسک پیدا کرده که اولی دیسک به نامه fd0 به فلاپی دیسک سیستم شما مربوط می شود و سه دیسک بعدی هارد دیسک هستن. هارد دیسک hd0 اولین دیسک شماست به صورت پیش فرض هسته اصلی برروی آن قرار دارد. اگر قصد دارید هسته دیگر برروی هارد دیگری را راه اندازی کنید باید پارتیشن مورد نظر را پیدا کنید.
خب در این مرحله شما فرض می کنید که هسته شما برروی پارتیشن hd2 قرار دارد حال شما باید با استفاده از فرمان set device به برنامه boot loader بگویید که از این پارتیشن برای راه اندازی استفاده کنید به صورت زیر:
boot> set device hd2a
قبل از اجرا کردن فرمان boot شما برای اطمینان از وجود فایل هسته مورد نظر باید فرمان ls را اجرا کنید به صورت زیر:
boot> ls
stat(hd2a:/.): Invalid argument
boot>
همانطور که مشاهده کردید این پارتیشن شامل فایل نیست پس باید به سراغ پارتیشن بعدی بروید و خروجی فرمان ls را به صورت زیر مشاهده کنید:
boot> set device hd1a
boot> ls
drwxr-xr-x 0,0 ۵۱۲ .
drwxr-xr-x 0,0 ۵۱۲ ..
drwxr-xr-x 0,0 ۵۱۲ altroot
drwxr-xr-x 0,0 ۵۱۲ home
drwxr-xr-x 0,0 ۵۱۲ tmp
حال می توانید هسته را راه اندازی کنید.
برای راه اندازی هسته شما می توانید فرمان boot را اجرا کنید تا هسته مورد نظر شما راه اندازی کنید حتی شما می توانید برای چک کردن هسته وارد محیط single user mode شوید به صورت زیر:
boot> boot -s
booting hd1a:/bsd: 5669864+1601484+935608+0+617568 [89+499848+323884]=0xd351b8
…
شما در این بخش حتی می توانید به صورت مستقیم نام پارتیشن و نام هسته مورد نظر را در یک خط به صورت زیر وارد کنید تا هسته شما راه اندازی شود:
boot> boot -s hd1a:/bsd
در مراحل راه اندازی همه سیستم ها ابتدا از Bios شروع می کنند، برنامه Bios در ابتدا دستکاه اصلی متصل شده به سیستم را چک می کند، مقدار Ram را چک کرده و CPU را در بعضی از بخش ها راه اندازی می کند، بعد از این مرحله Bios به سراغ Boot Loader می رود.
برنامه Boot Loader، برنامه کوچکی است که باعث راه اندازی Kernel می شود.
در مرحله بعد هسته یا همان kernel همه دستگاه های متصل شده به سیستم را چک می کند و راه اندازهای آنها را تشخیص می دهد. در مرحله بعدی برنامه init راه اندازی می شودکه باعث راه اندازی برنامه های مورد نیاز کاربر، تنظیمات شبکه و سایر سرویس های مورد نیاز سیستم را راه اندازی می کند.
در بخش بعدی با جزییات بیشتری درباره این موارد صحبت خواهیم کرد.
بعد از راه اندازی Bios شما وارد برنامه Boot Loader می شوید این بخش را در ادامه مشاهده می کنید:
OpenBSD/amd64 BOOT 3.18
boot>
هدف اصلی این برنامه پیدا کردن هسته است و هسته را در حافظه ram بارگذاری کند. در این بخش شما برای مشاهده کردن فرمان هایی که می توانید استفاده کنید از فرمان Help به صورت زیر استفاده کنید تا فرمانها را مشاهد کنید:
boot> help
commands: # boot echo env help ls machine reboot set stty time
machine: boot diskinfo memory
به صورت پیش فرض بعد از گذشت ۵ ثانیه هسته پیش فرض به صورت خودکار راه اندازی می شود، برای متوقف کردن این بخش کلید space را فشار دهید.
شما می توانید با استفاده از فرمان set timeout مقدار ۵ ثانیه را افزایش دهید به صورت زیر:
boot> set timeout 10
اگر در بخش راه اندازی شما از کلید space استفاده کرده باشید برای راه اندازی سیستم خود حتما باید از فرمان boot به صورت زیر استفاده کنید:
> boot
بعد از راه اندازی مرحله Boot Loader و بعد از راه اندازی شدن هسته به صورت کامل سیستم در حالت خاصی می تواند به نام single user mode قرار گیرد. در این حالت به کاربر یک خط فرمان داده می شود تا بتواند فرمان خاص این محیط را راه اندازی کند. در این حالت هسته سیستم عامل همه سخت افزار های موجود را شناسایی کرده و برنامه init را راه اندازی کرده.
در این حال فایل سیستم ها ی موجود برروی دیسک سخت شما mount نمی شود فقط شاخه root در حالت فقط خواندن mount می شود.
در این حالت سرویس شبکه سیستم شما راه اندازی نمی شود، بخش های امنیتی موجود در هسته بارگذاری نمی شود و همه سظوح دسترسی غیرفعال هستند.
****این بخش برای بازیابی رمزعبور کاربر root بسیار محیط خوبی است. ****
برای وارد شدن به این بخش کافیست که در برنامه Boot Loader در بخش خط فرمان از فرمان boot با سویچ s استفاده کنید به صورت زیر:
boot> boot -s
در حالت single user mode شما می توانید همه بخش های سیستم خود را مدیریت کنید و اگر فایلی را به اشباه ویرایش کرده اید که باعث عدم راه اندازی سیستم شما شود را به حالت قبلی خود ویرایش کنید.
به این نکته توجه کنید که اگر سیستم شما به یکباره خاموش شده باشد فایل سیستم شما به صورت کامل خاموش نشده است و باید از فرمان fsck به صورت زیر استفاده کنید تا بعد بتوانید فایل سیستم ها را ذر حالت خواندن و نوشتن mount کنید، این فرمان به صورت زیر است:
# fsck -p
/dev/sd0a (e4bf0318329fe596.a): file system is clean; not checking
# mount -a
در حالت single user mode سرویس شبکه سیستم شما فعال نیست برای راه اندازی کردن سرویس شبکه خود ابتدا مراحل قبل را اجرا کنید و بعد فرمان /etc/netstart را به صورت زیر اجرا کنید:
# sh /etc/netstart
اگر ایراد سیستم شما در راه اندازی تنطیمات اشتباه شبکه شما باشد می توانید این فرمان را راه اندازی کنید تا بخش شبکه شما بدون ایراد راه اندازی شود .
فکر خوبی است که برنامههای نوشته شده توسط توسعهدهندگان ایرانی و همین طور برنامههایی که به هر طریق به زبان فارسی و جامعه ایرانی مربوط می شوند را برای FreeBSD و (همین طور برای بقیه سیستمعاملها) پورت کنیم.
به این ترتیب میتونیم به دو هدف مهم برسیم:
ساغر یک برنامه شعر فارسی است و از پایگاه داده ganjoor.net استفاده میکند. پایگاه داده گنجور در حال حاضر بسیار کامل است و اشعار بیشتر شعرای فارسی زبان را در بر می گیرد. این برنامه در حال حاضر پورت شده و در مسیر misc/saaghar قرار داره.
لازم به توضیح نیست که وجود فونت های فارسی چقدر مهم می باشد. خوشبختانه تعدادی فونت فارسی از مدتها پیش برای FreeBSD پورت شده و در درخت پورت ها در مسیر x11-fonts/farsifonts در دسترس است. این پورت، بیشتر فونتهای رایج را دربرمیگیرد.
یکی از مهمترین برنامهها برای یک کاربر فارسی زبان فرهنگ لغت هست که فرهنگ لغت های خوبی در درخت پورت ها وجود دارد و تنها کاری که ما باید بکنیم این است که یک پایگاه داده برای آن درست کنیم. پایگاه داده آریان پور یکی از کاملترین پایگاه دادههای موجود است که در حال حاضر در درخت پورت ها وجود دارد و در مسیر textproc/stardict-dict-fa_IR در دسترس می باشد. این پایگاه داده با برنامه stardict نسخه دو و سه سازگار است.
دو پیادهسازی مختلف به نامهای jcal و starcal وجود دارد. متأسفانه برنامه starcal قابلیتهایی دارد که باعث شده پورت کردن آن برای یک سیستمعاملی غیر از لینوکس سخت باشد.
اگر برنامهای سراغ دارید که در لیست نیست، لطفاً آن را با ما در میان بگذارید.
پورتهای FreeBSD شامل هزاران بسته نرمافزاری است که برای اجرا بر روی این سیستمعامل آماده شدهاند. هر کسی میتواند برنامه جدیدی را برای FreeBSD پورت کرده یا همین طور برای مدیریت کردن پورت های موجود داوطلب شود.
به طور کلی میتوان گفت مراحل زیر در هنگام نضب یک پورت انجام میپذیرد:
تمام مراحل بالا باید به صورت خودکار انجام شوند. کاربر باید حداقل درگیری را در هنگام نصب یک برنامه داشته باشد. برای خودکارسازی این مراحل از برنامه make استفاده میشود.
make به محض اینکه اجرا شد دایرکتوری جاری را برای پیدا کردن فایلی به نام Makefile جستجو کرده و با توجه به محتویات موجود در آن عملیاتی را انجام میدهد. ما از همین روش برای خودکارسازی فرآیند نصب یک نرمافزار استفاده میکنیم. در زیر نمونهای از یک Makefile آورده شده است.
# New ports collection makefile for: oneko # Date created: 5 December 1994 # Whom: asami # # $FreeBSD$ # PORTNAME= oneko PORTVERSION= 1.1b CATEGORIES= games MASTER_SITES= ftp://ftp.cs.columbia.edu/archives/X11R5/contrib/ MAINTAINER= asami@FreeBSD.org COMMENT= A cat chasing a mouse all over the screen MAN1= oneko.1 MANCOMPRESSED= yes USE_IMAKE= yes .include <bsd.port.mk>
اگر محتویات این فایل برای شما غیر قابل فهم است نگران نباشید، بیشتر قسمتهای مقاله درباره همین فایل بحث میکنند!
فایل بالا شامل متغیرهایی است که تعدادی از آنها را در اینجا خیلی کوتاه بررسی میکنیم (بعدا آنها را به طور مفصل و با جزئیات بررسی خواهیم کرد):
PORTNAME: این متغیر نام پورت مورد نظر را مشخص میکند و باید حتماً استفاده شود.
PORTVERSION: نسخه یا ورژن پورت را مشخص میکند. نسخه پورت نباید حاوی کاراکتر خط تیره (-) باشد. این متغیر اجباری است.
MASTER_SITES: این متغیر مشخص می کند که کدهای منبع و فایلهای برنامه باید از کجا دانلود شوند. میتوانید چند آدرس مختلف را مشخص کنید که با کاراکتر خط فاصله از هم جدا شدهاند.
هر پورت دو فایل به نامهای pkg-descr و pkg-plist دارد.
این فایل دربرگیرنده توضیحاتی درباره پورت مورد نظر است. مثلاً برنامه برای انجام چه کاری نوشته شده، چه قابلیتهایی دارد، صفحه خانگی آن چیست و … .
یک نمونه از این فایل را در زیر مشاهده میکنید:
This is a port of oneko, in which a cat chases a poor mouse all over the screen. : (etc.) WWW: http://www.oneko.org/
این فایل دربرگیرنده لیست تمام فایلهایی است که توسط این پورت بر روی سیستم نصب میشوند. همیچنین اصطلاح packing list هم به این فایل اطلاق میشود. چون بستههای باینری از روی محتویات این فایل ایجاد میشوند. تمام مسیرهای موجود در این فایل وابسته به مقدار متغیر ${PREFIX} هستند. (مقدار این متغیر معمولاً /usr/local یا /usr/X11R6 است) توجه داشته باشید که man page هایی که توسط برنامه در سیستم نصب میشوند نباید در این فایل لیست شوند. اگر برنامه در هنگام نصب تعدادی دایرکتوری در سیستم ایجاد میکند، علاوه بر اینکه این دایرکتوریها را لیست میکنید، عبارت @dirrm را هم در ابتدای خطوط قرار دهید تا در هنگام حذف برنامه، دایرکتوریهای مرتبط با آن هم پاک شوند. یک نمونه از این فایل را در زیر مشاهده میکنید:
bin/oneko lib/X11/app-defaults/Oneko lib/X11/oneko/cat1.xpm lib/X11/oneko/cat2.xpm lib/X11/oneko/mouse.xpm @dirrm lib/X11/oneko
تمام پورت ها باید این فایل را داشته باشند. اما فقط در یک مورد میتوان از آن صرف نظر کرد. اگر برنامه تعداد مشخص و اندکی فایل در سیستم نصب میکند، می توان لیست فایلها و دایرکتوریها را با استفاده از متغیرهای PLIS_FILES و PLIST_DIRS در Makefile مشخص کرد. به عنوان مثال می توانیم با قرار دادن خطوط زیر در Makefile از ایجاد فایل pkg-plist خودداری کنیم:
PLIST_FILES= bin/oneko \ lib/X11/app-defaults/Oneko \ lib/X11/oneko/cat1.xpm \ lib/X11/oneko/cat2.xpm \ lib/X11/oneko/mouse.xpm PLIST_DIRS= lib/X11/oneko
طبیعتا اگر برنامه هیچ دایرکتوری در سیستم ایجاد نمیکند می توان متغیر PKG_DIRS را بدون مقداردهی رها کرد.
بعد از این که فایلها دانلود شدند، باید آنها را بررسی کرد تا مبادا تغییری کرده باشند. تمام پورت ها فایلی به نام distinfo دارند که این فایل اطلاعات لازم برای بررسی صحت فایلها را نگهداری میکند. تمام کاری که شما باید انجام دهید اجرای دستور make makesum است. Checksum ها به صورت خودکار تولید شده و در این فایل قرار میگیرند.
اگر فایلهای برنامه به صورت مکرر تغییر میکنند و شما مطمئن هستید که آنها را از جای مطمئنی دریافت میکنید، می توانید با استفاده از متغیر IGNOREFILES این فایلها را نادیده گرفته تا هیچ بررسی جهت اطلاع از صحت آنها صورت نگیرد. در این صورت Checksum آن فایل در هنگام اجرای دستور make makesum محاسبه نخواهد شد.
بعد از اینکه برنامه به طور کامل پورت شد، نوبت به آزمایش آن میرسد. باید مطمئن شوید که پورت دقیقاً همانطور که شما میخواهید رفتار میکند. نکات زیر را بررسی کنید:
پورت شما بعد از حذف تمام فایلها را پاکسازی کند.
پیشنهاد میشود دستورات زیر را به ترتیب بر روی پورت مورد نظر اجرا کنید:
make install make package make deinstall pkg_add package-name make deinstall make reinstall make package
مطمئن شوید که در مراحل package و deinstall هیچ هشداری بر روی صفحه نمایش چاپ نمیشود. بعد از مرحله سوم چک کنید که تمام فایلها و دایرکتوریها از روی سیستم حذف شده باشند. بعد از مرحله چهارم برنامه را تست کرده و ببینید آیا وقتی که برنامه از روی یک بسته باینری هم نصب میشود به درستی کار میکند یا نه.
بعد از اینکه مرحله پورت کردن نرمافزار به اتمام رسید و شما آن را با موفقیت آزمایش کردید، میتوانید آن را برای پروژه ارسال کرده تا در درخت اصلی پورت ها قرار گیرد و دیگران هم بتوانند از آن استفاده کنند. احتیاجی به دایرکتوری work و همین طور بسته باینری pkgname.tgz نیست. پس همین حالا آنها را حذف کنید.
بعد از انجام این کار خروجی را با استفاده از send-pr یا معادل تحت وب آن ارسال کنید. برای انجام این کار، در قسمت Category گزینه ports و در قسمت class هم گزینه change-request را انتخاب کنید. همین طور در فیلد Description توضیح مختصری درباره پورت خود بنویسید و محتویات فایل shar را هم در فیلد Fix وارد کنید.
نکته:
شما میتوانید با رعایت چند نکته کوچک کار توسعه دهندگان را راحتتر کنید. مثلاً اگر پورت جدیدی را ارسال میکنید، بهتر است فیلد Synopsis را در قالب زیر پر کنید:
New port: <category>/<portname> <short description of the port>
یا اگر پورتی که قبلاً موجود بوده را به روزرسانی کردهاید، اطلاعات فیلد Synopsis را در قالب زیر وارد کنید:
Update port: <category>/<portname> <short description of the update>
اگر الگوهای بالا را رعایت کنید، شانس اینکه توجه یکی از توسعه دهندگان به پورت شما جلب شود بیشتر میشود.
یک بار دیگر متذکر میشویم که کدهای منبع، دایرکتوری work و بستهباینری را ارسال نکنید.
بعد از اینکه پورت خود را ارسال کردید، لطفاً عجله نکنید. گاهی اوقات ممکن است چند ماه طول بکشد تا یک پورت رسما در درخت پورت ها قرار گیرد. البته معمولاً این کار طی چند روز انجام میشود. میتوانید لیستی از پورت های منتظر در صف برای قرار گرفتن در درخت پورت ها را در اینجا ببینید.
پس از اینکه توسعه دهندگان پورت شما را بررسی کردند، نکاتی که احتمالاً باید بدانید را برای شما ارسال کرده و سپس آن را در درخت پورت ها قرار میدهند. همچنین نام شما هم در لیست دیگر مشارکتکنندگان پروژه FreeBSD اضافه خواهد شد.
در ادامه خواهیم دید که وقتی کاربر دستور make را اجرا میکند چه اتفاقی میافتد.
دستور fetch اجرا میشود. دستور fetch دایرکتوری DISTDIR را چک کرده و مطمئن میشود که آیا فایلهای مورد نیاز برای ساخت پورت وجود دارند یا نه؟ اگر فایلها در دایرکتوری DISTDIR وجود نداشتند، آنها را از آدرس MASTER_SITES دریافت خواهد کرد. متغیر MASTER_SITES در Makefile تعریف میشود و دربرگیرنده لیستی از سایتهایی است که میتوان فایلهای برنامه را از آنجا دریافت کرد. علاوه بر این سایتها، فایلهای برنامه از مسیر ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles هم قابل دریافت هستند چون همیشه برای اطمینان یک نسخه از آنها در این دایرکتوری نگهداری میشود. سپس فایلها با استفاده از برنامهای که توسط متغیر FETCH مشخص شده، دانلود میشوند و در دایرکتوری DISTDIR قرار میگیرند.
دستور extract اجرا خواهد شد. این دستور کدهای منبع برنامه را از دایرکتوری DISTDIR برداشته و آنها را در یک جای موقت (که توسط WRKDIR مشخص میشود) استخراج میکند. کدهای منبع معمولاً فایلهایی با پسوند .tar.gz هستند و معمولاً در یک دایرکتوری به نام work استخراج میشوند.
دستور patch اجرا میشود. در ابتدا تمام patch هایی که توسط متغیر PATCHFILES مشخص شدهاند بر روی کدهای منبع اعمال میشوند. سپس تمام فایلهایی که patch-* نام دارند و در دایرکتوری PATCHDIR قرار گرفتهاند به ترتیب حروف الفبا بر روی کدهای منبع اعمال خواهند شد. مقدار پیش فرض دایرکتوری PATCHDIR بر روی files تنظیم شده است.
دستور configure اجرا خواهد شد. این دستور میتواند چند کار مختلف انجام دهد.
دستور build اجرا میشود. این دستور با استفاده از Makefile ای که در دایرکتوری کدهای منبع وجود دارد، برنامه را کامپایل خواهد کد. در صورتیکه متغیر USE_GMAKE تعریف شده باشد، از برنامه GNU make استفاده خواهد شد. در غیر این صورت از make استفاده میشود.
آنچه که با هم مرور کردیم عملیات پیش فرض بعد از اجرای دستور make بود. اگر این عملیات برای شما کافی نیست نگران نباشید. شما میتوانید در Makefile دستوراتی به نام pre-something یا post-something تعریف کنید. مثلاً با تعریف دستور pre-configure میتوانید عملیاتی را قبل از اجرای configure انجام دهید و به همین ترتیب حتی میتوانید اسکریپتهایی با همین نامها را در دایرکتوری scripts قرار دهید تا عملیات دلخواه خود را قبل یا بعد از اجرای عملیاتهای پیش فرض به انجام برسانید.
به عنوان مثالی دیگر، اگر در Makefile خود post-extract را تعریف کرده باشید، و فایلی به نام pre-build هم در دایرکتوری scripts قرار داشته باشد، بعد از اینکه فایلها استخراج شدند، عملیات تعریف شده توسط post-extract اجرا شده و همین طور قبل از انجام عمل build، اسکریپت pre-build اجرا میشود.
عملیاتهای پیش فرض در فایل bsd.port.mk و در قالب do-something تعریف شدهاند. مثلاً عملیات مربوط به دستور extract به صورت do-extract تعریف شده و به همین ترتیب. البته شما خودتان هم میتوانید این عملیاتها را در Makefile پورت خود تنظیم کنید تا عملیاتهای پیش فرض را بی اثر کنید.
این مرحله شامل دریافت کدهای منبع یک برنامه (به صورت یک آرشیو فشرده شده مثل foo.tar.gz یا foo.tar.Z) و قرار دادن آنها در DISTDIR میشود.
شما باید وب سایت(های) اصلی برای دریافتِ کدهای منبع را با متغیر MASTER_SITES مشخص کنید. همان طور که ممکن است بدانید سایت هایی مانند Sourceforge و Github وجود دارند که میزبانی هزاران پروژه نرمافزاری را بر عهده دارند. تعدادی ماکرو برای استفاده راحتتر از این سایت ها در فایل bsd.sites.mk تعریف شده که میتوانید از آنها استفاده کنید. نحوه استفاده از این ماکروها بعداً شرح داده خواهد شد. لطفاً تا جایی که ممکن است از این ماکروها استفاده کنید.
اگر نتوانستید هیچ سایت FTP یا HTTP مناسبی پیدا کنید، یا فقط سایتهایی پیدا کردید که نسخه ناقص و غیر استاندارد کدهای منبع را دارند، شاید بهتر باشد که یک نسخه از کدهای منبع را بر روی سروری که خودتان مالکیتش را بر عهده دارید قرار دهید.
یک نسخه از کدهای منبع را در جایی استخراج کرده و هر تغییری که لازم است بر روی آنها انجام شود تا برنامه با موفقیت بر روی نسخه فعلی FreeBSD کامپایل شود را انجام دهید. لطفا تغییراتی که انجام میدهید را با دقت دنبال کرده و به خاطر بسپارید. چون به زودی باید تمام این مراحل را به صورت خودکار انجام دهید. تمامی تغییرات مانند حذف، اضافه یا ویرایش فایلها باید توسط اسکریپتها یا patch ها به صورت خودکار انجام شوند.
به طور خلاصه، اگر فایلی نیاز به تغییر دارد، یک نسخه از آن را با پسوند .orig کپی کرده و سپس فایل اصلی را ویرایش کنید. در نهایت دستور make makepatch را اجرا کنید. برای مثال اگر فایلی به نام filename.c احتیاج به تغییر داشته باشد، ابتدا یک نسخه از آن را با پسنود .orig کپی میکنیم:
cp filename.c filename.c.orig
سپس تمام تغییرات مورد نظر خود را در filename.c اعمال کرده و سپس این دستور را اجرا میکنیم:
make makepatch
در هنگام آماده کردن یک پورت، می توانید تغییراتی که در فایلها ایجاد میکنید را با diff ضبط کرده تا بعداً بتوانید آنها را مجدداً به صورت خودکار با استفاده از patch بر روی کدهای منبع اعمال کنید. هر فایل patch ای که میخواهید بر روی کدهای منبع اعمال کنید، باید نامی در قالب patch-* داشته باشد که * مسیر فایلی است که patch باید بر روی آن اعمال شود. همانند patch-Imakefile یا مثلاً patch-src-config.h. این فایلها باید در داخل دایرکتوری PATCHDIR قرار بگیرند. مقدار پیش فرض این دایرکتیو files است که در همان دایرکتوری پورت در کنار فایلهای Makefile و pkg-plist قرار دارد. تمام patch ها باید وابسته به مسیر WRKSRC باشند (همان دایرکتوری که پورت شما خودش را در آن استخراج میکند)
لطفاً فقط از کاراکترهای [-+._a-zA-Z0-9] برای نام گذاری فایلهای patch استفاده کنید.
اگر میخواهید از تمام فایلهای موجود در یک دایرکتوری patch تهیه کنید، میتوانید از گزینه -r در دستور diff استفاده کنید. اما بعد از انجام این کار حتماً نتیجه را چک کرده تا مطمئن شوید که هیچ چیز اضافه و بدردنخوری در خروجی قرار نداشته باشد.
اگر احتیاج به حذف کردن فایل(هایی) از کدهای منبع دارید، می توانید این کار را در مرحله post-extract انجام دهید.
اگر مشکل شما تنها با چند جایگزینی ساده حل میشود، میتوانید این کار را مستقیماً از طریق Makefile و با استفاده از sed انجام دهید. در مواقعی که میخواهید مقادیر یک متغیر را تغییر دهید، این روش میتواند بسیار مفید واقع شود. برای مثال:
post-patch: @${REINPLACE_CMD} -e 's|for Linux|for FreeBSD|g' ${WRKSRC}/README @${REINPLACE_CMD} -e 's|-pthread|${PTHREAD_LIBS}|' ${WRKSRC}/configure
اگر برنامه در محیط ویندوز نوشته شده باشد، انتهای خطوط در فایلهای متنی با کاراکتر CR/LF مشخص میشود. اما در یونیکس انتها فایلها فقط با کاراکتر LF مشخص میشود که این ناسازگاری سبب بروز اشکالاتی در هنگام اعمال patchها، کامپایل کردن برنامه و همین طور اجرای اسکریپتها میشود. برای تبدیل کاراکتر خط جدید به LF میتوانید به صورت زیر عمل کنید:
USE_DOS2UNIX= yes DOS2UNIX_REGEX= .*\.(c|cpp|h)
تمام تغییرات لازم را در اسکریپت configure انجام داده و آن را در زیردایرکتوری scripts ذخیره کنید. همان طور که قبلاً گفته شد، میتوانید در داخل Makefile و با استفاده از عملیات pre-configure و post-configure انجام دهید.
اگر برنامه شما یک اسکریپت configure دارد، باید خط زیر را به Makefile اضافه کنید تا این اسکریپت اجرا شود:
HAS_CONFIGURE= yes
ممکن است اسکریپت configure به برنامه GNU Make و دیگر برنامههای مرتبط احتیاج داشته باشد. در این صورت به جای خط بالا باید خط زیر را اضافه کنید:
GNU_CONFIGURE= yes
پیکربندی Makefile بسیار ساده است. پیشنهاد میکنیم که قبل از شروع کار، به چند نمونه از Makefile ها نگاهی انداخته تا یک دید کلی درباره آنها بدست آورید. Makefile را میتوانید به وفور در درخت پورت ها پیدا کنید.
کدهای منبع به صورت یک آرشیو فشرده شده منتشر میشوند که در فرهنگ اصطلاحات FreeBSD به آنها distfile گفته میشود. اگر distfile پورت شما نامی در قالب foozolix-1.2.tar.gz دارد، می توانید از مطالعه این قسمت صرف نظر کنید. در غیر این صورت شما باید متغیرهای DISTVERSION ،DISTNAME، EXTRACT_CMD ،EXTRACT_BEFORE_ARGS ،EXTRACT_AFTER_ARGS، EXTRACT_SUFX ،DISTFILES را مطابق با نیاز خود تنظیم کنید. در بدترین حالت ممکن است مجبور باشید عملیات do-extract را مجدداً و با توجه به نیاز خود تعریف کنید.
اولین قسمت هر MAkefile، در برگیرنده اطلاعات اساسی درباره پورت مورد نظر است. مانند نام پورت، نسخه پورت و دستهای که پورت در آن قرار دارد.
همان طور که قبلاً گفته شد، شما باید نام پورت را با استفاده از متغیر PORTNAME و نسخه و ورژن آن را با متغیر PORTVERSION مشخص کنید.
متغیر EXTRACT_SUFX پسوند distfile را مشخص میکند و به صورت پیش فرض مقدار tar.gz برای آن درنظر گرفته شده است. اگر پسوند distfile شما چیز دیگری است، می توانید آن را با استفاده از همین متغیر مشخص کنید. مثلاً برای پسوند .tar.bz2 میتوانید به صورت زیر عمل کنید:
USE_BZIP2= yes
متغیر USE_BZIP2 هم تعیین میکند که باید از برنامه bzip2 برای استخراج پورت استفاده شود.
همین طور برای فایلهای .zip:
USE_ZIP= yes
برای مدیریت و دسترسی راحتتر پورت ها را با توجه به کاربردشان ردهبندی میکنند. شما هم باید رده مناسبی را برای پورت خود انتخاب کنید. سپس با استفاده از متغیر CATEGORIES دسته مورد نظر خود را مشخص کنید.
قسمت دوم هر Makefile دربرگیرنده اطلاعاتی در مورد فایلهایی است که باید دانلود شوند و با استفاده از آن پورت را کامپایل کرد که این مورد شامل کدهای منبع، patchها و … میشود.
اگر distfile شما نامی دارد که از قالب رایج تبعیت نمیکند، می توانید با متغیر DISTNAME نام آن را مشخص کنید.
عمل کامپایل برنامهها میتواند مدت زمان زیادی به طول بینجامد. به کمک ccache میتوان عمل کامپایل را سرعت بخشیده و در زمان صرفه جویی کرد. نحوه کار ccache به این صورت است که وقتی شما برنامهای را با استفاده از ccache کامپایل میکنید، نتیجه عملیاتِ کامپایل کش شده و در دفعات بعدی از آن استفاده میشود.
ccache را میتوانید از طریق پورت های FreeBSD نصب کنید:
# cd /usr/ports/devel/ccache && make install clean
و همین طور از طریق بستههای باینری:
# pkg_add -r ccache
خطوط زیر را به فایل /etc/make.conf اضافه کنید:
.if (!empty(.CURDIR:M/usr/src*) || !empty(.CURDIR:M/usr/obj*)) .if !defined(NOCCACHE) CC:=${CC:C,^cc,/usr/local/libexec/ccache/world/cc,1} CXX:=${CXX:C,^c\+\+,/usr/local/libexec/ccache/world/c++,1} .endif .endif
البته میتوایند مقادیر CC و CXX را متناسب با کامپایلر مورد علاقه خود تنظیم کنید. اما به یاد داشته باشید که برای کامپایل هسته و world حتماً باید از GCC یا Clang استفاده کنید.
اگر از csh یا tcsh استفاده میکنید، خطوط زیر را به فایل /etc/csh.cshrc اضافه کنید:
setenv PATH /usr/local/libexec/ccache:$PATH setenv CCACHE_PATH /usr/bin:/usr/local/bin setenv CCACHE_LOGFILE /var/log/ccache.log
اگر از Korn shell و یا Bourne Shell استفاده میکنید خطوط زیر را به فایل /etc/profile اضافه کنید:
export PATH=/usr/local/libexec/ccache:$PATH export CCACHE_PATH=/usr/bin:/usr/local/bin export CCACHE_LOGFILE=/var/log/ccache.log
به صورت پیش فرض، اندازه فضای کش ۱GB در نظر گرفته شده که به علت محدود بودن سیستم فایل /، بهتر است دایرکتوری کش را در سیستمفایلی به غیر از / در نظر بگیرید. برای انجام این کار بسته به پوسته ای که استفاده میکنید خطوط زیر رابه فایلهای مربوطه اضافه کنید:
اگر از csh یا tcsh استفاده میکنید، خط زیر را به فایل /etc/csh.cshrc اضافه کنید:
setenv CCACHE_DIR "/usr/.ccache"
اگر از Korn shell و یا Bourne Shell استفاده میکنید خط زیر را به فایل /etc/profile اضافه کنید:
export CCACHE_DIR=/usr/.ccache
همان طور که گفته شد اندازه دایرکتوری کش به صورت پیش فرض ۱GB در نظر گرفته شده است. برای تغییر اندازه این دایرکتوری خطوط زیر را به فایل /etc/csh.cshrc اضافه کنید:
if ( -x /usr/local/bin/ccache ) then /usr/local/bin/ccache -M 512m > /dev/null endif
البته به جای ۵۱۲m مقدار مورد نظر خود را قرار دهید.
در پایان، اگر در هنگام کامپایل به مشکلی برخوردید، متغیر NOCCACHE را مقداردهی کرده و عملیات را دوباره شروع کنید:
make NOCCACHE=yes buildworld buildkernel