четверг, 9 апреля 2009 г.

Руководство по миграции на Linux для региональных администраций (Часть II. Выбор Linux)

Выбор 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.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
Рис. 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 броузер никогда не интегрирован в операционную систему, это отдельное приложение, которое просто работает под управлением операционной системы. Наиболее часто используются следующие броузеры:

  • Mozilla
  • Opera
  • Konqueror

Поскольку броузеры не интегрированы в операционную систему, при работе с ними практически невозможно разрушить систему безопасности операционной системы. Все броузеры могут запускаются в пространстве, выделенном для пользователей, и не могут затрагивать пространство, выделенное под ядро. Это также означает, что программное обеспечение броузера может быть установлено пользователем, не имеющим административных полномочий.

Конечно, ни одна программа не может быть полностью застрахована от слабых мест, но, во-первых прореха в коде броузера не дает пиратам возможности нарушить работу ядра, а, во-вторых, подобные проблемы под 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 Когда следует мигрировать, а когда нет


Главная цель этой книги — описать процесс миграции клиента на базе Microsoft Window к Linux-клиенту в предположении, что миграция происходит в Windows-ориентированном окружении. На самом деле, миграция рабочих мест конечных пользователей должна быть частью общего плана перехода предприятия на свободное ПО. Планируя миграцию клиентских машин, не следует упускать из виду это обстоятельство.

Даже если миграция отдельных машин может быть желательна (по причинам, о которых говорится в Разд. 5.1), только общая миграция в итоге даст существенное преимущество. В результате частичной миграции несколько клиентских машин начнет работать под Linux, но при этом общая ИТ-инфраструктура предприятия может стать сложнее.

В этом разделе мы рассмотрим обстоятельства, которые благоприятствуют переводу клиентов на Linux. Коротко говоря, эти обстоятельства сводятся к отсутствию осложняющих факторов. Некоторые из этих факторов мы обсудим более детально.

5.2.1 Функции на клиентской машине соответствуют модели «Тонкий» или модели «Стройный»


Часто клиентские машины, включенные в систему клиент/сервер, в шутку делят на Толстые (fat), Стройные (slim) и Тонкие (thin). Разделение основано на количестве приложений, обычно запускаемых на клиенте. Например, Тонкий клиент запускает локально только интерфейсную сторону приложения, скажем, броузер, а все остальные приложения запускаются на сервере. Различия между этими моделями более подробно описаны в Разд. 7.4.2.

Одним из осложняющих факторов миграции является большое число Толстых клиентов, то есть клиентов, у которых большое число приложений установлено локально. Чем больше число установленных приложений, тем больше шансов, что некоторые из них будет трудно заменить на аналог под Linux. Может случиться, что некоторые из них вообще невозможно перенести, что приведет к дальнейшему усложнению инфраструктуры, подобные случаи описаны в Разд. 7.7.

Если клиент Тонкий, то это означает, что перевод его на Linux не будет являться усложняющим фактором при интеграции в комплексную инфраструктуру. В идеальном случае чтобы получить доступ ко всем необходимым приложениям пользователю нужен только броузер. Тогда миграция под Linux становится просто тривиальной.

Чем больше клиентов соответствуют модели Тонкий/Стройный, тем проще пройдет миграция. Возможный вариант миграции состоит в том, чтобы на первом этапе перевести на Linux только Тонких клиентов, а Толстых оставить в прежнем положении.

5.2.2 Высокое число мигрируемых приложений


Назовем приложение мигрируемым, если оно удовлетворяет хотя бы одному из двух требований: либо существует версия данного приложения, работающая под Linux, либо под Linux существует функциональный аналог. То есть, коротко говоря, если есть прямой путь замены этого приложения.

Те приложения, которые не обладают свойством мигрируемости, могут вызвать сложности в процессе миграции, более подробно эти вопросы разобраны в Разд. 7.7. Чем больше мигрируемых приложений используется, тем легче происходит процесс миграции.

Прежде чем планировать миграцию и пытаться справляться с приложениями, которые нельзя перенести, стоит подумать, нет ли возможности отказаться от использования таких приложений и заменить их аналогами, которые допускают перенос между платформами. Такой подход может быть полезен не только в свете миграции на Linux, но и для любых будущих преобразований информационной инфраструктуры.

5.2.3 Организационная готовность


Даже если все остальные факторы благоприятствуют миграции, но организация в целом не готова к этому, попытка миграции будет неуспешной. Организация готова к миграции, если:

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

Подробнее эти вопросы обсуждаются далее в Гл. 6.

Следует иметь в виду, что наибольшая часть нагрузки, связанной с миграцией, падает на плечи системных администраторов. Именно от этих людей в конечном итоге зависит, будет ли миграция успешной, или она провалится. Энтузиазм системных администраторов и штата поддержки является важнейшим фактором, который надо учитывать, принимая решение о миграции.

5.3 В чем заключаются особенности Linux?


Как уже говорилось в начале Разд. 5.1, возрос о миграции возникает тогда, когда становится доступным альтернативный вариант. И решение о переходе на новую систему основывается на том, что этот альтернативный вариант по своим качествам превосходит используемую сейчас систему. В этом разделе мы в общих чертах опишем основные структурные особенности и уникальные свойства ОС Linux. Далее, в Гл. 8, эти вопросы будут рассмотрены более подробно.

Замечание Является ли Linux свободным продуктом, или продуктом с открытым исходным кодом или и тем и другим одновременно? Более обстоятельно мы обсуждаем это в Разд. 8.1.1.

На принятие решения о миграции могут влиять различия в работе функций новой системы и существующей (Windows), или другой способ обращения с уже известными функциями, или совершенно новые, уникальные особенности нового окружения. Некоторые такие особенности мы уже упоминали выше в Разд. 5.1 В этом разделе мы будем обсуждать следующие вопросы:

  • Много пользователей — зачем?
  • Что такое ядро?
  • Взаимодействие приложений или одно большое приложение?
  • Пользовательский интерфейс, на что обратить внимание?
  • Как настольная система взаимодействует с внешней инфраструктурой?
  • Каким образом хранятся данные?
  • Есть ли другие отличия?

5.3.1 Много пользователей — зачем?


Linux изначально был спроектирован как многопользовательская система. При этом речь шлее не о том: что вычислительной машиной под Linux могут пользоваться несколько человек по очереди, а о реальной многопользовательской системе, когда несколько человек одновременно запускают свои приложения на одном и том же компьютере. Нужно ли это, если речь идет о настольной, персональной машине? Сейчас уже можно твердо сказать «да». Во-первых, настройки и данные, связанные с приложениями, поддерживаются независимо и тщательно для каждого пользователя, а это оказывается существенно при широко применяемом сейчас совместном доступе к приложениям и данным. Во-вторых, для каждого пользователя сохраняются независимо настройки его рабочего стола, каждый раз, выполнив процедуру регистрации, он получает привычное рабочее окружение.

Технические детали, касающиеся многопользовательской архитектуры, можно найти в Разд. 8.2.3. В Разд. 9.3.4 приводится пример прогрессивной стратегии развертывания новых клиентов, в которой интенсивно задействованы многопользовательские возможности Linux.

5.3.2 Что такое ядро?


Основную часть ОС Linux принято называть ядром. В ядро входит самый нижний уровень функций операционной системы, как то: контроль аппаратных средств, запуск драйверов устройств, управление файловыми системами, создание процессов, управление памятью и другие базовые функции. Ядро Linux во многом походит на ядро UNIX.

Ядро Linux имеет некоторые особенности, которые являются совершенно уникальными:

  • ядро построено по модульному принципу
  • на одном компьютере может быть установлено сразу несколько ядер
  • разработка ядра Linux управляется централизовано

Ядро Linux не представляет собой монолитное образование, некоторые его части могут загружаться в процессе работы, такие части называются модулями. Если некоторые функции не требуются в текущий момент, то отвечающие за них модули не загружены и не занимают память.

На одном компьютере может быть установлено сразу несколько ядер, но только одно из них работает в каждый момент времени. Эта особенность позволяет тестировать новые версии ядра, собирать более подходящую его конфигурацию и в то же время иметь возможность очень легко вернуться назад, к старой версии, которая гарантированно работала. Подробнее об этом см. Разд. 8.2.9.

Разработку ядра Linux до сих пор контролирует легендарный Линус Торвальдс. А это означает, что каждая версия ядра представляет собой один единственный объект. Есть разные версии ядра Linux, но ядро версии 2.6.5 в дистрибутиве Red Hat — это в точности то же самое, что и ядро версии 2.6.5 в дистрибутиве Novell.

Информацию о процедуре загрузки ядра можно найти в Разд. 8.2.1.

5.3.3 Взаимодействие приложений или одно большое приложение?


Операционная система Linux далеко не так сильно интегрирована, как операционная система Windows. Фактически каждый дистрибутив состоит из ядра и сотен, если не тысяч отдельных программных пакетов, ассоциированных с этим ядром. Все программы изначально проектировались и проектируются так, чтобы допускать тесное взаимодействие, иначе системы не смогла бы работать. Но это не означает, что они должны взаимодействовать, интеграции между ними может и не быть.

В некоторых случаях такое отсутствие обязательной интеграции на низком уровне может выглядеть как недостаток, но это качество дает разработчикам ПО более высокого свободу в выбора низкоуровневых приложений и возможность их замены впоследствии.

Поскольку ядро Linux и почти все доступные приложения базируются на открытых стандартах, интеграция между ними выполняется легко, и работают они вместе надежно. Подробнее о вопросах стандартизации см. Разд. 8.1.3.

5.3.4 Пользовательский интерфейс, на что обратить внимание?


Как правило, пользователь общается с вычислительно машиной посредством графического монитора, мыши и клавиатуры. Так устроены почти все клиентские компьютеры, хотя внешний вид рабочего стола и функциональность могут различаться.

Под Linux менеджер графической сессии является просто одним из приложений, он не является частью операционной системы. Это означает что, во-первых, вы можете выбирать менеджера рабочего стола (наиболее частый выбор — это KDE или GNOME) и, во-вторых, можно работать вообще без графического окружения, в алфавитно-цифровом режиме. Более подробно эти вопросы обсуждаются в Разд. 8.2.4.

5.3.5 Как настольная система взаимодействует с внешней инфраструктурой?


Настольный компьютер редко работает сам по себе, он должен взаимодействовать с объемлющей инфраструктурой. Он нуждается в подключении к локальной сети, в доступе к серверам и другим общим ресурсам. Linux поддерживает все возможные сетевые протоколы, необходимые для такого взаимодействия.

Важнейшим моментом при подключении компьютера к внешнему миру является проблема обеспечения безопасности. Ядро Linux имеет встроенный брандмауэр, который защищает компьютер от несанкционированного доступа извне и обеспечивает безопасную работу конечных пользователей и сохранность данных. Различия в подходах различных ОС к вопросам безопасности уже обсуждались выше, в Разд. 5.1.1.

5.3.6 Каким образом хранятся данные?


Способ хранения данных в Linux кардинально отличается от способа, принятого в Windows. Файловая структура в Linux представлена одним деревом, при этом различные типы разделов, в том числе разделы на удаленных устройствах, выглядят однотипно. Здесь нет букв, приписанных к дискам. Такой подход позволяет, например, придерживаться одной и той же логической структуры каталогов на всех клиентских машинах. Подробнее об этом см. Разд. 8.2.6.

Существенным отличием в обращении с файлами является существование ссылок в большинстве файловых систем, с которыми работает Linux. По сути ссылки являются указателями на файлы или на целые каталоги. Существуют два вида ссылок: жесткие ссылки и символьные ссылки. Жесткая ссылка является просто еще одним именем, связанным с файлом, а символьная ссылка — это отдельно стоящий указатель. В том случае, если удален файл, символьная ссылка на него не удаляется, но начинает указывать в пустоту. Если число жестких ссылок на файл больше одной, то удаление одного имени не повлечет удаление файла. Реально он будет удален только после удаления последней жесткой ссылки. Подробнее об этом можно прочесть в Разд. 8.2.8.

5.3.7 Есть ли другие отличия?


Есть и другие особенности, отличающие Linux от других ОС для настольных компьютеров. В этом разделе мы рассмотрим разницу в работе с виртуальной памятью и уникальное для Linux понятие уровней выполнения (run levels).

Работы с виртуальной памятью в каждой операционной системе происходит по своему, иногда это зависит даже от версии операционной системы. Особенностью Linux является то, что виртуальная память не будет использоваться до тех пор, пока есть возможность работать в реальной оперативной памяти. Windows, например, начинает перемещать информацию из оперативной памяти на диск и в других случаях, там существует практика превентивного свопинга. Во многих случаях такой подход приводит в снижению скорости выполнения операций. В Linux принята также система кэширования, то есть, хранение недавно использованной файловой информации в оперативной памяти. В результате такой практики постоянно используется значительная часть оперативной памяти. В том случае, если дополнительная оперативная память требуется приложениям, система просто сокращает область кэширования. Подробнее об использовании виртуальной памяти см. Разд. 8.2.7.

Концепция уровней выполнения является общей для UNIX/Linux-подобных операционных систем. Уровень выполнения определяет, какие системные сервисы будут запущены при начальной загрузке системы. Уровни выполнения нумеруются от 0 до 9. Например, уровень выполнения 3 соответствует загрузке всех системных сервисов, кроме графических. На уровне 5 стартует также и графическое окружение. Уровень 1 соответствует однопользовательскому режиму загрузки системы, в котором доступна олько одна консоль и отключены практически все службы. Подробнее об уровнях выполнения см. Разд. 8.2.5.

5.4 Цели миграции


Каждый случай миграции может иметь свои особенности. Конечная цель миграции, естественно, должна состоять в том, чтобы перевести все настольные машины на Linux. Однако, для некоторых организаций разумным подходом будет начать с пилотного проекта и на начальном этапе осуществить миграцию только части клиентских машин.

В этом разделе мы обсудим более детально оба подхода, обсудим различия в целях и задачах полной миграции и пилотной миграции. Что же касается технических деталей планирования и осуществления частичной, пилотной или полной миграции, то им и посвящена, собственно, вся оставшаяся часть книги.

5.4.1 Пилотная миграция


Формально целью пилотной миграции является перевод нескольких настольных машин на работу под Linux, однако фактически главная цель пилотной миграции — проверить правильность расчетов перед полной миграцией и завоевать доверие персонала.

Пилотную миграцию надо планировать так, чтобы на новых рабочих местах можно было испытать все виды деятельности персонала, которые будут включены в полную миграцию. В пилотной миграции должны быть задействованы все приложения, которые будут использоваться впоследствии. В этом смысле пилотную миграцию можно рассматривать как испытание, как средство сбора данных для коррекции планов перед полной миграцией.

Пилотная миграция должна ответить на следующие вопросы:

  • Все ли приложения адекватно работают после миграции?
  • Может ли персонал после миграции так же эффективно использовать информационную инфраструктуру предприятия, как и до миграции?
  • Не усложнились ли после миграции задачи администрирования?
  • Все ли компоненты инфраструктуры, такие как терминальные серверы и консолидированные настольные машины под Windows, функционируют так, как планировалось?

5.4.2 Полная миграция


Используя те методы, которые были опробованы и проверены во время пилотной миграции, можно уверенно совершить полную миграцию, то есть перевод всех намеченных рабочих станций на новую операционную систему.

Полная миграция может иметь следующие цели:

  • Повысить защищенность рабочих станций
  • Улучшить управляемость клиентских машин
  • Понизить полную стоимость содержания соответствующих рабочих мест
  • Снизить зависимость от отдельного производителя ПО
  • Продлить жизненный цикл компьютерного оборудования
  • Соответствовать государственным правилам или стратегии (например, Китай декларировал использование свободного ПО как стратегический императив)
  • Распространить полезный опыт использования Linux на серверах на рабочие станции
  • Как предлог для наведения порядка в своем хозяйстве (например, стандартизовать рабочие места и таким образом освободиться от груза накопившихся проблем)

Хорошее предварительное планирование — важнейшая часть миграции. Если вы начинаете работу с ясными перспективами, вам проще будет справиться с техническими трудностями. Поддержка персонала также очень важна для успешной миграции.

Ниже в этой книге мы подробно обсудим и то, как планировать техническую сторону миграции, и то, как правильно учитывать человеческий фактор. Затем будет приведен пример миграции, включающий подробный разбор путей решения некоторых технических проблем.

Комментариев нет:

Отправить комментарий