Hacker News Digest

Тег: #tcp-ip

Постов: 4

How Quake.exe got its TCP/IP stack (fabiensanglard.net) 🔥 Горячее

В 1996 году id Software создали quake.exe, работающий как в DOS, так и в Windows 95, в период, когда доля DOS упала на 50%. Они использовали djgpp - компилятор GCC для DOS, позволяющий создавать 32-битные приложения. Ключевым достижением стало то, что их DPMI клиент мог работать как с сервером djgpp (cwsdpmi.exe), так и с DPMI сервером Windows 95. Raymond Chen из Microsoft назвал это "поразительным", так как программа, написанная для одной среды, успешно работала в совершенно другой.

В DOSquake.exe требовал всего четыре файла: сам исполняемый файл, конфигурацию, ресурсы и cwsdpmi.exe. Для многопользовательской игры IPX использовался PDIPX.EXE, а TCP/IP требовал дорогого TSR BWNFS стоимостью $395 в 1996 году ($830 в 2025), поэтому большинство игроков использовали IPX. В Windows 95 игра запускалась в "dos-box", упрощая установку, но требуя 16 МБ ОЗУ вместо 8 МБ.

by billiob • 18 ноября 2025 г. в 08:18 • 445 points

ОригиналHN

#quake#dos#windows-95#gcc#djgpp#ipx#tcp-ip#id-software#windows-3.1

Комментарии (118)

  • ggambetta поделился опытом пайки nullmodem и создания звуковой карты на параллельном порте в детстве.
  • afandian уточнил, что "Британский парень Генри" мог назвать Евротоннель в честь другого инженерного проекта.
  • sroussey отметил, что в Win95 TCP/IP уже был встроен, что подорвало бизнес компаний, ранее продававших это решение.
  • jahnu вспомнил использование Trumpet Winsock для сетевого доступа в Windows 3.1.

How to escape the Linux networking stack (blog.cloudflare.com)

by meysamazad • 17 ноября 2025 г. в 15:49 • 123 points

ОригиналHN

#linux#networking#docker#ip#userspace#tcp-ip#switchdev#nftables

Комментарии (35)

  • Обсуждение началось с технических сложностей ручной настройки сетевых пространств имен в Linux для решения проблем Docker с несколькими IP-адресами контейнеров.
  • Упомянута статья Cloudflare о "soft-unicast" и поднят вопрос о выборе Linux вместо FreeBSD для сетевых решений, а также о возможном использовании userspace TCP/IP стека.
  • Основной фокус сместился на предложение написать актуальное руководство по Linux networking (особенно layer 2 и 3), так как существующие книги устарели, а новые технологии (switchdev, nftables) требуют освещения.
  • Множество участников выразили сильный интерес к созданию такого руководства, отметив его ценность для понимания современных сетевых концепций и решения практических задач (например, изоляции Docker-контейнеров).
  • Вспомянута производительность современных сетевых интерфейсов (io_uring, zero-copy) как потенциальная альтернатива userspace стекам, а также критика поддержки драйверов в BSD.

Hosting a website on a disposable vape (bogdanthegeek.github.io) 🔥 Горячее 💬 Длинная дискуссия

Размещение сайта на одноразовой вейп-системе

Примечание: эта статья НЕ размещена на сервере, работающем на одноразовой вейп-системе. Настоящий пример можно посмотреть здесь.

Предыстория

Я несколько лет собирал одноразовые вейпы у друзей и семьи, изначально извлекая из них батареи для «будущих» проектов. Современные устройства стали сложнее: с 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-сервер.

by dmazin • 15 сентября 2025 г. в 13:13 • 576 points

ОригиналHN

#arm-cortex-m0+#slip#tcp-ip#http#uip#embedded-systems#iot

Комментарии (228)

Вот краткое содержание обсуждения:

  • Участники обсуждают китайские 4G-донглы и одноразовые вейпы как примеры невероятно дешевых, но мощных вычислительных устройств, которые содержат микроконтроллеры, память и даже GPS.
  • Основная мысль: подобные устройства, будучи одноразовыми, представляют собой огромную проблему электронных отходов, и их статус «одноразовых» считается абсурдным и расточительным.
  • Обсуждается технический парадокс: эти устройства обладают вычислительной мощью, о которой можно было только мечтать несколько десятилетий назад, но теперь они массово выбрасываются после одного использования.
  • Многие пользователи восхищаются техническим достижением автора проекта (запуск веб-сервера на таком устройстве) и духом хакерства, но при этом испытывают смешанные чувства из-за контекста их применения.
  • Поднимается вопрос о том, как законно утилизировать такие устройства (батареи и электронику), и выражается сомнение, что люди следуют этим правилам.
  • В целом, текущее состояние технологий, где ИИ создает искусство, а веб-серверы работают на вейпах, характеризуется как «странное».

Show HN: I integrated my from-scratch TCP/IP stack into the xv6-riscv OS (github.com)

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 – сервер на порту 23
  • http – простой HTTP-клиент

Код

  • kernel/net* – стек TCP/IP
  • kernel/rtl8139.c – драйвер сетевой карты
  • user/{dhcp.c,ping.c,telnetd.c,http.c} – сетевые утилиты

by pandax381 • 26 августа 2025 г. в 06:24 • 107 points

ОригиналHN

#tcp-ip#risc-v#xv6#dhcp#dns#telnet#http#qemu#virtio-net#low-level

Комментарии (5)

  • @Tony_Delco и @dancek восхищаются сложностью и качеством реализации TCP/IP-стека для xv6 с virtio-net и сокетами, подчеркивая, что это «золото» для любителей low-level.
  • @AbbeFaria сообщает, что проходит лабораторные xv6 и сейчас занят mmap и fork.
  • @lesser-shadow интересуется, используются ли RISC-V-расширения и возможностью запуска на bare metal.
  • Все участники благодарят автора за открытость и делятся вдохновением.