¦ Возможность работы в запыленных помещениях (здесь желателен «холодный» процессор типа VIA СЗ, ЖК монитор).
Как видите, подобное решение может быть использовано и в офисах и прочих местах, где нет необходимости держать мощные компьютеры. Вот мы подошли, наконец, к практическому решению поставленной в начале статьи задачи. Чтобы разобраться в дальнейших действиях, необходимо немного понимать общую картину. Поэтому сначала давайте проследим, как же все это происходит. Загрузка бездисковых станций происходит следующим образом.
После включения питания управление передается, как обычно BIOS, который в свою очередь выполняет инициализацию, проверку POST (Power-On-Self-Test) и анализирует порты на наличие дополнительных устройств. В ходе последней обнаруживается установленная сетевая карта, в энергонезависимой памяти которой обнаруживается код, начинающий выполняться после завершения теста.
Дальнейшую работу условно можно разделить на три этапа: получение IP-адреса, получение образа операционной системы и собственно работа с данными. Чтобы получить IP-адреса, программа загрузки инициализирует широковещательный запрос (для нашего примера 192.168.0.255, по умолчанию используется порт 68, протокол UDP), в котором указывается свой уникальный для каждой сетевой карты МАС-адрес. Для динамического распределения IP-адреса между компьютерами в сети используется служба DHCP. DHCP-сервер, приняв запрос, находит конфигурацию, соответствующую данному МАС-адресу, и возвращает следующие данные:
¦ IP-адрес рабочей станции.
¦ Маску сети.
¦ Путь к загружаемому ядру ОС.
¦ Путь к каталогу, который монтируется в качестве корневого.
Переговоры между клиентом и сервером можно воспроизвести примерно так.
Клиент: «Привет, мой аппаратный адрес 00-02-44-07- FC-C4, дай мне мой IP-адрес».
Сервер: «(Ищет адрес в базе данных.) Ваше имя – aldebaran, ваш IP-адрес – 192.168.0.100, ваш сервер – 192.168.0.1, файл, от которого вы загружаетесь, находится в/tftpboot/ltsp/vmlinuz-2.4.21-ltsp-1 и остальная информация).
Естественно, в сети должен находиться один такой сервер, иначе они передерутся между собой, и, конечно же, необязательно он должен быть нашим сервером графических приложений. После получения адреса клиент должен загрузить ядро операционной системы. Для этого используется протокол TFTP (тривиальный протокол передачи файлов). Это просто облегченная версия протокола FTP, которая не требует идентификации и использует UDP-протокол вместо TCP. Ну а чтобы пользоваться файловой системой, на другом компьютере на сервере должна быть настроена служба NFS. После загрузки ядра оно, уже как и положено, берет бразды правления в свои руки. Вот вкратце и все.
Теперь займемся практической реализацией. Для того чтобы было возможным загружаться описанным выше способом, необходимо записать образ загрузчика, поддерживающего определенную сетевую карту в EPROM (Erasable Programmable Read-Only Memory – перезаписываемая память). Для этого заходим на сайт http://rom-o-matic.net/ и в выпадающем списке «choose nic/rom type» выбираем марку чипа на сетевой карте. Здесь я допустил ошибку, помня, что сетевая карта NE2000 совместимая, просто скачал образ для NE. И вполне естественно, при загрузке получил что-то вроде «не могу найти NE*-KapTy». Пришлось раскрывать корпус одного из компьютеров и смотреть, что там такое установлено, заодно и сам узнал марку чипа – rtl8029. В меню «Choose ROM output format» выберите интересующий формат.
Доступны следующие варианты образов:
¦ Floppy Bootable ROM Image (.Izdsk) – загрузчик с дискеты (на первом этапе лучше воспользоваться именно им).
¦ Binary ROM Image (.Izrom) – прошивка ПЗУ сетевой карты.
¦ LILO Bootable ROM (.Izlilo) – загрузка с использованием LILO.
¦ DOS Executable ROM Image (.com) – DOS-загрузчик тоже подходит, только уберите загрузку himem.sys и emm386.exe, а то работать, скорее всего, не будет, и добавьте соответствующие строки в файл config.sys для загрузки.
¦ РХЕ loadable ROM Image (.Izpxe) – то же, что и второй пункт, но разработки Intel.
Выбираем вариант Floppy Bootable ROM Image, при нажатии на кнопку «Get ROM» вы получаете нужный образ. Чтобы перезаписать его на дискету, воспользуйтесь программой rewrite под Windows, которая входит в состав практически каждого дистрибутива Linux, а в Linux дайте следующую команду:
#cat you rimage .lzdsk > /dev/fdO ИЛИ
#dd if=/path/to/rот-image of=/dev/fdO bs=1024
как кому привычнее. Программа первоначальной загрузки готова. Первоначально я советую попробовать загружаться с дискеты и настроить схему один сервер – один клиент, а после успешного преодоления всех подводных камней уже нарастить количество клиентов и заняться прошивкой кода в ПЗУ. Приступаем к наиболее веселому занятию – настройке сервера.
Отправная точка в Интернете для поиска необходимой информации и программ – официальный сайт проекта http://www.ltsp.org .