از گذشته رنج وسیعی از سخت افزارها اعم از سوپر کامپیوترها، کامپیوترهای شخصی و ... در دسترس بوده است. شاید بتوان گفت ساده ترین نوع پردازنده هایی که کار ساده و مشخصی را انجام می دادند میکرو کنترلرها بودند. یک میکروکنترلر دارای فرکانس کاری نسبتا پایین و حافظه ی اندک است. از این رو عملا تصور اجرای مدل سیستم عاملی بر روی آن محال خواهد بود. اما با گذشت زمان و پیشترفت تکنولوژی امروزه چیپ هایی در دسترس هستند که می توان به کمک آن ها یک سیستم خیلی کوچک و با مدل سیستم عامل را داشت. مثال بارز آن گوشی های هوشمند اندرویدی است. در واقع گوشی های نسل قدیم میکروکنترلری بودند ولی گوشی های نسل جدید دارای سیستم عامل بوده و اصطلاحا یک سیستم امبدد هستند.
هر سیستم امبدد اجزای متعددی دارد ولی شاید بتوان سه مورد از مهمترین این اجزا را به صورت زیر برشمرد:
۱- بوت لودر: که وظیفه ی اصلی آن مقدار دهی اولیه ی سخت افزار و اجرای هسته ی سیستم عامل است. (شاید مقدار دهی اولیه ی سخت افزار به نظرتان مسخره بیاید ولی جالب است بدانید که سیم کشی های داخلی سخت افزار به اون خشکی هایی که ما فکر می کنیم نیست و باید به آن بفهمانیم که کدام مالتی پلکسور به کدام سخت افزار وصل شود. مثلا شما می توانید پورت های سریال را کم و زیاد کنید و ... که با این کار سیستم عامل IRQ های خود را تغییر می دهد). مشهورترین بوت لودر ها در فضای لینوکس grub و uboot هستند.
۲- هسته ی سیستم عامل: که وظیفه ی مدیریت سخت افزار، زمان بندی اجرای برنامه ها و پروسه ها و سرویس ها، کنترل سطوح دسترسی و ... را بر عهده دارد. پرکاربردترین هسته ی سیستم های امبدد لینوکس است.
۳- روت فایل سیستم: فایل سیستمی که مکانیزم مدیریت فایل ها و برنامه های اجرایی را در اختیار دارد. پس از لوود شدن هسته ی سیستم عامل، روت فایل سیستم لوود می شود.