Я люблю ломать вещи — это дает мне возможность узнать, что у них внутри и как их можно починить. Операционные системы в этом смысле не исключение. Всю неделю я раздумывал, про что бы мне написать в своей очередной статье, посвященной открытому ПО. Хотелось устроить какое-нибудь сравнительное тестирование, но я не мог решить, какое.
Сначала я вознамерился провести очередное сравнение по безопасности, но потом понял, что тема эта уже избита. К тому же, все равно нельзя с уверенностью сказать, что одна операционная система определенно безопаснее другой. На самом деле, любая ОС становится небезопасной при подключении к сети. Можно как попало использовать самую надежную систему — и она окажется незащищенной. А можно проявлять разумную осторожность, работая в ненадежной ОС, — и чувствовать себя в полной безопасности. В общем, я понял, что для сравнения лучше выбрать какой-нибудь другой критерий.
Откровение снизошло на меня тогда, когда у одного из наших клиентов появилась проблема с обновлением .NET: оно не удавалось, а для работы было очень нужно. Наш сотрудник поступил так, как поступил бы любой другой IT-консультант на его месте: он удалил и переустановил .NET. Однако после этого отказался запускаться Quickbooks POS. Удаляться он тоже не пожелал. А после того как я обратился в техподдержку Intuit и они удалили POS в принудительном порядке, установить его заново не удалось. Короче говоря, мы попали в серьезную переделку.
Под впечатлением от этого мне стало интересно: что легче починить в случае необходимости — Linux или Windows? Вопрос интересный и, казалось бы, легко разрешаемый (по крайней мере, в теории). Настала пора приступать к тестированию. Я решил поставить эксперимент с .NET, потому что в Linux имеется аналогичный программный каркас — Mono. Что если принудительно удалить оба этих компонента, а потом переустановить? Будут ли после этого работать зависящие от них приложения? Выяснить это очень просто. Вернее, должно было быть просто.
Удаление
Для начала я удалил оба каркаса. Избавиться от Mono удалось простой командой, а вот для удаления .NET пришлось воспользоваться сторонней утилитой — .NET Framework Cleanup Tool.
Тестирование
На следующем этапе нужно было выяснить, как удаление программного каркаса повлияло на подопытные системы. Для обеих это не прошло незаметно. В Windows дела обстояли несколько хуже, чем в Linux, но главным образом потому, что от .NET зависит больше приложений, чем от Mono. Откровенно говоря, пользоваться Windows 7 после полного удаления .NET стало практически невозможно. В Linux массу проблем мне доставил GNOME, потому что он зависит преимущественно от Mono. Даже войти в систему с использованием GNOME не удалось.
Итак, первая часть эксперимента удалась. Обе операционные системы серьезно пострадали после удаления программного каркаса. Стоит, правда, отметить, что для Linux в этом случае не все потеряно, потому что вместо GNOME можно спокойно использовать любую другую среду рабочего стола — KDE, XFCE, E17 и т. д.
Переустановка
После этого настало время самого главного испытания — переустановки. Удастся ли решить все эти проблемы установкой .NET и Mono? Хотелось надеяться.
Переустановка в обеих системах прошла без проблем — никаких неожиданностей не возникло. Я начал надеяться, что все восстановилось.
Результаты
В Windows дела обстояли или совсем хорошо или из рук вон плохо — в зависимости от приложения. Из решений Intuit ни одно не пошло. Похоже, некоторые программы написаны специально под определенную версию .NET и при отсутствии таковой просто не работают. Причем .NET нужно устанавливать в строго определенной последовательности. Я решил отдать это дело на откуп Windows Update, но почему-то некоторые нужные версии .NET не установились. Так что мне пришлось заново все удалять и переустанавливать вручную.
Ручная установка прошла намного удачней, но приложения Intuit запускаться все равно не желали, что бы я ни делал. Удалить Quickbooks и Quickbooks POS мне удалось исключительно с помощью Windows Installer Cleanup Utility. Но снова установить ни ту, ни другую программу у меня не получилось ни одним из доступных способов, даже при помощи специалистов из техподдержки Intuit. Так что если бы эти приложения мне были критически важны, пришлось бы переустанавливать всю операционную систему.
В Linux все прошло без проблем. Каркас Mono с легкостью переустановился, и все зависящие от него приложения сразу же заработали, как ни в чем не бывало. Мне удалось войти в GNOME и начать пользоваться системой в привычном режиме.
Выводы делайте сами
Разумеется, это далеко не научное испытание. Многие наверняка вообще назовут его фикцией, потому что я приступал к тестированию, предвидя определенный результат. В защиту могу только сказать, что для меня стало неожиданностью, насколько сильно удаление Mono повлияло на GNOME. Я был готов к тому, что перестанет работать Evolution, но чтобы весь рабочий стол? Этого я не ожидал.
Конечно, каждый защищает свою любимую платформу, и вряд ли какие бы то ни было тесты могут заставить кого-либо поменять свои убеждения. Мой, например, эксперимент ничуть не поколебал меня в уверенности, что Windows легче сломать, чем Linux, а потом труднее починить. Я догадываюсь, что у остальных на этот счет свои мнения и свой опыт. Мне приходилось сталкиваться с ситуациями, когда один и тот же специалист администрирует два разных компьютера под управлением Windows с использованием одних и тех же методов и получает диаметрально противоположные результаты. Возможно, результаты моего эксперимента с .NET — это скорее аномалия. Но судя по реакции технических специалистов Intuit, им приходилось сталкиваться с похожими проблемами и раньше, правда, они все равно не знают, как их решать. Я был бы только рад, если бы любая операционная система могла без проблем справиться с удалением ключевых компонентов типа .NET и Mono через диспетчер программ или пакетов. Может быть, результаты теста говорят только о том, что у Linux более эффективная система управления пакетами. А может быть, они вообще ничего не доказывают. Но лично мне все это говорит о том, что Linux проще восстановить.
А вы как считаете? Чью сторону вы займете? Какую ОС легче сломать, а какую починить?