Эта статья прислана на конкурс.
TheAbcs (автор играет на конкурсе под псевдонимом)
Чтобы уважаемый читатель не бросил читать на втором или третьем абзаце - эта статья о том, как решалась и решилась задача загрузки 286-386-486 компьютера по сетке. Описано самое интересное - путь :) Но не воспринимайте написанное слишком серьезно.
Сравнительно недавно я совершенно случайно - из поисковика - попал на этот сайт и форум. В общем-то, не совсем уж совершенно - старая техника, в том числе и компьютерная, всегда меня интересовала. Объяснение этому крайне простое: чем старее - тем, почему-то, доступней и дешевле. Если, конечно, не рассматривать антиквариат.
Возвращаясь к форуму - я нашел на нем описания множества интересных вещей, как ранее знакомых, так и совсем новых и неизвестных мне. Приятно удивило количество участников, интересующихся практически всеми аспектами пусть недавней, но истории. Их стремление сохранить вроде бы навсегда ушедшее вызывает восхищение. Впрочем, виден и разный уровень знаний и умений участников форума - именно это подвигло меня попробовать поделиться результатами, полученными совсем не сразу.
Чувствую, вступление затянулось, но еще несколько слов о себе, чтобы читателю было легче понимать, почему события моей истории развивались именно таким образом, каким они развивались. Я бы охарактеризовал себя как человека патологически ленивого, но увлекающегося, не склонного вкладывать финансы там, где можно обойтись затратами времени (которое у меня, как правило, было, в отличие от…). Кстати, некоторые люди, на мой взгляд, очень несознательные, считают меня просто бездельником. Даже не знаю почему :) Да, все описываемое происходило в городе с населением где-то 80 000, где я живу и сейчас.
Среди разных компьютерных железок, попадавших в мои руки, практически не было винчестеров, поэтому в какой-то момент у меня появилось желание освоить загрузку операционной системы по сетке. На тот момент мои познания в этой области ограничивались тем, что необходима сетевая карта с возможностью установки BOOTROMа, собственно микросхема BOOTROM и сетка с сервером. Реализация тормозилась именно из-за отсутствия доступа к такой сетке (точнее - какой бы то они было сетке), и приходилось экспериментировать с XT RLL контроллером-винчестером на 286-386 материнских платах (отмечу - удачно) или грузиться с дискет. Но вот поменялось место работы...
Фото 01. Тот самый RLL контроллер. Винт ST238R не сохранился :(
В новой конторе оказались: доступ к "лишним" 3COM509, локальная сетка, сервер Novell NetWare в ней и некоторое количество времени на эксперименты. Достаточно быстро (спасибо FIDO и моему боссу) удалось найти коллекцию BOOTROMов, из которой файл для 3COM509 был немедленно записан в подходящую микросхему ПЗУ, она вставлена в панельку и... Жутчайший облом :)
Фото 02. Одна из сетевых карточек
Так моя жизнь моментально обогатилась понятиями RPL, IPX, 802.2, 802.3, загрузочный образ, MAC. Достаточно быстро пришло понимание, что жизнь жестока, и поднять админа сетки на изменение типа фрейма (под имеющийся BOOTROM) и настройку сервера на поддержку удаленной загрузки удастся сильно вряд ли, хоть он - админ, - и сидит в комнате напротив меня… Мелькнувшее было желание написать необходимую серверную часть под Win по имеющемуся краткому описанию (еще и на английском) процесса загрузки быстро исчезло...
К счастью, в это время до нас (до дома, отнюдь не до работы) добрался Интернет по вполне демократической при разумном объеме использования цене, и жизнь моя продолжала обогащаться новыми понятиями - TCP, IP, DHCP, BOOTP, TFTP, PXE. Я бы не сказал, что дорога была столь пряма, как я здесь пишу. Был зигзаг - в процессе поисков бутрома для 3C509 карты под BOOTP, - в сторону Etherboot и Netboot, от которых добиться загрузки желанной DOS6.22 мне не удалось, хотя знакомство с первым из них в дальнейшем оказалось мне весьма полезным. Но подробнее об этом чуть позже. Поиски же интересующего бутрома для 3C509 карты не приводили ровным счетом ни к чему. Впрочем, был достигнут первый обнадеживающий успех - на 3C905 карте (от рождения имеющий подходящий BOOTROM) с использованием tftpd32 в качестве серверов была загружена из самостоятельно созданного образа - со своим набором софта, - желанная DOS6.22.
Фото 03. Скриншот tftpd32 - очень полезнаЯ программа во всех отношениЯх.
Первый успех вдохнул новые силы, но 3C905 карта - это PCI, ее трудно засунуть в 286-386 платы, да и стремление использовать для загрузки 3C509 карту превратилось прямо-таки в навязчивую идею-фикс. Жизнь опять начала наполняться новыми понятиями - снифер, интерактивный дизассемблер IDA, были вспомнены отладчик AFDpro и TechHELP. Постепенно RPL прошивка для 3C509 карты была реассемблирована и большей частью понята :) Этому в немалой степени способствовали исходники то ли драйвера под LINUX, то ли чего-то подобного, написанного на Си и оставшегося не вполне понятным, но содержащего описание управляющих регистров карты. Удалось из кусков реассемблированного кода собрать тестовую программку и погонять с ее помощью пакеты по сетке. Но вот на BOOTROM от 3C905 энергии уже не хватило - писана она была явно не на ассемблере, да и большая... Как не хватило энергии и на самостоятельное написание желанной программы...
Собственно, время шло не зря - благодаря Интернету и MicroSoft удалось найти, скачать, установить и настроить сетку (клиента, TCP/IP) под DOS, получить доступ к открытым Win ресурсам компьютеров на работе (Novell к тому моменту у нас медленно угасал), поэкспериментировать с разным софтом под DOS. Но не умирала надежда на чудо, и однажды оно свершилось! Был найден сайт www.bootix.com, на котором любезно предоставлялся софт для удаленной загрузки (и установки) разных ОС (в основном с упором на Win), в том числе и большое количество "BOOTROMов" для старых сетевых карт, загружать которые в демонстрационных целях предлагалось с дискет.
Фото 04. Скриншот www.bootix.com в его нынешнем виде (фрагмент).
Софт был скачан, бегло изучен и в основном отброшен (демо), а вот бутромы... Дискетка с ними подверглась тщательному изучению, что позволило после ряда процедур - считывания дискетки в образ, вытаскивания из образа интересующего куска, легкой доработки этого куска напильн... реассемблером и ассемблером в целях загнать его собственно в микросхему BOOTROM и заставить оттуда загружаться "куда надо", - получить желаемый код. И он еще заставил поволноваться - первая микросхема, в которую он был зашит, видимо, оказалась медленной, но догадался я об этом совсем не сразу, старательно выискивая ошибку и размышляя, чем отлаживать программу, работающую до загрузки DOS. Однако вторая микросхема - первую дома, куда переместились эксперименты, оказалось просто не на чем стереть (она УФ РППЗУ), - случайно оказалась более быстрой и все пошло… Серверную часть софта - BOOTP и TFTP сервера, - я также использовал с сайта www.bootix.com. Они небольшие, работают и под 98, и под 2000, и под XP, имеют довольно удобный конфигурационный файл. В общем, от добра добра не ищут. Да и прошивку дальше править не стал - выбрасывать предупреждение и убирать лишнюю (для моих целей) часть загрузки, - все-таки нельзя совсем забывать тех, кто дарит нам исполнение желаний! (Честно говоря - прошивка эта реассемблируется и работает как-то мутно, видимо, написана на чем-то высокоуровневом; да и лениво - она и так делает то, что хочется)
Фото 05. Рабочая микросхема с долгожданным содержимым - крупным планом.
Фото 06-1.
Фото 06-2.
Фото 06-3. В процессе загрузки образа.
Фото 07-1.
Фото 07-2.
Фото 07-3. СерверА - до и после загрузки.
Фото 08-1.
Фото 08-2.
Фото 08-3. А вот что в образе том было.
С того времени и до сих пор 3C509 карточка с бутромом служит мне верой и правдой, позволяя решать различные возникающие проблемы - как исследовательско-познавательные, так и практические. С ее помощью очень просто проверить работу, например, принесенной звуковой карты (под ISA слот), потестировать-поремонтировать винчестер (FUJITSU :)) софтом под DOS, и все это без возни с дискетами, без риска "загубить" системный винчестер, которого просто нет. Сейчас на работе "живет" стенд для облегчения ремонта оборудования (ему нужен ISA слот; да и если сгорит плата, а это бывало, но не у меня, - жалко будет не очень) под управлением 486 в открытом виде и без винтов-флопиков.
Фото 09-1.
Фото 09-2.
Фото 09-3. Это стенд и то, что им рулит.
Фото 10-1.
Фото 10-2.
Фото 10-3. Бренные останки системника (солидно растащены) - он рулил аналогичным стендом.
Точности ради стоит отметить, что 286 в "стандартной" конфигурации - с 1 МБ памяти, - не вполне подходит для экспериментов. На нем удается загрузить образ лишь очень небольшого размера с крайне незначительной функциональностью - точно грузиться собственно система. При установке 2 МБ памяти такого рода проблемы в основном уходят - мне не удалось на нем поднять сетку TCP/IP, хотя я не очень старался. Но наиболее комфортной мне показалась работа на 386SX (это практически та же 286) с 4 МБ - на ней можно все, - при желании после загрузки "правильного образа" подключается любая шара в сети и... :)
И хотя проблема, столь долго терзающая меня, нашла свое решение, интерес к относительно и совсем слабым компьютерам, реализации сетевых решений на них остался. Например, на P1-120 32МБ (совсем без дисков :)) экспериментировал с терминалом под WTware - здесь пригодилось знакомство с Etherboot. Развлекался с HTTP-сервером под DOS, превращая 286 компьютер, вернее, материнскую плату с минимумом "периферии", в управляюще-информирующий контроллер с доступом по WEB. Но это уже совсем другие истории.
Вот таким получился "путь к мечте". И в движении по этому пути появилась любимая сетевая карточка, было найдено еще очень много интересного, о котором я забыл упомянуть. Все это попалось при поиске информации по загрузке операционной системы по сетке. Без особых усилий, "из ниоткуда", возникли новые знания в области сетей, несистематизированные и неполные, но подкрепленные пониманием. В статье сознательно практически нет ссылок - многие из них при желании легко находятся по ключевым словам, некоторые не имели бы прямого отношения к теме. Тем не менее, я готов - если это кого-то заинтересует, - предоставить все сохранившиеся у меня адреса-явки-пароли-файлы-программы (исключительно на тех же условиях, на которых я их получил - то есть частично демо, частично для некоммерческого использования, но все - бесплатно :)). Также и сам с благодарностью приму ссылку на другие существующие (то, что я не смог их найти - не значит, что их нет :)) BOOTP и PXE прошивки BOOTROM для 3C509.
Обсудить статью в специально созданной ветке форума. Эта статья прислана на конкурс.
© Текст, фотографии - TheAbcs (автор играет на конкурсе под псевдонимом)
© Железные призраки прошлого - 2008 г.
Опубликовано 24 марта 2008 г.
Дополнения или поправки на phantom@sannata.ru
|