Craft fast and reliable embedded solutions with Linux 6.6 and The Yocto Project 5.0 (Scarthgap)
Frank Vasquez, Chris Simmonds

#Linux
#Yocto
#Scarthgap
#Linux6.6
#POSIX
#Python
👨💻نویسنده این کتاب، فرانک واسکز، از متخصصهای باسابقه حوزه لینوکس امبدده. توی این ویرایش جدید، بهت کمک میکنه تا از تمام ظرفیتهای لینوکس برای طراحی و پیادهسازی سیستمهای امبدد انعطافپذیر و پایدار استفاده کنی.
🚀 ویژگیهای کلیدی
• یاد میگیری چطوری دستگاههای لینوکس امبدد قابل اطمینان رو توسعه بدی و کانفیگ کنی.
• با آخرین تغییرات لینوکس ۶.۶ و پروژه یوکتو ۵.۰ با نام کد Scarthgap آشنا میشی.
• روشهای مختلف دیباگ و پروفایل کردن کد رو هم در فضای کاربر (user space) و هم در کرنل لینوکس یاد میگیری.
📝 توضیحات کتاب
کتاب Mastering Embedded Linux Development طوری طراحی شده که هم یه منبع آموزشی باشه و هم یه مرجع دمدست برای پروژههای لینوکس امبدد تو.
توی این ویرایش چهارم، عناصر بنیادی که پایه و اساس همه پروژههای لینوکس امبدد هستن رو یاد میگیری: زنجیره ابزار (toolchain)، بوتلودر، کرنل و سیستم فایل ریشه. اول کار، یه toolchain از قبل ساخته شده رو دانلود و نصب میکنی. بعد از اون، هر سه عنصر باقیمونده رو خودت از صفر کراس-کامپایل میکنی و یاد میگیری چطوری این فرآیند رو با استفاده از Buildroot و Yocto Project خودکار کنی. کتاب با مباحث آپدیت نرمافزاری از راه دور (OTA) و نمونهسازی سریع با بردهای افزونه ادامه پیدا میکنه. دو تا فصل جدید هم به کتاب اضافه شده که به متدهای توسعه مدرن میپردازه، از جمله بستهبندی پایتون و استقرار اپلیکیشنهای کانتینری (Containerized). بعد از اون، یه فصل درباره نوشتن کدهای چندرشتهای (multithreaded) و یه فصل دیگه هم درباره تکنیکهای مدیریت بهینه حافظه داریم. فصلهای پایانی بهت نشون میده چطوری کدهات رو دیباگ کنی، چه توی فضای کاربر باشه و چه توی خودِ کرنل لینوکس. علاوه بر دیباگر گنو (GDB)، این کتاب ابزارهای مختلف تریسر و پروفایلر لینوکس رو هم پوشش میده تا بتونی خیلی سریع گلوگاههای عملکردی (performance bottlenecks) سیستمت رو پیدا کنی.
تا آخر این کتاب، میتونی دستگاههای امبدد کارآمد و امنی با لینوکس بسازی که کاربرات رو سر ذوق میاره.
🎓 آنچه یاد خواهید گرفت
• کراس-کامپایل کردن ایمیجهای لینوکس امبدد با Buildroot و Yocto
• فعالسازی اتصال Wi-Fi و بلوتوث با استفاده از BSP (بسته پشتیبانی برد) در یوکتو
• آپدیت امن دستگاههای IoT در محل با استفاده از Mender یا balena
• نمونهسازی قطعات جانبی با اتصال بردهای افزونه، خوندن نقشههای شماتیک و نوشتن برنامههای تست
• استقرار اپلیکیشنهای نرمافزاری کانتینری روی دستگاههای Edge با استفاده از Docker
• دیباگ کردن دستگاهها از راه دور با GDB و اندازهگیری عملکرد سیستم با ابزارهایی مثل perf و ply
👥 این کتاب برای چه کسی است؟
اگه مهندس نرمافزار سیستم یا ادمین سیستم هستی و میخوای یاد بگیری چطوری لینوکس رو روی دستگاههای امبدد پیاده کنی، این کتاب دقیقا برای خودته. همچنین این کتاب برای مهندسین نرمافزار امبددی که به برنامهنویسی میکروکنترلرهای کممصرف عادت دارن عالیه و کمکشون میکنه به دنیای سیستم-روی-چیپهای (SoC) پرسرعت که لینوکس اجرا میکنن، وارد بشن. هر کسی هم که برای لینوکس سختافزار طراحی میکنه، مطالب مفیدی توی این کتاب پیدا میکنه. اما قبل از شروع، باید تسلط خوبی روی استاندارد POSIX، برنامهنویسی C و شلاسکریپتنویسی داشته باشی.
📑 فهرست مطالب
بخش ۱: عناصر لینوکس امبدد
۱. شروع کار
۲. یادگیری درباره زنجیره ابزار (Toolchains)
۳. همهچیز درباره بوتلودرها
۴. پیکربندی و ساخت کرنل
۵. ساخت یک سیستم فایل ریشه (Root Filesystem)
بخش ۲: ساخت ایمیجهای لینوکس امبدد
۶. انتخاب یک سیستم ساخت (Build System)
۷. توسعه با یوکتو (Yocto)
۸. زیر هودِ یوکتو
بخش ۳: معماری سیستم و تصمیمات طراحی
۹. ایجاد یک استراتژی ذخیرهسازی
۱۰. آپدیت نرمافزار در محیط عملیاتی
۱۱. تعامل با درایورهای دستگاه
۱۲. نمونهسازی با بردهای جانبی
۱۳. راهاندازی - برنامه init
۱۴. مدیریت توان
بخش ۴: توسعه اپلیکیشنها
۱۵. بستهبندی پایتون
۱۶. استقرار ایمیجهای کانتینری
۱۷. یادگیری درباره پروسسها و تردها
۱۸. مدیریت حافظه
بخش ۵: دیباگ کردن و بهینهسازی عملکرد
۱۹. دیباگ با GDB
۲۰. پروفایلینگ و تریسینگ (Tracing)
۲۱. برنامهنویسی بلادرنگ (Real-Time)
💬 نقد و بررسی
«این کتاب یکی از قابلفهمترین و کاربردیترین راهنماهای توسعه لینوکس امبدد هست که امروز میتونید پیدا کنید. کتاب خواننده رو از مبانی پایه مثل زنجیره ابزار، بوتلودر و کراس-کامپایلینگ به مباحث پیشرفتهای مثل آپدیتهای OTA، بهینهسازی توان و تست سختافزار در حلقه (HIL) میبره. مثالهای سختافزاری واقعی با استفاده از BeaglePlay و سنسورها کمک میکنه فاصله بین تئوری و عمل پر بشه. برخلاف خیلی از منابع دیگه، این کتاب فقط روی ساخت سیستم متوقف نمیشه؛ بلکه به دیباگ، استقرار و یکپارچهسازی در گردش کارهای واقعی هم میپردازه. توضیحات واضح، مختصر و با پشتیبانی یک مخزن گیتهاب عالی ارائه شدن.» رومن استوروژنکو، توسعهدهنده ارشد کرنل لینوکس در شرکت اینتل، مشارکتکننده کرنل لینوکس، مهندس فریمور و متخصص Intel® Xeon® RDT.
✍️ درباره نویسندگان
فرانک واسکز مشاور نرمافزار مستقل و متخصص در حوزه لوازم الکترونیکی مصرفیه. اون بیش از یک دهه تجربه در طراحی و ساخت سیستمهای لینوکس امبدد داره. در طول این مدت، محصولات زیادی رو به بازار عرضه کرده، از جمله سرور صوتی DSP رکمونت، دوربین سونار غواصی، هاتسپات IoT، باتری خانگی و سیستم ذخیرهسازی انرژی در مقیاس شبکه. از زمان انتشار ویرایش سوم این کتاب، فرانک به یکی از سخنرانان ثابت کنفرانسهای نرمافزار متنباز مثل Yocto Project Summit و Embedded Linux Conference تبدیل شده. اون عاشق یادگیری تکنولوژیهای جدید و آموزش دادن اونها به بقیه است.
کریس سیموندز مشاور و مدرس نرمافزاره که در جنوب انگلستان زندگی میکنه. اون نزدیک به دو دهه تجربه در طراحی و ساخت سیستمهای امبدد متنباز داره. کریس بنیانگذار و مشاور ارشد شرکت 2net Ltd هست که خدمات آموزش حرفهای و مشاوره در زمینه لینوکس امبدد، درایورهای لینوکس و توسعه پلتفرم اندروید ارائه میده. اون مهندسهای زیادی رو در بزرگترین شرکتهای دنیای امبدد مثل ARM، کوالکام، اینتل، اریکسون و جنرال داینامیکز آموزش داده و به طور مداوم در کنفر
Written by Frank Vasquez, an embedded Linux expert, this new edition enables you to harness the full potential of Linux to create versatile and robust embedded solutions
All formats include a free PDF and an invitation to the Embedded System Professionals community
Mastering Embedded Linux Development is designed to be both a learning resource and a reference for your embedded Linux projects.
In this fourth edition, you'll learn the fundamental elements that underpin all embedded Linux projects: the toolchain, the bootloader, the kernel, and the root filesystem. First, you will download and install a pre-built toolchain. After that, you will cross-compile each of the remaining three elements from scratch and learn to automate the process using Buildroot and the Yocto Project. The book progresses with coverage of over-the-air software updates and rapid prototyping with add-on boards. Two new chapters tackle modern development practices, including Python packaging and deploying containerized applications. These are followed by a chapter on writing multithreaded code and another on techniques to manage memory efficiently. The final chapters demonstrate how to debug your code, whether it resides in user space or in the Linux kernel itself. In addition to GNU debugger (GDB), the book also covers the different tracers and profilers that are available for Linux so that you can quickly pinpoint any performance bottlenecks in your system.
By the end of this book, you will be able to create efficient and secure embedded devices with Linux that will delight your users.
If you are a systems software engineer or system administrator who wants to learn how to apply Linux to embedded devices, then this book is for you. The book is also for embedded software engineers accustomed to programming low-power microcontrollers and will help them make the leap to a high-speed system-on-chips that can run Linux. Anyone who develops hardware for Linux will find something useful in this book. But before you get started, you will need a solid grasp of the POSIX standard, C programming, and shell scripting.
Table of Contents
Part 1: Elements of Embedded Linux
Chapter 1: Starting Out
Chapter 2: Learning about Toolchains
Chapter 3: All about Bootloaders
Chapter 4: Configuring and Building the Kernel
Chapter 5: Building a Root Filesystem
Part 2: Building Embedded Linux I mag es
Chapter 6: Selecting a Build System
Chapter 7: Developing with Yocto
Chapter 8: Yocto under the Hood
Part 3: System Architecture and Design Decisions
Chapter 9: Creating a Storage Strategy
Chapter 10: Updating Software in the Field
Chapter 11: Interfacing with Device Drivers
Chapter 12: Prototyping with Add-On Boards
Chapter 13: Starting Up - The init Program
Chapter 14: Managing Power
Part 4: Developing Applications
Chapter 15: Packaging Python
Chapter 16: Deploying Container Images
Chapter 17: Learning about Processes and Threads
Chapter 18: Managing Memory
Part 5: Debugging and Optimizing Performance
Chapter 19: Debugging with GDB
Chapter 20: Profiling and Tracing
Chapter 21: Real-Time Programming
“This book is one of the most accessible and practical guides to Embedded Linux Development available today. It takes readers from core foundations—like toolchains, bootloaders, and cross-compilation—to advanced topics such as OTA updates, power optimization, and hardware-in-the-loop (HIL) testing. Real hardware examples using BeaglePlay and sensors help bridge the gap between theory and practice. Unlike many other resources, the book doesn’t stop at building systems; it also addresses debugging, deployment, and integration into real-world workflows. The explanations are clear, concise, and supported by a companion GitHub repository.”
Roman Storozhenko, Senior Linux Kernel Developer at Intel Corporation, Linux Kernel Contributor, Firmware Engineer, Intel® Xeon® RDT Expert & Contributor, RISC-V Associate, Technical Author, Industry Awards Judge
Frank Vasquez is an independent software consultant specializing in consumer electronics. He has more than a decade of experience designing and building embedded Linux systems. During that time, he has shipped numerous products including a rackmount DSP audio server, a diver-held sonar camcorder, an IoT hotspot, a home battery, and a grid-scale energy storage system. Since the third edition of this book was published, Frank has also become a frequent speaker at open source software conferences including the Yocto Project Summit, Embedded Linux Conference, FOSDEM, and All Systems Go! He is passionate about learning new technologies and teaching them to others.
Chris Simmonds is a software consultant and trainer living in southern England. He has almost two decades of experience in designing and building open-source embedded systems. He is the founder and chief consultant at 2net Ltd, which provides professional training and mentoring services in embedded Linux, Linux device drivers, and Android platform development. He has trained engineers at many of the biggest companies in the embedded world, including ARM, Qualcomm, Intel, Ericsson, and General Dynamics. He is a frequent presenter at open source and embedded conferences, including the Embedded Linux Conference and Embedded World.









