Saeid Haghighipour
Saeid Haghighipour
خواندن ۲ دقیقه·۱ سال پیش

امبدد لینوکس از صفر صفر! - بخش اول

سلام
خیلی وقت بود میخواستم یه سری آموزشی پیدا کنم که امبدد لینوکس رو برای یه تازه کار خیلی ساده و روون گفته باشه ولی خب یا اینطور چیزی نبود یا اگر هم بود خیلی سر راست و مستقیم مطلب رو نگفته بود و یه جورایی لازم بود چندین وبلاگ رو بهم بچسبونی تا شاید بفهمی چی به چیه! البته سایت سیسوگ خوب تونسته مطلب رو بیان کنه ولی به نظرم اومد اگر یه خورده کاربردی تر بتونم این موضوع رو توضیح بدم میتونه به خیلیا که میخوان وارد این حوزه بشن کمک کنه. تو این سری یه سری پیشفرض ها مثه یاد داشتن مفاهیم اولیه لینوکس رو در نظر میگیریم و از طرفی هم اینطور فرض میکنم که شما روی سیستمتون یه توزیع لینوکسی به صورت نیتیو دارین که میتونید دستوراتی که اینجا با هم میبینم رو مستقیم روش اجرا کنید. اگه ویندوزی هستین هم میتونید با نصب یه ماشین مجازی لینوکس رو کنار ویندوزتون داشته باشید و با این آموزش جلو بیاید. من سیستمی که استفاده میکنم Ubuntu 2023.10 هستش و خب توزیع های دبیان بیس دیگه هم نباید با مفاهیمی که اینجا مطرح میشه مشکلی داشته باشند. از طرف دیگه سخت افزاری که من استفاده میکنم رزبری پای مدل zero 2w هستش که خب نسبت به بقیه مدل ها در حال حاضر تو بازار ارزون تره و افراد بیشتری میتونن تهیه اش کنن.

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

  • آشنایی با زنجیره ابزار (toolchain) و نحوه ساختنش برای برد خودمون
  • آشنایی با بوت لودرها و به خصوص U-Boot
  • انجام تنظیمات و Build کردن کرنل لینوکس
  • ایجاد یک Root Filesystem و آشنایی با initramfs
  • راه اندازی شبکه و سایر بخش ها روی سیستم ایجاد شده

به صورت کلی هدف این آموزش اینه که یه سیستم لینوکسی مینیمال رو از پایه ایجاد کنیم و طبیعتا بعد این کار شما میتونید همین روند رو توی پروژه های مختلف بکار بگیرید و سیستم مخصوص اون پروژه رو توسعه بدین. یه سوالی که ممکنه پیش بیاد اینه که چرا از سیستم هایی مثه Buildroot یا Yocto استفاده نکنیم تا همه این مراحل رو برامون بدون دردسر انجام بده و ما صرفا یه سری کانفیگ اولیه بهش بدیم؟

جواب اینه که اولا تو این آموزش شما یاد میگیرین پشت پرده این سیستم ها چیه و چطور ایجاد شدن و طبیعتا با این دانش میتونید اگر جایی نیاز داشتید این سیستم ها رو هم بهینه سازی کنید. از طرف دیگه با این روش شما میتونید ایمیج های به مراتب کوچیکتر و با مصرف حافظه پایین تری رو ایجاد کنید که خب غایت آرزوی همه توسعه دهنده های سخت افزار همینه که برنامه شون منابع کمتری مصرف کنه!

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

ماشین مجازیلینوکسامبدد سیستمامبدد لینوکس
شاید از این پست‌ها خوشتان بیاید