شرکت فناوران اینترنت اشیاء هیوا

محبوب ترین توزیعات لینوکس

۴ نمونه از محبوب ترین توزیعات لینوکس اینترنت اشیا: کدامیک برای شما بهتر است؟

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

توزیع های لینوکس اینترنت اشیا چیست؟

یک سیستم عامل لینوکس معمولی ابزار و بسته های توسعه دهندگان و سازمان های متعدد (به عنوان مثال، ابزار و کتابخانه های GNU) را برای ایجاد یک سیستم عامل کاربردی برای یک دستگاه، که معمولا به عنوان توزیع لینوکس یا Linux distro شناخته می‌شود، ادغام می‌کند. با این حال، توسعه دهندگان ممکن است ادغام این ابزار و بسته های متنوع را در یک سیستم عامل جامع که می‌تواند طیف گسترده ای از عملکردها را پشتیبانی کند، زمان بر و خسته کننده بدانند. خوشبختانه، از آنجایی که هسته لینوکس منبع باز است، کد منبع آن را می‌توان تغییر داد و برای توزیع مجدد تغییر کاربری داد، که منجر به ظهور چندین توزیع استاندارد لینوکس برای دستگاه های IoT در بازار شده است. تفاوت اصلی بین توزیع‌های لینوکس سنتی برای رایانه‌های رومیزی و توزیع‌های لینوکس تعبیه‌شده در این است که دومی‌فقط شامل درایورها و کتابخانه‌های مورد نیاز برای اجرا بر روی پردازنده مورد نظر است که به کمتر از ۱۰۰ کیلوبایت فضا نیاز دارد. این باعث می‌شود آنها حتی برای دستگاه های تک منظوره و تک کاره IoT با مشخصات پایین که اغلب فقط ۶۴ مگابایت رم و ۳۲ مگابایت فضای ذخیره سازی دارند، مناسب باشند.

برخی از محبوب ترین توزیع های لینوکس اینترنت اشیا:

۱) اوبونتو Core

اوبونتو Core محبوب ترین توزیع لینوکس جاسازی شده است، احتمالا به این دلیل که اکثر سازندگان و توسعه دهندگان از قبل با اوبونتو آشنا هستند. اوبونتو Core مبتنی بر Debian است و اساسا یک نسخه بهینه‌شده برای اینترنت اشیا از اوبونتو است که می‌توانید آن را به گونه‌ای سفارشی کنید که فقط بسته‌ها و باینری‌های مورد نیاز برای تامین انرژی دستگاه‌های تک منظوره و تک کاره اینترنت اشیا شما را در بر بگیرد.
اوبونتو Core یک سیستم‌عامل امن، ماژولار و غیرقابل تغییر مبتنی بر کانتینر را ارائه می‌کند که بر روی Snaps ساخته شده است. به‌روزرسانی‌های دستگاه‌های متصل چندین بار در روز به‌طور خودکار و به‌صورت اتمی ‌با استفاده از دلتا انجام می‌شوند که در صورت نصب یک به‌روزرسانی مشکل‌دار یا در صورت قطع شدن فرآیند به‌روزرسانی، می‌توانند فورا به عقب برگردند. Ubuntu Core در حال حاضر از زمان اجرا کانتینر و ارکستراتورهایی مانند snapd ،Docker ،LXD ،AWS Greengrass ،Azure IoT Edge و Kubernetes را پشتیبانی می‌کند.
با این حال، حداقل نیازهای اوبونتو Core شامل یک پردازنده تک هسته‌ای ۵۰۰ مگاهرتزی، ۲۵۶ مگابایت رم و ۵۱۲ مگابایت فضای ذخیره‌سازی است که آن را به گزینه‌ای غیرقابل اجرا برای دستگاه‌های اینترنت اشیا با مشخصات پایین با محدودیت‌های سخت‌افزاری شدید تبدیل می‌کند.

۲) Yocto

پروژه Yocto خود را به عنوان یک توزیع لینوکس جاسازی شده تبلیغ نمی‌کند، بلکه به عنوان یک پروژه همکاری منبع باز است که می‌تواند به شما در ایجاد توزیع سفارشی خود کمک کند. Yocto فضا و ابزار انعطاف‌پذیر را برای توسعه‌دهندگان تعبیه‌شده ارائه می‌کند تا از پیکربندی‌های مشترک، دسته‌های نرم‌افزار و بهترین شیوه‌ها برای سفارشی‌سازی معماری مبتنی بر لینوکس خود برای دستگاه‌های جاسازی شده در سراسر طیف استفاده کنند.
Yocto بر اساس پروژه OpenEmbedded است و از یک مدل توسعه به نام "مدل لایه" استفاده می‌کند. یک لایه در Yocto مخزنی است که شامل مجموعه‌های دستورالعمل‌های مرتبطی است که به سیستم build می‌گوید چه کاری انجام دهد. لایه‌ها می‌توانند تنظیمات یا دستورالعمل‌های قبلی را لغو کنند، و به شما این امکان را می‌دهند که لایه‌های ساخته‌شده در مجموعه را برای سیستم‌های تعبیه‌شده خود تغییر دهید. Yocto با جدا کردن یک build به لایه‌های ماژولار، استفاده مجدد از کد و افزودن سفارشی‌سازی‌های آینده را به توزیع خود آسان‌تر می‌کند. نسخه های Yocto هر شش ماه یک بار با اسناد کامل منتشر می‌شوند.
شاید بزرگترین ایراد Yocto مقدار زمانی باشد که توسعه دهندگان باید برای آشنایی با پروژه و یادگیری نحوه استفاده از آن قبل از ایجاد اولین ساخت خود صرف کنند. این می‌تواند برای توسعه دهندگانی که هنوز اول راه و تازه‌کار هستند، چالشی بزرگ باشد.

۳) Buildroot

Buildroot مانند Yocto، یک توزیع لینوکس تعبیه شده نیست، بلکه ابزاری برای ساده سازی و خودکارسازی فرآیند تولید توزیع لینوکس جاسازی شده با استفاده از کامپایل متقابل است(cross-compilation). از Buildroot می‌توان برای تولید یک سیستم فایل پایه، یک تصویر هسته لینوکس، یک bootloader و یک زنجیره ابزار متقابل کامپایل در هر ترکیب مورد نیاز برای دستگاه تعبیه شده شما استفاده کرد. Buildroot با پشتیبانی از چندین پردازنده و بردهای خارج از قفسه مانند Raspberry Pi ،Cubieboard و SheevaPlug ارائه می‌شود.
Buildroot می‌تواند توزیع های بسیار سبک وزن را برای دستگاه های تعبیه شده در پایین ترین انتها ایجاد کند. علاوه بر این، بر خلاف Buildroot ،Yocto برای تسلط و استفاده آسان است. تنها اشکال عمده این است که رویکرد مینیمالیستی آن، سفارشی کردن آن را دشوار می‌کند.

۴) Raspberry Pi OS (Raspbian سابق)

Raspberry Pi OS یک سیستم‌عامل رایگان مبتنی بر Debian است که در ابتدا توسط طرفداران سخت‌افزار Raspberry Pi و Raspberry Pi Foundation توسعه یافت و به سرعت به نرم‌افزار رسمی ‌دستگاه‌های Raspberry Pi تبدیل شد. اهداف اولیه پروژه Raspberry Pi این بود که آموزش علوم کامپیوتر را مقرون به صرفه تر و قابل دسترس تر کند. اما این دستگاه به سرعت در زمینه های مختلف و در میان علاقه مندان به عنوان یک کامپیوتر تک برد ماژولار، کم هزینه و با طراحی باز محبوب شد و حتی راه خود را به بازار اینترنت اشیا باز کرد.
سیستم‌عامل Raspberry Pi برای تامین انرژی طیفی از پروژه‌های مبتنی بر Raspberry Pi از دوربین‌های دیجیتال گرفته تا دستگاه‌های تنفس مصنوعی برای بیماران COVID-19 استفاده شده است و به آرامی‌ در پروژه های اتوماسیون خانگی و اتوماسیون صنعتی اینترنت اشیا کاربرد پیدا می‌کند.
متاسفانه، از آنجایی که این سیستم‌عامل تقریبا منحصرا برای سخت‌افزار Raspberry Pi توسعه یافته است، استفاده از آن در سایر دستگاه‌های سخت‌افزاری مصرف‌کننده به شدت محدود است و گسترش آن را در بازار تعبیه‌شده محدود می‌کند.

سخنی کوتاه در مورد Android Things

Android Things یکی از اولین توزیع‌های مبتنی بر اندروید برای دستگاه‌های IoT با مشخصات پایین بود. اما پروژه Android Things قرار است تا ژانویه ۲۰۲۲ تعطیل شود. در ابتدا توسط گوگل در سال ۲۰۱۵ به عنوان یک توزیع مبتنی بر اندروید برای دستگاه های IoT با مشخصات پایین اعلام شد، این پروژه عملکردهای کلیدی را برای دستگاه های IoT با حداقل ۳۲ تا ۶۴ مگابایت رم ارائه کرد. Android Things علاوه بر ارائه یک سیستم‌عامل پایه برای دستگاه‌های IoT کم‌مصرف و با حافظه محدود، هدفش فعال کردن اتصال ابری با یک کنسول مدیریت داخلی برای تحویل به‌روزرسانی و تهیه دستگاه، پشتیبانی از پروتکل WiFi، بلوتوث و Weave بود.

Android Things در عرضه اولیه خود در سال ۲۰۱۸، دستگاه‌های هوشمند خانگی را که از دستیار Google پشتیبانی می‌کردند، به ویژه بلندگوها و نمایشگرهای هوشمند، پشتیبانی می‌کرد. با این حال، در سال ۲۰۱۹، Android Things پشتیبانی از سخت‌افزار با مشخصات پایین را متوقف کرد و در عوض بر روی دستگاه‌های گروه گوشی هوشمند تمرکز کرد. در دسامبر ۲۰۲۰، اعلام شد که پروژه تعطیل خواهد شد و تمام داده‌های پروژه تا ژانویه ۲۰۲۲ حذف خواهند شد. با وجود شکست، Android Things نقطه عطفی مهم در به حداکثر رساندن قابلیت‌های دستگاه‌هایی با محدودیت‌های سخت‌افزاری شدید است.

چگونه توزیع لینوکس مناسب را انتخاب کنید؟

انتخاب توزیع لینوکس عالی برای پروژه تعبیه شده به عوامل مختلفی بستگی دارد:
۱. رم دستگاه و فضای ذخیره‌سازی: وقتی با دستگاه‌های IoT با مشخصات پایین سر و کار دارید، Ubuntu Core بلافاصله از تصویر خارج می‌شود، زیرا به حداقل ۲۵۶ مگابایت رم و ۵۱۲ مگابایت فضای ذخیره‌سازی نیاز دارد. Yocto و Buildroot ممکن است زمانی که به دنبال ساخت توزیع های سبک وزن در سطح پایین هستید مفیدتر باشند.
۲. زمان عرضه به بازار: زمان کوتاه‌تر برای عرضه به بازار به این معنی است که یک توزیع استاندارد لینوکس مانند Ubuntu Core ممکن است بهترین گزینه باشد. Yocto ممکن است برای توسعه دهندگانی که زمان و اوقات فراغت کافی برای آزمایش ساخت و توزیع های سفارشی خود دارند مناسب تر باشد.
۳. الزامات پروژه تعبیه شده: سیستم عامل Raspberry Pi ممکن است محبوب ترین توزیع در بین تولید کنندگان نباشد، اما جایگاهی در بین علاقه مندان پیدا کرده است. دستگاه‌های جاسازی‌شده‌ای که تحت هیچ شرایطی نمی‌توانند brick شوند (مثلا life support machines) ممکن است به به‌روزرسانی‌های مکرر و اتمی ‌و امنیت فوق‌العاده‌ای نیاز داشته باشند، بنابراین توزیع ماژولار و کانتینری مانند Ubuntu Core ممکن است مناسب‌تر باشد. برای پروژه‌های ساده‌ای که نیاز به توزیع مینیمالیستی، سبک وزن و یکپارچه دارند، Buildroot می‌تواند کمک کند. Yocto برای پروژه‌های تعبیه‌شده‌ای که نیاز به سفارشی‌سازی دارند، ایده‌آل است، زیرا به توسعه‌دهندگان اجازه می‌دهد هر مؤلفه‌ای را که به عملکرد و هدف دستگاه بی‌ربط هستند، حذف کنند.

نکته اصلی این است که هیچ توزیعی نمی‌تواند الزامات هر پروژه لینوکس تعبیه شده را برآورده کند. هر پروژه ممکن است به یک رویکرد متفاوت و یک توزیع لینوکس اینترنت اشیا نیاز داشته باشد که با آن رویکرد مطابقت داشته باشد. چندین توسعه‌دهنده ممکن است پیش از تصمیم‌گیری در توزیع ایده‌آل، «توزیع پرش/distro hopping» را انجام دهند، و ابزار مختلفی وجود دارد که به شما کمک می‌کند بهترین توزیع را آزمایش و انتخاب کنید.

شرکت فناوران اینترنت اشیاء هیوا از سال ۱۳۹۷ با بهره‌گیری از دانش، تخصص و تجربه افراد توانمند در زمینه لینوکس و اینترنت اشیا فعالیت می کند.