2012-06-04

vak: (Default)
Знаковый момент: в RetroBSD заработала поддержка сети TCP/IP.  В качестве сетевого контроллера Ethernet используется чип W5100 фирмы Wiznet.   Простейшая сетевая платформа для запуска RetroBSD легко собирается из двух плат: chipKIT Max32 и Arduino Ethernet shield R3:

Втыкаете одну плату в другую, прошиваете ядро из конфигурации sys/pic32/max32-eth, записываете файловую систему на карточку microSD - и вперёд. Есть пять примеров: веб-сервер, веб-клиент, чат-сервер, telnet-клиент и запрос даты/времени по сети.

Прикол здесь в том, что это как бы невозможно.  Да, в операционной системе 2.11BSD был сетевой стек TCP/IP.  Но ему для работы требовалась хотя бы пара мегабайт физической памяти.  Здесь же микроконтроллер настолько крохотный, что у ядра на всё про всё имеется только 32 килобайта, да и те забиты под завязку.  Но голь на выдумки хитра: именно для таких ситуаций придумали чип W5100, который аппаратно реализует весь стек протоколов, и выдаёт наружу уже готовый интерфейс к сокетам.  Всё, что требуется от ядра - драйвер SPI.  Собственно вся сетевая обработка происходит в контроллере и в программе пользователя.  Есть, конечно, ограничения по количеству сокетов (четыре), размеру буферов (2x2 кбайта на сокет), протоколам и т.п.  Очевидный минус - активным может быть только одно сетевое приложение.   Тем не менее, для большинства встраиваемых применений очень даже неплохо.