OpenWrt


OpenWrt (Open Wireless router) — встраиваемая операционная система, основанная на ядре Linux, предназначенная, в первую очередь, для домашних маршрутизаторов (роутеров или рутеров - от англ. router). Основные компоненты включают в себя ядро Linux, util-linux, uClibc или musl[4] и BusyBox. Размер всех компонентов оптимизирован в связи с тем, что в большинстве домашних маршрутизаторов сильно ограничен объём памяти.

Исторически для настройки OpenWrt используется интерфейс командной строки, однако одной из опций является веб-интерфейс (он включен для большинства устройств в стандартный дистрибутив OpenWrt), также предоставляющий возможности по настройке OpenWrt, хотя и менее полные. Техническая поддержка традиционно осуществляется с помощью форума и IRC-канала.

Проект OpenWrt был начат в 2004 году после того, как Linksys создала прошивку для своих беспроводных маршрутизаторов популярной в то время серии WRT54G с открытым исходным кодом, лицензированным по Стандартной общественной лицензии GNU. В соответствии с условиями этой лицензии Linksys должна была сделать исходный код своей модифицированной версии доступным по той же лицензии, что позволило независимым разработчикам создавать свои производные версии.

Изначально поддержка ограничивалась серией Linksys WRT54G (англ. Linksys WRT54G series), но постепенно расширилась и включает в себя чипсеты других производителей, в том числе и x86. Наиболее популярными в рамках проекта долгое время являлись серии Linksys WRT54G и Asus WL500G.

В 2016 году восемь активных разработчиков OpenWrt вышли из проекта и создали собственный форк LEDE (англ. Linux Embedded Development Environment). Это решение было ими принято из-за нерешённых проблем управления в проекте OpenWrt, накопившихся за долгое время[5]. В 2017 году вышел первый релиз LEDE, а в 2018 году оба проекта (OpenWrt и LEDE) объединились на принципах разработки, отработанных в LEDE: предсказуемый цикл разработки, более либеральные по сравнению с прежним OpenWrt правила приёма изменений в код, прозрачный и публичный процесс принятия решений[6].

Главной отличительной особенностью OpenWrt является полная поддержка файловой системы JFFS2, которая позволила устанавливать дополнительное программное обеспечение из репозитория OpenWrt (для этого ранее использовался менеджер пакетов ipkg[англ.], ныне — opkg[англ.]). Это позволило сделать OpenWrt легко настраиваемой операционной системой, адаптируемой для конкретного применения. В версиях для маршрутизаторов, имеющих объём флеш-памяти 4 Мб и больше, обычно используется и файловая система SquashFS для хранения неизменной части системы, и оверлей на файловой системе JFFS2. И хотя при этом память используется менее эффективно, так как изменения хранятся в отдельном разделе, - оверлей позволяет легко произвести откат к настройкам по умолчанию.