نرم افزار جاسازی شده، یک تکه از نرم افزار است که در سخت افزار و یا دستگاه های غیر از کامپیوتر شخصی جاسازی شده است. به طور خاص برای سخت افزار خاصی که در آن اجرا می شود نوشته شده است و معمولا دارای محدودیت های پردازش و حافظه به دلیل قابلیت محدود محاسبات دستگاه است. نمونه هایی از نرم افزار جاسازی شده شامل مواردی هستند که در دستگاه های GPS، روبات های کارخانه، برخی از ماشین حساب ها و حتی ساعت های هوشمند مدرن یافت می شود.
نرم افزار جاسازی شده چیست؟
نرم افزار جاسازی شده شبیه به سیستم عامل است، زیرا آنها معمولا به همان عمل می پردازند. با این حال، نوع خاصی از نرم افزار جاسازی شده است که در حافظه غیر قابل ذخیره (مانند ROM یا EPROM) نوشته شده است که به آسانی قابل تغییر نیست. از این رو نام "firm" - و در درجه اول برای اجرا یا بوت شدن دستگاه در مقابل، نرم افزار جاسازی شده برای عملکرد کلی دستگاه استفاده می شود.
نرم افزار جاسازی شده می تواند بسیار ساده باشد، مانند استفاده از آن برای کنترل نور در خانه ها. همچنین می تواند بر روی یک میکروکنترلر 8 بیتی با تنها چند کیلوبایت حافظه اجرا شود و به کمک آیوتی می آید یا می تواند بسیار پیچیده باشد. مانند نرم افزار که تمام اجزای الکترونیکی را از یک ماشین هوشمند مدرن، با کنترلهای آب و هوایی و همچنین کنترل های ناوبری اجرا می کند. نرم افزار جاسازی شده پیچیده نیز می تواند در سیستم های هواپیمایی، در سیستم های پیچیده پرواز با سیم استفاده شده در هواپیماهای جنگنده و حتی در سیستم های هدایت موشکی یافت شود.
تفاوت با نرم افزار کاربردی
تفاوت اصلی بین نرم افزار جاسازی شده و نرم افزار کاربردی این است که معمولا به یک دستگاه خاص متصل می شود، که به عنوان سیستم عامل خود عمل می کند و محدودیت های مرتبط با مشخصات دستگاه است، بنابراین به روز رسانی ها و افزودنی ها به شدت کنترل می شود، در حالی که نرم افزار کاربردی این قابلیت را در یک رایانه و در بالای یک سیستم عامل کامل اجرا می کنند، بنابراین محدودیت های کمتری از لحاظ منابع وجود دارد.
چالش
نرم افزار جاسازی شده تعریف شده توسط یک سیستم سخت افزاری بزرگتر است. این سیستم ها نه تنها در زمان واقعی کار می کنند بلکه باید در هر شرایطی در طول زمان مشخص طراحی شده باشند اما باید با منابع محدود مانند فضای حافظه کوچک، قابلیت پردازش اطلاعات محدود یا مصرف کم انرژی نیز کار کنند. نرم افزار جاسازی شده نیز باید به طیف گسترده ای از تغییرات در محیط آن برسد. پردازنده ها، سنسورها و قطعات سخت افزاری در طول زمان تغییر می کنند، در حالی که نرم افزار تقریبا یکسان باقی می ماند. علاوه بر این، نرم افزار نیاز به قابلیت حمل، استقلال، انعطاف پذیری و سازگاری دارد.
- قابلیت اطمینان بسیار مهم است. رفتار غیر منتظره از یک سیستم جاسازی شده می تواند به طور جدی به محیط عملیاتی آن آسیب برساند. از آنجا که کاربران نهایی خواستار رفتارهای طولانی مدت از سیستم های جاسازی شده می شوند، نرم افزار جاسازی شده باید بدون نیاز به خدمات ده ساله کار کند.
- با توجه به ارتباط نزدیکی نرم افزار جاسازی شده با محیط های بحرانی و خطرات تهدید کننده زندگی، ایمنی نیز یک نیاز کلیدی است. همانطور که اندازه و پیچیدگی نرم افزار جاسازی شده رشد می کند، استانداردهای مورد استفاده در فرآیند توسعه نرم افزار باید با وجود فشار شدید هزینه ها به طور مداوم بهبود بخشیده شود.
- امنیت بیشتر به عنوان "اینترنت اشیا" معنا می یابد به این معنی که سیستم های جاسازی شده به طور گسترده ای مورد استفاده قرار می گیرند و بیشتر به یکدیگر متصل می شوند. به عنوان دستگاه های روزمره مانند ماشین لباسشویی و یخچال و فریزر شامل اتصال به عنوان یک ویژگی استاندارد از آیوتی، است که در معرض سطوح جدید ناامنی قرار می گیرند و ایده های جدید برای کمک به خرابکاری نرم افزارهای مخرب و هک کردن تهدیدها مورد نیاز است.
مزایا
- نرم افزار جاسازی شده، تنوع پذیری، قابلیت تنظیم، گسترش پذیری و تغییرپذیری محصولات روزمره را افزایش می دهد و همچنین امکان عملکرد متنوعی را فراهم می آورد. در حال حاضر، بخش اساسی بسیاری از چیزهایی است که ما در مورد زندگی روزمره به آن ها نیازمندیم.
- در آینده، نرم افزار جاسازی شده در همه چیز خانه هوشمند شما، ماشین هوشمند شما، زیرساخت های ارتباطی، ابزار پزشکی و ایمپلنت و سیستم های کنترل همه جانبه حضور خواهد داشت. فن آوری های مرتبط با انرژی جدید، کارایی انتقال جریان الکتریکی را افزایش می دهند و راه های فوری و موثر برای رسیدگی به نیازهای انرژی و اقلیمی را فراهم می کنند.
- سیستمهای جاسازی شده توسط سخت افزار محاسباتی که از آنها استفاده می شود، دیگر تعریف نخواهند شد. در عوض، آنها برای انجام هر کاری برای دستیابی به اهداف چندگانه و تغییری، چه بر روی میکرو کنترلر، یک ریزپردازنده، پردازنده سیگنال، یک مجموعه بیولوژیکی، و یا هر دستگاه منطقی قابل برنامه ریزی، طراحی می شوند.
هر چه کیفیت زندگی بالاتر رود، استانداردهای زندگی بالاتری را خواستاریم و در سراسر سیاره ایجاد می کنیم، و بیشتر ما از امنیت و ایمنی تقاضا می کنیم، در نتیجه ما نیاز بیشتری به نرم افزار جاسازی شده داریم.