رزبری پای گنو/لینوکس

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

نوشته شده توسط معین صابری

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

 


تعریف سیستم عامل


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

تعریف سیستم عامل - دیجی اسپارک

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

 


سیستم عامل‌های رایگان


در صنعت نرم افزار یا به عبارت بهتر، صنعت سیستم عامل، تعدای سیستم عامل به صورت غیر رایگان، نظیر ویندوز و تعداد دیگری به صورت رایگان وجود دارند. یکی از معروف ترین و پرکاربردترین سیستم عامل های رایگان، سیستم عامل لینوکس است. این سیستم عامل در دهه ۹۰ میلادی توسط لینوس تروالدز توسعه یافت. امروزه این سیستم عامل ابزاری مهمی در تشخیص هک و نفوذ شبکه، سرورها، سیستم های سخت افزاری و… به شمار می رود.

سیستم عامل لیونکس Linux - دیجی اسپارک

 

سیستم عامل لینوکس، دارای توزیع های مختلفی است. از این توزیع ها می توان به ابونتو، CENTOS، رد هت، کالی لینوکس و… اشاره نمود. هریک از این سیستم ها دارای کاربرد مخصوص به خود هستند. به عنوان مثال، سیستم عامل ابونتو برای کاربردهای عمومی، سیستم عامل CENTOS معمولا برای کاربردهای دانشگاهی و کالی لینوکس برای تست نفوذ شبکه به کار می رود.

انواع سیستم عامل ها - دیجی اسپارک

 

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

سیستم عامل رزبین مخصوص برد رزبری پای - دیجی اسپارک

 


سیستم عامل امبدد Embedded Systems


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

بردهای امبدد سیستم ها - دیجی اسپارک

 

از سیستم عامل های معروف میکروکنترلرها، می توان به سیستم عامل میکروسی uc اشاره نمود. این سیستم عامل که برای بردهای مبتنی بر تراشه آرم توسعه یافته، با بردهای آردویینو مبتنی بر میکروکنترلر آرم، سازگاری دارد. به عنوان مثال، با توجه به سازگاری این سیستم عامل با پردازنده آرم سری CORTEX M3، این سیستم عامل قابلیت اجرا در برد آردویینو سری DUE را داراست.

سیستم عامل میکروسی uc - دیجی اسپارک

یکی دیگر از سیتم عامل های محبوب و مخصوص سیستم های امبدد، سیستم عاملی با نام  Free RTOS است. این سیستم عامل که به وفور در پروژه های مبتنی بر میکروکنترلر استفاده می شود، در پردازنده محبوب ESP8266 نیز تعبیه شده است. به عبارت دیگر، ماژول های وای فای ESP8266 و ESP32، از این سیستم عامل جهت مدیریت برنامه کاربر و قسمت شبکه، استفاده می نمایند. در قسمت بعدی، به نحوه اجرای برنامه در یک سیستم عامل و فواید و کاربردهای آن، می پردازیم.

 


نحوه اجرای برنامه در سیستم عامل و اثر آن در کاهش هزینه


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

اجرای برنامه بردهای الکترونیکی امبدد روی سیستم عامل - دیجی اسپارک

 

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

الگوریتم راند رابین - دیجی اسپارک

مطابق شکل فوق، کوانتوم برابر با ۲۰ در نظر گرفته شده است. زمان اجرای هر برنامه یا پروسه نیز، رو به روی آن نوشته شده است. برنامه P1 به ۵۳ واحد زمانی جهت اجرا، نیاز دارد. بنابراین در ابتدا ۲۰ واحد زمانی به اجرای این برنامه اختصاص داده می شود. در ادامه برنامه P2 تنها به ۱۷ واحد زمانی نیاز دارد. بنابراین، این برنامه یکبار اجرا شده و کنار می رود. پس از این مرحله، برنامه های ۳ و ۴ نیز برای مدت ۲۰ واحد زمانی اجرا خواهند شد. سپس به سراغ P1 رفته و مابقی زمان مورد نیاز آن به مدت ۲۰ واحد زمانی اجرا خواهد شد. دقت داشته باشید که P1 برای اجرای کامل به ۵۳ واحد زمانی نیاز خواهد داشت. بنابراین با اجرای ۲۰ واحد زمانی دوم، که مجموعا ۴۰ خواهد شد، برای اجرای کامل، به ۱۳ واحد زمانی نیاز خواهیم داشت. این روند دقیقا برای برنامه های P3 و P4 تکرار شده تا اجرای همه برنامه ها، به پایان برسد.

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

 


جمع بندی


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

 

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

 

درباره نویسنده

معین صابری

کارشناسی ارشد رشته معماری سیستم های کامپیوتری

مالي که ز تو کس نستاند، علم است
حرزي که تو را به حق رساند، علم است
جز علم طلب مکن تو اندر عالم
چيزي که تو را ز غم رهاند، علم است
(شیخ بهایی)

تبادل نظر و رفع عیب با ثبت دیدگاه

۱۰ دیدگاه

  • با سلام
    من دوتا سوال دارم. من می خواهم یک برد طراحی کنم.
    ۱- می خواهم روی سخت افزار طراحی شده سیستم عامل انروید نصب کنم.
    ۲- چه میکرو پروسسوری انتخاب کنم.
    اصولا باید میکروپروسسور چه ویژگی های باید باشد تا بتواند سیستم عامل روی ان نصب شود.

    • سلام
      برای نصب سیستم عامل اندروید، باید حداقل مشخصات پردازنده را در نظر بگیرید. به عنوان مثال پردازنده ۳۲ بیت با فرکانس ۱٫۴ گیگا هرتز مناسب پردازش است. در طرف دیگر، علاوه بر این، باید میزان حافظه رم و هارد دیسک (یا کارت SD) مناسب با سیستم عامل هم انتخاب شود. در کل پیشنهاد می کنم از بردهای رزبری پای برای این مورد استفاده کنید. به عنوان مثال در لینک زیر انو.اع مختلفی از این بردها را می توانید ببینید. این بردها به صورت آماده و بدون نیاز به طراحی مجدد، مناسب کار شما هستند:
      لینک بردهای رزبری پای، کلیک کنید

  • سلام مهندس خسته نباشید بسیار عالی بود لذت بردم.
    میخواستم بدونم چجوری میشه برای بعضی از میکرو کنترلر ها مثل رزبری پای pico نمیشه سیستم عمل ریخت ولی براس بعضی مثل آردوینو DUE میشه دلیل این چیه؟؟؟ آیا بستگی به حافظه و مشخصات دیگه اش دارد؟؟؟ یا بستگی به تولد کننده اش دارد؟؟؟

    • سلام و متشکرم از لطف شما
      سیستم عامل آردوینو DUE سیستم عامل FREE RTOS است. این سیستم عامل با سیستم عامل های معمولی مانند ویندوز، آنچنان که می دانید تفاوت دارد. بحث سیستم عامل هم دقیقا به مشخصات فنی پردازنده باز می گردد. اما گویا می توان از FREE RTOS بر روی رزبری پیکو هم بهره برد:
      https://www.youtube.com/watch?v=jCZxStjzGA8