آموزش حرفه ای Yocto و OpenEmbedded

نسخه سفارشی لینوکس خود را بدون توجه به معماری زیرساخت بساز!

Yocto Project & OpenEmbedded Development

نام دوره آموزشی: Yocto Project & OpenEmbedded Development

 Logo for Yocto

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

  • آشنایی با اصول یک سیستم ساخت Systems Embedded و مقایسه Yocto و OpenEmbedded با ابزارهای مشابه
  • پیکربندی و ساخت سیستم لینوکس Embedded اولیه با Yocto و نصب آن را روی یک پلتفرم سخت افزاری
  • گسترش دستورالعمل ها برای توسعه بسته های نرم افزاری شما
  • استفاده از لایه های دستورالعمل های موجود و ایجاد لایه های جدید
  • ایجاد پشتیبانی از برد تعبیه شده شما در یک لایه BSP
  • ایجاد Image های سفارشی

و در نهایت شما می توانید پس از گذراندن این دوره نسخه سفارشی خود را ایجاد کنید و برنامه های کاربردی خود را روی آن اجرا نمایید.

 

محتوای آموزشی: آموزش کاربردی و عملی ساخت سیستم توکار لینوکس با Yocto Project & OpenEmbedded Development

 

مخاطبین دوره Yocto Project & OpenEmbedded Development: متخصصانی که علاقمند هستند تا سیستم Embedded خود را با پروژه Yocto بسازند.

 

سطح دوره آموزشی: مقدماتی تا پیشرفته

 

مدت زمان آموزش: ۳۵ ساعت

 

نحوه برگزاری: بصورت آنلاین و حضوری

 

پیش نیاز آموزش:  

 

دوره رایگان Yocto Project & OpenEmbedded Development: برای اطمینان از کیفیت دوره Yocto Project & OpenEmbedded Development جلسه اول دوره را رایگان ثبت نام کنید.

 

زمانبندی و هزینه آموزش: برای اطلاع از هزینه لطفا به تقویم آموزشی مراجعه نمایید.

 

سخت افزار دوره:

  • برد Raspberry Pi 4
  • برخی از سناریو ها به درخواست دانشجویان بر روی برد ARM Vexpres Cortex-A9 شبیه سازی شده بر روی نرم افزار QEMU پیاده سازی می گردد و به هیچ سخت افزار خاصی برای این سناریوها نیاز نیست.

 

معتبرترین مدرک آموزشی: در پایان هر دوره مدرک معتبر اعطا خواهد شد که نمونه آن را می توانید در لینک"معتبر‌ترین مدرک IOT" مشاهده کنید. 

Yocto Project and OpenEmbedded development Course:

Introduction to embedded Linux build systems

  • Overview of an embedded Linux system architecture
  • Methods to build a root filesystem image
  • Usefulness of build systems

 

Overview of the Yocto Project and the Demo - First Yocto Project build

  • Organization of the project source tree
  • Building a root filesystem image using the Yocto Project
  • Downloading the Poky reference build system
  • Building a system image

 

Using Yocto Project – basics

  • Organization of the build output
  • Flashing and installing the system image

 

Flashing and booting

  • Flashing and booting the image on the board

 

Using Yocto Project - advanced usage Demo - Using NFS and configuring the build

  • Configuring the build system
  • Customizing the package selection
  • Configuring the board to boot over NFS
  • Learn how to use the PREFERRED_PROVIDER mechanism

 

Writing recipes - basics Demo - Adding an application to the build

  • Writing a minimal recipe
  • Adding dependencies
  • Development workflow with bitbake
  • Writing a recipe for nInvaders
  • Adding nInvaders to the final image

 

Writing recipes - advanced features

  • Extending and overriding recipes
  • Adding steps to the build process
  • Learn about classes
  • Analysis of examples
  • Logging
  • Debugging dependencies

 

Layers Demo - Writing a layer

  • What layers are
  • Where to find layers
  • Creating a layer
  • Learn how to write a layer
  • Add the layer to the build
  • Move nInvaders to the new layer

 

Writing a BSP Demo - Implementing the kernel changes

  • Extending an existing BSP
  • Adding a new machine Bootloaders
  • Linux and the linux-yocto recipe
  • Adding a custom image type
  • Extend the kernel recipe to add the MPU6050 accelerometer/gyro driver
  • Configure the kernel to compile the MPU6050 accelerometer/gyro driver
  • Play nInvaders

 

Creating a custom image Demo - Creating a custom image

  • Writing an image recipe
  • Adding users/groups
  • Adding custom configuration
  • Writing and using package groups recipes
  • Writing a custom image recipe
  • Adding nInvaders to the custom image

 

Creating and using an SDK Demo - Experimenting with the SDK

  • Understanding the purpose of an SDK for the application developer
  • Building an SDK for the custom image
  • Building an SDK
  • Using the Yocto Project SDK

 

Questions and Answers

  • Questions and answers with the audience about the course topics
  • Extra presentations if time is left, according what most participants are interested in

درباره Yocto بیشتر بدانیم:

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

این ابزارهای سازنده سیستم (System Builder) در انواع مختلف و اشکال مختلف موجود هستند. دو مورد از آنها که در سالهای اخیر به شکل خاصی برجسته شده‌اند، دو پروژه Buildroot و Yocto هستند. هر دو پروژه متن‌باز هستند و امکان ساخت سیستم‌های تحت لینوکس را برای شما فراهم می‌کنند. آنها همچنین به طور گسترده در بخش صنعتی استفاده می‌شوند و به خوبی مستند شده‌اند. در نتیجه با استفاده از پروژه Buildroot یا Yocto، شما هر آنچه را که برای ساخت یک توزیع لینوکس نیاز دارید دریافت خواهید کرد، مواردی مثل:

  • یک فایل سیستم Root
  • یک زنجیره ابزار
  • خود هسته لینوکس
  • و همچنین بوت لودر

هر دو ابزار با حدود 2000 بسته نرم‌افزاری، از نظر کیفیت و کمیت تقریباً در سطح یکسانی قرار دارند. هر دو را می‌توان برای سیستم‌عامل‌ها و معماری‌های مختلف مانند ARM یا i386 ترکیب و استفاده کرد. به همین دلیل است که Yocto و Buildroot نیز از "کراس پلتفرم" صحبت می‌کنند. اما در این بخش ما می خواهیم معرفی بیشتر ابزار yocto بپردازیم.

 

پروژه YOCTO:

پروژه Yocto یک پروژه متن باز مشترک بنیاد لینوکس است که هدف آن تولید ابزارها و فرآیندهایی است که امکان ایجاد توزیع های لینوکس را برای نرم افزارهای تعبیه شده و اینترنت اشیا که مستقل از معماری زیربنایی سخت افزار تعبیه شده هستند، را فراهم می کند. این پروژه توسط بنیاد لینوکس در سال 2010 اعلام شد و در مارس 2011 با همکاری 22 سازمان از جمله OpenEmbedded راه اندازی شد.

تمرکز پروژه Yocto بر بهبود فرآیند توسعه نرم افزار برای توزیع های لینوکس جاسازی شده یا Embedded است. پروژه Yocto ابزارها، metadata و فرآیندهای قابل همکاری را ارائه می‌کند که توسعه سریع و قابل تکرار سیستم‌های جاسازی شده مبتنی بر لینوکس را امکان‌پذیر می‌سازد که در آن همه جنبه‌های فرآیند توسعه را می‌توان سفارشی کرد.

هدف پروژه Yocto تلاش برای بهبود زندگی توسعه دهندگان سیستم های لینوکس سفارشی شده است که از معماری های ARM، MIPS، PowerPC و x86/x86-64 پشتیبانی می کنند. بخش کلیدی این سیستم ساخت OpenEmbedded است که به توسعه دهندگان این امکان را می دهد تا توزیع لینوکس مخصوص به محیط خود را ایجاد کنند. پروژه Yocto یک پیاده سازی مرجع به نام Poky را ارائه می دهد که شامل سیستم ساخت OpenEmbedded به اضافه مجموعه بزرگی از دستورالعمل ها است که در یک سیستم سلسله مراتبی از لایه ها مرتب شده اند که می تواند به عنوان یک الگوی کاملاً کاربردی برای یک سیستم عامل تعبیه شده سفارشی استفاده شود.

با Yocto توسعه‌دهندگان سیستم‌های تعبیه شده می‌توانند ایجاد ایمیج متناسب با لینوکس برای دستگاه‌های Embedded و IOT را ایجاد کنند، یا هر جایی که به سیستم‌عامل لینوکس سفارشی نیاز است، آن را به اشتراک بگذارند.

Yocto به انعطاف‌پذیری اهمیت زیادی می‌دهد. به لطف سیستم چندلایه آن، سازندگان مختلف می‌توانند نرم‌افزار خود را بدون تأثیر بر لایه‌های دیگر وارد سیستم کنند. برای مثال، این امر امکان به‌روزرسانی هدفمند بخش‌های نرم‌افزار را در یک پلتفرم فراهم می‌کند. علاوه بر این، پلتفرم‌های مختلف پردازنده در یک توزیع را می‌توان به راحتی با استفاده از مدل لایه‌ای حفظ کرد. البته این مزایا از نظر انعطاف‌پذیری پیچیدگی خاصی را نیز به دنبال دارد که باید درک شود و با آن مقابله شود. زیرا این موضوع معمولاً توزیع را کمی سخت‌تر می‌کند، مثلاً از نظر مصرف حافظه. Yocto خود یک پروژه متن‌باز است، اما توسط یک هیئت مشاوره که توسط شرکت‌های بزرگی مانند اینتل، تگزاس اینسترومنت، NXP، Renesas و Comcast به عنوان حامی مالی حمایت می‌شود، هدایت می‌شود.

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

 

سوالات رایج به نحوه شرکت در دوره ها:

 

چه کسانی نیاز دارند این دوره را بگذرانند؟

این دوره مخصوص متخصصانی است که می خواهد نسخه خاص لینوکسی خود را با استفاده از پروژه  yocto بدون توجه به معماری سخت افزار بسازند.

 

برای شرکت در این دوره چه پیش نیازهایی باید داشته باشیم؟

 

با گذراندن این دوره در چه حوزه هایی می توانم وارد شوم؟

شما با یادگیری yocto می توانید در حوزه هایی چون Linux Embedded، مهندسی نرم افزار، IOT و خیلی حوزه های دیگر که نسخه سفارشی لینوکس نیاز است، وارد شوید و به ارائه خدمات بپردازید.



دوره های خانه لینوکس حضوری هست یا آنلاین؟

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

 

آیا امکان شرکت در دوره ها از خارج از ایران امکان پذیر هست؟

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

 

سامانه آموزش آنلاین مجموعه چیست؟

سامانه آموزش آنلاین خانه لینوکس نرم افزارهای توسعه داده شده مبتنی بر پروژه متن باز bigbluebutton  Moodle +می باشد که بر روی بستر امن و قدرتمند لینوکس میزبانی شده است و هر امکانی که در سامانه های آموزش آنلاین رایج وجود دارد را در بالاترین کیفیت ارائه می دهد و همچنین یه انقلابی را از لحاظ کیفیت و قدرت استفاده از امکانات، در صنعت آموزش آنلاین بوجود آورده است.

 

آیا کیفیت دوره های آنلاین به اندازه دوره های حضوری هست؟

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

 

دوره ها به چه زبانی برگزار می گردند؟

دوره ها بصورت پیش فرض به زبان فارسی برگزار می گردند و درصورت نیاز می توان برخی دوره ها را بصورت خصوصی یا سازمانی به زبان انگلیسی برگزار کرد.

 

آیا می توانم همزمان در دو یا چند دوره آموزشی شرکت نماییم؟

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

 

آیا امکان پرسش و پاسخ در کلاس آنلاین وجود دارد؟

بله شما در طول کلاس می توانید بصورت صوتی و یا تصویری، یا بصورت چت و حتی با به اشتراک گذاری تصویر صفحه کامپیوترتان در سامانهLMS ، به راحتی سوالات خود را بپرسید و استاد محترم مشکلات شما را در طول دوره به بهترین نحو حل می نماید.

 

آیا مدرس دوره تجربه عملیاتی مناسبی در حوزه مربوطه دارد؟

بله، مدرسان مجموعه آنیسا متخصصین و مدرسین برتر و مرجع حوزه تخصصی که آموزش می دهند با تجربه بالا در محیط ها کاری و عملیاتی هستند و غیر از دانش، بینش و تجربه را بصورت کاملا عملیاتی به دانشجویان منتقل می نمایند. قابل ذکر است که دوره های خانه لینوکس در بالاترین سطح علمی و عملی در دنیا ارائه می گردد.

 

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

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

 

امکان شرکت در کلاس ها بصورت آفلاین وجود دارد؟

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

 

ساعت برگزاری دوره ها به چه صورت است؟

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

 

آیا تعداد ساعت دوره های حضوری و آنلاین با یکدیگر متفاوت است؟

خیر، کاملا یکسان است.

 

سوالات رایج آزمون ها و مدارک:

آیا پس از دوره مدرک معتبر دریافت می کنم یا باید در آزمون های بین المللی شرکت کنم؟

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

در حوزه لینوکس، در صورت نیاز، دانشجویان می توانند جداگانه در ازمون های بین المللی موسسه LPI شرکت نمایند و پس از قبولی مدرک موسسه LPI را اخذ نمایند.

 

آیا مدرک خانه لینوکس قابل ترجمه هست؟

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

 

آیا می توانم بدون شرکت در دوره آموزشی در آزمون بین المللی شرکت کنم؟

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

 

آزمون های بین المللی به چه زبانی برگزار می شوند؟

این آزمون ها در ایران به زبان انگلیسی برگزار می گردند.

 

چگونه داوطلبان می توانند صحت مدارک خود را به کارفرمایان اثبات کنند؟

کارفرمایان می توانند جهت آگاهی از وضعیت گواهینامه شما، با ارائه شماره سریال مدرک موسسه در وبسایت موسسه، مدارک خانه لینوکس را استعلام نمایند.

 

آزمون پایان دوره به چه صورت است؟

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

 

سوالات عمومی:

آیا من می توانم ویدیوی دوره را ضبط کنم؟

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

 

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

داشتن یک سیستم با حدود 30 گیگ هارد خالی و حداقل 8 گیگ مموری و حداقل cpu در سطح core i3 نیازمندی شرکت در این دوره هست. در دوره های حضوری مجموعه به هر دانشجو یک سیستم مجزا تخصیص داده می شود. دسترسی به اینترنت نیز برای کلاس های آنلاین، نیاز است.

 

آیا من پشتیبانی رو در طول دوره دارم؟

بله شما در طول دوره پشتیبانی مجموعه و مدرس را دارید.

 

آیا امکان پیشنهاد کار از سمت موسسه به دانشجویان وجود دارد؟

بله، بدین منظور موسسه همواره آگهی های شغلی سازمان های همکار را در شبکه های اجتماعی منتشر می کند و با کسب دانش و تخصص، دانشجویان توانسته اند در بهترین شرکت ها و سازمان های داخلی و خارجی جمله Dell، Cisco، MTN، Amazon و حتی NASA مشغول به کار شوند.

 

آیا کلاس را می توانم بصورت خصوصی و یا اختصاصی برای سازمان برگزار کنم؟

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

 

آیا مسیر آموزشی مشخصی برای ادامه کسب تخصص وجود دارد؟

بله، حرفه ای ترین مسیر آموزش نتیجه سال ها تجربه و آموزش حرفه ای در صنعت و همچنین نتیجه اتاق فکر اساتید آنیسا بصورت یک Roadmap جامع در حوزه های مدیریت سیستم های لینوکس، توسعه نرم افزار، DevOps، IOT، Data Science، شبکه و DevNet و همچنین زیرساخت به دانشجویان ارائه می گردد.

 

تا چه مدت به دوره دسترسی دارم؟

در دوره های آنلاین، تا دو ماه پس از اتمام دوره، ویدیوهای دوره قابل بازدید در سامانه آموزش آنلاین است.

 

سوالات رایج ثبت نام و پرداخت:

آیا امکان پرداخت هزینه دوره بصورت اقساط وجود دارد؟

بله خوشبختانه، این امکان وجود دارد.

 

آیا تخفیفی برای شرکت در دوره ها وجود دارد؟

بله تخفیفات دائمی چون تخفیف گروهی، دوره های همزمان، تخفیف معرفی و تخفیفات مناسبتی وجود دارد.

 

گروه سنی مخاطب دوره ها چیست؟

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

 

چگونه می توانم برای شرکت در دوره ثبت نام کنم؟

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

 

آیا رعایت پیش نیاز ها واجب است؟

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

 

من دانش آموزم آیا می توانم در دوره ها شرکت کنم؟

بله، با مشاوره و سنجش دانش شما در حوزه IT امکان شرکت در دوره مناسب سن و دانش شما وجود دارد.

 

 

 

دوره های پیشنهادی