Hosting a website on a disposable vape 🔥 Горячее 💬 Длинная дискуссия
Размещение сайта на одноразовой вейп-системе
Примечание: эта статья НЕ размещена на сервере, работающем на одноразовой вейп-системе. Настоящий пример можно посмотреть здесь.
Предыстория
Я несколько лет собирал одноразовые вейпы у друзей и семьи, изначально извлекая из них батареи для «будущих» проектов. Современные устройства стали сложнее: с USB-C и перезаряжаемыми аккумуляторами. Во время разборки я обнаружил микроконтроллер с маркировкой «PUYA» — это оказался ARM Cortex-M0+.
Технические характеристики
Микроконтроллер PY32F002B имеет:
- 24 МГц Cortex-M0+
- 24 КБ флеш-памяти
- 3 КБ ОЗУ
- Минимальный набор периферии
Подключение к сети
Идея использовать вейп в качестве веб-сервера пришла после экспериментов с semihosting — системными вызовами для ARM через отладчик. Для передачи данных использовался протокол SLIP (Serial Line Internet Protocol), эмулирующий модемное соединение через последовательный порт.
Настройка в Linux:
pyocd gdb -S -O semihost_console_type=telnet -T $(PORT) $(PYOCDFLAGS) &
socat PTY,link=$(TTY),raw,echo=0 TCP:localhost:$(PORT),nodelay &
sudo slattach -L -p slip -s 115200 $(TTY) &
sudo ip addr add 192.168.190.1 peer 192.168.190.2/24 dev sl0
sudo ip link set mtu 1500 up dev sl0
Для реализации TCP/IP стека выбрана легковесная библиотека uIP, не требующая RTOS и поддерживающая базовый HTTP-сервер.
Комментарии (228)
Вот краткое содержание обсуждения:
- Участники обсуждают китайские 4G-донглы и одноразовые вейпы как примеры невероятно дешевых, но мощных вычислительных устройств, которые содержат микроконтроллеры, память и даже GPS.
- Основная мысль: подобные устройства, будучи одноразовыми, представляют собой огромную проблему электронных отходов, и их статус «одноразовых» считается абсурдным и расточительным.
- Обсуждается технический парадокс: эти устройства обладают вычислительной мощью, о которой можно было только мечтать несколько десятилетий назад, но теперь они массово выбрасываются после одного использования.
- Многие пользователи восхищаются техническим достижением автора проекта (запуск веб-сервера на таком устройстве) и духом хакерства, но при этом испытывают смешанные чувства из-за контекста их применения.
- Поднимается вопрос о том, как законно утилизировать такие устройства (батареи и электронику), и выражается сомнение, что люди следуют этим правилам.
- В целом, текущее состояние технологий, где ИИ создает искусство, а веб-серверы работают на вейпах, характеризуется как «странное».
Show HN: I integrated my from-scratch TCP/IP stack into the xv6-riscv OS
xv6-riscv-net
Форк MIT xv6 для RISC-V с добавлением стека TCP/IP.
Поддерживаются драйвер RTL8139, DHCP, DNS, ping, telnet-сервер, HTTP-клиент.
Сборка и запуск
make qemu
Внутри QEMU:
$ dhcp
$ ping 8.8.8.8
$ telnetd &
$ http google.com
Сетевые утилиты
dhcp– получить адресping– проверка связиtelnetd– сервер на порту 23http– простой HTTP-клиент
Код
kernel/net*– стек TCP/IPkernel/rtl8139.c– драйвер сетевой картыuser/{dhcp.c,ping.c,telnetd.c,http.c}– сетевые утилиты
Комментарии (5)
- @Tony_Delco и @dancek восхищаются сложностью и качеством реализации TCP/IP-стека для xv6 с virtio-net и сокетами, подчеркивая, что это «золото» для любителей low-level.
- @AbbeFaria сообщает, что проходит лабораторные xv6 и сейчас занят mmap и fork.
- @lesser-shadow интересуется, используются ли RISC-V-расширения и возможностью запуска на bare metal.
- Все участники благодарят автора за открытость и делятся вдохновением.