مزایای استفاده از پتالینوکس

دلایل زیادی برای استفاده از پتالینوکس به منظور توسعه یک سیستم عامل نهفته روی تراشه‌های SoC شرکت Xilinx وجود دارد که سهولت در استفاده و سرعت ساخت بالا از آن جمله است.
مزایای استفاده از پتالینوکس

مقدمه

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

اگر آشنایی شما با دنیای لینوکس و به ویژه لینوکس نهفته محدود است و در ابتدای راه فراگیری قرار دارید، احتمالاً بارها با نام‌های متفاوتی همچون یاکتو (Yocto) و پتالینوکس (PetaLinux) روبرو شده‌اید. پروژه یاکتو و ابزارهای پتالینوکس، دو روش محبوب برای توسعه سیستم‌ عامل‌ نهفته روی تراشه‌های SoC شرکت Xilinx هستند. برای آشنایی با شیوه‌های مختلف توسعه سیستم عامل روی تراشه‌های Xilinx کافی است به صفحه اصلی لینوکس در ویکی این شرکت مراجعه کنید. در ابتدای این صفحه نام چهار روش متفاوت را مشاهده می‌کنید که هر کدام مزایا و معایب خودشان را دارند، این چهار روش عبارتند از:

  • PetaLinux Tools
  • Yocto Project
  • Xilinx Open Source Linux
  • Commercial Linux 

ما در این مطلب در مورد این روش‌ها و جزئیات آن‌ها صحبت نمی‌کنیم و تنها یک مقایسه ساده بین دو روش یاکتو و پتالینوکس از زبان یک مهندس طراح با سابقه ارائه می‌دهیم. اما پیش از ورود به بحث اصلی بهتر است ابتدا یک تعریف از سیستم‌های نهفته ارائه کنیم.

سیستم نهفته چیست؟

ویکی پدیا سیستم نهفته (embedded system) را چنین تعریف می‌کند: یک سیستم کامپیوتری با عملکرد ویژه در سیستم‌های الکترونیکی یا مکانیکی بزرگتر، که اغلب با محدودیت توان پردازشی روبرو هستند.

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

یاکتو چیست؟

فارغ از اینکه تراشه هدف ساخت چه شرکتی است و چه ویژگی‌هایی دارد، هر مهندس طراحی معمولاً با توجه به نیاز و تجربه‌اش از بین چندین بستر توسعه موجود در دنیای منبع باز امروزی، یکی را به عنوان محیط توسعه یک سیستم نهفته مبتنی بر لینوکس انتخاب می‌کند. از بین این بسترها می‌توان به مواردی همچون Buildroot ، OpenWRT و Yocto اشاره کرد. بدون شک یکی از مهمترین و پر استفاده ترین بسترهایی که برای ساخت و توسعه یک سیستم نهفته استفاده می‌شود، یاکتو (Yocto) است.

پروژه یاکتو (Yocto Project) یک پروژه همکاری منبع باز در جوامع لینوکسی است که به توسعه دهندگان کمک می‌کند تا سیستم‌های مبتنی بر لینوکس و کاملاً سفارشی ایجاد کنند. برای اطلاعات بیشتر در رابطه با یاکتو می‌توانید به صفحه ویکی آن مراجعه کنید. پروژه یاکتو زیر ساخت اصلی ابزارهای پتالینوکس (PetaLinux) است. شرکت Xilinx متا-لایه‌های بی شماری را فراهم آورده است که به توسعه دهندگان اجازه می‌دهد تمام کامپوننت‌های مورد نیاز را برای اجرای لینوکس روی تراشه‌های SoC شرکت Xilinx بسازند.

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

مزایای استفاده از پتالینوکس

وقتی اولین بار در مورد پتالینوکس شنیدم، اعتراف می‌کنم، نسبت به قابلیت‌های آن خوش بین نبودم. من یک پیش زمینه کامل از نحوه توسعه سیستم‌های لینوکس نهفته داشتم و پروژه‌های متعددی را انجام داده بودم. پروژه‌هایی که متشکل از Yocto / Bitbake / OE خالص بوده و همینطور پروژه‌های که در راستای تجمیع لینوکس روی پلتفرم‌های SoC متفاوت بوده است. پروژه یاکتو یک روش عالی برای توسعه یک توزیع لینوکس نهفته کاملاً سفارشی است. ساختن همه چیز، از سورس گرفته تا رابط کاربری فوق العاده گسترده، پروژه یاکتو به طراحان اجازه می‌دهد توزیع اختصاصی لینوکس خود را برای محصولات خود ایجاد کنند.

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

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

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

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

۱- شروع آسان

یاکتو یک پروژه لایه لایه است، لایه لایه بودن پروژه یاکتو قابلیت سفارشی سازی آن را افزایش می‌دهد و باعث می‌شود، سفارشی سازی‌های متفاوت به صورت مستقل از هم نگه داری شوند.

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

همانطور که قبلاً هم اشاره کردم ، با پتالینوکس، ساختن یک ایمیج بسیار آسان است. شما به سادگی می‌توانید ابزارهای پتالینوکس را نصب کنید و در کمتر از یک ساعت به طور بالقوه قادر به ساخت و بوت یک ایمیج هستید. به یاد داشته باشید، در زیر پوسته سخت پتالینوکس، هنوز از قلب تپنده یاکتو استفاده می‌شود ، بنابراین ما هنوز انعطاف پذیری زیادی برای انجام کارهای کاملاً سفارشی داریم. به عنوان مثال، به عنوان بخشی از فرآیند ایجاد پروژه، پتالینوکس برای شما یک لایه یاکتو (Yocto Layer) با دستورالعمل‌های بیت بیک (Bitbake recipes) می‌سازد. با وجود اینکه ابزارهای پتالینوکس، مکانیسم‌هایی را برای ایجاد دستور العمل‌های ساده ارائه می‌دهند، اما صادقانه بگویم هیچ محدودیتی برای طراحان حرفه‌ای وجود ندارد و شما می‌توانید هر نوع شخصی سازی را که تمایل به اجرای آن دارید، به راحتی اعمال کنید و یک کار کاملاً جدید ارائه دهید.

۲- زمان ساخت سریع‌تر

وقتی اولین ایمیج را با پتالینوکس ساختم، حسابی تعجب کردم. متوجه شدم که به جای صرف چند ساعت، کار ساخت سیستم عامل دقایقی بیشتر طول نمی‌کشد. من قصد مقایسه ندارم زیرا زمان ساخت می‌تواند براساس قدرت کامپیوتر و سرعت اتصال به اینترنت متفاوت باشد. اما بد نیست تجربه خودم را بیان کنم. شرکت ما دارای یک سرور ساخت بسیار سنگین است که ما از آن برای سنتز FPGA ، شبیه سازی، و غیره و همچنین برای ساخت اپلیکیشن‌های نرم افزاری استفاده می‌کنیم. دانلود و ساخت یک یاکتو خالص از ایمیج “core-image-minimal” حداقل ۳۰ دقیقه طول می‌کشد، در حالی که یک ایمیج ساخته شده با پتالینوکس برای بورد ZCU104 تنها ۱۰ دقیقه طول کشید. اگرچه این‌ مقایسه کاملاً نظیر به نظیر و عادلانه نیست، اما کاملاً قابل تأمل است. زیرا با وجود اینکه ”core-image-minimal”  یک ایمیج کاملاً فشرده است، اما ساخت آن مدت زمان بیشتری طول ‌کشید.

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

مزایای استفاده از پتالینوکس
برخی از دانلودهای کش شده در بسته نصبی پتالینوکس
مزایای استفاده از پتالینوکس
محتویات پوشه کش (sstate-cache) در پتالینوکس
مزایای استفاده از پتالینوکس
لایه‌های یاکتو در بسته نصبی aarch64 پتالینوکس

۳- خود اتکایی و ادغام آسان با گیت

شرکت Xilinx کلیه ملاحظات لازم برای ادغام با گیت را به پروژه‌های پتالینوکس اضافه کرده است. یک پروژه جدید به صورت خودکار با یک فایل gitignore راه اندازی می‌شود تا فرایند نادیده گرفتن هر چیزی که نباید نسخه‌های مختلف آن کنترل شود، در نظر گرفته شود. (مثل‌ فایل‌های موقتی که در طول ساخت پروژه در نظر گرفته می‌شوند.) علاوه بر این، از آنجا که بیشتر لایه های خارجی که یاکتو براساس آن‌ها شکل گرفته است، در بسته نصبی پتالینوکس وجود دارند، پروژه ها بسیار خود مختار (خود اتکا) هستند و کل پروژه شما، اپلیکیشن‌ها، درایورها، دیوایس تیری‌های (device-tree) شخصی سازی شده و غیره، همه می‌توانند در یک پروژه / مخزن واحد نگه داری شوند.

جمع بندی

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


منبع: با اقتباس از وبلاگ Xilinx و Yocto


اشتراک
دوره ها
بیشتر بخوانیم
نمایش اعداد اعشاری ممیز ثابت توصیف سخت افزاری

اعداد اعشاری ممیز ثابت (بخش سوم: قوانین پایه محاسبات)

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

مبانی محاسبات ریاضی در FPGA توصیف سخت افزاری

مبانی محاسبات ریاضی در FPGA (قسمت اول)

یکی از مهمترین مزایای طراحی‌های مبتنی بر تراشه‌های قابل پیکره‌بندی توانایی آن‌ها در پیاده‌سازی الگوریتم‌های ریاضی به بهترین شکل ممکن است.

طراحی فیلتر FIR با ابزار System Generator for DSP ابزارهای طراحی

پیاده سازی فیلتر FIR در Vivado

با دروازه ورود به دنیای پردازش سیگنال در FPGA از طریق فراگیری الفبای پیاده سازی فیلتر FIR در Vivado تنها چند قدم فاصله دارید.

بهینه سازی به کمک Analysis Perspective ابزارهای طراحی

بهینه سازی به کمک Analysis Perspective

بهینه سازی به کمک Analysis Perspective به ما اجازه می‌دهد با تحلیل نتایج پیاده‌سازی، بهترین الگو برای اعمال تغییرات روی ساختار کدهای HLS را انتخاب کنیم.

عناوین مطالب
    Add a header to begin generating the table of contents

    دیدگاه‌ خود را بنویسید

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

    اسکرول به بالا

    25% off

    کد تخفیف qnyz99IX