امبدد لینوکس

در این سری آموزشی می خواهیم به یک موضوع خاص و جذاب بپردازیم، آموزش امبدد لینوکس!

برای شروع بهتر و جامع تر این سری آموزشی بهتر است به صورت مختصر با لینوکس و امبدد سیستم آشنا شوید.

 

گنو لینوکس

لینوکس یا در اصل گنو یک سیستم عامل شبه یونیکس است و از بسیاری جهات شبیه به سایر سیستم عامل ها مانند ویندوز، macOS(OS X سابق) یا iOS است. مثل تمامی سیستم عامل ها، لینوکس می‌تواند یک رابط گرافیکی و انواع نرم افزارهای دسکتاپ را داشته باشد (مثل انواع ویرایشگرها نرم افزار های office  و ….).

اما لینوکس از بسیاری جهات با سایر سیستم عامل ها متفاوت است اول از همه و شاید مهمترین ویژگی آن، متن باز بودن لینوکس است! کد مورد استفاده برای ایجاد لینوکس رایگان و برای عموم در دسترس است تا آن را مشاهده کنند، ویرایش کنند (برای کاربرانی که دانش کافی را دارند) و در آن مشارکت داشته باشند.

 

امبدد لینوکس چیست؟ کجا از آن استفاده می‌کنیم؟

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

امبددلینوکس اگرچه از همان هسته استفاده می کند، اما کاملاً با سیستم عامل استاندارد متفاوت است. اول از همه، برای سیستم های امبدد طراحی شده است و بنابراین، از نظر اندازه بسیار کوچکتر است، به قدرت پردازش کمتری نیاز دارد و حداقلِ ویژگی ها را دارد. هسته لینوکس به عنوان یک نسخه امبددلینوکس اصلاح و بهینه شده است این نمونه لینوکس، فقط می‌تواند برنامه‌هایی را که به طور خاص برای دستگاهی ایجاد شده اند را اجرا کند.

 

کاربردهای امبدد لینوکس

به دلایلی که در بالا گفته شد و تطبیق پذیری لینوکس، امبددلینوکس در بین مهندسان امبدد سیستم  بسیار محبوب شده است. بسیاری از وسایل الکترونیکی مصرفی مانند پنل خودروها ، تجهیزات خانه هوشمند، دستگاه‌های ذخیره‌سازی دیجیتال، تجهیزات شبکه، تجهیزات ناوبری، ضبط ‌کننده‌های ویدئویی شخصی، دوربین‌ها، گجت های پوشیدنی و بسیاری دیگر معمولاً با لینوکس توسعه می‌یابند.

 

مزایای استفاده از امبددلینوکس چیست؟

همانطور که قبلاً دیدیم، امبددلینوکس یک نسخه فشرده شده از لینوکس است، که ویژگی ها و خدماتی را به دنبال نیازهای عملیات سیستم و برنامه های کاربردی امبدد سیستم ارائه می‌دهد. همانند لینوکس، مزایای اصلی آن نسبت به سایر سیستم‌عامل‌های یکپارچه به نسبت خوب است:

استفاده از منبع باز و در نتیجه کم هزینه بودن، وجود نرم‌افزارهای متعدد، توسعه‌دهندگان و پشتیبانی، باز بودن از نظر کپی رایت یا مجوزها نشان از پایداری و قوی بودن آن است.

  • متن باز بودن
  • کاهش هزینه ها
  • در دسترس بودن منابع و پشتیبانی
  • قابلیت تنظیم پذیری
  • انعطاف پذیری بیشتر
  • سازگاری با انواع پردازنده ها

 

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

در قسمت قبلی سری آموزشی امبددلینوکس با پیدا کردن کتابخانه مورد نظر آشنا شدیم، در این قسمت می خواهیم به ساختن initramfs بپردازیم پس با سیسوگ همراه باشید. ساختن initramfs ما الان یه فایل سیستم روت داریم که توش حداقل‌هایی که کرنل ن...

ادامه مطلب

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

در قسمت قبل به بررسی busybox که یکی از بخش‌های سیستم فایل بود پرداختیم، در این قسمت به بررسی کتابخانه های فایل سیستم می‌پردازیم. کتابخانه‌های مورد نیاز در روت یه راه ساده این هست که هر فایلی با پسوند so. توی sysroot تولچین هست ر...

ادامه مطلب

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

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

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

ادامه مطلب

آموزش امبدد لینوکس

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

در قسمت قبل به بررسی کرنل لینوکس و دیوایس تری پرداختیم، همچنین کرنل را بوت کردیم اما در آخر به اروری برخورد کردیم و کرنل نیاز به سیستم روت داشت، در این قسمت از سری آموزش های امبددلینوکس به معرفی فایل سیستم در امبددلینوکس و به بررس...

ادامه مطلب

دیوایس تری Device Tree

امبدد لینوکس قسمت نوزدهم: Kernel linux (بخش سوم)

در قسمت قبل به بررسی نحوه کانفیگ و کامپایل کرنل لینوکس برای رزبری پای پرداختیم و در این قسمت به سراغ  device tree میریم و با آن بیشتر آشنا می‌شویم.   دیوایس تری Device Tree تا حالا اسم این بزرگوار رو زیاد شنیدین، حالا ببین...

ادامه مطلب

امبدد لینوکس قسمت هجدهم: Kernel linux (بخش دوم)

در قسمت قبلی به بررسی کرنل و ساختار فایل های آن پرداختیم، حالا در این قسمت به سراغ پیکربندی کرنل لینوکس و درایور ها می‌پردازیم و آن‌ها را کامپایل می‌کنیم.   آشنایی با پیکربندی (configuration) کرنل لینوکس یکی از نقاط قوت لی...

ادامه مطلب

امبدد لینوکس قسمت هفدهم – Linux Kernel (بخش اول)

در فصل قبلی در مورد بوت لودر و وظیفه اون که راه‌اندازی اولیه سخت‌افزار و لود کردن کرنل هست صحبت کردیم، حالا توی این فصل می‌خواهیم در مورد اینکه کرنل لینوکس (Linux Kernel) چه‌کارهایی می‌کند، چه جوری کرنل لینوکس رو انتخاب کنیم، چه ج...

ادامه مطلب

استفاده از یوبوت برای اجرای لینوکس

امبدد لینوکس – قسمت شانزدهم – Bootloader (بخش سوم)

در قسمت قبل به بررسی بوت لودر (U-boot) پرداختیم و اون رو بر روی سخت افزار خودمون اجرا کردیم، حالا توی این قسمت میخوایم استفاده از یوبوت برای اجرای لینوکس رو آموزش دهیم و سیستم فایلمون رو به لینوکس متصل کنیم. استفاده از یوبوت برای...

ادامه مطلب

امبدد لینوکس – قسمت پانزدهم – Bootloader (بخش دوم)

یه خبر خوب دارم واستون! توی این مدت که ما نبودیم کریس بیکار نبوده و یه ویرایش جدید از کتابش رو به همراه فرانک نوشته و در سال 2022 منتشر کرده. این کتاب نسبت به دو ویرایش قبل خودش خیلی کامل‌تر هست و فصل‌های بیشتری داره و علاوه بر ح...

ادامه مطلب

امبدد لینوکس – قسمت چهاردهم – Bootloader

از قسمت قبل که در آن با انواع روش‌های بیلد کردن، کراس کامپایل و چالش‌های آن آشنا شدیم و حال قرار است با Bootloader آشنا شویم، زمان زیادی می‌گذرد امیدواریم عذرخواهی ما رو بابت این تأخیر و فاصله پیش‌آمده پذیرا باشید. در این مدت دوست...

ادامه مطلب