Четверг, 2025-01-23, 4:21 AM
Статьи - HI - TECH
Приветствую Вас Гость | RSS
Главная страница Каталог статей Регистрация Вход
Меню сайта

Категории каталога
BIOS [9]
Статьи по BIOS
CD/DVD [6]
Статьи по CD/DVD
HDD - Жёсткие диски [8]
Статьи по HDD - жестким дискам
Модем [4]
Статьи по модемам
Блоки питания [5]
Статьи о блоках питания
Windows и общие вопросы [41]
Статьи по Windows и общим вопросам
Windows VISTA [8]
Статьи по Windos Vista
Linux [20]
Статьи по Linux

Наш опрос
Какой раздел нужно пополнить (создать) ?
Всего ответов: 100

Начало » Статьи » HI - TECH » Windows и общие вопросы

Реанимация старых машин
Какое количество старых компьютеров на базе процессоров Пентиумов и 486 находится у Вас на балансе вашего предприятия? Что вы только не делали, чтобы заставить их работать с современным программным обеспечением? Как только не пытались облегчить их тяжелую участь? А они все равно работают медленно. И тогда принимается решение все это сгрузить на склад и купить новую технику. Конечно, в ряде случаев решение вполне оправданное, но техника стареет намного быстрее, чем зарабатываются деньги на ее обновление.

С такой проблемой столкнулся и я. Работаю я преподавателем в одном большом ВУЗ'е Укранины на кафедре "Компьютерных систем и сетей". ВУЗ - предприятие государственное и поэтому не может всех своевременно оснастить новой техникой. А студентов много, и очень хочется, чтобы каждый студент на лабораторной работе работал за отдельным компьютером, или по крайней мере за терминалом. Следует особо подчеркнуть, что мы обучаем специалистов по различным направлениям компьютерных наук, и, как результат, требования к компьютерной сети кафедры очень высокие. Мы давно (с 1997 года) и успешно применяем операционную систему linux в обучении. Первые два года это - базовая операционная система для выполнения лабораторных работ по различным курсам. Не секрет, что подготовка специалиста - дело довольно хлопотное и состоит из большого количества этапов и чем дальше, тем сложнее. Таким образом, изучение программирования у нас начинается не с супернавороченных оболочек вроде visual studio, delphi или c-builder, а с простого текстового редактора joe и строчного компилятора и будущие программисты и сетевики начинают учиться писать грамотный и правильный код, постигая таинства алгоритмов. А потом приходят навороченные оболочки, но это потом, через 2 года. Как к этому относятся студенты, я рассказывать не буду (речь не об этом), но сам я учился именно на такой технологии и до сих пор об этом не жалею и более того, считаю (и мое мнение не одиноко), что такой подход является правильным.

Первого и второго курса всегда много. Это аксиома. А компьютеров не хватает. Это тоже аксиома. Точнее, современных компьютеров не хватает. И пришлось нам выкручиваться. Потому что есть около полутора десятка старых, но рабочих компьютеров на базе процессора intel486, которые когда-то выполняли роль бездисковых рабочих станций под novell. Есть также около десятка компьютеров на базе pentium166 и настоящий (действительно, с номером, спецкорпусом и т.д.) двухпроцессорный сервер (pii-233) от intel. Итого в наличии два с половиной десятка рабочей компьютерной техники, на которой современная windows работать просто не будет (да и нужно ли деньги тратить на покупку windows - потом вытягивать всякими шаманскими методами производительность). А 25 рабочих мест - это чуть меньше, чем стандартная студенческая группа.

На помощь пришел linux. Конечно, на современных рабочих станциях он установлен и прекрасно работает, но старые что выкидывать. Техники и так не хватает. Поэтому пришлось пораскинуть мозгами, и посмотреть, что же есть для решения задачи. Итак, вот описание реализованной технологии:

Компьютеры на базе i486 настроить как рабочие станции с удаленной загрузкой и программой telnet - получаем текстовый терминал, который занимается передачей символов на сервер и отображения ответа. Запустить joe могем, компилятор могем, рассмотреть мощь командной строки операционной системы linux (и как результат выучить огромный кусок самой системы) тоже могем. И студент не отвлекается (если конечно имеет на то желание) от изучения и практической работы с командной строкой. А 10 Мбит вполне достаточно (на платах нет pci слотов, потому как они старые очень), чтобы все нормально работало и не тормозило.

Компьютеры на базе pentium превратить в графические терминалы, на все тот же двухпроцессорный сервер, на который были зацепленны текстовые терминалы. Можности процессора и видеокарты s3trio64v+ 2Мб для рисования изображения тоже хватит. А 100 Мбитная сеть (адаптеры шли в начальном составе рабочих станций intel etherexpress, просто сказка) позволяет рисовать изображение быстро и красиво. Все возможности текстового терминала присутствуют, плюс появляется возможность запуска графического ПО (броузеры, icq и т.д.)

Вот такое было принято решение. Теперь о средствах и методах реализации. Вначале сервер. Двухпроцессорная машина pii-233, 196 Мб оперативной памяти scsi винчестер на 4 Гб. А большего и не нужно. Я установил asplinux 9.0, не самый лучший вариант, но в данном случае придется очень много настраивать руками, поэтому множество неприятных граблей, которые вылазили при эксплуатации лицензионной (купленной в коробке с инструкцией и серийным номером, номером для регистрации и активации бесплатной 30-дневной поддержки) asplinux 9.0 не рассматривались - потому как комплекс ПО был очень сильно изменен и от asplinux остались только базовые пакеты, типа компиляторов библиотек, ошибок в работе которых замечено не было.

После установки были насильно удалены все "тяжелые" пакеты. kde и gnome не ставилась изначально. Для выяснения причины поставьте следующий эксперимент: запустите kde, пусть он загрузится, и затем командой ps axuf просмотрите дерево процессов. Вы увидите огромное количество процессов, запущенных от вашего пользователя, которые отсоеденены от процесса родителя kdeinit и присоеденены к init. Теперь выполняем вот такую операцию: ctrl+alt+backspace. Комбинация клавиш конечно же знакома. x улетают. А теперь вновь запустите kde и посмотрите ps axuf. Часть старых (от прошлого сеанса процессов осталась) и для этого сеанса появились новые с точно такими именами. Выйдите из kde (нормально через меню) и вновь его запустите, затем ps axuf - процессы висят. А теперь зайдите в kde и раз пять свалите его с помощью ctrl+alt+backspace. Компьютер задумчиво уходит в swap. Процессы плодятся и не используются. Ситуация с gnome не такая печальная, его нужно свалить раз 10-15, но когда пользователь работает один, нестрашно - можно чистить память. А когда их десяток? И каждый по разу нажмет ctrl+alt+backspace?

Так что вопрос отказа от kde и gnome - вовсе не в производительности процессоров сервера. Хотя и это играет свою роль. На самом деле описываемая конфигурация работает не первый год и я успел "насладиться" процессом поедания памяти довольно давно. С тех пор не стараюсь не пропускать публикаций не тему появления новых лекгих оконных менеджеров и тщательно их тестирую на существования описанного эффекта поедания ресурсов. Увы, к моему великому сожалению, "чисто" валится только fvwm2. Да, да. Тот самый очень древний, но от этого далеко не самый плохой оконный менеджер. Он меня устраивает по всем параметрам. Числу поедаемых ресурсов, удобством конфигурации, и самое главное, что у него процессом-родителем является процесс, запустивший его. То есть, сваливание x'ов приводит к правильному освобождению всех ресурсов, которые занимал fvwm2. А студент на первом курсе очень быстро запоминает и, главное, использует комбинацию клавиш ctrl+alt+backspace для решения своих проблем, связанных, как правило, с элементарным отсутствием терпения.
Теперь нужно запустить менеджер графических терминалов. kde и gnome опять не помогут. Их красивые kdm и gdm не работают их сети по протоколу xdmcp, который предназначен для управления удаленными x-терминалами. Только xdm. Редактируем inittab:

id:5:initdefault
x:5:respawn:/usr/x11r6/bin/xdm -nodaemon

Теперь редактируем файл конфигурации /usr/x11r6/lib/x11/xdm/xdm-config, для того, чтобы программа принимала запросы из сети. Нужно просто закоментировать последную строку файла:

!displaymanager.requestport: 0

Символ комментария здесь "!".
Чтобы xdm действительно принимал запросы на соединение от графических терминалов, в файле /usr/x11r6/lib/x11/xdm/xaccess пишем строку:

* nobroadcast

остальные комментируем или удаляем (я лично удалил).
Данный компьютер у нас сервер, который обрабатывает запросы из сети, следовательно, наличие локального x-сервера вовсе не нужно, он запускается на рабочей станции. Чтобы отключить локальный сервер, комментируем строку в файле /usr/x11r6/lib/x11/xdm/xservers

#:0 local /usr/x11r6/bin/x

Здесь символ комментария - "#". Теперь все готово к тестированию. Переходим на рабочую станцию, где установлен linux и запускаем x-server c командной строки от имени root:

x :1 -query имя_компьютера

Я предполагаю, что у Вас как и у меня на машине уже запущен один x-server, который находится локально, и занимает x-терминал localhost:0.0, следовательно, второй x-терминал можно запустить на localhost:1.0 - попасть на него можно по alt+f8, если вы ничего не меняли в стандартной конфигурации текстовых терминалов консоли. x-сервер обратится к xdm на настраиваемом сервере, который сгенерирует сеансовый ключ, и выбросит вам на экран свой графический login. Если такого не произошло, то свалите x-сервер ctrl+alt+backspace и запустите его вновь. Приглашение появится.

Следующим этапом является установка fwvm2. Его можно скачать c http://www.fvwm2.org и приступать к процессу установки. Это я описывать не буду, последовательность стандартная: configure; make; make install плюс редактирование xclients, чтобы запустить fvwm2. Конфигурация сервера готова. Теперь можно на него войти и поставить легкие редакторы. Я установил nedit, glimmer, тщательно проверяя их на наличие ошибки невысвобождения ресурсов. joe поставил конечно. И еще скомпилировал ядро. Как это делать, описывать не буду. Это уже делалось и не раз.
Настройка графических терминалов состояла из установки на них asplinux 9.0 по nfs, удаления ненужных сервисов и прописания в inittab строки:

x:5:respawn:/usr/x11r6/bin/x -query имя_компьютера

Теперь после загрузки получаем login от xdm сервера. Базу данных пользователей на терминальный сервер я передал с помощью nis (yp), домашние каталоги через nfs.
Базовая конфигурация была готова к использованию.

Теперь перейдем к настройке терминалов. Машины очень слабые - intel 486 dx66 4 Мб ОЗУ, сетевая плата на 10 Мбит и все, клавиатура, монитор и все.
Прежде всего требуется настройка удаленной загрузки. Для этого на сервер ставим tftp сервер и dhcp (можно так же bootp). Качаем netboot-0.8, компилируем его. В нем есть прошивка ПЗУ, в которой находится протокол tcp и клиенты bootp и tftp. bootp позволяет получить от сервера конфигурацию протокола tcp/ip для рабочей станции (собственно сам протокол был предтечей dhcp), а tftp (trial ftp) вытянуть образ с linux в память. Утилита mknbi-linux (которая входит в netboot-0.8) позволяет создать загрузочный рабочий загрузочный образ, который саморапаковывается на рабочей станции. Проще всего собрать его в памяти, для этого читаем ramdisk.txt, в каталоге documentation исходников ядра. Делаем образ, затемы вычитываем его в файл и утилитой mknbi-linux создаем файл, который кладется в каталог /tftpboot. В файле конфигурации dhcpd /etc/dhcpd.conf для терминальных станций пишем:

filename "имя_файла"

где "имя_файла" - имя положенного в каталог /tftpboot файла образа.

Самым сложным является задача по запихиванию ядра и telnet'a в образ. Поскольку он не может быть более 2 Мб (памяти у нас всего 4 Мб), то пришлось откопать старый redhat 4.1, поставить его на vmware и на нем собрать ядро 2.0.27, добавить библиотеки, которые использует telnet и ash, и в качестве скрипта init данного мини-linux'a написать определение ip-адреса из dhcp/bootp и вызов telnet на 23 порт терминального сервера (файл /etc/protocols можно скопировать, тогда порт можно не указывать) и вызов telnet зациклить. Тогда после logout в linux, пользователь вновь получает приглашение ко входу в систему. После помещения образа на tftp сервер он успешно вытягивается и начинает работать. Пользователь получает полноценную командную строку на терминальном сервере. А мы - целый компьютерный класс, который выполняет поставленные задачи.

Категория: Windows и общие вопросы | Добавил: webmaster (2006-12-04)
Просмотров: 350 | Рейтинг: 0.0 |

Всего комментариев: 0
Имя *:
Email *:
Код *:
Форма входа

Сервисы

Поиск по каталогу

Друзья сайта

| Ссылки 1 | Ссылки 2 | Ссылки 3 |
www.webmaster.clan.su Каталог+поисковая система be number one Bakililar.az Top Sites Сервис авто регистрации в
каталогах, статьи про раскрутку сайтов, web дизайн, flash, 
photoshop, хостинг, рассылки; форум, баннерная сеть, каталог 
сайтов, услуги продвижения и рекламы сайтов Скрипт для определения тиц (Яндекс CY: индекс цитирования). Определение pr (Google Pagerank). Проверить тиц pr сайта.
Copyright WebMaster.Clan © 2006 Бесплатный хостинг uCoz