1.5 Распространённые сферы применения Linux (Common Linux Implementations)¶
Поскольку Linux распространяется под лицензией GPL, производители программного обеспечения получили возможность настраивать и дорабатывать операционную систему для работы в самых разных ролях. Хотя число этих ролей практически не ограничено, вам следует быть знакомы со следующими из них:
- Linux на рабочем столе
- Linux на сервере
- Linux на мобильных устройствах
- Linux для виртуализации
- Linux и облачные вычисления
- Встроенный Linux
Linux на рабочем столе¶
Linux можно оптимизировать для очень эффективной работы в качестве настольной системы. Тем не менее Linux достаточно медленно завоёвывал позиции на этом рынке. По состоянию на 2014 год Linux занимал лишь около 2 процентов рынка настольных компьютеров, тогда как Windows занимала более 90 процентов. Тому есть две важные причины.
Во-первых, исторически для Linux не хватало прикладных программ для работы за рабочим столом. Пользователям нужны текстовые редакторы, электронные таблицы и программы для создания презентаций, чтобы выполнять повседневную работу. К счастью, сегодня доступно множество таких программ, делающих Linux жизнеспособным вариантом для настольного компьютера, в том числе:
- OpenOffice.org
- LibreOffice
Вторая (и наиболее острая) проблема состоит в том, что среднестатистический конечный пользователь нередко находит Linux пугающим. Для «технарей» вроде нас с вами это не проблема. Мы привыкли к новым приложениям и операционным системам, можем быстро их осваивать и эффективно использовать. К сожалению, среднестатистический конечный пользователь в большинстве организаций скорее всего впервые научился работать на компьютере под управлением какой-либо версии Windows. Именно она вызывает у него наибольший комфорт, и такие пользователи, как правило, противятся изучению новой операционной системы. Ключевые условия для того, чтобы Linux стал жизнеспособным решением на рабочем столе, таковы:
- Обеспечить пользователей приложениями, необходимыми для выполнения их работы.
- Сделать пользовательский интерфейс простым и интуитивно понятным, чтобы переход с Windows на Linux был максимально безболезненным.
Совет
Поскольку Linux может казаться пугающим среднестатистическому конечному пользователю, если вы планируете развернуть рабочие столы на базе Linux в своей организации, вам следует рассмотреть возможность внедрения масштабной программы обучения как неотъемлемой части общего плана развёртывания.
Многие производители работают над настольными дистрибутивами Linux, нацеленными именно на решение этих задач. Они оптимизируют Linux для эффективной и быстрой работы в качестве настольной системы, поставляют в комплекте пакеты приложений — такие как OpenOffice или LibreOffice, — а также оптимизируют оконные менеджеры, чтобы предоставить конечному пользователю удобный графический интерфейс. К наиболее популярным настольным дистрибутивам Linux относятся:
- Ubuntu Desktop Edition
- openSUSE
- Fedora Desktop Edition
Linux на сервере¶
Linux прекрасно справляется с ролью сервера. Более того, Linux получил широкое распространение в серверных залах — в значительно большей мере, чем на рабочих столах. В зависимости от предоставляемых служб Linux занимает от 40 до 97 процентов рынка серверных операционных систем. Это объясняется тем, что Linux способен выполнять самые разные серверные роли и справляться с ними превосходно, в том числе:
- Файловый сервер (File server) — С помощью Network File System (
NFS) или службSambaможно настроить Linux для предоставления пользователям сетевого хранилища файлов.NFSпрекрасно работает с клиентскими системами на Linux или UNIX, однако хуже подходит для клиентов Windows.Sambaявляется лучшим выбором для клиентских систем Windows. С использованиемSambaваш сервер Linux можно даже настроить в качестве контроллера домена Windows. - Сервер печати (Print server) — Совместное использование Common UNIX Printing System (
CUPS) и службSambaпозволяет настроить Linux для обеспечения общей печати для сетевых пользователей. - Сервер баз данных (Database server) — Linux можно настроить в качестве мощного сервера баз данных. Для Linux доступны различные службы баз данных, в том числе
MySQL,MariaDB,NoSQLиPostgreSQL. - Веб-сервер (Web server) — Linux широко применяется в качестве веб-сервера. Самой популярной веб-службой, используемой на Linux на сегодняшний день, является веб-сервер
Apache. - Почтовый сервер (E-mail server) — Для Linux доступны различные почтовые службы, позволяющие превратить вашу систему в почтовый сервер корпоративного класса.
- Суперкомпьютер (Super computer) — Linux является предпочтительной операционной системой для развёртывания высокопроизводительных суперкомпьютеров.
Широкая популярность Linux в качестве сервера обусловлена рядом причин. Прежде всего, Linux чрезвычайно стабилен. Говоря простым языком, Linux-сервер редко аварийно завершает работу — он просто работает и работает без остановки. Другие серверные операционные системы приобрели печальную репутацию из-за регулярных сбоев.
Во-вторых, Linux-серверы работают очень быстро. Было проведено множество тестов производительности, в которых Linux-серверы противопоставлялись другим серверным операционным системам. Каждый раз Linux-серверы показывали результаты не хуже, а зачастую и значительно лучше, чем сопоставимые операционные системы, выполняющие аналогичные службы при аналогичной нагрузке.
В-третьих, Linux-серверы, как правило, обходятся дешевле в эксплуатации. Большинство серверных операционных систем взимают дорогостоящие лицензионные отчисления за каждое рабочее место, что делает их очень затратными при развёртывании в крупных организациях. Большинство дистрибутивов Linux этого не требуют. На самом деле, в зависимости от выбранного дистрибутива, вам может потребоваться оплатить лишь серверное оборудование, контракт на поддержку и работу персонала по управлению системой.
Хотя практически любой дистрибутив Linux можно настроить для предоставления сетевых служб, при развёртывании Linux-сервера в крупной организации следует использовать дистрибутив, специально оптимизированный для серверной роли. Red Hat предлагает дистрибутив Red Hat Enterprise Linux Server, зарекомендовавший себя как сервер корпоративного класса. Кроме того, можно использовать дистрибутивы SUSE Linux Enterprise Server (SLES) и Ubuntu Server, также оптимизированные для серверной роли.
Linux на мобильных устройствах¶
Linux практически захватил рынок мобильных устройств в виде операционной системы Android, разработанной компанией Google. Android по сути является специально оптимизированным дистрибутивом Linux. Ещё в 2009 году Android был установлен лишь примерно на 3 процентах всех мобильных устройств (смартфонов и планшетов) в мире. Однако к настоящему времени эта доля рынка увеличилась почти до 50 процентов. Можно даже загрузить и установить специальную версию Android, называемую Android-x86, которая будет работать на стандартном аппаратном обеспечении ПК. Популярность Android объясняется тремя факторами:
- Цена (Price) — Поскольку Android основан на ядре Linux, он значительно дешевле других операционных систем для мобильных устройств, таких как iOS и Windows RT.
- Производительность (Performance) — Android демонстрирует отличную производительность на мобильных устройствах.
- Поддержка приложений (App support) — Для устройств на Android доступно огромное количество приложений, позволяющих этим устройствам обеспечивать ту же функциональность, что и более дорогостоящие устройства от Apple и Microsoft.
Linux и виртуализация¶
Виртуализация (Virtualization) — это направление информационных технологий, стремительно набирающее обороты в отрасли. Чтобы понять принцип работы виртуализации, сначала необходимо разобраться, как операционные системы традиционно развёртываются на компьютерном оборудовании.
Согласно традиционной модели, на одном аппаратном устройстве устанавливалась одна операционная система. Например, при установке новой системы вы приобретали аппаратное обеспечение, а затем устанавливали на него операционную систему Linux. В этом сценарии установленная операционная система имела полный контроль над всеми ресурсами системы, в том числе:
- ОЗУ
- Процессорное время
- Устройства хранения
- Сетевые интерфейсы
Именно так мы традиционно развёртывали системы в прошлом. Однако эта модель крайне неэффективна, поскольку операционная система не использует все системные ресурсы в полной мере постоянно, особенно на серверных системах. На самом деле большую часть времени вычислительные ресурсы катастрофически недоиспользуются. Это означает, что вычислительные мощности доступны, но остаются невостребованными и, следовательно, тратятся впустую.
Например, предположим, что у вас есть три сервера, каждый из которых установлен на собственном физическом оборудовании. Загрузка процессора на каждой системе обычно держится на уровне 8–9 процентов, с периодическими всплесками до 50 процентов. Оперативная память, хранилище и сетевые устройства используются аналогичным образом. В такой ситуации вам на самом деле не нужно столько вычислительной мощности. Около 90 процентов мощности каждого сервера большую часть времени простаивает.
Виртуализация предлагает альтернативную модель развёртывания. Виртуализация объединяет несколько экземпляров операционных систем на одном физическом оборудовании и позволяет им работать одновременно. Для этого виртуализация использует посредника — гипервизор (hypervisor), — который управляет доступом к системным ресурсам.
Каждый экземпляр операционной системы устанавливается в виртуальную машину (virtual machine), а не на физическое оборудование. Каждой виртуальной машине выделяются процессорное время, область оперативной памяти, устройство хранения и собственный виртуальный сетевой интерфейс. Каждая виртуальная машина внешне и функционально ничем не отличается от физического узла.
Одним из ключевых преимуществ виртуализации является более эффективное использование системных ресурсов. Доступные вычислительные мощности аппаратного обеспечения распределяются между всеми виртуальными машинами, работающими в системе.
Ещё одно преимущество виртуализации — возможность одновременной работы нескольких платформ на одном оборудовании, в том числе Windows и Linux. Это огромный плюс для разработчиков и тестировщиков программного обеспечения, поскольку существенно упрощает проверку того, как разрабатываемое приложение работает на различных платформах.
Виртуализация также позволяет внедрить в организации тонкие клиенты (thin clients). В этой конфигурации несколько рабочих столов запускаются на одном сервере виртуализации. Все рабочие столы конечных пользователей предоставляются как виртуальные машины на сервере. Это позволяет сэкономить значительные средства, поскольку даёт возможность развернуть для пользователей минимальные маломощные рабочие станции. Такие маломощные рабочие станции используются лишь для отображения (по сетевому подключению) среды рабочего стола, работающей как виртуальная машина на сервере.
Для Linux доступно несколько высокопроизводительных платформ виртуализации, в том числе:
Xen(открытый исходный код)VMware Workstation,Player,ESXиESXi(проприетарное ПО)VirtualBox(открытый исходный код)KVM(открытый исходный код)
При установке одного из этих гипервизоров вы превращаете свою систему Linux в гипервизор, способный запускать виртуальные машины. Обратите внимание, что ESX и ESXi используют в качестве основы специальный дистрибутив Linux от VMware и не могут работать с другими вариантами Linux.
Linux и облачные вычисления¶
Виртуализация является ключевым компонентом облачных вычислений (cloud computing) — технологии, при которой аппаратные, программные и/или сетевые ресурсы, которые ранее реализовывались локально, переносятся на сторонние площадки и предоставляются пользователю через сетевое подключение. Многие поставщики облачных вычислений предлагают свои услуги через Интернет. Например, предположим, что вам нужно развернуть дополнительный Linux-сервер в вашей организации. Традиционно вы бы приобрели новое оборудование, выбрали дистрибутив, установили его и настроили для работы в вашей сети.
При облачных вычислениях, напротив, поставщик в Интернете может развернуть новую виртуальную машину на Linux на гипервизоре на своей площадке. Вы платите абонентскую плату за доступ к этому виртуальному серверу через сетевое подключение вашей организации. Поставщик берёт на себя все расходы по внедрению, обслуживанию и защите сервера. Эта модель называется «инфраструктура как услуга» (Infrastructure as a Service, IaaS).
Помимо IaaS, существуют и другие модели облачных вычислений:
- «Программное обеспечение как услуга» (Software as a Service, SaaS) — предоставляет доступ к программному обеспечению и данным через облако
- «Сеть как услуга» (Network as a Service, NaaS) — обеспечивает сетевое подключение через облако
- «Хранилище как услуга» (Storage as a Service, STaaS) — предоставляет доступ к устройствам хранения через облако
- «Рабочий стол как услуга» (Desktop as a Service, DaaS) — предоставляет доступ к настольным операционным системам через облако
- «Платформа как услуга» (Platform as a Service, PaaS) — предоставляет доступ к полному пакету решений для выполнения вычислительной задачи, включая сетевое взаимодействие, инфраструктуру, хранилище и программное обеспечение
Более того, используя Linux и виртуализацию, вы можете создать собственное частное облако, предоставляя другим пользователям в вашей организации вычислительные ресурсы по требованию через сетевое подключение.
Встроенный Linux¶
Одним из главных достоинств Linux является возможность его оптимизации до очень малого объёма занимаемого пространства (footprint), что позволяет запускать его на минимальном аппаратном обеспечении для выполнения строго определённого набора задач. Поэтому Linux идеально подходит для встраивания в интеллектуальные устройства, в том числе:
- Оборудование для автоматизации и управления, применяемое в промышленности
- Сетевые устройства
- Игровые приставки
- Смарт-телевизоры
- Смартфоны и планшеты
Для этого операционная система настраивается так, чтобы предоставлять только те основные функции, которые необходимы данному устройству. Все остальные ненужные компоненты Linux удаляются, после чего операционная система встраивается в микросхемы флеш-памяти внутри соответствующего устройства. Это позволяет устройству работать под управлением операционной системы и использовать её программный интеллект для управления операциями устройства.