آموزش حرفه ای Embedded Linux boot time optimization

دوره بهینه سازی زمان بوت در سیستم های Embedded Linux

Embedded Linux boot time optimization Course

نام دوره آموزشی: Embedded Linux Boot Time Optimization

 

embedded linux boot time optimization

معرفی دوره آموزشی: دوره Embedded Linux Boot Time Optimization به بهینه سازی زمان بالا آمدن سیستم های Embedded که یک موضوع بسیار مهم و حتی بحرانی در توسعه سیستم های Embedded Linux است، می پردازد.  در این دوره، اصول اصلی، تکنیک‌ها و روش‌های مختلفی که برای بهینه‌سازی زمان بالا آمدن سیستم‌های لینوکس در محیط‌های Embedded استفاده می‌شوند، را می آموزیم و شرکت کنندگان بصورت عملی جنبه های مختلف بهینه سازی در لایه های مختلف را می آزمایند تا از راه اندازی سریعتر سیستم اطمینان حاصل نمایند.

قابل ذکر است که این دوره برای کسانی که روی محصولاتی کار می‌کنند که زمان راه‌اندازی سریع ضروری است، مانند لوازم الکترونیکی مصرفی، سیستم‌های خودرو، و سایر برنامه‌های حساس به زمان، بسیار مهم است.

 

محتوای آموزشی: آموزش حرفه ای Embedded Linux Boot Time Optimization یا دوره بهینه سازی زمان بوت در سیستم های Embedded Linux

 

مخاطبین دوره Embedded Linux Boot Time Optimization:

  • توسعه دهندگان سخت افزارهایی که از کرنل لینوکس استفاده می کنند
  • متخصصان و توسعه دهندگان سیستم های  Embedded Linux
  • متخصصان توسعه نرم افزار
  • متخصصان IOT

 

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

 

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

 

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

 

پیش نیاز آموزش: دوره Embedded Linux Level 1

 

دوره رایگان Embedded Linux Boot Time Optimization: برای اطمینان از کیفیت دوره Embedded Linux Boot Time Optimization جلسه اول دوره را رایگان ثبت نام کنید.

 

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

 

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

 

 

"The topics of this course have been updated on December 2023."

 

Embedded Linux boot time optimization Course Syllabus:

 

Principles

  • How to measure boot time
  • Main ideas
  • Downloading bootloader, kernel and Build-root source code
  • Board setup, setting up serial communication
  • Configure Buildroot and build the system
  • Configure and build the U-Boot bootloader.
  • Prepare an SD card and boot the bootloader from it
  • Configure and build the kernel. Boot the system

 

Measuring time

  • Generic software techniques
  • Hardware techniques
  • Specific solutions for each stage
  • Modify the system to measure time at various steps
  • Timing messages on the serial console
  • Timing the launching of the application

 

Toolchain optimizations

  • Introduction to toolchains
  • C libraries
  • Size information
  • Measuring executable performance with time
  • Using strace and ltrace
  • Other profiling techniques
  • Finding unnecessary configuration options in applications
  • Modifying configuration options through Buildroot
  • Experiments with strace to trace program execution

 

Application optimization

  • Using strace and ltrace
  • Other profiling techniques
  • Finding unnecessary configuration options in applications
  • Modifying configuration options through Buildroot
  • Experiments with strace to trace program execution

 

Optimizing system initialization

  • Using BusyBox bootchartd
  • Optimizing init scripts
  • Possibility to start your application directly
  • Using Buildroot to remove unnecessary scripts and commands
  • Access-time based technique to identify unused files
  • Simplifying BusyBox
  • Starting the application as the init program

 

Filesystem optimizations

  • Available filesystems, performance and boot time aspects
  • Making UBIFS faster
  • Tweaks for reducing boot time
  • Booting on an initramfs
  • Using static executables: licensing constraints
  • Trying and measuring two block filesystems: ext4 and SquashFS
  • Trying and measuring the initramfs solution. Constraints due to this solution

 

Kernel optimizations

  • Using Initcall debug to generate a boot graph
  • Compression and size features
  • Reducing or suppressing console output
  • Multiple tweaks to reduce boot time
  • Generating and analyzing a boot graph for the kernel
  • Find and eliminate unnecessary kernel features
  • Find the best kernel compression solution for our system

 

Bootloader optimizations

  • Generic tips for reducing U-Boot’s size and boot time
  • Optimizing U-Boot scripts and kernel loading
  • Skipping the bootloader - How to modify U-Boot to enable its Falcon mode
  • The Device Tree preparation work that U-Boot does to prepare Linux booting
  • Using the spl export command to do this work in advance
  • Modifying U-Boot’s source code and configuring it for directly booting Linux and

 

Skipping the U-Boot second stage.

  • Example instructions and setups for booting from MMC and NAND flash
  • How to debug Falcon mode
  • How to fall back to U-Boot
  • Limitations

 

Bootloader optimizations

  • Using the above techniques to make the bootloader as quick as possible
  • Switching to faster storage
  • Configuring U-Boot for Falcon mode booting, skipping U-Boot’s second stage

"سرفصل های این دوره در دسامبر 2023 به‌روز شده‌اند."

 

سرفصل دوره بهینه‌سازی زمان بوت سیستم های Embedded Linux

 

اصول

  • چگونگی اندازه‌گیری زمان بوت Embedded Linux
  • ایده‌های اصلی
  • دانلود Bootloader، کرنل و کد منبع Build-root
  • تنظیم برد و راه‌اندازی ارتباط سریال
  • تنظیم Buildroot و ساخت سیستم
  • تنظیم و ساخت Bootloader U-Boot
  • آماده‌سازی کارت حافظه SD و بارگیری Bootloader از آن
  • تنظیم و ساخت هسته و بوت سیستم

 

آموزش اندازه‌گیری زمان بوت سیستم Embedded Linux

  • تکنیک‌های عمومی نرم‌افزاری
  • تکنیک‌های سخت‌افزاری
  • راه‌حل‌های خاص برای هر مرحله
  • تغییر سیستم برای اندازه‌گیری زمان در مراحل مختلف
  • پیام‌های زمان‌بندی در کنسول سریال
  • زمان‌بندی راه‌اندازی برنامه

 

آموزش بهینه سازی Toolchain:

  • کتابخانه‌های C
  • اطلاعات اندازه
  • اندازه‌گیری عملکرد اجرایی با استفاده از زمان
  • استفاده از strace و ltrace
  • تکنیک‌های پروفایلینگ دیگر
  • یافتن گزینه‌های پیکربندی غیرضروری در برنامه‌ها
  • تغییر گزینه‌های پیکربندی از طریق Buildroot
  • آزمایش‌ها با strace برای پیگیری اجرا برنامه Buildroot

 

آموزش بهینه سازی لایه Application

  • استفاده از strace و ltrace
  • تکنیک‌های پروفایلینگ دیگر
  • یافتن گزینه‌های پیکربندی غیرضروری در برنامه‌ها
  • تغییر گزینه‌های پیکربندی از طریق Buildroot
  • آزمایش‌ها با strace برای پیگیری اجرا برنامه Buildroot

 

آموزش بهینه ‌سازی شروع در سیستم Embedded Linux

  • استفاده از BusyBox bootchartd
  • بهینه‌سازی اسکریپت‌های init
  • امکان شروع برنامه خود به صورت مستقیم
  • استفاده از Buildroot برای حذف اسکریپت‌ها و دستورات غیرضروری
  • تکنیک مبتنی بر زمان دسترسی برای شناسایی فایل‌های استفاده‌نشده
  • ساده‌سازی BusyBox
  • شروع برنامه به عنوان برنامه init

 

آموزش بهینه‌ سازی فایل‌سیستم

  • فایل‌سیستم‌های در دسترس، عملکرد و جوانب زمان بوت
  • افزایش سرعت UBIFS
  • تنظیمات برای کاهش زمان بوت
  • بارگیری از یک initramfs
  • استفاده از static executables
  • تست و اندازه‌گیری دو فایل‌سیستم ext4و SquashFS
  • تست و اندازه‌گیری راه‌کار initramfs و محدودیت‌ها ناشی از آن

 

آموزش بهینه ‌سازی Kernel لینوکس

  • استفاده از Initcall debug برای تولید گراف بوت
  • ویژگی‌های فشرده‌سازی و اندازه
  • suppressing console output
  • تنظیمات چندگانه برای کاهش زمان بوت
  • تولید و تجزیه و تحلیل گراف بوت
  • یافتن و حذف ویژگی‌های غیرضروری کرنل Kernel
  • یافتن بهترین راه حل فشرده‌سازی برای سیستم ما

 

آموزش بهینه ‌سازی Bootloader

  • توصیه‌های عمومی برای کاهش اندازه و زمان بوت U-Boot
  • بهینه‌سازی اسکریپت‌های U-Boot و لود کرنل
  • رد کردن بوت لودر - چگونگی تغییر U-Boot برای فعال کردن حالت Falcon آن
  • کارهای آماده‌سازی که U-Boot برای آماده‌سازی بوت لینوکس انجام می‌دهد
  • استفاده از دستور spl export برای انجام این کار به صورت پیشین
  • تغییر کد منبع U-Boot و تنظیم آن برای بوت مستقیم لینوکس و رد کردن مرحله دوم U-Boot
  • دستورالعمل‌ها بوت از فلش MMC و NAND
  • چگونگی اشکال‌زدایی حالت Falcon
  • چگونگی بازگشت به U-Boot
  • محدودیت‌ها
  • استفاده از تکنیک‌های فوق برای داشتن سریع‌ترین بوت لودر ممکن
  • تغییر به storage سریع‌تر
  • تنظیم U-Boot برای بوت Falcon mode، حذف stage دوم U-Boot

درباره دوره Embedded Linux boot time optimization بیشتر بدانید:

 

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

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

در ادامه، به بهینه‌سازی در Toolchain در لایه Application می‌پردازیم و با استفاده از ابزارها و تکنیک‌های پروفایلینگ، تنظیمات غیرضروری در لایه اپلیکیشن‌ها را حذف می‌کنیم و سپس تنظیمات را در  Buildroot انجام می‌دهیم. سپس وارد لایه System Initialization می‌شویم و با استفاده از  BusyBox و بهینه‌سازی init scripts به بهینه‌سازی ادامه می‌دهیم.

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

در پایان، بهینه سازی ها در لایه بوت لودر انجام خواهد شد تا متخصصین بتوانند سرعت بوت خود را البته با توجه به قابلیت های مختلفی که انتخاب می گردد از 30 ثانیه یا بیشتر به 2 ثانیه و حتی کمتر برسانند!

این دوره مثل همیشه در بالاترین سطح دنیا و با استانداردهای آنیسا برگزار می گردد و به مهندسان Embedded بسیار پیشنهاد می گردد.

 

 

 

 

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

 

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

این دوره مخصوص کسانی است که در حوزه Embedded Linux فعال هستند و می خواهند سرعت بوت سیستم خود را بالا ببرند.

 

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

دانش دوره Embedded Linux Level 2 پیشنیاز ورود در این دوره است.

 

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

شما با گذراندن این دوره می توانید بر مهارت های Embedded linux خود بیافزایید و در این حوزه قوی تر در به نقش آفرینی بپردازید.

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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