نرم افزار جاسازی شده نوعی نرم افزار اختصاصی است که عملکرد دستگاه ها و سیستم های سخت افزاری را کنترل، نظارت و مدیریت می کند. بر خلاف نرم افزارهای کامپیوتری همه منظوره که بر روی رایانه های شخصی و دستگاه های تلفن همراه اجرا می شود، نرم افزار تعبیه شده به شکلی محدود و اختصاصی عمل می کند و جزء سخت افزاری است که کنترل می کند.
پیدایش و تکامل نرم افزارهای جاسازی شده
مفهوم سیستم های تعبیه شده و نرم افزارهای مرتبط به دهه 1960 بازمی گردد. کامپیوتر هدایت آپولو که توسط چارلز استارک دریپر در MIT مهندسی شد و در ماموریت های فرود آپولو روی ماه استفاده شد، اولین سیستم جاسازی شده در نظر گرفته می شود. نرم افزار جاسازی شده در سال 1971، زمانی که مهندس اینتل، تد هاف، اولین ریزپردازنده، اینتل 4004 را تولید کرد، جهشی بزرگ داشت که امکان گسترش سیستم های جاسازی شده را فراهم کرد. اولین اشاره به نرم افزارهای جاسازی شده به خودی خود در ادبیات فنی در اواسط دهه 1980 ظاهر شد، همزمان با افزایش کاربردهای میکروکنترلر.
یک فرو رفتن عمیق در نرم افزارهای جاسازی شده
نرم افزار تعبیه شده برای طیف گسترده ای از سیستم ها از لوازم خانگی، تجهیزات پزشکی، کنترل کننده های صنعتی گرفته تا خودروها و هواپیماها جدایی ناپذیر است. برای انجام یک کار یا وظایف خاص در یک سیستم بزرگتر، اغلب با محدودیت های محاسباتی بلادرنگ، طراحی شده است. از آنجایی که "جاسازی شده" است، الزامات سختگیرانه ای برای قابلیت اطمینان، کارایی و فشرده بودن دارد.
برخلاف برنامههای دسکتاپ سنتی، که امکان اجرای برنامههای مختلف را بر روی رایانه شخصی فراهم میکنند، برنامههای کاربردی نرمافزاری تعبیهشده معمولاً عملکردی منحصر به فرد دارند. آنها در لحظه روشن شدن دستگاه اجرا می شوند و تمام منابع دستگاه را در انحصار خود در می آورند.
این نرمافزار اغلب به زبانهای سطح بالا مانند C، C++ یا Python نوشته میشود، اگرچه زبان اسمبلی همچنان میتواند برای پاسخهای سریع یا بلادرنگ استفاده شود. به طور معمول، نرم افزار بر روی یک سیستم متفاوت (میزبان) برای اجرا بر روی دستگاه تعبیه شده هدف به صورت متقابل کامپایل می شود.
نرم افزار The Gears Behind Embedded
نرم افزارهای جاسازی شده با سیستم های تعبیه شده، ریزپردازنده ها یا میکروکنترلرها، همراه با دستگاه های جانبی، هم افزایی دارند. یک ریزپردازنده یا میکروکنترلر نرم افزار را اجرا می کند و از طریق وسایل جانبی مانند حسگرها، محرک ها و رابط های ارتباطی با دنیای فیزیکی تعامل دارد.
این نرم افزار از یک توالی از پیش تعیین شده از عملیات کدگذاری شده در طول ایجاد خود پیروی می کند. بسته به پیچیدگی، ممکن است از یک سیستم عامل بلادرنگ (RTOS) استفاده کند یا ممکن است بدون سیستم عامل از فلز برهنه استفاده کند.
ویژگی های کلیدی نرم افزار جاسازی شده
نرم افزار تعبیه شده دارای چند ویژگی مهم است که آن را از سایر انواع نرم افزار متمایز می کند:
-
عملیات بلادرنگ: بسیاری از سیستم های تعبیه شده نیازمندی های بلادرنگ هستند. نرم افزار باید به رویدادها یا ورودی ها در یک زمان ثابت پاسخ دهد.
-
ثبات و قابلیت اطمینان: از آنجایی که اغلب عملکردهای حیاتی را انجام می دهند، باید برای مدت طولانی بدون خرابی کار کنند.
-
کارایی حافظه: سیستم های تعبیه شده اغلب حافظه محدودی دارند و نرم افزار نیاز به استفاده کم از منابع دارند.
-
بهره وری قدرت: بسیاری از سیستمهای تعبیهشده با باتری کار میکنند و نیاز به استفاده کارآمد از انرژی دارند.
-
عملکرد خاص: نرم افزار تعبیه شده برای انجام وظایف خاص طراحی شده است که در تضاد با نرم افزارهای همه منظوره است.
انواع نرم افزارهای تعبیه شده
نرم افزارهای جاسازی شده را می توان به طور کلی بر اساس جنبه های مختلف طبقه بندی کرد. در اینجا یک نمایش جدولی است:
بر اساس عملکرد | بر اساس پیچیدگی | بر اساس عملکرد |
---|---|---|
نرم افزار کنترل | ساده (تک کار) | به موقع |
نرم افزار مانیتورینگ | متوسط (چند وظیفه ای) | غیر واقعی |
نرم افزار پردازش داده | مجتمع (بر اساس RTOS) | – |
استفاده، مشکلات و راه حل های نرم افزارهای جاسازی شده
نرم افزارهای تعبیه شده دارای کاربردهای متعددی هستند، از لوازم مورد استفاده روزانه، سیستم های سرگرمی، تجهیزات پزشکی، اتوماسیون صنعتی، سیستم های حمل و نقل، مخابرات گرفته تا کاربردهای حیاتی هوافضا.
با این حال، طراحی و پیادهسازی نرمافزار تعبیهشده چندین چالش از جمله منابع محدود، وابستگیهای سختافزاری، الزامات بلادرنگ، و استانداردهای ایمنی و امنیتی دقیق را به همراه دارد. برای کاهش این موارد، مهندسان از استراتژیهایی مانند طراحی دقیق سیستم، الگوریتمهای کارآمد، آزمایشهای دقیق و فرآیندهای اعتبارسنجی استفاده میکنند.
مقایسه با اصطلاحات مشابه
مدت، اصطلاح | شرح |
---|---|
سیستم عامل | نوعی نرم افزار تعبیه شده که در حافظه های غیر فرار مانند رام یا فلش مموری ذخیره می شود. کنترل سطح پایینی را برای سخت افزار خاص دستگاه فراهم می کند. |
نرم افزار سیستم های بلادرنگ | نرم افزاری که قابلیت خاصی را در یک محدودیت زمانی خاص تضمین می کند. اکثر سیستم های تعبیه شده حیاتی از این استفاده می کنند. |
سیستم نرم افزار | نرم افزار مسئول مدیریت و کنترل سخت افزار کامپیوتر، فعال کردن نرم افزارهای کاربردی. این شامل سیستم عامل ها، درایورهای دستگاه و برنامه های کاربردی است. این نرم افزار گسترده تر از نرم افزارهای جاسازی شده است، زیرا می تواند هم همه منظوره یا هم تعبیه شده باشد. |
چشم اندازها و فناوری های آینده نرم افزارهای جاسازی شده
آینده نرم افزارهای تعبیه شده با گرایش هایی مانند اینترنت اشیا (اینترنت اشیا)، هوش مصنوعی و یادگیری ماشینی، سیستم های فیزیکی-سایبری و محاسبات لبه شکل می گیرد. پیشرفتها در این زمینهها منجر به سیستمهای تعبیهشده بهطور فزایندهای هوشمند، مستقل و متصل خواهد شد.
سرورهای پروکسی و نرم افزارهای جاسازی شده
سرورهای پروکسی می توانند با سیستم های تعبیه شده به روش های مختلف تعامل داشته باشند. آنها می توانند به دستگاه های تعبیه شده کمک کنند تا به طور ایمن به اینترنت متصل شوند، آنها را در برابر قرار گرفتن مستقیم در معرض شبکه های خارجی، ترافیک تعادل بار و داده های حافظه پنهان برای بازیابی سریع تر محافظت کنند. در نتیجه، نرمافزار تعبیهشده باید برای رسیدگی به این جنبهها، که اغلب شامل برنامهنویسی شبکه و عناصر امنیت سایبری است، طراحی شود.