Уровень сложности: простой IBM developerWorks, IBM developerWorks, IBM
05.2007 Выбор Linux
В настоящий момент Linux занял свое место на рынке операционных систем для настольных компьютеров, постепенно он становится все более привлекательными для широкого круга конечных пользователей, особенно для тех, чья деятельность тесно связана с интернетом. Это вызвано, с одной стороны, теми ограничениями и проблемам, с которыми все в большей степени сталкиваются пользователи коммерческих настольных ОС. С другой стороны, дистрибутивы Linux становятся более мощными и удобными для конечных пользователей, что является естественным следствием усилий широкого сообщества программистов, разработчиков программного обеспечения с открытым кодом.
Это руководство можно использовать как технический справочник для ИТ-организации, планирующей использовать на своих настольных компьютерах операционную систему Linux. В сети доступно огромное количество текстов «HOW TO» для Linux, которые посвящены техническим деталям установки системы на различных платформах, настройке операционной системы, пользовательского интерфейса и другим вопросам.
В этом руководстве вы также найдете некоторое количество технических советов типа «HOW TO», но основной акцент сделан на более общих вопросах, мы ставим свой целью указать читателю на важные моменты, которые следует учесть и спланировать, составляя проект перехода на новую систему. Мы исходим из предположения, что миграция происходит от одной из операционных систем Microsoft Windows, и постараемся дать наиболее полное и последовательное описание технических решений и методов, необходимых для успешного перехода конечных пользователей на Linux-систему.
4.1 Как обстоит дело с миграцией сегодня
Даже за то время, пока писалось это руководство, произошло значительное расширение набора и возможностей программного обеспечения для Linux. Для тех немногих ИТ-организаций, которые сейчас стоят перед выбором базовой операционной системы для своих настольных машин, ситуация сравнительно проста, поскольку Linux предоставляет полный набор приложений, покрывающий все их нужды. Но зачастую речь идет не о новой установке, а о переходе на работу под Linux настольной вычислительной машины, работающей под управлением другой операционной системы. Для конечных пользователей наиболее важным вопросом будет вопрос перехода от набора программ, входящих в пакет Microsoft Office, к соответствующим приложениям, работающим под управлением Linux.
Кроме того, большинство пользователей не работают изолировано, а включены в сложную сетевую инфраструктуру, как минимум они пользуются средствами обмена электронными сообщениями (а Microsoft Outlook@, например, под Linux не работает). Наша книга содержит раздел, в котором обсуждаются и демонстрируются методы включения Linux-клиента в существующую сеть со службой каталогов Active Directory@ и сервером Microsoft Exchange.
Успех миграции офисных приложений во многом зависит от того, насколько широко в организации используются продвинутые возможности Microsoft Office, а также собственные приложения, интегрированные или расширяющие возможности Microsoft Office. Наибольшие шансы успешно перейти на офисные приложения под Linux имеют пользователи, рабочие места которых соответствуют типу «Фиксированные функции» или «Техническая рабочая станция». Описание этих типов рабочих мест можно найти в Разд. 6.1, далее в Разд. 6.1.1 эти вопросы обсуждаются более подробно.
Внимание Сейчас и в ближайшее время только те пользователи, которые используют разумно-ограниченную функциональность офисных приложений, могут уверенно мигрировать под Linux. Так как офисные приложения под Linux постоянно совершенствуются (вместе с инструментами для соответствующих преобразований данных), то в скором времени можно ожидать, что это ограничение будет снято и продвинутые пользователи также смогут перейти на Linux.
4.2 Поиск оптимального решения
Организации, которые пользуются ПО с открытым исходным кодом для обеспечения работы серверов, например, большие банки, страховые компании, государственные учреждения и предприятия розничной торговли, естественно склоняются к тому, чтобы установить Linux также на настольных машинах своего персонала. Однако никакое, даже самое хорошее решение, не может быть одинаково пригодно для всех. Прежде чем планировать миграцию, ответьте на три критических вопроса:
- Существенно ли деятельность персонала зависит от программ независимых производителей, от плагинов или аппаратных средств, которые работают только под управлением Windows?
- Разработаны ли для рабочих станций персонала собственные приложения, которые основаны на использовании Win32® API и/или скриптовых языков Windows, например, Visual Basic®?
- В большой ли степени персоналу требуется в работе совместимость документов (это могут быть шаблоны или форматы файлов) с Microsoft Office?
Если ответ хотя бы на один из этих вопросов «да», то переход на Linux, возможно, не лучшее решение, во всяком случае, переход не будет простым и будет требовать известных вложений.
Если вы ответили «нет» на все три вопроса, то это означает, что ситуация благоприятна для перехода на Linux, и вам следует начать планировать пилотный вариант миграции (используя эту книгу как руководство). На основе пилотной миграции вы сможете сделать окончательные выводы о том, стоит ли переходить к промышленной эксплуатации.
4.3 Стратегическое планирование
Переход на Linux представляет собой только часть проблемы. Рано или поздно всякая организация сталкивается с необходимостью оптимизации и упрощения ИТ-инфраструктуры, включающей серверы, базы данных, приложения, внутренние сети, программное обеспечение рабочих станций и т.д. В противном случае она не будет иметь базы для развития и применения новых технологий.
При этом обсуждать и рассматривать следует в первую очередь функциональность того или иного элемента, а не отдельные продукты и бренды. Нет ничего хорошего в том, что мы помним название инструмента и теряем название функции, которую он выполняет. Например, словосочетание «текстовый процессор» почти никому не известно, а «Microsoft Word» слышал почти каждый. Между тем, Microsoft Word всего лишь один из текстовых процессоров, работающий на платформе Windows и Apple Macintosh, а есть и другие платформы и для каждой из них существует известный выбор текстовых процессоров.
Очень редко настольный компьютер работает сам по себе. Как правило, он подключен к серверам, банкам данных, принтерам. Кроме операционной системы на нем установлен известный набор приложений, инструментальных средств, зачастую — специально разработанное программное обеспечение. Всем этим надо управлять, все должно поддерживаться в рабочем порядке и сопровождаться.
Эта книга посвящена главным образом проблемам перевода на Linux клиентских машин, работающих на платформе Microsoft Windows. Мы не ставим себе задачу описать полностью стратегию миграции на Linux всех элементов ИТ-инфраструктуры, однако будем иметь в виду, что миграция рабочей станции есть часть общего плана. Рис. 4.1 (Источник: The IDA Open Source Migration Guidelines, netproject Ltd © European Communities 2003) в форме диаграммы демонстрирует пример полной миграции ИТ-инфраструктуры на платформе Windows NT@ к инфраструктуре на базе Linux. Пунктиром выделена та часть миграционного плана, которая будет в центре внимания этой книги.
Рис. 4.1: Миграционный цикл
4.4 Планирование на уровне клиентов
Выбор платформы для конечного пользователя зависит от тех функций, которые он выполняет, и от тех приложений, которые он использует в своей работе.
Все больше бизнес-приложений разрабатываются с использованием кросс-платформенных средств, не зависящих от операционной системы, использующих открытые стандарты и широко распространенные технологии, такие как веб-броузеры. Наблюдается повсеместное движение в сторону сервис-ориентированной архитектуры (Service-Oriented Architecture, SOA), которая позволяет составлять приложение из уже существующих сервисов. Такой подход упрощает обмен данными и дает выигрыш за счет использования готовых компонент и сходных проектных решений внутри всего предприятия.
SOA часто реализуется посредством веб-сервисов. Веб-сервис характеризуются набором стандартных свойств, что гарантирует их способность к взаимодействию с другими приложениями, они используют такие общие технологии как XML (Extensible Markup Language), SOAP (Simple Object Access Protocol), HTTP (Hypertext Transfer Protocol) и другие.
Клиенты для приложений, основанных на веб-сервисах, часто написаны на Java или используют средства доступа веб-броузера. При таком подходе для работы приложения не важно, какая операционная система установлена на клиентской машине, что увеличивает гибкость системы в целом и расширяет возможность выбора. Критериями выбора приложения становятся его цена, надежность, гибкость, возможность поддержки и сопровождения, способность к взаимодействию с другими приложениями и другие.
Однако для многих предприятий такая технология, несмотря на всю ее привлекательность, может быть только целью, к которой они начинают движение, поскольку заменить установленное и работающее программное обеспечение так же сложно, как модернизировать старую технику.
Таким образом, принимая решения об обновлении технологии и архитектуры ИТ-системы предприятия, необходимо в полной мере учитывать требования и нужды пользователей на каждом рабочем месте. Глядя вперед, не стоит забывать и о сегодняшнем дне, принятые решения должны не только помочь внедрению новых прогрессивных подходов, но и обеспечить существующую сегодня функциональность.
4.5 Чем хорош Linux
Сегодня мы можем видеть, что Linux развился в мощную операционную систему, которая может работать практически на любом существующем оборудовании. Как правило, Linux требует меньше памяти и мощности процессора, чем другие операционные системы, и обеспечивает большую производительность.
Благодаря своему дизайну и открытому характеру программного обеспечения, Linux легко настроить под любые нужды. Linux распространяется на условиях лицензии GPL (GNU General Public License. Полный текст лицензии GPL можно найти на странице: http://www.gnu.org/licences/licenses.html. Проект GNU поддерживается Фондом Свободного Программного Обеспечения (Free Software Foundation, FSF). См.: http://www.gnu.org/fsf/fsf.html) и может быть получен бесплатно. Однако, многие предприятия покупают готовые дистрибутивы Linux, поскольку это упрощает установку и обеспечивает поддержку со стороны производителя дистрибутива. Ключевым фактором выбора Linux является его открытость и гибкость, а не низкая цена дистрибутива. Широкая функциональность, надежность, масштабируемость, наличие поддержки — вот что обеспечило движение Linux из чисто академической сферы в область промышленного использования.
Благодаря поддержке ряда крупных компаний, таких как IBM, например, под Linux теперь работают многие популярные пакеты, среди которых стоит упомянуть Lotus Notes®, веб-броузер Mozilla, офисные приложения с открытым кодом, Java desktop и многие другие. Таким образом, Linux обеспечивает полный набор функциональности стандартного настольного компьютера.
Linux поддерживает стандарт POSIX (Portable Operating System Interface), определяющей такие детали работы и№Х®-подобных операционных систем, как формат системных вызовов и интерфейсов. Совместимость с POSIX позволила разработчикам портировать под Linux многие популярные приложения и утилиты UNIX.
Linux также включает полную реализацию сетевого пакета TCP/IP. Поддерживается весь набор клиентов и сервисов, включая стандартный интерфейс сокетов, благодаря чему все программы, которые используют TCP/IP, могут быть легко перенесены под Linux.
Linux поддерживает файловую систему для CD-ROM стандарта ISO-9660, программы управления печатью, мультимедийными устройствами, модемами и т.д. Коротко говоря, Linux предоставляет средства для обеспечения всех потребностей широкого круга конечных пользователей.
4.6 Обзор Linux и вариантов дистрибутивов
В 1984 году Фондом Свободного Программного Обеспечения (Free Software Foundation, FSF), некоммерческой организацией, созданной Ричардом Столлманом, была начата работа над проектом GNU, свободной версии операционной системы UNIX. Разработчики ставили своей целью создать не просто бесплатную версию операционной системы, но такую, исходные коды которой будут всегда доступны для чтения, модификации и распространения. К 1990 году в рамках проекта GNU были разработаны многие компоненты, включая компиляторы и текстовый редактор, однако свободного UNIX-подобного ядра не существовало. В 1991 году финский студент Линус Торвальдс начал разрабатывать такое ядро. При этом с самого начала работы исходные тексты новой операционной системы свободно распространялись через интернет под лицензией GPL, благодаря чему в разработку и тестирование включилось большое число программистов и работа пошла быстрее. В 1992 году была выпущена первая законченная версия ядра операционной системы, названной Linux.
Для того чтобы получить работающую операционную систему, ядра недостаточно. С самого начала в операционную систему входили утилиты GNU и другие программы. Такой набор необходимых для работы компонент стали называть дистрибутивами. Среди наиболее популярных дистрибутивов можно назвать Fedora и Red Hat Enterprise Linux, openSUSE и SUSE Linux Enterprise, Debian и производный от Debian Ubuntu Linux (В России также известны русифицированные дистрибутивы ALTLinux, Linux Cyrillic Edition, ASPLinux - прим. переводчика).
Linux — UNIX-подобная операционная система, соответствующая стандартам POSIX, распространяемая под лицензией GNU. То есть, она может быть получена бесплатно. Linux поддерживает несколько систем управления оконным интерфейсом и все возможные утилиты интернета, такие как FTP (File Transfer Protocol), Telnet, SLIP (Serial Line Internet Protocol). Он работает на 32-х и 64-разрядных процессорах, поддерживает многозадачность и работу с виртуальной памятью, разделяемыми библиотеками, сетевым протоколом TCP/IP. Linux обращается к собственной библиотеке обработки потоков (нитей) POSIX, что обеспечивает высокопроизводительную многопоточную обработку; симметричную мультипроцессорную работу (SMP), до 16 логических CPU (или до восьми CPU-пар), а также для компьютеров Cray разрабатывается поддержка массированной мультипроцессорной системы MPP, которая может включать до 10000 процессоров AMD Opteron.
Linux может работать на архитектуре x86, Itanium®, AMD64, на серверах IBM серии eServer: zSeries®, iSeries™, pSeries®, на S/390®. Во всех случаях используется общий исходный код.
4.7 Будущее настольных систем под Linux
Мы наблюдаем сейчас динамичное развитие настольных систем под Linux и будущее выглядит многообещающим. Фирма Novell только что выпустила в свет новую версию промышленного настольного дистрибутива SUSE Enterprise Linux Desktop 10, а фирма Red Hat готовит к выпуску Red Hat Enterprise Linux 5, в который будет включено множество полезных нововведений, позаимствованных из открытого проекта Fedora. Обе фирмы, и Red Hat и Novell, производят свои дистрибутивы, ориентируясь на промышленное применение на различных предприятиях, от мелкого до среднего и крупного бизнеса. В то же время возрастает популярность дистрибутива Ubuntu Linux, ориентированного на применение в качестве настольной системы для домашних компьютеров.
В настоящее время перед сообществом разработчиков программного обеспечения для настольных систем под Linux в полный рост встал вопрос совместимости интерфейса различных программных продуктов, особенно это касается работы приложений в графическом окружении. Например, есть популярный мультимедиа плеер под Linux, но для того чтобы обеспечить его полную функциональность как для GNOME, так и для KDE, приходится затрачивать немало усилий. Причем разные компании решают эту задачу по-разному.
Для того чтобы сократить непроизводительны расходы сообщества по адаптации программного обеспечения, необходимо разработать стандарты, которые бы позволил однотипно включать приложения в различные дистрибутивы Linux. Эти стандарты должны поддерживаться производителями дистрибутивов Linux. Как раз сейчас организовалось широкое сообщество и ведется большая совместная работа, результатом которой станет дальнейшее развитие и распространение таких стандартов.
Важные разработки в этой области ведутся компанией Desktop Linux Working Group, спонсируемой OSDL (Open Source Development Labs). Проекты унификации взаимодействия приложений и различных видов рабочего окружения поддерживаются freedesktop.org. Более подробную информацию об этом можно найти по адресам:
Практически все ссылки на самую свежую информацию по этой теме можно найти на странице Free Standards Group (подробнее об этой группе см. http://www.freestandards.org/en/About). Одним из ключевых проектов, поддерживаемых этой группой, является Linux Standard Base (LSB), именно этот проект и то, какие приложения он имеет в настольных системах, будет обсуждаться далее в этой главе.
Замечание Далее в этой главе мы воспроизводим содержание следующего документа: From Server to Desktop: Linux Standard Base Engages Application Developers Worldwide.
Использование этого документа в нашем издании стало возможно благодаря разрешению, полученному от корпорации Intel и Free Standards Group.
Более подробную информацию о них можно найти по адресам:
http://www.intel.com/software/opensource
http://www.freestandards.org
4.7.1 От серверов к настольным системам: Linux Standard Base привлекает разработчиков программного обеспечения по всему миру
Возможности LSB в качестве стабилизирующей силы, способной сделать Linux еще более привлекательным для промышленного применения, особенно в настольных системах, не вызывают сомнений.
В течение многих лет сообщество разработчиков ПО с открытым кодом стояло перед задачей создания стабильной, унифицированной хорошо сопровождаемой операционной системы — надежной платформы для разработки пользовательских приложений для промышленного применения. В то время как с Linux уже завоевал популярность в качестве надежной, эффективной и недорогой ОС для промышленных серверов различного уровня, применение Linux на настольных компьютерах оставалось ограниченным. Главной причиной этого был недостаток полноценных офисных приложений, соответствующих требованиям, предъявляемым к программному обеспечению в большой организации. Созданию таких приложений во многом мешало отсутствие стандартизации графического рабочего окружения в различных дистрибутивах Linux.
Корпорация Intel и группа Free Standards Group (FSG), вместе с другими членами сообщества поставили перед собой цель создать новые возможности для разработчиков пользовательского ПО. Те препятствия, которые возникали при промышленном использовании UNIX и которые были следствием фрагментации и отсутствия единства, должны послужить уроком. Чтобы в будущем не повторялись прошлые ошибки, многие из тех, кто был вовлечен в эволюцию UNIX, объединились с целью разработки стандартов Linux, которые обеспечили бы его развитие и широкое применение.
Позитивным шагом в направлении стандартизации является создание LSB (Linux Standard Base), сейчас уже широко принятого, и утвержденного Международной организацией по стандартам (ISO) и Международной электротехнической комиссией (IEC). Официальное признание этого стандарта, безусловно, приведет к расширению круга пользовательских приложений для настольных систем, ускорению внедрения новинок и дальнейшему улучшению положения Linux на рынке ПО. Как независимые производители программного обеспечения, так и конечные пользователи выигрывают от того, что рынок ОС для настольных компьютеров становится более широким и гибким. Текущий момент является очень подходящим для компаний и разработчиков программно обеспечения, которые могут включиться в развитие и распространение LSB и ПО на его базе. Одним из таких проектов стандартизации является Linux Desktop Project, который был начат в 2005 и главной целью ставит стандартизацию графического рабочего окружения для Linux. Далее в этом разделе мы будем обсуждать этот проект подробнее.
4.7.2 Рабочий стол под Linux сегодня
Необходимость адаптировать свои программы для различных вариантов операционных систем сейчас ложится тяжелым грузом на плечи разработчиков пользовательских приложений. Когда речь шла о разработке программного обеспечения для Linux, то приходилось учитывать еще и различия дистрибутивов. Поэтому стандартизация для Linux стала жизненно необходима. Free Standards Group была создана с целью собрать все лучшее, что есть в этой области и создать стандарт, который касается как вопросов переносимости бинарного кода, так и концепций разработки пользовательского ПО. После утверждения международными организациями стандарта LSB появилась реальная возможность стандартизации приложений для рабочего стола под Linux.
Сейчас доля Linux на рынке программного обеспечения для настольных компьютеров не так велика, но если обратить внимание на тенденции, то становится ясно, что у Linux хорошие перспективы в качестве ОС для настольных систем.
Свежие дистрибутивы Linux имеют дружественный пользовательский интерфейс и обладают хорошим набором офисных приложений.
Как говорит исполнительный директор FSG Джим Землин (Jim Zemlin), по своей сути LSB является набором бинарных программных интерфейсов, программных библиотек и стандартов, обеспечивающих возможность взаимодействия. Этот набор позволяет разработчикам программного обеспечения не заботиться об особенностях того или иного дистрибутива, а рассматривать Linux-среду в качестве единого целевого окружения.
4.7.3 Состав Linux Standards Base
LSB построен во многом на базе уже существовавших ранее стандартов, кроме того, он описывает бинарный интерфейс между приложениями и средой исполнения. Стандарты, на базе которых был разработан LSB, включают в себя Single UNIX Specification (SUS), System V Interface Definition (SVID), C++ ABI и System V Application Binary Interface (ABI). Кроме того, при построении LSB использовались стандарты POSIX на программный код и определения интерфейсов из SUS.
Разработчики LSB не только включили в состав стандарта удачные аспекты стандартов-предшественников, но учли ошибки и ограничения, в них допущенные. Например, POSIX определяет только программный интерфейс и не может гарантировать совместимость двоичного кода. На другом конце спектра находится стандарт OSF/1, который обеспечивает такую совместимость, но устанавливает слишком жесткие рамки. При разработке LSB была сделана попытка найти нечто среднее меду двумя этими подходами.
LSB устанавливает границы доступности интерфейсов внутри конкретных библиотек и содержит спецификацию структур данных и ограничений, связанных с каждым интерфейсом. Ниже на Рис. 4.2 можно видеть организацию компонент в LSB 3.1. Эти компоненты включают библиотеки, необходимые для разработки (например, С++), структуры файловой системы (определение мест расположения общих файлов), спецификации на поведение общедоступных интерфейсов, детали организации пакетов приложений, процедуры, выполняемые перед и после установки пакета и т.д.
Рис. 4.2: Организация компонент в LSB 3.1
Кроме LSB той же группой разработан LSB Software Development Kit (LSB SDK), который состоит из рабочего окружения и необходимых инструментов, позволяющих модернизировать приложения в соответствии с LSB. Инструменты, входящие в LSB SDK, позволяют разработчикам тестировать бинарные файлы и RPM-пакеты на соответствие стандартам LSB и контролировать использование API на этапе построения приложений.
Начальные версии стандарта LSB были сфокусированы на особенностях Linux-приложений для серверов, такой подход был оправдан существовавшей практикой. Версии, появившиеся в 2005 и 2006 годах дополнены спецификациями для приложений и библиотек Linux, ориентированных на настольные системы.
LSB версии 3.0 и версии 3.1, в большей степени ориентированной на рабочие станции, подготовили почву для появления LSB версии 4.0, которая будет содержать необходимую формализацию для разрешения многих известных моментов, создающих сейчас проблемы для разработчиков ПО под Linux. Одна из целей создания новой версии — дать возможность разрабатывать графические приложения для всех LSB-совместимых дистрибутивов, которые будут одинаково хорошо работать как в рабочей среде KDE, так и в рабочей среде GNOME. Подробную информацию о спецификациях LSB можно найти по адресу:
http://lsb.freestandards.org
4.7.4 Стимулы для независимых производителей программных продуктов
Природа разработок с открытым кодом такова, что вокруг новых приложений и дистрибутивов возникают новые модели деловых взаимоотношений. Внутри открытой и гибкой модели решения нового поколения могут заимствовать лучшие черты предшествующих разработок в комбинации с инновационными технологиями. Как следствие расширяется сфера рыночного применения приложений, в том числе в областях, которые раньше не были затронуты.
Ранее разработка ПО для настольных систем под Linux была затруднена отсутствием унификации. Вот как говорит об этом Ян Мердок, технический директор FSG, один из тех, кто был вовлечен в разработку стандартов UNIX в начале 90-х годов: «Раньше разработчики вынуждены были сидеть и выбирать, для какого дистрибутива они будут работать — это может быть Red Hat, или Novell, или Debian — и затем создавать свое приложение для каждого дистрибутива. Особенно это касалось рабочего стола. Не было стандартного пути для самых базовых вещей, таких как создание иконок на рабочем столе или интерфейс для общения с системой печати. Приходилось все время иметь в виду то окружение, в котором будет работать приложение. Не только выбор дистрибутива имел значение, но и то, какой менеджер рабочего стола будет запущен. Например, способы добавления пунктов меню в GNOME и KDE были разными, даже если использовалась одна и та же версия одного и того же дистрибутива. Позиция разработчиков ПО была такова: они хотели разрабатывать приложения, ориентированные на определенную платформу, и выбирали такую платформу, которая давала им наибольший возможный рынок.»
«LSB обеспечивает разработчикам приложений под Linux единую платформу. Приложение, удовлетворяющее стандарту LSB, будет одинаково хорошо работать с любым дистрибутивом Linux, совместимым с LSB. Таким образом возможный рынок для такого ПО достигает максимума.»
—Ян Мердок, технический директор Free Standards Group
Сейчас рынок программного обеспечения не ограничен географическими рамками, но в разных странах обычно популярны различные дистрибутивы. Так, в США распространены дистрибутивы фирмы Red Hat, в Европе — Novell, а в азиатских странах — свои дистрибутивы. Если разработчик ориентируется на определенный регион, то ему лучше выбрать соответствующий дистрибутив. Но это изначально накладывает ограничение на распространение ПО.
До версии 3.1 LSB в первую очередь был нацелен на стандартизацию компонент ядра, таких как среды исполнения C и C++ и других, ассоциированных с приложениями, работающими на серверах.
После того как LSB был утвержден в качестве ISO-стандарта, вышла версия 3.1, которая затрагивает нижний уровень приложений, работающих на настольных компьютерах, например, популярные инструменты разработки графических пользовательских интерфейсов GTK и Qt*.
Версия 4.0 призвана продолжить стандартизацию до уровня разработок для рабочего стола. Далее в этом разделе перспективы стандартизации, связанные с этой версией, обсуждаются более подробно.
4.7.5 Существенное увеличение числа потенциальных пользователей
Новые модели разработки позволяют коммерческим компаниям, разрабатывающим программное обеспечение, существенно увеличить круг потенциальных пользователей своей продукции. Во многих странах, таких как Бразилия, Китай и Индия, число пользователей персональных компьютеров постоянно увеличивается, значительное часть их работает под Linux. Вычислительные машины под Linux работают в образовании, государственных учреждениях, мелком и среднем бизнесе. Соответственно, потребность в пользовательском ПО для настольных машин существенно возрастает.
4.7.6 LSB-совместимые дистрибутивы
Разработчики дистрибутивов Linux могут вложить существенный вклад в дело повсеместного распространения стандартов. Выпуск LSB-совместимых дистрибутивов должен стать правилом для разработчиков, тестирование на соответствие стандартам должно быть включено на всех этапах разработки. Дистрибутивы ведущих производители уже сейчас достигли соответствия LSB-стандартам. Разработчики дистрибутивов должны принять участие в работе над стандартами.
4.7.7 LSB-совместимые приложения
Независимые производители ПО могут помочь расширению стандартизации, следуя стандартам LSB в своих разработках для ОС Linux. Они также могут поддерживать связь с FSG, если хотят, чтобы быть их концепции и требования были включены в следующие версии LSB.
4.7.8 Конечные пользователи
Конечные пользователи, выбирая операционную систему для своей машины или определяя политику при покупке программного обеспечения для своей фирмы, могут обратить внимание на соответствие продуктов LSB. Таким образом они выбирают наиболее прогрессивные технологии, получают более надежный продукт и более широкий выбор гарантированно совместимого программного обеспечения.
Исключительно полезным ресурсом по этой тематике является freedesktop.org, см.: http://www.freedesktop.org
freedesktop.org — форум, посвященный разработке общих технологий для менеджеров рабочего стола системы X-Window, в первую очередь речь идет о KDE и GNOME.
4.7.9 Вехи на пути к широкомасштабному внедрению
Первой вехой можно считать утверждение LSB в качестве ISO-стандарта, которое произошло 1 ноября 2005 года на конференции Open Source Business Conference и было важным знаком публичного признания LSB и OC Linux. Утвержденный ISO/IEC в качестве Публично-доступных Спецификаций (Publicly Available Specification, PAS), стандарт был опубликован как международный стандарт 23360 (International Standard 23360).
4.7.10 LSB Desktop Project
Следующей вехой мы считаем объявление о формировании проекта для настольных машин LSB Desktop Project, сделанное группой FSG 18 октября 2005 года. Проект был поддержан фирмой Intel и другими организациями. Сейчас уже среди участников этого проекта можно видеть такие заметные в компьютерном мире организации как Adobe, IBM, HP, Linspire, Mandriva, Novell, RealNetworks, Trolltech, Red Hat, Xandros и другие. Эти организации тратят время и свои ресурсы на работу по унификации общих библиотек и стандартизации поведения приложений в рамках LSB.
После того как будут окончательно стандартизованы требования на поведение приложений как во время выполнения, так и во время установки, разработчики пользовательских приложений для Linux будут освобождены от необходимости создавать библиотеки и версии своих программ, ориентированные на отдельные дистрибутивы, они смогут ориентироваться на Linux-платформу в целом.
До тех пор пока не вышла ожидаемая вскоре версия стандарта 4.0, разработчики могут опираться на требования LSB версии 3.1, поскольку эта версия представляет собой фундамент, на котором будет построена версия 4.0. По словам Яна Мердока, в промежутке между версиями будет иметь место некоторое развитие LSB, например, будет добавлена функциональность в наборе инструментов. Часть добавлений связана с предложениями и требованиями независимых производителей ПО. Изменения произойдут и в части, касающейся рабочего стола, там будут интегрированы наработки сообщества freedesktop.org.
LSB Desktop Project является часть общего проекта LSB и построен по тому же модульному принципу, это позволяет производителям дистрибутивов и ПО использовать стандарт в той степени, в которой это представляется для них возможным. Такой подход привлекает большое число промышленных лидеров и позволяет им включиться в работу по созданию действительно полезного и соответствующего требованиям как разработчиков, так и пользователей стандарта.
Политика Free Standards Group состоит в привлечении к активному сотрудничеству как можно более широкого круга специалистов, в том числе производителей дистрибутивов, независимых производителей ПО, сообществ разработчиков программ с открытым кодом и отдельных программистов. Разработка ясного и работоспособного стандарта существенно расширит базу применения ОС Linux в качестве операционной системы для настольных машин как на уже сложившемся рынке, так и на вновь возникающем.
Узнать больше о проекте Linux Desktop Project можно посетив страницу в интернете: http://lsb.freestandards.org
Подписаться на лист рассылки и принять участие в формировании и уточнении стандартов для настольного компьютера под Linux можно по адресу:
http://lists.freestandards.org
Последние новости, касающиеся разработок для настольного компьютера под Linux, и дискуссии можно найти по адресу:
http://www.desktoplinux.com
В этой главе мы будем обсуждать основные причины и обоснования необходимости миграции клиентских машин на Linux.
Мы не будем подсчитывать стоимость мероприятия или коэффициент окупаемости инвестиций, мы не собираемся продавать вам миграцию. Мы просто хотим указать на те причины, которые могут побудить вас перевести конечных пользователей на Linux.
Поскольку в этой книге описывается миграция от Windows-клиента к Linux-клиенту, то неизбежно возникает желание сравнить платформы. Однако здесь мы главным образом хотим обсудить аргументы в пользу миграции как таковой. Сравнения двух платформ постоянно появляются в различных статьях, записках и отчетах, масса ресурсов на эту тему присутствует в интернете; большинство из них так или иначе противоречат друг другу.
В этой главе вы найдете следующие разделы:
- Разд. 5.1 Зачем мигрировать
Причины, по которым может возникнуть вопрос о миграции
- Разд. 5.2 Когда следует мигрировать, а когда нет
Обсуждение факторов, влияющих на принятие решения о том, что миграция необходима
- Разд. 5.3 В чем заключаются особенности Linux?
- Разд. 5.4 Цели миграции
Какие преимущества мы ожидаем получить в результате миграции
5.1 Зачем мигрировать
Прежде всего заметим, что желание заменить операционную систему на настольном компьютере конечного пользователя возникает тогда, когда появляется альтернатива, когда есть на что менять. Решение выполнить миграцию основывается на том, что альтернативный вариант по своим свойствам подходит больше, чем имеющийся. В этом разделе мы обсудим свойства, которыми обладает настольная машина, работающая под Linux.
С нашей точки зрения, главным образом на принятие решения влияют следущие аспекты:
- Безопасность персонального компьютера
- Полные затраты, связанные с ПО настольного компьютера
- Уровень управляемости клиента
- Удобство настройки клиента под нужды пользователя
- Философия открытого ПО
- Простота в эксплуатации
Рассмотрим каждое их этих свойств в деталях.
5.1.1 Безопасность персонального компьютера
Linux имеет большое число различных средств, отвечающих за обеспечение безопасности, но сейчас мы сконцентрируем внимание на тех, которые тесно связаны с работой приложений на клиентской машине. Мы предполагаем, что клиент включен в сеть и на нем наряду с другими активно используются сетевые приложения. Это предположение определяет круг дальнейших тем обсуждения, а именно:
- Безопасность броузера
- Безопасность клиента электронных сообщений
- Защита пользователя и обеспечение безопасности
- Оперативность исправления ошибок
- Модульность операционной системы
- Брандмауэр
5.1.1.1 Безопасность броузера
Броузеры, используемые под Linux, как правило — программы с открытым кодом. Для некоторых из них существуют версии, работающие с другими операционными системами. Существенно то, что в Linux броузер никогда не интегрирован в операционную систему, это отдельное приложение, которое просто работает под управлением операционной системы. Наиболее часто используются следующие броузеры:
Поскольку броузеры не интегрированы в операционную систему, при работе с ними практически невозможно разрушить систему безопасности операционной системы. Все броузеры могут запускаются в пространстве, выделенном для пользователей, и не могут затрагивать пространство, выделенное под ядро. Это также означает, что программное обеспечение броузера может быть установлено пользователем, не имеющим административных полномочий.
Конечно, ни одна программа не может быть полностью застрахована от слабых мест, но, во-первых прореха в коде броузера не дает пиратам возможности нарушить работу ядра, а, во-вторых, подобные проблемы под Linux очень быстро обнаруживаются и исправляются. Скорость реакции обусловлена тем, что с Linux связано широкое и активное сообщество разработчиков ПО с открытым кодом, и тем, что изменять и тестировать нужно только само приложение, а не операционную систему в целом.
До сих пор броузеры с открытым кодом имели дополнительное преимущество за счет того, что были менее распространены, чем Microsoft Internet Explorer®, и, соответственно, были не так привлекательны для пиратских атак. Однако, число установок свободных броузеров увеличивается, и это преимущество постепенно сходит на нет.
5.1.1.2 Безопасность клиента электронных сообщений
Под клиентом электронных сообщений мы будем понимать любую программу, которая применяется для обмена электронными сообщениями между двумя конечными пользователями с использованием протокола TCP/IP, включая интернет. Таким образом в понятие «клиент электронных сообщений» включаются как почтовые клиенты, так и клиенты для непосредственного обмена сообщениями.
Также как и броузеры, приложения для обмена электронными сообщениями под Linux — это программы с открытым кодом, которые не интегрированы в операционную систему, а просто работают под управлением операционной системы. Таким образом, все, что было сказано о безопасности использования броузеров под Linux, справедливо и для клиентов электронных сообщений.
Клиенты электронных сообщений с открытым кодом как правило могут работать с несколькими протоколами обмена сообщениями. Таким образом, выбор клиента под Linux не означает жесткой привязки к одному протоколу и оставляет возможность выбора как протокола, так и приложения, управляющего потоком сообщений на стороне сервера. С другой стороны, выбор самих клиентов с открытым кодом довольно широк, что позволяет выбрать лучший вариант для конкретного приложения на серверной стороне.
5.1.1.3 Защита пользователя и обеспечение безопасности
Вопросы обеспечения безопасности системы и защиты конечного пользователя от несанкционированного доступа с самого начала были важной частью проекта по созданию операционной системы Unix. Linux, так же как и Unix, по своей сути является многопользовательской системой, в которой каждому пользователю и группе пользователей приписаны конкретные полномочия. В Linux только один пользователь, пользователь с полномочиями администратора, может производить существенные изменения в настройках операционной системы, что обеспечивает дополнительную безопасность как системы в целом, так и отдельных конечных пользователей.
Конечные пользователи под Linux, как правило, не имеют административных полномочий для доступа к операционной системе. Кроме того, конкретный пользователь или группа пользователей имеют различные права доступа к различным группам файлов. Благодаря этому данные каждого пользователя защищены от несанкционированного доступа.
5.1.1.4 Оперативность исправления ошибок
Никакая операционная система не может гарантировать отсутствие слабых мест в программном обеспечении. Поэтому очень существенным фактором безопасности является время реакции на информацию об ошибках. Риск, связанный с «брешью» в системе безопасности, прямо пропорционален времени, которое требуется, чтобы ее заделать. Поскольку большинство компонент в Linux — ПО с открытым кодом, всякая информация об ошибке вызывает реакцию большого числа программистов и, как правило, бывает исправлена очень быстро.
Существенным моментом является то, что каждая организация, работающая с открытым ПО, имеет доступ к исходным текстам. Поэтому всякий, кто обнаружил ошибку, может ее исправить, протестировать внесенные изменения и разослать соответствующий патч всем остальным пользователям. В случае же закрытого ПО нет ни возможности адекватной диагностики, ни возможности исправления. Единственное, что можно сделать — послать сообщение об ошибке производителю ПО и ждать, пока тот сам ее исправит.
5.1.1.5 Брандмауэр
В Linux сервисы брандмауэра встроены в ядро. Начиная с версии ядра 2.4, эти сервисы называются iptables. Правильно сконфигурированный iptables позволяет администратору определить набор правил (policy) для работы клиентов Linux в сети. Брандмауэр iptables может быть использован для:
- Защиты системы от проникновения вирусов
- Предотвращения использования запрещенных протоколов
- Блокирования известных средств взлома
5.1.2 Стоимость рабочего места под Linux
Очевидно, что часть затрат на организацию рабочего места с настольной машиной носят общий характер и не зависят от того, какая операционная система будет выбрана. Поэтому, в первую очередь, обратим внимание на те факторы, которые могут зависеть от операционной системы. Среди них:
- Стоимость лицензии и поддержки дистрибутива Linux
- Стоимость оборудования
- Стоимость базового набора приложений клиентской машины
- Затраты на сопровождение и поддержку
- Стоимость миграции
5.1.2.1 Стоимость лицензии и поддержки дистрибутива Linux
Ядро Linux и большинство приложений, включаемых в дистрибутив, являются свободным ПО и распространяются под лицензией GNU Public License (GPL). Это означает, что ПО может быть получено бесплатно. То есть, стоимость лицензии на рабочее место нулевая.
Однако промышленные дистрибутивы обычно стоят достаточно дорого. Дистрибутив представляет собой некоторый заранее подобранный комплект: ядро и набор приложений вместе с процедурой установки системы и документацией. Обычно фирмы, продающие дистрибутивы, включают в стоимость пакета поддержку на один год. Существуют различные формы поддержки пользователей, как правило, за дополнительную плату у тех же фирм можно получить поддержку более высокого уровня.
Поскольку Linux представляет собой свободное ПО, то его можно использовать полностью бесплатно, не тратя денег ни на лицензию, ни на поддержку. В этом случае организация может рассчитывать только на поддержку со стороны сообщества разработчиков свободного ПО, такой вариант оправдан при наличии в штате собственных программистов.
5.1.2.2 Стоимость оборудования
Большинство дистрибутивов Linux очень нетребовательны к оборудованию и хорошо работают на достаточно старых машинах. Вполне вероятно, что для установки клиентов Linux можно использовать те машины, от которых пришлось отказаться, поскольку они не соответствовали требованиям очередной версии Microsoft Windows.
Однако следует учитывать, что последние версии дистрибутивов Linux в варианте «промышленный» имеют довольно высокие требования к оперативной памяти, приближаясь по этому параметру к Microsoft Windows. Но, поскольку требуется нарастить только память, то, как правило, это требование легко выполнить даже для старых машин.
5.1.2.3 Стоимость базового набора приложений клиентской машины
Дистрибутивы Linux включают в себя большое число базовых приложений, как то: текстовые редакторы, средства обработки изображений, броузеры, средства для обмена электронными сообщениями, набор офисных приложений, включающий текстовый редактор, редактор электронных таблиц и средство подготовки презентаций. Таким образом, стоимость приложений для стандартного рабочего места практически равна нулю.
Даже если нужное приложение отсутствует в дистрибутиве, есть достаточно большая вероятность, что оно существует в виде свободного пакета, который можно бесплатно скачать из сети и установить.
5.1.2.4 Затраты на сопровождение и поддержку
Известно, что поддержание клиентской настольной машины в рабочем состоянии, в том числе профилактика и поддержка системы безопасности, требует определенных затрат. Это обстоятельство, безусловно, является веским аргументом в пользу миграции на Linux, так как Unix-подобные операционные системы включают массу опций, позволяющих минимизировать стоимость поддержки. Например, возможность удаленного доступа по протоколу telnet или ssh, позволяет устанавливать на клиентской машине нужные скрипты и удаленно выполнять их.
Используя удаленный запуск скриптов, несложно следить за порядком на клиентских машинах и делать необходимые поправки прямо с сервера. Например, если надо обновить версию пакета или установить заплатку на все клиентские машины, это можно сделать прямо с сервера при помощи скрипта, не прерывая работы конечных пользователей.
Существуют также и специальные инструменты для управления системой различных производителей, например, Red Hat Network фирмы Red Hat или ZENworks Suite фирмы Novell.
5.1.3 Уровень управляемости Linux клиента
Одним из наиболее важных вопросов при выборе платформы для клиентской машины является вопрос управляемости. Вопросы стоимости поддержания ПО на клиентской машине в рабочем состоянии обсуждались в Разд. 5.1.3. Степень управляемости клиентов под Linux очень высока благодаря, во-первых, заложенным изначально в Linux проектным решениям и, во-вторых, большому числу инструментов, предназначенных специально для этих целей. Часть этих инструментов создана сообществом разработчиков свободного ПО, часть фирмами-производителями ПО.
Эти инструменты и свойства операционной системы мы рассмотрим ниже в подразделах:
- Модульная структура операционной системы
- Механизм обновлений
- Удаленный доступ
- Инструменты для удаленного управления
5.1.3.1 Модульная структура операционной системы
Ядро Linux было спроектировано как модульная структура. Оно не представляет собой монолитный двоичный код, а состоит из небольшой исполняемой части и набора модулей. Модули ядра подгружаются по мере необходимости. Часть модулей загружается во время запуска системы, поскольку без них невозможно обращение к файловой системе и к периферийному оборудованию.
Не только ядро имеет модульную структуру, приложения также построены по модульному принципу. Такие приложения, как языки скриптов (Perl, PHP, Python) или текстовые редакторы (gedit, vi) не интегрированы в операционную системы и в большинстве случаев могут быть заменены другими приложениями или новыми версиями.
Модульный принцип построения дает неоспоримое преимущество при обновлениях и всевозможных заменах, поскольку меняется только то, что необходимо заменить, например, отдельный исполняемый файл, или библиотека, или модуль ядра. Благодаря такому подходу, обновление приложения и даже применение патча, как правило, не требует перезагрузки операционной системы.
5.1.3.2 Механизм обновлений
Как уже упоминалось, обновление приложений не затрагивает работу операционной системы, как правило, его можно запустить параллельно с выполнением других задач. Оно не требует перезагрузки системы, кроме тех случаев, когда обновляется ядро или его модули, и может быть выполнено оперативно.
Что это дает? Кроме упрощения процедуры и сокращения времени, мы имеем также возможность автоматизировать процесс, просто включив процедуру обновления/наложения патчей в расписание автоматически выполняемых задач.
5.1.3.3 Удаленный доступ
Как и для всех Unix-подобных операционных систем, возможность уделенного доступа посредством TCP/IP является для Linux естественной, базовой функцией. Это действительно мощное средство системного администрирования, поскольку все задачи управления можно выполнить удаленно, безопасность при этом обеспечивается использованием шифрованного протокола обмена, например, ssh.
Рассмотрим два типа задач удаленного администрирования:
- Удаленное выполнение административных программ или контролирующих скриптов
- Доступ на клиентскую машину в тех случаях, когда пользователь нуждается в поддержке
Удаленное выполнение. Удаленное выполнение полезно тогда, когда нужно централизованно запустить на клиентских машинах какое-либо приложение или скрипт, например, обновить антивирус или применить свежий патч. Возможно, надо получить информацию от контролирующего скрипта, это поможет вовремя произвести профилактические работы, скажем, очистить каталог с временными файлами, чтобы предотвратить переполнение файловой системы.
Удаленная поддержка. Практически все потребности клиента в поддержке могут быть удовлетворены путем удаленного доступа на клиентскую машину. Единственная проблема, которая может потребовать присутствия технического персонала у клиентской машины — это неработающая сеть. Все остальные вопросы могут быть разрешены удаленно, путем доступа к конфигурационным файлам и журналам на клиентской машине. Такая возможность существенно повышает производительность персонала, отвечающего за техническую поддержку клиентских машин.
5.1.3.4 Инструменты для удаленного управления
Доступно множество инструментов для удаленного администрирования Linux, часть разработана сообществом разработчиков свободного ПО, часть фирмами-производителями ПО. Наиболее популярными из них являются:
Webmin, как правило, используется для удаленного администрирования отдельной машины. Big Brother и Nagios предназначены, в основном, для мониторинга параметров сети в режиме реального времени и выполнения известных административных задач в тех случаях, когда параметры выходят из установленных пределов.
Существуют также и коммерческие инструменты для выполнения подобных задач. Например, компания IBM поставляет пакеты Tivoli® Configuration Manager и Tivoli Monitoring для автоматизации удаленного контроля и администрирования.
Дистрибутивы Red Hat Enterprise Linux используют для удаленного администрирования систем или групп систем Red Hat Network (RHN). RHN содержит сервис для автоматических обновлений, который подробнее описан в Разд. 7.5.7.1.
Дистрибутивы Novell Linux Desktop и SUSE Linux используют пакет для удаленного администрирования систем пакет ZENworks. После того как Novell приобрела программное обеспечение фирмы Ximian, пакет Ximian Red Carpet (называемый теперь ZENworks) стал стандартным средством администрирования, включаемым в вариант «промышленный» дистрибутива SUSE. До этого в дистрибутивах SUSE для удаленного администрирования использовался пакет Yast online Update (YoU).
5.1.4 Настройка системы под нужды пользователя
Иногда бывает полезно специально настроить клиентскую машину под конкретные нужды конечного пользователя. Если стандартная клиентская установка содержит все возможные приложения, которые содержатся в дистрибутиве, то система становится громоздкой, и ее трудно администрировать. Поэтому разумная настройка клиентских машин является существенной частью стратегии развертывания Linux на настольных машинах.
В этом разделе мы остановимся на следующих особенностях клиентской машины под Linux:
- Гибкость в добавлении или удалении компонент стандартной установки Linux
- Контроль пакетов с целью предотвращения «разбухания» клиента
- Возможность построения дистрибутива, ориентированного на конкретные задачи
- Гибкость настройки рабочего стола и администрирования сессии
5.1.4.1 Гибкость в добавлении или удалении компонент
Все дистрибутивы Linux на этапе установки предоставляют пользователю возможность выбрать те компоненты, которые он хочет установить. Также есть возможность использовать стандартный набор пакетов, в этом случае добавить или удалить пакет можно после установки дистрибутива. Эти действия можно выполнить, не прерывая работы системы. благодаря тому, что Linux имеет модульную структуру.
5.1.4.2 Предотвращение «разбухания» клиента
Гибкость в добавлении или удалении компонент помогает предотвратить «разбухание» клиента. Поскольку настройка конкретного клиента достаточно проста, имеется возможность поддерживать несколько вариантов установки системы для конечного пользователя.
Можно собрать работоспособный дистрибутив Linux, который будет помещаться на один гибкий диск (1.4 МБ). При этом стандартный «промышленный» вариант дистрибутива занимает несколько гигабайт.
5.1.4.3 Создание дистрибутивов, ориентированных на конкретные задачи
Поскольку компоненты установки можно свободно исключать, а также есть возможность добавить к ней любое другое приложение, распространяемое свободно, то в некоторых случаях оказывается полезно собрать свой дистрибутив, нацеленный на решение конкретной задачи. Это может быть работа с аудио/видео файлами или специфическая обработка сигналов. Создание собственного дистрибутива может быть полезно в том случае, если в организации есть несколько рабочих мест со специфическими, нестандартными требованиями.
5.1.4.4 Настройка рабочего стола
Различие в подходах между Microsoft Windows и Linux-ориентированным клиентом можно наглядно продемонстрировать на примере менеджера рабочего стола. В Linux существует несколько соответствующих программ, и вы имеете возможность выбрать тот менеджер, который вам больше подходит. Большинство таких программ (например, KDE или GNOME) также предоставляют пользователю средства настройки внешнего вида рабочего стола и интерфейса пользователя. Пользователь может создать свой собственный профиль экрана: задать набор иконок, цвета, фон экрана, вид и управляющие элементы окон и т.п.
5.1.5 Философия открытого ПО
В некоторых случаях уже сам тот факт, что Linux представляет собой открытое ПО, достаточен для того, чтобы принять решение о миграции. Если вы используете свободное ПО, вы не привязаны к конкретной фирме-разработчику. Другой причиной использования свободного ПО может быть желание адаптировать программы под свои специфические нужды. Это всегда возможно, поскольку для свободного ПО всегда доступен исходный код.
Эти причины являются очень весомыми для некоторых правительственных организаций, особенно в Европе.
5.1.6 Простота в эксплуатации
Поскольку сейчас масса рабочих мест оснащена компьютерами, важным свойством ПО, установленного на клиентской машине, является простота его использования. Если для работы с программным обеспечением на обычном рабочем месте необходима длительная интенсивная подготовка персонала, то можно считать, что применение такого ПО требует неоправданных расходов.
5.2 Когда следует мигрировать, а когд |