امبدد لینوکس
سلامی دوباره
سالها پیش فهمیدم یکی از بایدهای یادگیری خوندن پیشگفتار هر کتاب هست. فکر کنم خودمم باید به این باید احترام بذارم و اول یه پیشگفتار بنویسم، تا شما بدونید چی قراره بگم، با چه ترتیبی قراره بگم و …
اولش بگم که من به هر بخشی که منتشر میشه میگم یه فصل و فصل قبل، فصل منفی یک بود نه صفر! الان با پیشگفتار و بلافاصله بعدش فصل یک مقاله مقدمهای بر امبدد لینوکس در خدمت شما هستم. بله، عنوان اصلی Introduction هست نه Mastering یا From A to Z. و البته تمام چیزهایی که باعث شده تا الان نرید سراغ eLinux همین آشنایی اولیه هست نه چیز بیشتری!
پیشگفتار
یکی بود یکی نبود یه لینوس توروالدز (Linus Torvalds) بود که اواخر 1991 لینوکس رو نوشت و بعدش هم خیلی اتفاقها افتاد تا به امروز. البته لینوس Git رو هم نوشته! و سورس هر دوشون رو رایگان در اختیار عموم گذاشته.
یه کِریم آقا هم بود، کِریم آب منگل نه ها، کِریم یغمور (Karim Yaghmour) که اولین بار توی سال 1997 پیشنهاد استفاده از لینوکس رو توی دنیای امبدد داد و بعدش هم ویرایش اول کتاب Building Embedded Linux Systems رو توی سال 2003 منتشر کرد و ویرایش دوم رو هم سال 2008 منتشر کرد! که اگه این کتاب نبود احتمالا این مقاله هم نبود!
حالا چرا نبود؟ چون هر چی کتاب دیگه بود و من تونستم بهش دسترسی پیدا کنم همه چیز رو از صفر نگفته بود و انگار یه چیزهایی توی دنیای بچههای کامپیوتر و سختافزار توضیح واضحات هست. بعداً فهمیدم که درسته آخه عناوین درسهای اونا مبانی سیستم عامل، کامپایلر، شبکه و … است و انگار بخش زیادی از سوالهای من که مجبور شدم چندین کتاب رو بخونم تا به جوابهاشون برسم برای اونا باید در حد KVL، KCL رشته الکترونیک باشه! (که متاسفانه نیست!)
بله چندین کتاب! که این مقاله چکیدهای از اونها هست.
زیادی خستهتون نکنم و پیشگفتار رو با معرفی ساختار مقاله و مطالب فصول تموم کنم:
چون همه مطالب یک جا منتشر نمیشه و قسمت قسمت خواهد بود، برای اینکه بدونید الان کجای یک فصل هستیم تیترها رو با رنگها مختلف مشخص میکنیم:
فصل: این رنگ و فونت یعنی شروع یک فصل جدید
مبحث اصلی: این رنگ و فونت یعنی شروع یک مبحث اصلی در یک فصل
زیربحثهای هر مبحث: هر مبحث ممکنه بعضا خودش چندینتا زیرشاخه داشته باشه، این رنگ یعنی زیرشاخههای یک مبحث.
ساختار کلی اینجوره که توی هر فصل یه سری مطالب گفته میشه و آخر فصل یک یا چندتا پروژه پیشنهادی هست برای اینکه اون فصل رو توی عمل خودتون تجربه کنید و یه سری منابع هم واسه علاقهمندان معرفی میشه.
و اما محتویات:
فصل اول: کی از کامپیوتر تک بردی 5 دلاری استفاده کنیم؟
توی این فصل اولش میگیم که چه دانشهایی لازم هست واسه امبدد لینوکس و اون کتابها چیاست و هر کدوم به چه دردی میخوره.
بعدش قسمتهای مختلف یک امبدد لینوکس رو معرفی میکنیم.
بعدش میگیم که کجاها بهتره از میکروکنترلر استفاده کنیم و کجاها لینوکس بهتره و کجاها ترکیبی جوابه!
آخر فصل هم یه سری نکات در مورد حداقل سیستمی که میتونه لینوکس رو اجرا کنه و انتخاب SBC (Single Board Computer) و SOM (System On Module) واسه یه محصول تجاری میگیم.
با خوندن این فصل میتونید دید کلی در مورد مزایای امبدد لینوکس و چالشهاش کسب کنید و یه سری جوابها واسه کارفرماها داشته باشید.
فصل دوم: Toolchain یا زنجیرهای از ابزارهای لازم برای ساختن همه چیز
تو این فصل اولش میگیم که تولچین چی هست، چه مدلهایی داره، شامل چه ابزارهایی هست، چه جوری میشه ساختش، اصلاً بهتره ساختش یا دانلودش کرد، انواع کتابخونههای C چی هست.
بعدش از هنر کراس کامپایل براتون میگیم تا بتونین از اکلیپس یا خیلی از IDEهای دیگه برای نوشتن کدهاتون استفاده کنین و روی سیستم خودتون فایل اجرایی رو بسازید و بریزید روی برد.
آخرش هم یه سری ابزارهای دیگه رو معرفی میکنیم که در طول پروژه لازمتون خواهد شد.
با خوندن این فصل میتونید کامپایلر خودتون واسه STM32 و AVR رو بسازید و توی اکلیپس برای جفتشون کد بزنید!
فصل سوم: Bootloader، یار قدیمی
تو این فصل میگیم که کار بوت لودر چیا هست و چرا حتما باید باشه، Das U-Boot یا به اختصار U-Boot رو معرفی میکنیم و واسه برد انتخابیمون بیلدش میکنیم.
فصل چهارم: سلام دنیای کرنل
توی این فصل میگیم که کدوم کرنل رو انتخاب کنیم، چه جوری تنظیمات رو انجام بدیم و کرنل خودمون رو بسازیم.
از Device Trees و ماژولهای کرنل میگیم و آماده کردن کرنل برای U-Boot و در آخر هم هرچی تا اینجا داشتیم رو کنار هم میذاریم تا کرنل اجرا بشه.
فصل پنجم: کیف بردت رو پر کن، حتما توش چاقوی سوئیسی بذار
تو این فصل یکم از انواع حافظهها و فایل سیستمها میگیم بعدش از داستانهای بعد از کرنل میگیم و BusyBox رو معرفی میکنیم و میگیم که محتویات روت چیا باید باشه و ساختار کلیش چیا هست.
فصل ششم: نیروهای کمی میرسند
تو این فصل دو پروژه Buildroot و Yocto رو معرفی میکنیم.
فصل هفتم: شبا که ما میخوابیم، بردمون رو بذاریم دانلود کنه
اینجا میگیم که چه جوری بردمون رو به اینترنت وصل کنیم و یه فایل رو دانلود کنیم.
فصل هشتم: ظاهری کیوتتر با کیوت (Qt)
اینجا اول یکم از System Programming میگیم و بعدش نحوه کامپایل کیوت برای بردمون و اجرای اولین مثال روی برد رو میگیم و با شما خداحافظی میکنیم.
فصل نهم: صرفا جهت Linchpinها
تو این فصل از چیزهایی میگیم که توی فصلهای قبلی به خاطر سنگینی مطلب نگفتیم، البته که در حد آشنایی خواهیم گفت. این فصل بیشتر واسه کسایی خوبه که فصلهای قبل رو کامل خوندن، تمرین کردن و مسلط هستن و الان دنبال یادگیری چیزهایی هستن که به کمکشون تبدیل شن به مهره حیاتی (Linchpin).
خوب این بود نقشه راه، ممکنه عدهای بگن هووووو چقدر طولانی و دوست داشته باشن اول وارد عمل بشن و بعد به هر مسئلهای برخوردن برن و همون مبحث رو بخونن و به قول خودشون پروژه محور برن جلو، من این روش رو برای موضوع Embedded Linux اصلا پیشنهاد نمیکنم و پیشنهادم برای دوستان عجول خوندن روزنامهوار یک کتاب کامل هست و بعد رفتن سراغ، روش پروژه محور که دوست دارن چون با یه دید کلی به موضوع بهتر میشه این کار رو انجام داد.
(چرا؟)
فصل قبل دوتا تمرین داشت، کیا انجام دادن؟
امیدوارم از کتاب کار عمیق بهره برده باشید و خروجی این دستورتون همونی باشه که باید باشه!
cat /proc/version
قبل از اینکه فصل اول منتشر بشه، یعنی تا سه، چهار روز آینده، هرکسی سرچ کنه و یه SBC یا SOM که به نظرش از بقیه بیشتر کاربرد خواهد داشت رو کامنت کنه.
اگه هم پیشنهادی نبود، خودمون یه برد انتخاب میکنیم، تا همراه هم لقمش کنیم.
قسمت بعد (کی از کامپیوتر تک بردی 5 دلاری استفاده کنیم؟) رو ازینجا میتونید مطالعه کنید، اما بهتره قبلش یه سری هم به نظرات این پایین بندازید
همه آموزش های امبدد لینوکس
منبع:سیسوگ