"Неймовірно швидкий": інженер підняв сервер на електроніці одноразового вейпу

Опублікував Андрій Русанов

Сучасні пристрої, навіть одноразові, містять дивовижну електроніку. Звичайно, на сервері від BogdanTheGeek не запустити звичний сайт, але якийсь все ж можна.

Інженер та художник оригамі Богдан Іонеску створив вебсервер, який працює на начинні одноразового вейпа. Він зібрав чималу колекцію цих пристроїв “для майбутніх проєктів”, а також експериментував з хостингом на процесорах Arm за допомогою “кількох рядків коду”. З VapeServer Богдан поєднав обидва захоплення.

Нещодавно ентузіаст дізнався про “більш вишукані” вейпи, котрі містять більш просунуті мікросхеми та контролери. В них є не лише невідомі нонейм-чипи, але й щось потужніше. Один з найскладніших пристроїв, які він розібрав, містив мікросхему з позначкою PUYA C642F15. Пошуки дозволили ідентифікувати процесор як модель PY32F002B на Arm Cortex M0+, з тактовою частотою 24 МГц, 24 КБ флешпам’яті, 3 КБ оперативної пам’яті та підтримкою кількох інтерфейсів. Чудові характеристики для сервера, чи не так?

За словами BogdanTheGeek, чип “приблизно в 100 разів повільніший”, ніж мобільний телефон 10-річної давнини (якщо це взагалі порівнювано). Однак Богдан вирішив, що для “неймовірно швидкого” сервера PY32F002B з портом USB-C — те що треба. Він емулював комутований модем на мікроконтролері з використанням протоколу SLIP через послідовне з’єднання USB. Утиліти slattach та socat для Linux забезпечили передачу IP-пакетів. Мікроконтролер отримав компактний стек uIP для зв’язку через TCP/IP та налаштований вебсервер. Сторінка за посиланням ледь помістилася на решту 20 КБ накопичувача (наразі видає помилку 503).

Оптимізація сервера для бодай мінімального прийнятного користування зіткнулася з кількома труднощами. Богдан пише у блозі, що він мало не здався після перших тестів, оскільки продуктивність була сміховинно поганою. Пінг становив ~1,5 секунди, а просте завантаження сторінки займало 20 секунд. Однак він визнає, що головною проблемою був його код. Тож інженер додав буфер та пакетний запис, щоб покращити пропускну здатність, і за допомогою ще кількох налаштувань зменшив пінг до 20 мс без втрати пакетів та досяг повного завантаження сторінки приблизно за 160 мс.

Код проєкту розміщений на GitHub. Хтозна, може хтось колись запустить на вейпі Doom (на вібраторі вже є).

Джерело: Tom’s Hardware

Контент сайту призначений для осіб віком від 21 року. Переглядаючи матеріали, ви підтверджуєте свою відповідність віковим обмеженням.

Cуб'єкт у сфері онлайн-медіа; ідентифікатор медіа - R40-06029.