آموزش امبدد لینوکس, توصیه شده

امبدد لینوکس قسمت بیست و یکم: فایل سیستم‌ها (بخش دوم)

فایل سیستم‌ها

در قسمت قبل به بررسی سیستم فایل پرداختیم و به init رسیدیم، در این قسمت مطالب قسمت قبل را کامل‌تر می‌کنیم.

 

چاقوی سویسی بردت رو بردار

BusyBox که روز اول بی‌ربط به امبددلینوکس نوشته شد الان قلب تپنده خیلی از امبدد سیستم‌ها هست. BusyBox رو براساس قانون ۸۰/۲۰ نوشتن. یعنی این برنامه با ۲۰ درصد فضا ۸۰ درصد کارهای بدردبخور رو انجام میده، خیلی از امکانات لینوکس دسکتاپ رو داره و خیلی از برنامه‌های لینوکس مثل init، cat، top، vi و … داخلش هست. همه این برنامه‌ها توی یک فایل اجرایی هستن. حالا بریم BusyBox رو دانلود و بیلد کنیم:

خبر خوب اینکه سیستم تنظیمات و بیلد BusyBox مثل یوبوت و کرنل و کراستول انجی هست 🙂

حالا بریم توی پیکربندیش ببینیم چه خبره!

menuconfig

چقدر اپلت مختلفه و امکانات زیادی داره! جالبه جلوی هر اپلت سایزش رو هم نوشته، چون ما روی بردمون به اندازه خدا! حافظه داریم من همه رو میذارم فعال باشه.

و فقط بهش میگم که محل نصب نهایی این فولدر هست.

 

حالا بریم بیلدش کنیم و نصبش کنیم:

مثل بقیه اینجا هم باید کراس کامپایلر و معماری رو مشخص کنیم پس اول سورس میکنیم.

حالا ببینم با این همه اپلت حجمش چقدر شد:

بله ۱.۱ مگ! فقط و فقط حالا بریم نصبش کنیم سر جاش

 

Device Nodes

یونیکس یه فلسفه داره که میگه همه‌چیز فایل هست به‌جز رابط‌های شبکه که سوکت هستن.

توی لینوکس هم همه دیوایس‌ها یه نود هستن.

نود ممکنه به یه دیوایس از نوع block یا از نوع character اشاره کنه.

به‌جز حافظه‌ها همه‌ی دیوایس‌ها از نوع character هستن.

ما باید برای همه‌ی دیوایس‌هامون نود رو از قبل بسازیم و یا اینکه از برنامه‌ای استفاده کنیم که در زمان اجرا همه نودها رو به سازه.

نودها با دستور زیر ساخته میشن

تایپ یا c هست یا b که مشخصه به چی اشاره داره

major, minor هم از فایل Documentation/devices.txt توی سورس کرنل قابل‌دسترس هستن.

فعلاً برای این سیستم حداقلی ما دو تا نود کفایت میکنه که با دستور mknode میسازیمشون:

 

فایل سیستم‌های sysfs و proc

این دوتا در حقیقت شبه فایل سیستم هستن و باید در هنگام اجرا اون‌ها رو سرجاشون با دستور خودش mount کنیم.

توی این دوتا یه سری فایل هست که بعضی‌هاشون فقط خواندنی و بعضی‌ها هم خواندنی و هم نوشتنی هستن.

در حقیقت این دوتا یه راه ارتباطی با کرنل و درایورهای دیوایس‌ها هستن.

 

ماژول‌های کرنل

اگر ماژولی داره کرنلتون که بعداً قرار هست ازش استفاده کنید اون رو هم باید توی این قسمت کپی کنید

پیدا کردن ماژول‌ها دونه دونه خیلی کار سختی هست واسه همین پیشنهاد می‌کنم از خود make کرنل استفاده کنید:

INSTALL_MOD_PATH آدرس روتمون هست که حتماً حتماً حتماً باید ست به شه وگرنه همه‌چیز میریزه به هم!

فعلاً برای ساخت سیستم حداقلیمون ماژول‌های کرنل رو اضافه نمی‌کنیم.

author-avatar

درباره Rich_Dad (آنی روت)

طراحی، بهینه سازی و تولید محصولات الکترونیکی، درحوزه های تجاری،صنعتی و تجهیزات پزشکی، مجری سیستم های امبدد لینوکس * ( مهندسی-بازرگانی آنی روت https://aniroot.com )

انتشار مطالب با ذکر نام و آدرس وب سایت سیسوگ، بلامانع است.

شما نیز میتوانید یکی از نویسندگان سیسوگ باشید.   همکاری با سیسوگ

بازگشت به لیست

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *