Как $1 микроконтролер се превръща в уеб сървър: зад кулисите на embedded hosting
Уеб сървър на 8-битен микроконтролър: Защото защо да не?
В света на лудите инженерски проекти има място за идеи, които са технически осъществими, но напълно безсмислени. Те не носят пари, но разкриват как всъщност работи интернетът. Днес ви разказвам за един разработчик, който пуска истински сайт на микроконтролър, който струва колкото бонбон.
Хардуерът: Минималистичен старт
Главният герой е AVR64DD32 – модерен 8-битен чип на цена около 1 долар. Ето какво предлага:
- CPU: 8-битов AVR ядро до 24 MHz
- RAM: 8 KB
- Flash: 64 KB
- Напрежение: 1.8-5.5 V
- Цена: Долар. Точка.
За 8-битен чип това е лукс. По-евтин е от класическия Atmega328 на Arduino, с по-добри възможности и лесно програмиране. Проблемът? Трябва интернет.
Мрежовият проблем: Ethernet не става
Ethernet изглежда идеален – навсякъде е, документиран е. Но физиката не позволява. 10BASE-T работи на 10 Mbps, с Manchester кодиране – 20 Mbps на линията. GPIO на AVR стига до 12 MHz. Нищо не излиза.
Отделен Ethernet чип? Добавя цена, сложност и доставки. Не е за демонстрация.
Умното решение: SLIP протокол
SLIP (Serial Line Internet Protocol) е от ерата на модемите (RFC 1055). Простият му механизъм:
- Обгражда пакетите с
0xC0 - Ескейпва
0xC0като0xDB 0xDC - Ескейпва
0xDBкато0xDB 0xDD
Няма нужда от специален хардуер. Само USB-to-serial адаптер на 115200 baud. Linux го вижда като мрежа:
stty -F /dev/ttyUSB0 115200 raw cs8
slattach -m -F -L -p slip /dev/ttyUSB0
Протокол от 90-те години, все още поддържан. Микроконтролърът се хали от адаптера. Един кабел – готово.
Протоколния стек: От нулата на 8 KB RAM
Тук започва забавлението – мрежа на 8 KB памет.
IP: Лесно
IP хедърът е 40 байта – адреси и метадан. Забравете фрагментацията, която е изчезнала в IPv6. Просто обръщате източника и дестинацията, рестартирате TTL и връщате. Чипът е огледало, не разбира нищо.
TCP: Ада
TCP изисква:
- Проследяване на съединения
- Предаване на загубени пакети
- Обработка на ъгълни случаи (безброй)
- Таймаути
Дни от дебъгване, с бъгове. Но служи проста страница.
HTTP: Кратък път
Хардкодирана отговор – винаги една и съща статика. Само един URL. Ограничието ражда елегантност, не нужда от голям фреймуърк.
Свързването: Към истинския интернет
Микроконтролърът е на серийка към девелъп машината, която гледа VPS в Хелзинки с публичен IPv4. Проблем: няма публичен IP, IPv4 са скъпи и оскъдни. Серийка през интернет? Невъзможно.
VPN спасението
WireGuard – модерен Linux VPN. Тунел, който минава NAT.
Настройка:
- Девелъп машина се свързва с VPS чрез WireGuard
- VPS пренасочва
/mcu/*към чипа през тунела - Посетителите идват на VPS IP
- VPS шлема трафика към локалния чип
Като Twitch, но за долар чип и кабел. Чипът не вижда интернет директно. Перфектно.
Какво научихме
Проектът е абсурден, затова е ценен. Премахва абстракциите и кара да кодираш протоколи от основи.
Разбираш, че:
- Мрежата е модулна. Сериал вместо Ethernet, TCP вместо UDP – принципите са същите.
- Ограниченията създават гениалност. 8 KB правят код чист и ефективен.
- Стари протоколи живеят. SLIP от 1988, Linux го обича.
- Интернетът е прост. Без слоеве – само байтове между адреси.
Главният урок
В NameOcean обичаме да разкриваме уеб технологиите. Дали cloud, или микроконтролър – DNS, TCP, HTTP са основата на добрия инженер.
Това няма да замени хостинга ви. Но ще ви покаже защо cloud е гениален. Понякога най-добре цениш абстракциите, като ги пресъздадеш на чип за долар.
Сега ние трябва да спрем някого да пусне блог на смарт часовник.
Искате още за мрежите? Вижте нашите статии за DNS резолюция, основи на TCP/IP и защо domain е по-важен от хардуера. За реален web hosting (препоръчваме) имаме AI решения – без спойка.