Журнал "Windows 2000 Magazine", #03/2000
Три преимущества и три недостатка популярной ОС
Новые операционные системы очаровывают меня. Я очень люблю тестировать их, ибо не теряю надежды найти устойчивую, гибкую и универсальную во всех отношениях среду. За прошедшие 20 лет мне приходилось иметь дело с самыми разными операционными системами, в том числе CP/M корпорации Digital Research и ее клонами CP/M-86 и MP/M, системой TRSDOS для машин Radio Shack TRS-80, TOS для Atari 520, GEM для Amiga, UCSD P-System Калифорнийского университета в Сан-Диего (задолго до появления Java, обеспечившей независимость от аппаратной платформы), IGC VM/386, Microsoft Windows/386 и Quarterdeck DesQ (три попытки создания многозадачных сред для DOS), Microsoft OS/2, IBM OS/2, Banyan VINES, Novell NetWare и, конечно, Windows NT.
При этом ни одна из них не смогла полностью удовлетворить мои желания. Некоторые вскоре забылись из-за технологических ограничений, неконкурентоспособности или того и другого вместе.
Самая молодая сегодня среди профессиональных операционных систем - Linux. Свой вклад в развитие этой UNIX-подобной системы, которую, еще будучи студентом, в 1991 г. разработал Линус Торвальдс, внесли тысячи программистов. Именно это стало одной из причин ее неслыханной популярности в последние два года (кстати, лишь немногие разработчики Linux получают деньги за свой труд).
В последнее время я очень много узнал о Linux, поскольку занимаюсь подготовкой книги для экспертов по Windows NT, где пытаюсь разъяснить основы новой операционной системы, ее возможности и идеологию, а также то, каким образом она упрощает работу администраторов Windows NT. Среди открытых мною преимуществ Linux - умение работать в качестве сервера без графического интерфейса, надежный встроенный инструментарий и готовность к удаленному управлению.
Включенный в состав Windows NT графический пользовательский интерфейс (Graphical User Interface, GUI) облегчает работу с компьютером и упрощает процесс обучения начинающих администраторов по сравнению с предыдущими сетевыми операционными системами типа NetWare версий 3.x и 2.x. Вместе с тем, GUI истощает ресурсы компьютера, занимая память и загружая своими задачами процессор, что ограничивает возможности серверных приложений. Поэтому порой мне хочется, чтобы 32-разрядная Windows NT, подобно DOS, запускалась бы только в режиме командной строки. Тогда при необходимости можно было бы подключать GUI для использования с инструментарием администратора и отключать его при выполнении стандартных серверных работ. Если графический интерфейс не занимает память и процессорные ресурсы, то они высвобождаются, и при этом повышаются скорость и устойчивость работы операционной системы. В результате сервер смог бы лучше справляться с ролью контроллера домена или сервера служб WINS, DNS, DHCP. Но, к сожалению, графический интерфейс Windows NT слишком тесно интегрирован с операционной системой.
В противоположность этому, графический интерфейс Linux не встроен в ядро. Соответственно, операционную систему можно загрузить в режиме командной строки, не подключая GUI. Это одно из важнейших преимуществ Linux, позволяющее запускать ее на компьютерах с минимальной конфигурацией. Например, компьютер со стомегагерцевым процессором Pentuim и 32 Мбайт оперативной памяти может отлично работать под Linux в качестве DNS- или Web-сервера.
Важным достоинством операционной системы без GUI является ее повышенная надежность, связанная с меньшим числом работающих компонентов, каждый из которых может стать причиной сбоя. Например, Windows NT не загрузится по вине плохо написанного графического драйвера монитора, что в принципе невозможно в конфигурации Linux без GUI.
Другое преимущество Linux перед Windows NT - возможность создания сценариев для решения большинства административных задач и их запуск из командной строки. Поскольку в командных файлах довольно трудно, если вообще возможно, описать щелчки мышью, администраторам Windows NT постоянно приходится искать аналоги командной строки, чтобы выполнить действия, которые они привыкли осуществлять средствами стандартного графического инструментария.
Для загрузки Linux с графической оболочкой проще всего использовать программы инсталляции ее клонов Red Hat и Caldera. Однако сначала следует установить на дисплее максимально возможное разрешение. Графическая оболочка Red Hat - GNOME - содержит набор шрифтов, которые при разрешении 640_480 выглядят просто ужасно. Вполне подойдет разрешение 800_600, но чем оно больше, тем лучше. Мало, чтобы графическая оболочка нормально работала, потребуются значительные аппаратные ресурсы. Я бы порекомендовал как минимум Pentium II с 64 Мбайт памяти. Приходилось слышать утверждения, что Linux не так требовательна к возможностям оборудования, как Windows NT, но, это, вероятно, относится к другим вариантам GUI. (Конечно, можно запустить GNOME на стомегагерцевой системе с памятью объемом 32 Мбайт, как в случае Windows 2000, но я сомневаюсь, что кто-то получит удовольствие от такой работы.)
Первые сетевые операционные системы для ПК, как правило, включали небольшой набор инструментальных средств. Чтобы иметь возможность нормально работать, нужно было покупать программы независимых поставщиков. Например, 15 лет назад компания 3Com продавала ПО файлового сервера и сервера печати. А пользователям системы NetWare 3.x, в составе которой не было средств удаленного доступа, приходилось приобретать отдельный модуль асинхронного шлюза.
В этом смысле Windows NT 3.1 была уникальным явлением, поскольку предлагала ряд стандартных инструментальных модулей (в том числе модуль коммутируемого доступа). Впоследствии разработчики Microsoft продолжили эту линию, включив в систему Web-сервер, HTML-редактор, DNS-сервер и другие компоненты.
Инструментарий Linux намного богаче. В состав этой системы входят модуль почтового сервера Internet, широкий набор протоколов IP-маршрутизации, мощная графическая программа для рисования и черчения, модуль Samba, позволяющий Linux стыковаться с файловым сервером Windows NT или же выступать в роли такого сервера, базовый модуль сетевого экрана. Более того, инструментарий Linux отличается высокой надежностью, поскольку разработан на основе программного кода UNIX, использовавшегося миллионами людей в течение многих лет. Например, в основе DNS-сервера Linux лежит программа Berkeley Internet Name Domain (BIND), различные модификации которой применялись с середины 80-х годов для поддержки иерархических структур DNS.
Сложность удаленного администрирования сервера Windows NT всегда тяготила меня. Хотя опытные администраторы и освоили такие трюки, как использование RCMD (Remote Command Service, RCMD.EXE) в сочетании с программами regini или regedit, все равно удаленное администрирование Windows NT сильно отличается от своего локального аналога. В любом случае требуется освоение специального инструментария. Это связано с тем, что операционные системы персональных компьютеров всегда были тесно привязаны к локальным клавиатуре и дисплею. В самом деле, до недавнего времени большинство "персоналок" не подключались к сети и, следовательно, не нуждались во взаимодействии с другими клавиатурами или мониторами.
Что касается Linux, то она изначально приспособлена к дистанционному управлению, поскольку произошла от UNIX. Первыми UNIX-машинами были дорогие мини-компьютеры, к которым через последовательные порты подключалось множество терминалов. Единственным различием между локальным и удаленным соединением была более высокая скорость локальной связи (от 4800 бит/с до 19 200 бит/с) по сравнению со скоростью коммутируемого доступа (110, 300 или 1200 бит/с). При этом в обоих случаях применялось одно и то же коммуникационное программное обеспечение, независимо от того, подключен терминал напрямую или через пару модемов и телефонную линию. Даже сегодня, когда UNIX обзавелась графическим интерфейсом, установка сеанса связи остается одинаково простой на удаленной и локальной машине (при условии, что пользователь имеет право на запуск сеанса с удаленного хоста). Таким образом, если для управления расположенным в другой стране компьютером с Linux мне нужно лишь подключиться к нему с помощью программы telnet, то для решения той же задачи с сервером NT придется в эту страну съездить.
Несмотря на все преимущества Linux перед Windows NT, ее, к сожалению, нельзя сравнить с букетом роз или наполненным до краев бокалом красного вина*. Поэтому предлагаю спуститься на землю и обсудить ряд ее недостатков. Начнем с процедуры инсталляции.
В процессе изучения Linux я обнаружил, что наибольшие трудности при работе с этой системой возникают в ходе установки. Многие говорят мне, что в остальном Linux надежна и устойчива, и мой личный опыт, в некоторой степени, подтверждает это. Однако процедура инсталляции Linux и в самом деле просто кошмарна. Мне довелось устанавливать на различные компьютеры пять версий Linux: SuSE Linux 6.3 beta, Red Hat Linux 6.0, OpenLinux 2.3 компании Caldera Systems, Corel LINUX и Slackware Linux 7.0 компании LinuxMafia. Все пять версий имеют похожие варианты выбора конфигурации, но различные методики установки. Тем не менее установка каждой из них сопровождалась многочисленными проблемами.
Многие из этих проблем были связаны с GUI. Однако, прежде чем описывать их, хочу объяснить, почему так важен графический интерфейс для установленных мною версий.
Как я уже говорил, Linux может вообще не использовать графический интерфейс. Однако, как известно, большинство пользователей привыкли иметь дело с графикой, а поставщики Linux, естественно, хотят расширить круг своих клиентов. Поэтому при инсталляции многих современных версий Linux настоятельно рекомендуется устанавливать GUI. Например, SuSE Linux, Corel LINUX и OpenLinux по умолчанию работают в графическом режиме, сразу загружая среду X Window. Тем, кому графика не нужна, придется немного поколдовать над файлами конфигурации.
Мне пришлось приложить немало усилий, чтобы графический интерфейс устанавливаемых версий заработал. Вероятно, это связано с относительно недавним приходом графики в мир Linux. Я очень надеюсь, что разработчики SuSE, Caldera и других компаний решат эти проблемы к 2001 г. или даже раньше. Пока же настоятельно рекомендую не пытаться устанавливать Linux, не выяснив тип набора микросхем видеоадаптера, объем видеопамяти и диапазон частот горизонтальной и вертикальной развертки. Получить такую информацию можно с помощью уже установленной операционной системы (например, Windows NT или Windows 9x). Характеристики монитора приведены либо в ее описании, либо на сайте изготовителя.
Сначала я попытался установить Red Hat Linux на свой ноутбук Compaq DIGITAL HiNote Ultra 2000, который укомплектован процессором Pentium MMX с частотой 266 МГц, стандартной видеокартой Chips & Technologies, встроенным модемом CreditCard Xircom Ethernet 10/100+Modem 56 (CEM56) и ЖК-дисплеем с разрешением 1024х768. В ходе установки я получил сообщение You have a PS/2 mouse, после чего мне было предложено нажать кнопку ОК. Однако сделать этого я не смог - система зависла. (На момент выхода статьи появилась версия Red Hat Linux 6.1, в которой этой проблемы не возникает.)
Затем я решил установить Red Hat Linux на портативный компьютер Toshiba Satellite 335CDT с аналогичными процессором и видеокартой, а также ЖК-монитором с разрешением 800х600. Поскольку мой компьютер не имел встроенного сетевого адаптера, я установил в него плату 3Com 3C574 Fast EtherLink. Установка системы прошла успешно, но на экране появилось сообщение о неработоспособности графического интерфейса. После перезагрузки выяснилось, что система не распознает сетевой адаптер, в связи с чем мне пришлось явно указать номер прерывания и адрес ввода/вывода. Однако даже после этого драйвер не заработал до тех пор, пока я вручную не установил номер прерывания и адрес ввода/вывода 300. (Хорошо, что это была плата 3Com - сетевые адаптеры Xircom не предусматривают возможность "прошивки" конкретного прерывания и адреса ввода/вывода.) Программа установки на обоих ноутбуках (до этого я устанавливал Red Hat Linux 6.0 на Ultra 2000) выбрала разрешение 640х480 и отказывалась менять его до тех пор, пока я не "обманул" ее, напрямую отредактировав файл конфигурации XF86Config.
OpenLinux также не заработала на Ultra 2000 - наверное, тоже не любит сетевые платы. Вместе с тем, ее отличают выдающиеся способности определения типа видеосистемы и умение выполнять тестирование. Помните, я предсказывал, что будущие версии Linux станут намного лучше идентифицировать видеосистему? OpenLinux можно считать первой из них. Итак, программа установки распознала видеокарту, выяснила объем памяти на каждом из выбранных компьютеров и очень детально отобразила полученную информацию. Кроме того, она может протестировать каждый возможный видеорежим прямо в ходе установки, что предотвращает появление после загрузки пустого экрана вследствие неверно выбранного разрешения.
Подобно OpenLinux, SuSE Linux тоже старается обеспечить дружественный интерфейс. Однако она не очень-то в этом преуспела - нельзя же считать достижением неуклюжие и нечитаемые графические экраны. "Верхом совершенства" стало завершающее установку графическое окно настройки размеров экрана, все надписи на котором были на немецком языке. (Справедливости ради, надо сказать, что я работал с бета-версией SuSE Linux.)
Несколько недель спустя после моей неудачной попытки установить Red Hat Linux 6.0 на Ultra 2000, компания Red Hat выпустила версию 6.1 этой системы. Ее загрузка на Ultra 2000 и Satellite 335CDT прошла намного успешнее. Тем не менее на Satellite 335CDT она смогла распознать плату сетевого адаптера лишь тогда, когда я либо извлекал, а затем снова вставлял ее, либо вводил команды Red Hat Linux, имитирующие замену адаптера.
В процессе установки с Red Hat Linux я столкнулся с еще одной нелепостью. Так, мне было предложено выбрать один из двух GUI: либо KDE, либо GNOME. Однако вне зависимости от моего выбора ставился все равно GNOME.
Лучше всех установку на Ultra 2000 выполнила Slackware, которой не потребовалось никакой помощи с видеоподсистемой и встроенным сетевым адаптером.
Самым занятным из всего, что мне пришлось изведать во время мучений с ноутбуками, была реакция моих знакомых из круга специалистов по Linux. Каждому, кто интересовался, как продвигается мой проект, я излагал свое твердое убеждение в том, что люди, писавшие программы установки Linux, знали, что Linux - классная операционная система, но не видели необходимости убеждать в этом остальных. Обычно собеседник спрашивал меня, на какой компьютер я ее устанавливал. Когда же я отвечал: "На портативный", слышал в ответ следующее: "Ах, вот в чем дело! Вы пытались установить Linux на ноутбук!" Тем не менее, несмотря на трудности, я понял, что это и в самом деле возможно.
Как оказалось, установить Linux на настольный ПК намного легче, чем на портативный. На всех выбранных мною компьютерах имелись сетевые платы 3Com 10/100 XL Ethernet, а поскольку они представляют собой почти что отраслевой стандарт, то, как я полагал, вряд ли могут вызвать сбой. Мое предположение подтвердилось.
Единственная проблема возникла из-за того, что на все шесть компьютеров я установил видеокарты Trident 975 с интерфейсом AGP. Поскольку большинство версий Linux не смогло работать с ними, я отказался от этих плат и вытащил из ящика с запчастями несколько более старых, а также плату ATI Technologies Mach 128. При этом последняя преподала мне ценный урок по работе с Linux: никогда не покупай нового оборудования. Поскольку версии Linux, с которыми я экспериментировал, не поддерживали ATI, она продолжает собирать пыль в ящике запчастей, дожидаясь выхода соответствующего ей клона. По ряду причин я не смог найти подходящих драйверов для Linux на Web-узлах изготовителей указанных плат.
И, наконец, я получил противоречивые результаты, пытаясь создать конфигурации с двойной загрузкой - Linux и Windows 2000 или Windows NT. Linux использует многовариантный загрузчик LILO, который предлагает широкий набор способов загрузки Linux, а также других операционных систем с гибкого или жесткого диска. Тем не менее примерно половина моих попыток организовать двойную загрузку через Linux оказалась неудачной - после перезагрузки Linux не подавала никаких признаков жизни, сколько бы я ни возился с Fdisk. Что касается SuSE Linux, то единственным условием, при котором она "согласилась" работать, было выделение ей всего диска - эта версия не желает делить дисковые ресурсы с другими операционными системами.
Из своих "упражнений" я извлек несколько уроков. Во-первых, при выборе оборудования для платформы Linux не стоит гоняться за новинками: скорость разработки драйверов для этой операционной системы пока оставляет желать лучшего. Во-вторых, перед установкой Linux нужно узнать имена изготовителей, номера моделей и тип наборов микросхем всех плат компьютера, а также номера прерываний и адреса ввода/вывода сетевых и звуковых адаптеров. Тот, кто работает с Windows 2000 или Windows 9x, сможет собрать всю необходимую информацию с помощью Device Manager. Для этого нужно щелкнуть правой кнопкой мыши на значке любого периферийного устройства, например сетевой платы, а затем выбрать в контекстном меню команду Properties. На вкладке Resources будут показаны номер прерывания (IRQ) и адрес ввода/вывода (I/O address). В Windows NT аналогичную информацию можно найти на вкладке Resources программы Windows NT Diagnostics. Наконец, чтобы узнать, какая из конфигураций LILO работает на используемом компьютере, придется неоднократно переустанавливать Linux.
После сбора данных о платах компьютера и работоспособных конфигурациях LILO полученные сведения следует записать. Я, например, наклеил листок с этой информацией на системный блок. Догадываюсь, что кто-то может считать сбор подобных сведений пустой тратой времени. Безусловно, такая необходимость подчас раздражает, а процедура установки Linux на только что купленный компьютер может затянуться. Тем не менее эта маленькая исследовательская работа нам не в новинку - мы все проделывали ее несколько лет назад при установке Windows NT 3.1, Windows 3.x или OS/2.
Многие из тех, кто устанавливает Linux, используют Windows NT и хотят иметь возможность альтернативной загрузки любой из этих систем. Поэтому я бы предложил поставщикам Linux вот что: создать программу установки, которая проверяла бы содержимое реестра Windows NT, при его наличии, и читала список установленного оборудования, а также параметры конфигурации; затем она сравнивала бы список имеющихся драйверов Linux со списком адаптеров из реестра и сообщала, какие компоненты системного оборудования не поддерживает.
Марк МИНАСИ
Марк Минаси - редактор Windows NT Magazine, MCSE, и автор книги "Mastering Windows NT Server 4.0" (издательство Sybex).
С ним можно связаться по адресу: mark@minasi.com.
* WINE - свободно распространяемая инструментальная подсистема Linux, позволяющая запускать программы для Windows.