Сеть в DOS с помощью стека mTCP
Некоторое время назад меня попросили сделать видео-инструкцию по настройки сети в операционной системе DOS. К сожалению в съёмке видео я не силен, поэтому постараюсь максимально подробно письменно (и с картинками) изложить сей процесс.
Однажды мне самому пришлось столкнуться с этой задачей, поскольку для моей домашней коллекции компьютеров уже налажен процесс обмена файлами с помощью локального FTP-сервера. (Если будет интересно, могу подробнее рассказать об этом в одной из следующих статей)
Итак, подойдём немного издалека: с сетевой карты. К сожалению, далеко не каждая сетевушка сможет работать в DOS. В таких старых системах никогда не бывает легко. При написании этой статьи я использовал весьма распространённую Realtek RTL8139. Так же знаю, что будут работать старые Реалтеки на ISA шину и карты фирмы 3com.
Второй момент: почему я выбрал именно mTCP? Ведь есть же, так сказать, «трушный» Microsoft LAN Manager, написанный специально для DOS. Есть то он есть, но во-первых обеспечивает работу только своих собственных утилит. Сторонним программам вроде того же FTP-клиента всё ещё требуется отдельный пакетный драйвер. А во-вторых отъедает 200 килобайт основной памяти (страшная цифра) и работа с запущенной сетью становится невозможной. mTCP же является набором сетевых приложений, таких как DHCP, TELNET, NETCAT и т.д. Для своей работы он требует только пакетный драйвер и не висит в памяти. Да, у LAN Manager есть преимущество. Помимо TCP он поддерживает IPX, нужный для сетевой игры. Так что требуется важное уточнение: Эта статья не подойдёт тем, кто хочет использовать сеть для игр.
Перед непосредственной настройкой придется запастись некоторым количеством файлов. Для начала понадобится дистрибутив mTCP. Его, а так же полную документацию можно скачать с официального сайта. Не обойтись и без пакетного драйвера. Для самых популярных карт они лежат централизованно, так же можно попробовать поискать их на таких ресурсах как Vogons. Всё это придётся каким-то образом перенести на подопытную машину. При помощи дискет, болванок или подключив жесткий диск к другому компьютеру.
Теперь, когда все приготовления сделаны и резвый ретро-компьютер запущен, пришло время немного попечатать. Я использовал редактор Dos Navigator’а, но подойдет и Edit, встроенный в систему. Первым делом нужно дописать несколько строчек в файл Autoexec.bat. Нужные подчеркнуты красным. В первой строке указан полный путь до драйвера с аргументом, обозначающим номер прерывания. Для более старых карт не поддерживающих Plug&Play потребуется указать номер аппаратного прерывания (подчеркнуто зеленым). В следующей строке задаётся конфигурационный файл mTCP. Сам файл мы чуть позже создадим и тоже туда кое-что запишем. И наконец в последней строчке нужно указать путь до DHCP-клиента. Это не обязательно, DHCP можно запускать и вручную, но так удобнее.
К моему Реалтеку так же прилагается программа для диагностики и настройки. Ниже представлены оптимальные параметры. Они могут показаться странными. Почему всего 10 мегабит, когда карта вполне может прокачивать 100? Чтож, по неизвестным мне причинам, в режиме Fast Ethernet средняя скорость загрузки была около 150 килобайт в секунду. При ограничении до 10-и мегабит, увеличилась в 4 раза. Возможно проблема в конкретной карте, драйвере (или моих руках). Буду рад, если кто-нибудь поделится мыслями по этому поводу.
Переходим к конфигу mTCP. Файл следует создать по пути, указанном в Autoexec.bat. В него нужно добавить только номер прерывания в поле PACKETINT. Ещё можно указать сетевое имя компьютера, но это не обязательно.
В итоге содержимое папки должно выглядеть вот так:
Теперь можно со спокойной душой перезагрузиться. И если всё сделано правильно, то после загрузки DHCP наблюдать примерно такую картину
Остаётся только радоваться и пользоваться благами интернета, пусть и несколько ограниченными в современных реалиях.