
اینترنت اشیا (IoT) یا Internet of Things دیگر فقط به چند حسگر ساده یا لامپ هوشمند محدود نمیشود. امروزه دوربینهای مجهز به هوش مصنوعی، تجهیزات پزشکی، سامانههای کنترل صنعتی، خودروهای متصل، کنتورهای هوشمند و حتی زیرساختهای شهری، همگی برای جمعآوری، پردازش و تبادل داده به یک سیستمعامل قابلاعتماد نیاز دارند.
در این میان، لینوکس به یکی از مهمترین پایههای نرمافزاری برای توسعه محصولات IoT تبدیل شده است. انعطافپذیری، متنباز بودن، پشتیبانی از معماریهای سختافزاری متنوع، ابزارهای قدرتمند شبکه و امکان شخصیسازی عمیق، باعث شده لینوکس در بسیاری از دروازههای ارتباطی، سرورهای لبه و دستگاههای هوشمند استفاده شود.
لینوکس در اینترنت اشیا فقط یک سیستمعامل نیست؛ بلکه مجموعهای از ابزارها، کتابخانهها، درایورها و پروژههای متنباز است که مسیر توسعه یک محصول هوشمند را از مرحله نمونهسازی تا تولید صنعتی سادهتر میکند.
لینوکس چیست و چرا در IoT اهمیت دارد؟
لینوکس یک هسته متنباز است که میتواند روی طیف گستردهای از سختافزارها اجرا شود؛ از سرورهای قدرتمند گرفته تا بردهای کوچک، تجهیزات شبکه و سیستمهای تعبیهشده.
البته در پروژههای اینترنت اشیا معمولاً با «لینوکس دسکتاپ» روبهرو نیستیم. شرکتها اغلب نسخهای سبک و سفارشی از لینوکس را برای محصول خود ایجاد میکنند. در این نسخه، اجزای غیرضروری حذف میشوند تا سیستم:
- سریعتر راهاندازی شود؛
- حافظه و پردازنده کمتری مصرف کند؛
- سطح حمله کمتری داشته باشد؛
- با سختافزار خاص محصول سازگار باشد؛
- برای مدت طولانی قابل پشتیبانی باقی بماند.
به چنین محیطی معمولاً Embedded Linux یا لینوکس تعبیهشده گفته میشود.
مهمترین دلایل استفاده از لینوکس در اینترنت اشیا
۱. متنباز بودن و کاهش وابستگی
یکی از مهمترین مزایای لینوکس، متنباز بودن آن است. توسعهدهنده میتواند کد منبع، پیکربندی سیستم و نحوه عملکرد بسیاری از اجزا را بررسی و مطابق نیاز پروژه تغییر دهد.
این ویژگی برای شرکتهای تولیدکننده تجهیزات هوشمند اهمیت زیادی دارد، زیرا وابستگی کامل به یک سیستمعامل تجاری میتواند هزینههای توسعه، مجوز و پشتیبانی را افزایش دهد.
البته متنباز بودن به معنی «رایگان و بدون مسئولیت» نیست. هر سازمان باید وضعیت مجوزهای نرمافزاری، آسیبپذیریها، وابستگیها و چرخه بهروزرسانی محصول خود را مدیریت کند.
۲. پشتیبانی از سختافزارهای متنوع
لینوکس از معماریهای مختلفی مانند موارد زیر پشتیبانی میکند:
- ARM و ARM64؛
- x86 و x86_64؛
- RISC-V؛
- برخی معماریهای اختصاصی در تجهیزات صنعتی؛
- بردهایی مانند Raspberry Pi و BeagleBone؛
- پردازندههای مجهز به شتابدهنده هوش مصنوعی.
این تنوع اجازه میدهد شرکتها یک معماری نرمافزاری مشترک را روی محصولات مختلف اجرا کنند و فقط بخشهای وابسته به سختافزار مانند درایورها، Bootloader و تنظیمات کرنل را تغییر دهند.
در سال ۲۰۲۵، همکاری رسمی RISC-V International با Yocto Project باعث شد پشتیبانی و آزمایش خودکار برای معماری RISC-V جدیتر دنبال شود. این موضوع میتواند به توسعه محصولات IoT کمهزینه، کممصرف و قابلسفارشیسازی کمک کند.
۳. پشتیبانی قوی از شبکه و ارتباطات
دستگاههای IoT بدون ارتباط شبکهای عملاً بخش زیادی از قابلیت خود را از دست میدهند. لینوکس از پروتکلها و فناوریهای گوناگونی پشتیبانی میکند، از جمله:
- Ethernet؛
- Wi-Fi؛
- Bluetooth و Bluetooth Low Energy؛
- IPv4 و IPv6؛
- MQTT؛
- CoAP؛
- HTTP و HTTPS؛
- WebSocket؛
- Thread؛
- ارتباطات سلولار؛
- VPN و تونلهای امن.
وجود این ابزارها باعث میشود یک دستگاه لینوکسی بتواند هم با حسگرهای محلی ارتباط برقرار کند و هم دادهها را به سرور، پلتفرم ابری یا سامانه مدیریت مرکزی ارسال کند.
برای مثال، یک Gateway صنعتی مبتنی بر لینوکس میتواند داده را از طریق Modbus دریافت کند، آن را به MQTT تبدیل کند و سپس با استفاده از TLS به یک سرور مرکزی بفرستد.
نقش لینوکس در معماری اینترنت اشیا
یک سامانه IoT معمولاً از چند لایه تشکیل میشود:
- لایه حسگر و دستگاه؛
- لایه ارتباطی؛
- لایه پردازش لبه؛
- لایه پلتفرم و سرویس ابری؛
- لایه نرمافزار و تحلیل داده.
لینوکس میتواند در چندین لایه حضور داشته باشد.
لایه دستگاه
در دستگاههای پیشرفتهتر، لینوکس روی برد اصلی اجرا میشود و وظایفی مانند کنترل حسگرها، مدیریت حافظه، اجرای سرویسهای محلی و ارتباط با شبکه را انجام میدهد.
برای میکروکنترلرهای بسیار کوچک، معمولاً سیستمعاملهای بلادرنگ یا Firmware اختصاصی مناسبتر هستند. بنابراین نباید تصور کرد لینوکس برای هر نوع حسگر یا تراشهای انتخاب ایدهآل است.
لایه Gateway
Gateway یا دروازه ارتباطی، دادههای چند دستگاه را جمعآوری و بین شبکه محلی و سرویس مرکزی جابهجا میکند. لینوکس برای این نقش بسیار مناسب است، زیرا میتواند همزمان:
- چند پروتکل ارتباطی را مدیریت کند؛
- دادهها را فیلتر و فشردهسازی کند؛
- ارتباط امن VPN ایجاد کند؛
- سرویسهای Docker را اجرا کند؛
- سیستم مانیتورینگ داشته باشد؛
- بهروزرسانی OTA دریافت کند.
لایه Edge Computing
در معماری Edge، داده قبل از ارسال به فضای ابری در نزدیکی منبع تولید پردازش میشود. لینوکس اجرای الگوریتمهای هوش مصنوعی، پایگاه داده محلی، پردازش تصویر و تحلیل لحظهای را ساده میکند.
برای نمونه، دوربین هوشمند میتواند به جای ارسال تمام تصاویر به سرور، روی دستگاه لینوکسی خود فقط رویدادهای مهم مانند ورود فرد، حرکت غیرعادی یا خرابی تجهیزات را تشخیص دهد.
مزایای این روش عبارتاند از:
- کاهش مصرف پهنای باند؛
- کاهش تأخیر پاسخ؛
- افزایش حریم خصوصی؛
- امکان فعالیت هنگام قطع اینترنت؛
- کاهش هزینه انتقال داده.
لینوکس و هوشمندسازی دستگاهها
هوشمندسازی اشیا زمانی اتفاق میافتد که دستگاه بتواند محیط را درک کند، داده جمعآوری کند، تصمیم بگیرد و واکنش نشان دهد. لینوکس این فرایند را با فراهمکردن محیط اجرای نرمافزارهای مختلف امکانپذیر میکند.
پردازش داده حسگرها
یک سیستم لینوکسی میتواند اطلاعات سنسورهای دما، رطوبت، فشار، حرکت، نور، گاز و لرزش را دریافت کند. سپس این دادهها را پاکسازی، دستهبندی و برای تحلیل آماده میکند.
اجرای مدلهای هوش مصنوعی
در دستگاههای Edge، مدلهای سبک هوش مصنوعی میتوانند روی لینوکس اجرا شوند. از این قابلیت در موارد زیر استفاده میشود:
- تشخیص چهره یا اشیا؛
- تشخیص خرابی ماشینآلات؛
- پیشبینی مصرف انرژی؛
- شناسایی صدای غیرعادی؛
- تشخیص آتش یا دود؛
- تحلیل رفتار کاربران.
لینوکس همچنین امکان استفاده از کتابخانهها و ابزارهایی مانند Python، TensorFlow Lite، ONNX Runtime، OpenCV و شتابدهندههای سختافزاری را فراهم میکند.
مدیریت محلی و تصمیمگیری خودکار
یک دستگاه IoT نباید همیشه برای هر تصمیم کوچک به سرور ابری وابسته باشد. لینوکس میتواند منطق تصمیمگیری را روی خود دستگاه اجرا کند.

پروژه Yocto؛ ابزار مهم ساخت لینوکس تعبیهشده
یکی از شناختهشدهترین ابزارها برای تولید سیستمعامل لینوکس تعبیهشده، Yocto Project است.
Yocto توزیع آمادهای مانند Ubuntu ارائه نمیدهد؛ بلکه مجموعهای از ابزارها و فرایندها برای ساخت یک تصویر لینوکس سفارشی فراهم میکند. شرکت تولیدکننده میتواند تعیین کند:
- چه کرنلی استفاده شود؛
- چه درایورهایی نصب شوند؛
- چه کتابخانههایی در Image قرار بگیرند؛
- سرویسها چگونه اجرا شوند؛
- پکیجها چگونه بهروزرسانی شوند؛
- فایلسیستم چگونه ساخته شود؛
- نرمافزار با چه معماری سختافزاری سازگار باشد.
ساختار ساده یک دستور برای تولید Image در Yocto میتواند چنین باشد:
bitbake core-image-minimal
برای ایجاد یک سرویس اختصاصی نیز میتوان یک Recipe تعریف کرد
SUMMARY = "IoT monitoring service"
DESCRIPTION = "A custom monitoring service for embedded Linux"
LICENSE = "MIT"
SRC_URI = "file://iot-monitor.service"
inherit systemd
SYSTEMD_SERVICE:${PN} = "iot-monitor.service"
SYSTEMD_AUTO_ENABLE = "enable"
do_install() {
install -d ${D}${systemd_system_unitdir}
install -m 0644 ${WORKDIR}/iot-monitor.service \
${D}${systemd_system_unitdir}/iot-monitor.service
}
چرا Yocto برای محصولات IoT مهم است؟
در یک محصول صنعتی، نصب یک توزیع عمومی لینوکس همیشه مناسب نیست. سیستمعامل باید کوچک، قابل پیشبینی، قابلتکرار و قابل پشتیبانی باشد. Yocto این امکان را فراهم میکند که Image نهایی دقیقاً متناسب با سختافزار و نیاز محصول ساخته شود.
در سال ۲۰۲۵، Yocto Project در همکاری با Linux Foundation Research، OpenSSF و SPDX روی موضوعاتی مانند شفافیت زنجیره تأمین نرمافزار، تولید SBOM و آمادگی در برابر قانون Cyber Resilience Act تمرکز کرد.
OpenWrt و لینوکس در تجهیزات شبکهای IoT
برای روترها، Gatewayها و تجهیزات ارتباطی، OpenWrt یکی از گزینههای محبوب مبتنی بر لینوکس است.
OpenWrt امکاناتی مانند موارد زیر را ارائه میدهد:
- مدیریت شبکه؛
- Firewall؛
- VLAN؛
- VPN؛
- کنترل پهنای باند؛
- نصب بستههای نرمافزاری؛
- مدیریت Wi-Fi؛
- اجرای سرویسهای سبک IoT.
البته استفاده از OpenWrt در یک محصول تجاری نیازمند بررسی دقیق پشتیبانی سختافزار، بهروزرسانی امنیتی، مجوزها و نگهداری بلندمدت است.
امنیت لینوکس در دستگاههای IoT
امنیت یکی از مهمترین دلایل انتخاب یا رد یک معماری IoT است. برخلاف سرورها، دستگاههای هوشمند ممکن است سالها در مکانهایی نصب باشند که دسترسی فیزیکی یا مدیریتی به آنها دشوار است.
برخی چالشهای امنیتی مهم عبارتاند از:
- استفاده از رمز عبور پیشفرض؛
- بازبودن سرویسهای غیرضروری؛
- کرنل قدیمی؛
- پکیجهای آسیبپذیر؛
- ارتباطات بدون رمزنگاری؛
- نبود سازوکار بهروزرسانی امن؛
- امکان دستکاری فیزیکی دستگاه؛
- اجرای همه سرویسها با دسترسی Root.
در سال ۲۰۲۵، Ubuntu چندین اطلاعیه امنیتی مرتبط با کرنل IoT منتشر کرد. برای نمونه، اطلاعیه USN-7671-3 در تاریخ ۴ اوت ۲۰۲۵، اصلاح آسیبپذیریهایی را در بخشهایی مانند مدیریت حافظه، Netfilter، درایورهای GPU، ACPI و سیستمهای فایل شبکه اعلام کرد.
این موضوع نشان میدهد که امنیت دستگاه IoT به نصب اولیه سیستمعامل محدود نیست و باید در تمام طول عمر محصول ادامه داشته باشد.
راهکارهای سختسازی لینوکس برای IoT
حذف سرویسهای غیرضروری
هر سرویس فعال، یک سطح حمله احتمالی ایجاد میکند. ابتدا سرویسهای در حال اجرا را بررسی کنید:
systemctl list-units --type=service --state=running
سپس سرویسهایی را که برای عملکرد دستگاه لازم نیستند غیرفعال کنید:
sudo systemctl disable --now telnet.service
اجرای برنامه با کاربر محدود
یک سرویس IoT نباید بدون دلیل با کاربر Root اجرا شود:
[Service]
User=iotapp
Group=iotapp
ExecStart=/opt/iot/bin/collector
NoNewPrivileges=true
PrivateTmp=true
ProtectSystem=strict
ProtectHome=true
این تنظیمات میتوانند اثر یک نفوذ احتمالی را محدود کنند.
استفاده از دیسک یا فایلسیستم فقطخواندنی
در بسیاری از تجهیزات، فایلسیستم Root بهصورت Read-only نصب میشود تا:
- تغییرات مخرب کاهش یابد؛
- خرابی ناشی از قطع برق کمتر شود؛
- ماندگاری Firmware افزایش پیدا کند.
برای ذخیرهسازی دادههای موقت میتوان از پارتیشن جداگانه یا مسیرهای موقتی استفاده کرد.
فعالسازی ارتباط رمزنگاریشده
ارتباط MQTT، HTTP یا API دستگاه باید تا حد امکان با TLS انجام شود:
mqtts://broker.example.com:8883
استفاده از گواهی معتبر، بررسی نام میزبان و جلوگیری از غیرفعالکردن TLS در محیط تولید ضروری است.
محدودسازی دسترسی SSH
در محیط تولید، ورود مستقیم Root از طریق SSH نباید فعال باشد. پیکربندی پیشنهادی در فایل /etc/ssh/sshd_config:
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
پس از تغییر تنظیمات:
sudo sshd -t
sudo systemctl restart ssh
این لینک یک راهنما درمورد دسترسی SSH سرورهای لینوکسی است.
بهروزرسانی OTA؛ بخش جداییناپذیر امنیت IoT
بهروزرسانی OTA یا Over-the-Air Update به دستگاه اجازه میدهد Firmware و نرمافزار خود را از راه دور بهروزرسانی کند.
یک سیستم OTA حرفهای باید ویژگیهای زیر را داشته باشد:
- امضای دیجیتال Firmware؛
- بررسی صحت بسته پیش از نصب؛
- استفاده از ارتباط رمزنگاریشده؛
- امکان بازگشت به نسخه قبلی؛
- نصب مرحلهای برای گروه کوچکی از دستگاهها؛
- ثبت گزارش موفق یا ناموفق بودن بهروزرسانی؛
- جلوگیری از Downgrade به نسخه آسیبپذیر؛
- امکان توقف انتشار در صورت مشاهده خطا.
معماری A/B یکی از روشهای رایج است. در این روش دو پارتیشن Firmware وجود دارد.
لینوکس و استاندارد Matter در خانههای هوشمند
استاندارد Matter با هدف افزایش سازگاری میان محصولات خانه هوشمند ایجاد شده است. این استاندارد کمک میکند تجهیزات برندهای مختلف، در صورت پشتیبانی از Matter، با اکوسیستمهای متفاوت ارتباط برقرار کنند.
در معماری Matter، واژههایی مانند Controller، Administrator و Thread Border Router اهمیت دارند. در بسیاری از محصولات، یک هاب یا کنترلر میتواند روی یک سیستم لینوکسی اجرا شود و ارتباط میان تجهیزات خانه، شبکه محلی و سرویسهای مدیریتی را برقرار کند.
نسخه Matter 1.4.2 در اوت ۲۰۲۵ منتشر شد و قابلیتهایی مانند موارد زیر را بهبود داد:
- راهاندازی برخی دستگاههای Wi-Fi بدون نیاز اجباری به Bluetooth LE؛
- مدیریت بهتر گواهیها و فهرستهای لغو دسترسی؛
- بهبود امنیت چندمدیره؛
- پشتیبانی بهتر از مدیریت صحنهها؛
- افزایش مقیاسپذیری شبکه خانه هوشمند.
SDK متنباز Matter نیز امکان اجرای Controller و ابزارهای آزمایشی روی لینوکس را فراهم میکند. همین موضوع لینوکس را به گزینهای مناسب برای ساخت هابهای هوشمند، پنلهای مدیریتی و Gatewayهای خانگی تبدیل کرده است.
کانتینرها و مدیریت سرویسهای IoT
در Gatewayها و سرورهای Edge، ممکن است چند سرویس مختلف همزمان اجرا شوند:
- Broker مربوط به MQTT؛
- پایگاه داده محلی؛
- سرویس جمعآوری داده؛
- داشبورد مدیریتی؛
- ماژول هوش مصنوعی؛
- سرویس بهروزرسانی؛
- عامل مانیتورینگ.
اجرای این سرویسها در کانتینر میتواند فرایند استقرار و بهروزرسانی را سادهتر کند:

با این حال، Docker راهحل کامل امنیتی نیست. موارد زیر باید رعایت شوند:
- استفاده نکردن از
privileged: trueمگر در موارد کاملاً ضروری؛ - محدودسازی Capabilityها؛
- استفاده از Imageهای رسمی و اسکنشده؛
- Pin کردن نسخه Image؛
- جلوگیری از قرار دادن رمز عبور در فایل Compose؛
- محدودسازی پورتهای قابلدسترسی؛
- بهروزرسانی منظم Imageها.
محدودیتهای استفاده از لینوکس در IoT
با وجود مزایا، لینوکس همیشه بهترین انتخاب نیست.
مصرف منابع
کرنل لینوکس و سرویسهای اطراف آن نسبت به یک سیستمعامل بلادرنگ یا Firmware ساده، منابع بیشتری مصرف میکنند.
پیچیدگی نگهداری
در سیستمهایی که زمان پاسخ دقیق و قطعی اهمیت دارد، Linux معمولی ممکن است کافی نباشد. در این شرایط میتوان از:
- RT Linux؛
- سیستمعاملهای بلادرنگ؛
- پردازنده کمکی؛
- معماری ترکیبی Linux و RTOS
استفاده کرد.
خطر رهاشدن پروژه
یک محصول IoT ممکن است ده سال در میدان باقی بماند، اما نسخههای نرمافزاری و زنجیره وابستگی آن سریعتر تغییر میکنند. اگر از ابتدا برنامه پشتیبانی بلندمدت طراحی نشود، دستگاه در سالهای آینده به یک تهدید امنیتی تبدیل خواهد شد.
مقایسه لینوکس با RTOS و سیستمعاملهای سبک

انتخاب نهایی باید بر اساس توان پردازنده، حافظه، نیاز بلادرنگ، سطح امنیت، روش بهروزرسانی و طول عمر محصول انجام شود.
آینده لینوکس در توسعه اینترنت اشیا
روندهای فعلی نشان میدهند که نقش لینوکس در IoT به سه حوزه اصلی گسترش پیدا میکند
حرکت از Cloud به Edge
با افزایش اهمیت حریم خصوصی و پاسخگویی سریع، پردازش بیشتری در نزدیکی دستگاه انجام خواهد شد. لینوکس محیط مناسبی برای اجرای پایگاه داده محلی، سرویسهای تحلیل و مدلهای هوش مصنوعی در Edge است.
تمرکز بیشتر بر زنجیره تأمین نرمافزار
تولیدکنندگان باید بدانند هر بسته، کتابخانه و قطعه کد از کجا وارد Firmware شده است. تولید SBOM، امضای نرمافزار و ثبت فرایند ساخت، به بخش ضروری توسعه محصولات هوشمند تبدیل میشود.
رشد معماریهای باز مانند RISC-V
RISC-V میتواند گزینههای بیشتری برای طراحی چیپها و تجهیزات کممصرف ایجاد کند. پشتیبانی رسمیتر در پروژههایی مانند Yocto نیز مسیر استفاده از این معماری را در محصولات صنعتی و IoT هموارتر میکند.
افزایش اهمیت امنیت در تمام چرخه عمر
امنیت دیگر مرحلهای جدا از توسعه نیست. از طراحی برد و Bootloader تا انتشار Firmware و پایان عمر محصول، تمام مراحل باید با رویکرد امنیتی برنامهریزی شوند.