سامانه آموزش آنلاین

مقلات آموزشی

آموزش BSD به زبان ساده

هسته در FreeBSD

ستاره غیر فعالستاره غیر فعالستاره غیر فعالستاره غیر فعالستاره غیر فعال
 

در این بخش شما با هسته FreeBSD آشنا شده ، روش نصب و سفارشی کردن آنرا بررسی خواهیم کرد و در بخش پایانی با ماژولها و روش استفاده از آنها آشنا می شوید.

همانطوری که در مقاله مراحل راه اندزی FreeBSD گفته شد، برنامه  Loader هسته را راه اندازی می کنید و این هسته است که همه دستگاه های متصل شده به سیستم شما را تشخیص می دهد و اطلاعات آنرا نمایش می دهد، یکی از وظایف هسته یا همان kernel در FreeBSD این است. هسته علاوه بر این وظیفه وظایف دیگری هم دارد که در بخش های بعدی در مورد آنها صحبت خواهیم کرد، به دلیل اینکه شما شاید به این پیعام های نمایش داده شده نیاز داشته باشید در FreeBSD برای نمایش این اطلاعات بعد از ورود به سیستم فرمانی را به نمام dmesg در نظر گرفته اند که با اجرا کردن ان شما می توانید همان پیغام هایی را که در زمان راه اندازی مشاهد کرده اید را دوباره مشاهده کنید. در بعضی از موارد زمانی که شما دستگاهی را به سیستم در زمان روشن بودن اضافه کنید مثل یک flash به سیستم متصل کنید، با استفاده از این فرمان شما می توانید مشخصات آنرا نیز مشاهده کنید این اطلاعات در خط اخر از این فرمان نمایش داده می شود، در شکل زیر خروجی این فرمان را مشاهده می کنید:

هسته FreeBSD برای نامگذاری دستگاه هایی که به ان متصل است از قاعده خواصی پیروی می کند، در جدول زیر با بخشی از این نامگذاری آشنا می شوید:

هارد دیسک هایی که به IDE متصل هستند با ad مشخص می شوند که نام انها با عدد 0 شروع می شود.

نام دستگاه

توضیحات

ad

هارد دیسک هایی که به IDE متصل هستند با ad مشخص می شوند که نام انها با عدد 0شروع می شود.

acd

CD-Rome هایی که به  IDE متصل هستند با acd  مشخص می شوند که نام انها با عدد 0 شروع می شود.

da

هارد های SCSI و flash های متصل شده به سیستم با da نمایش داده می شود و با عدد 0  شروع می شوند.

cd

CD-Rome هایی که به  SCSI متصل هستند با cd   مشخص می شوند که نام انها با عدد 0 شروع می شود.

fd

فلاپی دیسک ها در FreeBSD با fd نامگذاری می شوند و با عدد 0  شروع می شوند.

 

جدول بالا فقط شامل نام دیسک هستند، دستگاهی دیگری هم به سیستم شما متصب هستند که شما لیستی از نام انها را در شاخه /dev مشاهده می کنید، مثلا kbd برای نمایش صفحه کلید، psm برای موسهای متصل شده به پورت ps/2 و برای موس های متصل شده به usb از نام ums استفاده می شود. شما با استفاده از فرمان grep  می توانید اطلاعات مفیدی را از این فرمان بدست آورید به صورت شکل زیر:

در خروجی فرمان اجرا شده شما مشخصات هارد دیسک متصل شده به سیستم خود را مشاهده می کنید. در  خروجی این فرمان نام دستگاه ها در سمت چپ نمایش داده شده است و با علامت : از توضیحات آن جدا شده است برای مشاهد لیست دستگاه ها و درکاه های usb برروی سیستم خود از فرمان زیر استفاده کنید:

#dmesg | grep usb

هسته FreeBSD علاوه بر مدیریت دستگاه های متصل شده به سیستم شما وظایفی همچون اختصاص دادن حافظه به برنامه ها، کنترل کردن امنیت سیستم با روش های kernel secure leve  و Mandatory Access Control ، انجام مدیریت بسته های شبکه شما و  غیره. حتی شما می توانید فایروالهای مورد نیاز خود را در هسته FreeBSD کامپال کنید و مدیریت آنرا به هسته بسپارید.

در حال حاضر هسته FreeBSD از قابلیت اضافه کردن قابلیت با استفاده از ماژولها را پوشش می دهد، برای مثال شما می توانید با استفاده از ماژول مربوط به ipfw و لود کردن آن در هسته این قابلیت را به هسته اضافه کنید( استفاده از این روش در بخش بعدی توضیح داده می شود) با اضافه شدن این قابلیت به FreeBSD هنوز هم کامپایل کردن هسته یکی از نیاز های هر استفاده کننده از FreeBSD است، برای مثال شاید شما نیاز داشته باشید که هسته سیستم عامل خود را کوچک کنید، یا درایور دستگاهی را به آن اضافه کنید که ماژول آن وجود نداشته باشد، در این صورت شما باید به سمت کامپایل کردن هسته برید. هسته FreeBSD به صورتی طراحی شده است که یا قابلیتی در ان وجود دارد و یا ندارد، اگر قایلیت در هسته وجود داشته باشد و در سیستم شما نباشد شما باید هسته مورد نظر را کامپایل کنید، برای مثال قابلیت مدیریت ترافیک های شبکه با استفاده از dummynet  در FreeBSD های ورژن قدیمی در هسته کامپال نشده ولی شما می توانستید آنرا فعال کنید، عمل کامپایل کردن بسته به نوع دستگاه ها از نظر میزان حافظه و نوع CPU می توانید زمانبر باشد برای همین امر در سیستم عامل های جدید هسته FreeBSD از قایلیت load کردن ماژول پشتیبانی می کند. در بخش بعدی با روش کامپایل کردن هسته FreeBSD آشنا می شوید.

 

نصب source

برای کامپایل کردن یک هسته انتخابی در ابتدای کار نیاز به source سیستم عامل FreeBSD دارید، برای این کار به  دو  صورت انجام میشود، روش اول در هنگام نصب و روش دوم دانلود به صورت جداگانه.

در زمان نصب FreeBSD با استفاده از BSDinstaller شما در منویی که در زیر مشاهده می کنید با انتخاب تیک src می توانید source سیستم عامل خود را نصبب کنید:

برای انتخاب این بخش کافیست که برروی گزینه مربوطه رفته و کلید space را زده تا در کنار SRC علامت ستاره قرار گیرد.

 

شما بعد از اینکه سیستم عامل خود را نصب کرده اید هم می توانید src را نصب کنید برای این کار شما باید به شاخه مربوطه به ساختار و ورژن سیستم عامل خود در ftp سرورهای FreeBSD مراجعه کنید و src.txz را دانلود کنید در شاخه /usr/src قرار دهید و با استفاده از فرمان tar فایل src را از حالت فشرده خارج کنید، این فرمان ها را در زیر مشاهده می کنید در این فرمان از برنامه fetch استفاده شده و با استفاده از فرمان uname ساختار سخت افزاری شما و ورژن نصبی شما به صورت هوشمند اضافه می شود:

#cd /usr/src

#fetch ftp://ftp.freebsd.org/pub/`uname -s`/releases/`uname -m`/`uname -r`/src.txz

# tar -C / -xvzf src.txz

 

تشخصی نوع هسته و محل هسته جاری

در FreeBSD فرمانی وجود دارد به نام uname که از طریق این فرمان شما می توانید اطلاعات کاملی از سیستم عامل خود را بدست آورید، خروجی این فرمان را در شکل زیر مشاهده می کنید برای نمایش همه اطلاعات از سویچ –a استفاده کنید:

برای دریافت اطلاعات فقط هسته سیستم عامل خود از این فرمان به صورت زیر استفاده کنید:

سویچ –v ورژن کامل و مسیر هسته را برای شما نمایش می دهد. سویچ –i نوع ساختار سخت افزاری سیستم شما و –m نامه کرنل شما را نمایش می دهد، شما بعد از کامپایل کردن هسته می توانید نام انتخابی خاصی را برای هسته قرار دهید.

 

فایل پیکربندی

فایل هسته سیستم عامل به صورت یک فایل متنی است. در این فایل بخشهای توضیحات با # شروع می شوند، نام بخشی را که در هسته شما وجود دارند با در بخش سمت راست نوشته شده است و بعد از آن با علامت # توضیحات نوشته شده است بخشی هایی که در هسته فعال نیستند هم با # شروع می شود برای فعال کردن ان بخش کافیست که علامت # را حذف کنید، مسیر این فایل در شاخه /usr/src/sys/amd64/conf  قرار دارد، البته ساختار سیستم من 64 بیتی است.  برای جلوگیری از ویرایشهای اشتباه ، بهتر است که از این فایل یک کپی داشته باشید به صورت زیر:

در شکل زیر شما لیست فایلهای موجود در این شاخه را مشاهده می کنید:

 ساختار این فایل به این صورت است که یا شما قصد دارید دستگاهی را به هسته اضافه یا کم کنید و یا گزینه ای را فعال و غیرفعال کنید، دستگاه ها با کلمه device شروع می شوند و گزینه های با options در شکل زیر بخشی از این فایل را مشاهده می کنید:

کامپایل کردن هسته

بعد از اعمال تغییرات در فایل مورد نظر شما   حال به روش زیر هسته انتخابی خود را کامپایل و نصب کنید:

# cd /usr/src

# make buildkernel KERNCONF=MYKERNEL

# make installkernel KERNCONF=MYKERNEL

با اجرای فرمان آخر فایلهای هسته جدید در شاخه /boot/kernel/kernel قرار می گیرد و فایل های هسته قبلی در شاخه /boot/kernel.old/kernel قرار می گیرد.

 

ماژولهای در هسته

در بسیاری از موارد کامپال کردن هسته هم زمانبر است و هم امکان خطا در آن زیاد است و بهتری کار استفاده از ماژول آن برنامه خاص است، این قابلیت در OpenBSD به خاطر دلایلی امنیتی از جمله rootkit قرار ندارد، این روش هم می تواند مخرب باشد و هم سودمند. برای مثال شما قصد دارید که از فایروال ipfw در FreeBSD استفاده کنید، این فایروال در هسته اولیه وجود ندارد و شما هم می توانید از ماژول ان استفاده کنید و هم آنرا کامپایل کنید، برای استفاده از ماژول در FreeBSD سه فرمان وجود دارد:

  • Kldload
  • Kldstat
  • Kldunloiad

 

برای مشاهده وضعیت ماژولهای لود شده در هسته از فرمان kldstat استفاده می شود و شما خروجی آنرا در شکل زیر مشاهده می کنید:

برای لود کردن ماژول در هسته شما باید نام ماژول مورد نظر را بعد از فرمان kldload وارد کنید، برای مثال در شکل زیر ماژول ipfw را در هسته لود می کنید و وضعیت را مشاهده می کنید:

برای خارج کردن ipfw از هسته از فرمان kldunload به صورت زیر استفاده کنید:

در هر بخشی با اگر برای فعال شدن هر برنامه نیازی به ماژول خاصی بود در همان بخش در مورد ماژولها صبحت خواهد شده در کل روش لود کردن به صورت توضیحات بالاست.


 

نظرات (0)

هیچ نظری در اینجا وجود ندارد

نظر خود را اضافه کنید.

ارسال نظر بعنوان یک مهمان ثبت نام یا ورود به حساب کاربری خود.
پیوست ها (0 / 3)
مکان خود را به اشتراک بگذارید
عبارت تصویر زیر را بازنویسی کنید. واضح نیست؟
آموزش BSD با محمدعابدینی

اولین مرکز آموزش BSD  و نخستین مرکز ارائه نرم افزارهای مبتنی بر BSD در ایران

کلیه حقوق این سایت متعلق به محمد عابدینی است که در زمینه آموزش BSD فعالیت می کند.
All rights are reserved for Mohammad Abedini 2019

Search

09356757020
محمد عابدینی
کرج 
مهرشهر
Your SEO optimized title