Несмотря на то, что термин Linux присутствует в «информационном шуме» уже более 10-ти лет, на практике многие руководители не очень хорошо представляют, как Linux можно использовать в бизнесе. В этой статье рассматриваются различные аспекты коммерческого использования OC Linux и свободного программного обеспечения. Автор, имеющий опыт применения Linux во встраиваемых системах, пробует разобраться в реальности проблем и преимуществ этой ОС.
Разберемся в терминологии
Строго говоря, Linux — это не ОС, а свободное ядро ОС. Это ядро, в совокупности с программами и библиотеками проекта GNU, составляет дистрибутивы ОС GNU/Linux.
Не вдаваясь в историю, укажем, что с 1991 г. Linux из разработки финского студента превратилась в мощную UNIX-подобную ОС, которая работает на множестве архитектур. Она получила признание таких «монстров» отрасли как IBM и Oracle и «захватила» существенную долю серверов и встраиваемых систем.
Существует множество дистрибутивов GNU/Linux как общего назначения, так и специализированных (для серверов, сетевых устройств, встраиваемых систем). Как правило, дистрибутивы распространяются бесплатно, но в некоторых случаях предполагается оплата технической поддержки.
Создать свой дистрибутив может любой — для этого не надо подписывать NDA, лицензионные соглашения и даже просто спрашивать разрешения. Нужно всего лишь соблюдать лицензии программных модулей, которые помещаются в дистрибутив.
Лицензия GNU GPL
И ядро Linux, и основная масса прикладных программ защищены лицензией GNU GPL. Эта лицензия предоставляет пользователю права копировать, модифицировать и распространять (в т.ч. на коммерческой основе) программы, при условии сохранения вышеперечисленных прав у пользователей всех производных программ.
Условие сохранения прав — ключевое для GPL — было введено для защиты прав разработчиков. Исследования говорят о том, что внутренняя стоимость GNU/Linux составляет несколько миллиардов долларов, и тем, кто занимался разработкой этих продуктов, совершенно не хочется, чтобы полученные результаты «растащили». Таким образом, в случае дистрибутивов GNU/Linux мы имеем дело со свободным ПО — Open Source.
Сообщество разработчиков
Успех Linux обусловлен тем, что с самого начала вокруг этого проекта стало формироваться сообщество разработчиков (Community). Как ни странно, но бесплатная работа над открытым ПО заинтересовала многих — ведь здесь каждый мог найти задачи по душе: кто-то разрабатывал ПО, кто-то прорабатывал пользовательские интерфейсы, кто-то создавал документацию, кто-то переводил все на свой родной язык, а кто-то компоновал дистрибутивы. На сегодняшний день в разработке Linux задействовано больше специалистов, чем может себе позволить нанять любая коммерческая компания. В Community входят и обычные пользователи, которые повсеместно объединяются в группы (Linux User Group, LUG), охотно оказывающие помощь новичкам.
И, как показывает практика, получить реальную помощь в форуме пользователей либо обращаясь напрямую к разработчикам можно быстрее, чем при возникновении аналогичных проблем с коммерческим ПО.
Бесплатные средства разработки
Linux как некоммерческую, в общем, разработку, продвигают не продавцы, а разработчики. Поэтому не удивительно, что для этой ОС доступно много действительно качественных средств разработки:
• компилятор: gcc;
• сборка: GNU make, automake, autoconf;
• отладка: GDB, strace, Valgrind;
• анализ кода: oprofile, lint;
• контроль версий: CVS, SVN, Git;
• документирование: doxygen;
• редакторы: Eclipse, Vim, Emacs, KDevelop.
В частности, компилятор GCC — лидер по количеству поддерживаемых процессоров и операционных систем. Де-факто он является стандартом при разработке ПО, которое должно работать на большом числе различных аппаратных платформ. Можно еще упомянуть про Eclipse — популярную платформу для построения IDE, используемую многими вендорами (IBM, WindRiver, Atmel, Monta Vista).
Все эти средства доступны бесплатно, в т.ч. и разработчикам коммерческих продуктов.
Готовые компоненты Open Source
Имеется огромное количество готовых программ и библиотек, которые можно использовать при разработке нового продукта:
интерфейс пользователя: wxWidgets, Qt, GTK, FLTK;
• графика: SDL;
• аудио / видео: ffmpeg, Mplayer, VLC;
• сеть: gSOAP, OpenSSL, wget;
• движок для отображения веб-страниц: WebKit.
Использование этих бесплатных компонентов минимизирует общие трудозатраты и сокращает срок выхода продукта на рынок (time to market) без отказа от части функциональности.
Очень часто некоторые критики язвительно сравнивают Linux, в частности и Open Source, вообще с коммунизмом: все общее, бесплатное, идеологически идеализированное — т.е. совершенно неподходящее для суровых реалий нашей жизни. Попробуем разобраться в деталях.
Linux — не обязательно бесплатно
Во-первых, часто приходится сталкиваться с мнением, что если дистрибутивы GNU/Linux распространяются бесплатно, то и вообще все ПО под Linux должно быть бесплатным, и, следовательно, эта ОС не подходит тем, кто хочет самым банальным образом получить прибыль.
На самом деле это не так. Важно понимать, что идеология Open Source и GNU GPL говорит о свободе распространения, а не бесплатности.
Есть компании, которые с успехом продают коробочные версии коммерческих программ под Linux (от СУБД до игр). Есть компании, зарабатывающие на интеграции готовых программных продуктов Open Source в свои решения (на практике можно взять бесплатные ОС Linux, почтовый сервер Postfix, почтовый фильтр SpamAssassin, антивирус Clamav, поместить это все в красивую железяку и продавать как почтовое решение для малого бизнеса).
Linux — не обязательно открытое
Во-вторых, многие боятся, что если они будут применять в своих продуктах Linux, то им придется раскрывать свои исходные коды и полученными результатами смогут воспользоваться их конкуренты.
На самом деле, лицензия GNU GPL говорит о том, что необходимо предоставлять пользователям исходные коды, если вы разработали программный модуль на основе GPL-кода. Но никто не запрещает использовать в своих продуктах наработки, доступные под другими лицензиями, не такими жесткими — BSD, LGPL и т.п.
В конце концов, можно написать программный модуль «с нуля» и самому определять, в каких случаях и под какой лицензией он может использоваться.
Linux — не пиратское
Еще одна проблема — сомнения в лицензионной чистоте Linux-решений. Часто в дистрибутивы GNU/Linux включаются Open Source реализации различных сетевых протоколов, аудио- и видеокодеков. В ряде случаев, когда невозможно использовать официальные спецификации, они базируются на технологии reverse engineering. Соответственно, они могут функционально уступать коммерческим аналогам. Поэтому у некоторых складывается впечатление, что Linux-решения — это что-то немного пиратское и недостаточно функциональное.
На самом деле, никто не запрещает в коммерческих продуктах использовать Linux и лицензионные программные модули.
К примеру, если это необходимо, вы можете спокойно подписать лицензионное соглашение с Microsoft, заплатить за модуль WMA, получить исходные коды и перенести их под Linux на требуемую архитектуру.
Таким образом, нет ничего, что может помешать использовать Linux в коммерческих продуктах.
Применение ОС Linux в коммерческих разработках не только не ограничивает функционал продуктов, но и дает определенные преимущества.
В частности, использование Linux и готовых компонент Open Source позволяет как минимум существенно сократить и удешевить этап разработки прототипа. Это очень важно! Ведь идеи витают в воздухе, и выигрывает тот, кто сможет быстрее вывести свой продукт на рынок. Очевидно, что демонстрация рабочего прототипа убедит руководство или инвесторов гораздо быстрее, чем красочная презентация, не подтвержденная технически.
На этапе разработки коммерческих образцов Linux предоставляет свободу выбора: можно использовать Open Source программы, лицензировать коммерческие модули или же разработать все самим в зависимости от того, что будет коммерчески более выгодно.
Таким образом, использовать Linux не только можно, но и нужно.