logo
بنر بنر

جزئیات وبلاگ

Created with Pixso. صفحه اصلی Created with Pixso. وبلاگ Created with Pixso.

نگاهی عمیق به OpenWrt: توسعه، ویژگی ها، مزایا و معایب

نگاهی عمیق به OpenWrt: توسعه، ویژگی ها، مزایا و معایب

2025-01-08

پیشینه توسعه

پس از انتشار کد منبع WRT54G/GS توسط Linksys، نسخه‌های مختلفی از سیستم‌عامل به صورت آنلاین برای بهبود عملکردهای اصلی ظاهر شدند. بیشتر این سیستم‌عامل‌ها از ۹۹٪ کد منبع Linksys استفاده می‌کردند و تنها ۱٪ کد اضافی داشتند. هر سیستم‌عامل برای بازارهای خاصی طراحی شده بود که دو اشکال داشت. اولاً، ادغام نقاط قوت نسخه‌های مختلف سیستم‌عامل دشوار بود. ثانیاً، این نسخه‌ها به تدریج از توزیع‌های رسمی لینوکس دورتر شدند.

OpenWrt رویکرد متفاوتی را اتخاذ کرد. این پروژه از ابتدا شروع شد و به تدریج اجزای نرم‌افزاری را برای نزدیک شدن به عملکرد سیستم‌عامل Linksys اضافه کرد. موفقیت OpenWrt در سیستم فایل قابل نوشتن آن نهفته است که به توسعه‌دهندگان اجازه می‌دهد پس از هر تغییر، از کامپایل مجدد خودداری کنند و آن را بیشتر شبیه یک سیستم کامپیوتری کوچک لینوکسی می‌کند.

 

تاریخچه توسعه

پروژه OpenWrt در ژانویه ۲۰۰۴ آغاز شد. اولین نسخه بر اساس کد منبع GPL ارائه شده توسط Linksys و پروژه buildroot در uclibc ساخته شد. این نسخه به عنوان نسخه "پایدار" برچسب‌گذاری شد و بسیاری از پروژه‌ها هنوز هم امروز از آن استفاده می‌کنند، که Freifunk - Firmware و Sip@Home نمونه‌های نسبتاً شناخته شده‌ای هستند.

در اوایل سال ۲۰۰۵، برخی توسعه‌دهندگان جدید به پروژه پیوستند. چند ماه بعد، آنها اولین نسخه "آزمایشی" را منتشر کردند. برخلاف نسخه‌های قبلی، این نسخه تقریباً به طور کامل کد منبع GPL Linksys را کنار گذاشت، buildroot2 را به عنوان فناوری اصلی پذیرفت و OpenWrt را کاملاً ماژولار کرد. OpenWrt از کد منبع هسته لینوکس منتشر شده رسمی (۲.۴.۳۰) به همراه برخی پچ‌ها و درایورهای شبکه استفاده کرد. تیم توسعه همچنین ابزارهای رایگان زیادی را به OpenWrt اضافه کرد که می‌توانستند مستقیماً تصاویر را در فلش (mtd) بنویسند، توابع بی‌سیم را پیکربندی کنند و توابع سوئیچینگ VLAN را فعال کنند. این نسخه "White Russian" نامگذاری شد و نسخه ۱.۰ در پایان سال ۲۰۰۵ اعلام شد.

 

ویژگی‌های سیستم

OpenWrt یک سیستم لینوکس تعبیه شده بسیار ماژولار و خودکار است که دارای اجزای شبکه قدرتمند و قابلیت توسعه عالی است. این سیستم اغلب در دستگاه‌های کنترل صنعتی، تلفن‌ها، ربات‌های کوچک، خانه‌های هوشمند، روترها و دستگاه‌های VOIP کاربرد دارد. در همین حال، بیش از ۱۰۰ بسته نرم‌افزاری از پیش کامپایل شده را ارائه می‌دهد و این تعداد به طور مداوم در حال افزایش است. علاوه بر این، OpenWrt SDK فرآیند توسعه نرم‌افزار را ساده می‌کند.

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

 

مزایا

 

برای کسانی که درک مشخصی از سیستم لینوکس دارند و مایل به مطالعه یا کار با لینوکس تعبیه شده هستند، OpenWrt یک انتخاب ایده‌آل است. OpenWrt پشتیبانی عالی از معماری‌های مختلف پردازنده از جمله ARM، X86، PowerPC و MIPS را ارائه می‌دهد. با بیش از ۳۰۰۰ بسته نرم‌افزاری که کل سیستم را از ابزارها، هسته لینوکس، بسته‌های نرم‌افزاری تا سیستم فایل ریشه پوشش می‌دهد، کاربران می‌توانند به سرعت و به راحتی یک سیستم تعبیه شده با توابع خاص را سفارشی کنند تا با استفاده از دستور "make"، سیستم‌عامل تولید کنند.

 

به طور کلی، فرآیند توسعه لینوکس تعبیه شده، صرف نظر از اینکه شامل پردازنده‌های ARM، PowerPC یا MIPS باشد، معمولاً شامل مراحل زیر است:

 

  1. ایجاد یک محیط کامپایل متقابل لینوکس؛

  2. ساخت یک Bootloader؛

  3. انتقال هسته لینوکس؛

  4. ایجاد Rootfs (سیستم فایل ریشه)؛

  5. نصب درایورها؛

  6. نصب نرم‌افزار.

 

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

 

معایب

 

  1. به دلیل تفاوت در معماری هسته CPU، بسیاری از برنامه‌ها هنگام انتقال به OpenWrt اغلب از کار می‌افتند.

  2. از آنجایی که کد منبع درایورهای ماژول سخت‌افزار ADSL باز نیست، ماژول‌های ADSL بسیاری از روترهای بی‌سیم یکپارچه ADSL نمی‌توانند کار کنند و در نتیجه فاقد عملکرد هستند (به جز RG100A و DB120).

  3. از آنجایی که OpenWrt یک سیستم‌عامل روتر منتشر شده رسمی نیست، استفاده از آن (فلش کردن سیستم‌عامل) دشوار است. علاوه بر این، ماهیت مبتنی بر لینوکس آن منجر به یک مانع ورود نسبتاً بالا برای OpenWrt می‌شود.

بنر
جزئیات وبلاگ
Created with Pixso. صفحه اصلی Created with Pixso. وبلاگ Created with Pixso.

نگاهی عمیق به OpenWrt: توسعه، ویژگی ها، مزایا و معایب

نگاهی عمیق به OpenWrt: توسعه، ویژگی ها، مزایا و معایب

پیشینه توسعه

پس از انتشار کد منبع WRT54G/GS توسط Linksys، نسخه‌های مختلفی از سیستم‌عامل به صورت آنلاین برای بهبود عملکردهای اصلی ظاهر شدند. بیشتر این سیستم‌عامل‌ها از ۹۹٪ کد منبع Linksys استفاده می‌کردند و تنها ۱٪ کد اضافی داشتند. هر سیستم‌عامل برای بازارهای خاصی طراحی شده بود که دو اشکال داشت. اولاً، ادغام نقاط قوت نسخه‌های مختلف سیستم‌عامل دشوار بود. ثانیاً، این نسخه‌ها به تدریج از توزیع‌های رسمی لینوکس دورتر شدند.

OpenWrt رویکرد متفاوتی را اتخاذ کرد. این پروژه از ابتدا شروع شد و به تدریج اجزای نرم‌افزاری را برای نزدیک شدن به عملکرد سیستم‌عامل Linksys اضافه کرد. موفقیت OpenWrt در سیستم فایل قابل نوشتن آن نهفته است که به توسعه‌دهندگان اجازه می‌دهد پس از هر تغییر، از کامپایل مجدد خودداری کنند و آن را بیشتر شبیه یک سیستم کامپیوتری کوچک لینوکسی می‌کند.

 

تاریخچه توسعه

پروژه OpenWrt در ژانویه ۲۰۰۴ آغاز شد. اولین نسخه بر اساس کد منبع GPL ارائه شده توسط Linksys و پروژه buildroot در uclibc ساخته شد. این نسخه به عنوان نسخه "پایدار" برچسب‌گذاری شد و بسیاری از پروژه‌ها هنوز هم امروز از آن استفاده می‌کنند، که Freifunk - Firmware و Sip@Home نمونه‌های نسبتاً شناخته شده‌ای هستند.

در اوایل سال ۲۰۰۵، برخی توسعه‌دهندگان جدید به پروژه پیوستند. چند ماه بعد، آنها اولین نسخه "آزمایشی" را منتشر کردند. برخلاف نسخه‌های قبلی، این نسخه تقریباً به طور کامل کد منبع GPL Linksys را کنار گذاشت، buildroot2 را به عنوان فناوری اصلی پذیرفت و OpenWrt را کاملاً ماژولار کرد. OpenWrt از کد منبع هسته لینوکس منتشر شده رسمی (۲.۴.۳۰) به همراه برخی پچ‌ها و درایورهای شبکه استفاده کرد. تیم توسعه همچنین ابزارهای رایگان زیادی را به OpenWrt اضافه کرد که می‌توانستند مستقیماً تصاویر را در فلش (mtd) بنویسند، توابع بی‌سیم را پیکربندی کنند و توابع سوئیچینگ VLAN را فعال کنند. این نسخه "White Russian" نامگذاری شد و نسخه ۱.۰ در پایان سال ۲۰۰۵ اعلام شد.

 

ویژگی‌های سیستم

OpenWrt یک سیستم لینوکس تعبیه شده بسیار ماژولار و خودکار است که دارای اجزای شبکه قدرتمند و قابلیت توسعه عالی است. این سیستم اغلب در دستگاه‌های کنترل صنعتی، تلفن‌ها، ربات‌های کوچک، خانه‌های هوشمند، روترها و دستگاه‌های VOIP کاربرد دارد. در همین حال، بیش از ۱۰۰ بسته نرم‌افزاری از پیش کامپایل شده را ارائه می‌دهد و این تعداد به طور مداوم در حال افزایش است. علاوه بر این، OpenWrt SDK فرآیند توسعه نرم‌افزار را ساده می‌کند.

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

 

مزایا

 

برای کسانی که درک مشخصی از سیستم لینوکس دارند و مایل به مطالعه یا کار با لینوکس تعبیه شده هستند، OpenWrt یک انتخاب ایده‌آل است. OpenWrt پشتیبانی عالی از معماری‌های مختلف پردازنده از جمله ARM، X86، PowerPC و MIPS را ارائه می‌دهد. با بیش از ۳۰۰۰ بسته نرم‌افزاری که کل سیستم را از ابزارها، هسته لینوکس، بسته‌های نرم‌افزاری تا سیستم فایل ریشه پوشش می‌دهد، کاربران می‌توانند به سرعت و به راحتی یک سیستم تعبیه شده با توابع خاص را سفارشی کنند تا با استفاده از دستور "make"، سیستم‌عامل تولید کنند.

 

به طور کلی، فرآیند توسعه لینوکس تعبیه شده، صرف نظر از اینکه شامل پردازنده‌های ARM، PowerPC یا MIPS باشد، معمولاً شامل مراحل زیر است:

 

  1. ایجاد یک محیط کامپایل متقابل لینوکس؛

  2. ساخت یک Bootloader؛

  3. انتقال هسته لینوکس؛

  4. ایجاد Rootfs (سیستم فایل ریشه)؛

  5. نصب درایورها؛

  6. نصب نرم‌افزار.

 

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

 

معایب

 

  1. به دلیل تفاوت در معماری هسته CPU، بسیاری از برنامه‌ها هنگام انتقال به OpenWrt اغلب از کار می‌افتند.

  2. از آنجایی که کد منبع درایورهای ماژول سخت‌افزار ADSL باز نیست، ماژول‌های ADSL بسیاری از روترهای بی‌سیم یکپارچه ADSL نمی‌توانند کار کنند و در نتیجه فاقد عملکرد هستند (به جز RG100A و DB120).

  3. از آنجایی که OpenWrt یک سیستم‌عامل روتر منتشر شده رسمی نیست، استفاده از آن (فلش کردن سیستم‌عامل) دشوار است. علاوه بر این، ماهیت مبتنی بر لینوکس آن منجر به یک مانع ورود نسبتاً بالا برای OpenWrt می‌شود.