Сравнение Windows NT и Linux сродни выбору между конем и верблюдом.
Общеизвестно, какие чувства питают поклонники Linux к Microsoft. Любая продукция детища Билла Гейтса действует на них, как красная тряпка на быка. В свою очередь Microsoft до недавнего времени старалась вообще не замечать Linux, как будто и не существует такой ОС. Однако рост популярности Linux заставил Microsoft изменить свое к ней отношение, и теперь все чаще и чаще руководители Microsoft вынуждены публично доказывать преимущества Windows NT перед Linux.
К большому сожалению, как поклонникам Linux, так и компании Microsoft часто недостает объективности при сравнении операционных систем. Каждая из сторон утверждает, что ее ОС обходится дешевле, обеспечивает более высокую производительность, безопасность, надежность и масштабируемость. Однако внимательное рассмотрение аргументов сторон нередко демонстрирует тенденциозность подбора, а порой и просто передергивание фактов. Многие выводы основываются на чересчур вольном толковании результатов исследований или на устаревших данных.
Хочу предупредить сразу, что я не являюсь сторонником какой-то одной операционной системы, но мне доставляет удовольствие работать как в Linux, так и под Windows NT (так же, как и в других системах). И я твердо убежден, что каждая система имеет свои сильные стороны. Важно только знать, для каких задач конкретная система подходит оптимальным образом, а где проявляются ее недостатки. Бессмысленно говорить о преимуществах операционной системы абстрактно, в отрыве от решаемых задач.
К сожалению, рассматривать претензии сообщества Linux к Windows NT очень непросто, поскольку само сообщество весьма неоднородно по своему составу. Здесь и высококвалифицированные специалисты, немало повидавшие на своем веку, и малограмотные выскочки. Соответственно, претензии простираются от дотошного разбора особенностей систем до уже ставшего неоригинальным вопля: «Windows must die!»
Критику же Microsoft в отношении Linux разобрать гораздо проще, тем более что недавно Microsoft выпустила документ с весьма характерным названием «Мифы Linux» (http://www.microsoft.com/ntserver/nts/news/msnw/LinuxMyths.asp), целью которого является доказательство преимуществ Windows NT.
В предисловии к документу подчеркивается, что Linux является разновидностью UNIX и, как следствие, несет на себе бремя давно устаревших технологий, так как его архитектура была разработана 30 лет назад. Это объясняет, на взгляд Microsoft, почему Linux имеет проблемы с поддержкой многопроцессорных конфигураций, графического интерфейса, асимметричного ввода/вывода, безопасностью. Если подобные обвинения в адрес Linux еще как-то можно принять, хотя и со многими оговорками, то утверждать подобное об UNIX вообще — значит выставлять себя на посмешище специалистов. Впрочем, к вопросу об «ущербности» UNIX я еще вернусь при сравнении Linux и NT по пунктам.
ПРОИЗВОДИТЕЛЬНОСТЬ
Первый раздел документа призван продемонстрировать более высокую производительность NT по сравнению с Linux на файловых операциях, сервисах Web, транзакциях баз данных и т. п., в подтверждение чему приводятся ссылки на результаты тестирования очень уважаемых компаний. Однако за последний год мне приходилось видеть настолько различные результаты тестов, что я волей-неволей начал относиться к ним с большой осторожностью. Например, в тестах Sm@rt Reseller программа samba 2.0 на платформе ядра Linux 2.2 показала почти трехкратное преимущество над Windows NT 4.0, тогда как в тестах Mindcraft все оказалось с точностью до наоборот (2,5-кратное преимущество NT). Тем не менее мне кажется, что приведенные в документе данные PC Week Lab (http://www.zdnet.com/products/stories/reviews/0,4161,1015266,00.html) отражают реальную картину (преимущество NT над Linux/Samba на 52% для однопроцессорных конфигураций и 110% — для четырехпроцессорной конфигурации). Такие выводы позволяет сделать то обстоятельство, что участие в тестировании принимали представители обеих сторон — Microsoft и RedHat Software.
Не ставя под сомнение результаты PC Week Lab, я только хотел бы отметить, что тестирование проводилось на компьютерах Intel. Когда-то Windows NT могла функционировать на нескольких платформах (Intel, PowerPC, Alpha, MIPS), но сейчас фактически осталась только Intel. В то же время Linux выполняется на множестве платформ, включая самые последние системы RISC. Но коль скоро речь идет о сравнении «голой» мощности, то я бы посоветовал установить Linux/Samba на одну из этих «навороченных» систем. Кроме того, у меня нет ни малейшего сомнения, что на маломощных компьютерах с ограниченным размером оперативной памяти Linux/Samba может дать фору NT.
Тем не менее надо признать, что поддержка многопроцессорных конфигураций в Linux реализована не лучшим образом, с чем согласны сами разработчики Linux. Но делать такой же вывод в отношении UNIX в целом, как минимум, несерьезно. Мощные UNIX имеют такую высокую степень масштабируемости, какой Windows NT/2000 достигнет в лучшем случае через несколько лет.
Не вполне уместны претензии Microsoft к Linux по поводу максимального размера оперативной памяти. Microsoft утверждает, что Linux поддерживает только 2 Гбайт памяти, тогда как NT — 4 Гбайт. Однако Microsoft признает, что отдельные поставщики Linux уже сейчас реализовали поддержку 4 Гбайт памяти. Стоит также вспомнить, что сама Microsoft реализовала такую поддержку только недавно и только в корпоративной версии NT 4.0.
Microsoft указывает, что раздел подкачки (свопинга) Linux ограничен 128 Мбайт, но это ошибочное утверждение. В настоящее время данное ограничение устранено, в чем я убедился, тестируя RedHat Linux 6.1. Но даже в устаревших версиях Linux, где ограничение действительно имело место, оно не вызывало никаких отрицательных последствий. Дело в том, что ОС Linux может использовать до восьми разделов подкачки одновременно.
Но вот что Microsoft замалчивает, так это требования к минимальному размеру оперативной памяти и других ресурсов. Пусть кто-нибудь попробует установить NT 4.0 на компьютер Intel 386 с 8 Мбайт памяти и диском в 60 Мбайт. А ведь такие компьютеры Linux до сих пор используются в качестве маршрутизаторов или систем удаленного доступа.
НАДЕЖНОСТЬ
Microsoft призывает пользователей не верить сказкам о стабильности и надежности Linux, но вместе с тем сама оперирует сомнительными доводами, в частности тем, что такие-то и такие-то организации используют NT для критически важных приложений. Охотно в это верю, но, как показывает статистика, подавляющее большинство крупных компаний для действительно критичных приложений предпочитает мощные системы UNIX и мэйнфреймы.
Microsoft правильно указывает на то, что одним из самых неприятных ограничений Linux является используемая в этой системе файловая система ext2. Действительно, без наличия журнальной файловой системы ОС не может претендовать на применение в корпоративной среде. Однако в данной связи я хотел бы сделать пару замечаний. Во-первых, NTFS из состава Windows NT сама далеко не совершенна. По своим возможностям NTFS значительно уступает файловым системам коммерческих UNIX. Во-вторых, для Linux уже разработаны журнальные файловые системы, хотя пока они и не входят в стандартную поставку.
Microsoft указывает на слабую поддержку в Linux кластерных технологий. И это действительно так. Но и Microsoft ушла недалеко: ту поддержку, которую компания реализовала в NT, некоторые специалисты с трудом соглашаются называть кластером. Во всяком случае кластеры NT серьезно уступают по возможностям кластерам мощных UNIX.
При сравнении надежности Microsoft умалчивает ряд фактов, способных бросить тень на NT. И дело не только в том, что исходные коды Linux общедоступны, и при нахождении проблемы оперативно исправляются. Мне кажется, что архитектура NT в принципе не очень подходит для решения многих серверных задач.
Как известно, поддержка графики реализована в NT на уровне ядра, тогда как в UNIX (Linux в том числе) графическая система работает как обычное пользовательское приложение (т. е. отделена от ядра). При прочих равных условиях это обеспечивает преимущество NT на графических операциях по сравнению с UNIX. Но зачем это нужно в случае серверов? Поддержка графики на уровне ядра приводит к повышению требований к размеру оперативной памяти и снижает надежность системы. И ничего не дает взамен.
Еще одна слабость NT — это своеобразная процедура инсталляции программно-аппаратного обеспечения. Очень часто при установке того или иного приложения систему надо перезагружать. Как же можно говорить о соответствии NT требованиям для корпоративных приложений, где сервер должен работать непрерывно? В современных UNIX на базе RISC-машин перезагрузка компьютера рассматривается как исключительный случай. Конечно, ОС Linux еще далеко до Solaris или HP-UX, но требования к перезагрузке компьютера для нее не такие жесткие, как для NT.
Тем не менее у NT и большинства разновидностей UNIX есть общая проблема. Все подобные системы задействуют только два кольца (уровня привилегий) процессора. В частности, для процессоров Intel системы используют нулевое (уровень ядра) и третье (пользовательский уровень) кольцо. Причем в нулевом кольце «крутятся» ядро системы и драйверы устройств. В то же время процессоры Intel уже давно имеют четыре кольца. Если бы драйверы выполнялись в первом кольце, то это значительно увеличило бы надежность, поскольку некорректно работающий драйвер в этом случае не мог бы вызвать краха системы. Правда, реализация подобной концепции приводит к снижению производительности.
СТОИМОСТЬ
Microsoft указывает, что бесплатность Linux — это не более, чем миф. На мой взгляд, это совершенно верное заключение. Другой вопрос — насколько дорого обходится использование Linux. Прежде всего, замешательство вызывает степень обобщения статистической информации. Microsoft приводит данные, что эксплуатация (Total Cost of Ownership, TCO) Windows NT обходится на 37% дешевле, чем UNIX, и что нет причин считать, что в этом смысле Linux чем-то отличается от других UNIX.
Как известно, есть обман, а есть и статистика. При таком подсчете все свалено в одну кучу. Почему-то Microsoft по затратам на использование приравняла Linux к коммерческим UNIX. Если организации требуется корпоративный сервер для выполнения очень важных приложений, и одна минута его простоя обойдется в сотни тысяч или миллионы долларов (в этой связи вспоминается Нью-Йоркская фондовая биржа), то о каком усредненном TCO может идти речь? Ни один специалист, находящийся в здравом рассудке, не установит NT. Пусть даже система будет бесплатной.
Для Linux все аналогично. Если компании требуется сервер Internet, подключенный по медленному каналу связи, а среди сотрудников компании есть специалисты по UNIX, то сам Бог велел использовать Linux. И это решение обойдется много дешевле, чем в случае NT. Не стоит забывать, что Linux и несколько тысяч приложений для этой ОС предлагаются практически бесплатно.
Можно согласиться, что подготовка специалиста по Linux требует затрат, порой превышающих затраты на обучение специалистов не только по NT, но и по коммерческим UNIX. Отчасти можно также согласиться и с утверждением, что настроить и управлять NT проще, чем Linux, хотя ситуация с Linux достаточно быстро меняется. Впрочем, на этот счет существуют и иные мнения.
БЕЗОПАСНОСТЬ
К большому сожалению поклонников Linux, доводы Microsoft в отношении невысокой безопасности Linux нельзя отвергнуть с порога, поскольку они основаны на очевидных фактах. Прежде всего это относится к отсутствию поддержки списков контроля доступа (ACL), что говорит о слабости Linux на корпоративном уровне. Большинство коммерческих UNIX поддерживает ACL на уровне файловой системы, но в стандартной поставке Linux не имеет даже этого. В свою очередь Windows NT обеспечивает поддержку ACL не только на уровне файлов и каталогов, но и на уровне объектов операционной системы, чем могут похвастаться лишь отдельные версии UNIX.
Microsoft указывает, что концепция безопасности Linux построена по принципу «все или ничего», в частности административные привилегии невозможно делегировать без передачи всех административных полномочий. Но это не совсем так. Во-первых, Linux (так же, как и UNIX вообще) предусматривает возможность смены идентификатора пользователя и группы во время выполнения программы (биты SUID и SGUID). В данном случае во время работы конкретной программы пользователь получает права другого пользователя, в том числе и администратора. Однако справедливости ради стоит отметить, что некорректное использование битов SUID представляет серьезную угрозу для безопасности системы. Во-вторых, в Linux доступ к отдельным приложениям можно регулировать с помощью технологии загружаемых модулей аутентификации (Pluggable Authentication Module, PAM).
Не стоит забывать и о том, что при обнаружении бреши в «обороне» системы «заплаты» выпускаются разработчиками Linux более оперативно.
Microsoft подчеркивает, что Windows NT соответствует классу безопасности C2 по «Оранжевой книге», правда, забывая упомянуть, что это самый низкий класс, требующий сертификации. Но для абсолютного большинства пользователей (особенно российских) критерии безопасности «Оранжевой книги» не имеют ровно никакого значения.
Мне не понравилось также, что Microsoft ассоциирует Linux со всеми UNIX. Для справки сообщаю, что самыми безопасными системами, в соответствии с «Оранжевой книгой», являются именно UNIX, хотя и специализированные версии.
НАСТОЛЬНЫЕ КОМПЬЮТЕРЫ
Мало возражений вызывает утверждение Microsoft о неготовности Linux для настольного применения. Для массового пользователя ОС Linux — не самая лучшая альтернатива, хотя для некоторых задач она вполне приемлема. Это, прежде всего, задачи сетевого администрирования, программы научного и инженерного характера. Но вряд ли стоит надеяться, что какая-нибудь секретарша согласится перейти на Linux. Справедливости ради стоит отметить, что за последнее время разработчики много сделали для повышения удобства работы с Linux. В свою очередь, Windows NT тоже не назовешь идеальной для домашнего и офисного применения — большинство пользователей отдают предпочтение Windows 9x.
ТО, О ЧЕМ ЗАБЫЛА УПОМЯНУТЬ MICROSOFT
А забыла она сказать о том, что используемый в NT принцип хранения системной информации в реестре многим пользователям выходит боком. При сбоях системы и даже отдельных приложений реанимация реестра может превратиться в самый настоящий кошмар. Кроме того, часть информации хранится в текстовых файлах INI, что только запутывает ситуацию. В Linux практически вся информация о системе записывается в текстовые файлы, и квалифицированный специалист без труда может править ее вручную.
Слабым местом NT остается многопользовательский интерфейс, не идущий ни в какое сравнение с имеющимся в UNIX. К тому же в UNIX такой интерфейс встроен в систему, в то время как в случае NT необходимо приобретать довольно дорогие приложения.
В отличие от Linux, в Windows NT отсутствует система квотирования дискового пространства, обеспечивающая защиту от переполнения дисков и гарантирующая справедливое распределение пространства между пользователями.
ЗАКЛЮЧЕНИЕ
Спорить о том, какая из рассмотренных систем лучше, — дело бесперспективное. Для одних задач и в строго определенных случаях лучше подходит Linux, тогда как для других — Windows NT. Но существует и масса ситуаций, когда я ни за что на свете не поставил бы ни NT, ни Linux.
Константин Пьянзин — обозреватель LAN. С ним можно связаться по адресу: koka@lanmag.ru.