The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.
Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by alena-kovalenko2021, 2021-02-23 07:23:59

SysAdmin01-02_2021

SysAdmin01-02_2021

инструменты Сети

Сначала соберем простую
сеть, например, для нового
филиала

Первичная настройка устройств кнопку Edit Filters, отключаем лишние протоколы, которые
в данный момент не используются. Мы отключили все и оста-
Чтобы сетевые устройства обменивались информацией, вили ARP, ICMP, TCP, UDP. Затем в свойствах одного ком-
необходимо им назначить IP-адреса, включить сетевые ин- пьютера открываем командную строку, выполняем коман-
терфейсы.Нажимаем на компьютере левой кнопкой мыши, ду ping для другого компьютера или принтера и смотрим
откроется окно его конфигурации. На первой вкладке – на движение пакетов (рис. 3). Пакеты будут проходить через
Physical – будут доступны различные сетевые модули, на- коммутатор.
пример, можно добавить модуль типа Fast Ethernet, Gigabit
Ethernet, оптический или Wi-Fi (рис. 2). На второй вкладке – Настройку Wi-Fi-маршрутизатора можно произвести
Config – вводим IP-адрес, маску. как во вкладке Config, так и во вкладке GUI через привычный
графический (web) интерфейс. После этого радиосигнал
Чтобы увидеть процесс прохождения трафика, cправа будет доступен для планшета, смартфона.
нажимаем кнопку Simulation, в появившемся окне нажимаем

Рисунок 2. Конфигурация компьютера

системный администратор январь-февраль 2021 49

Сети инструменты

Рисунок 3. Движение трафика параметр – шлюз 192.168.1.10, ко-
торый нужно им указать в свойствах.
Подведя мышку к устройствам, по-
явится окно с информацией о сете-
вых интерфейсах.

Увеличиваем сложность

Далее следует более сложный ва-

риант схемы – соединение фили-

ала с административным зданием.

Сложность заключается в настрой-

ках маршрутизаторов, так как будут

использоваться разные сети, трафик

будет проходить через Интернет (ка-

нал провайдера), необходимо учи-

тывать скорость передачи данных,

настраивать динамические протоко-

лы маршрутизации и правила огра-

ничения трафика, разделить порты

по VLAN, а также создать избыточ-

У сервера есть несколько доступных сервисов: HTTP, ность (резервные каналы) и многое другое.

DHCP, TFTP, DNS, SYSLOG, AAA, NTP, EMAIL, FTP, IoT, Настройку оборудования мы описать в данной статье

VM Management, Radius EAP. Воспользуемся сервером не сможем из-за очень большого объёма информации. Визу-

для веб-ресурсов. На вкладке Services выбираем сервис ально отобразим прохождение пакетов между двумя сетями

HTTP, проверяем, чтобы он был включен. По умолчанию (филиалами), сделав минимальные правки в конфигурациях

будут доступны файлы для запуска тестового веб-ресурса – сетевых устройств.

index.html, image.html, helloworld.html, copyrights.html (рис. 4). Итак, добавляем на холст оборудование административ-

При желании их можно отредактировать, нажав кнопку ного здания (можно не всё сразу), присваиваем IP-адреса

edit, или удалить по нажатию на кнопку delete, или создать и шлюз 192.168.3.10, маршрутизаторы соединяем оптическим

новый, нажав New File. кабелем (для гигабитного порта IP-адрес будет 192.168.2.21),

Теперь в правой части программы добавим трафик про- включаем интерфейсы.

токолов http и https (Simulation->Edit Filters). После этого Сейчас трафик будет ходить только внутри локальных

в свойствах сервера переходим на вкладку Desktop, вы- сетей. Чтобы установить связь между компьютерами двух

бираем Web Browser, в адресной строке пишем адрес зданий, нужно маршрутизаторам явно указать на наличие

http://192.168.1.4/image.html и получаем логотип Cisco (рис. 4). другой сети, то есть проложить маршруты в обе стороны.

То есть веб-сервер работает. Для этого в свойствах маршрутизатора слева (Router0) ука-

Далее подготовим маршрутизатор. В свойствах устройст- зываем маршрут в сеть справа через гигабитный интерфейс

ва на вкладке Physical добавим оптический интерфейс (рис. 5):

для связи в будущем с другим маршрутизатором. Это будет

модуль HWIC-1GE-SFP, в который еще добавим и оптический enable
разъем GLC-LH-SMD. configure terminal
ip route 192.168.3.0 255.255.255.0 192.168.2.20
Вторым сетевым интерфейсам назначим IP-адреса,

так как маршрутизатор соединяет 2 разные сети, и включим

их. Сделать это можно в графиче-

ском интерфейсе во вкладке Config Рисунок 4. Доступ к веб-серверу
или в командной строке во вкладке

Cli. Применим командный способ:

enable
configure terminal
interface FastEthernet0/0
ip address 192.168.1.10 255.255.255.0
no shutdown
exit
interface GigabitEthernet0/0/0
ip address 192.168.2.20 255.255.255.0
no shutdown
exit

Для всех устройств локальной
сети 192.168.1.0 появился новый

50 январь-февраль 2021 системный администратор

инструменты Сети

Рисунок 5. Связь двух сетей

Далее в свойствах маршрутизатора справа (Router1) в ко- Добавление IoT-устройств
мандной строке указываем обратный маршрут: Сейчас очень популярны устройства, которыми можно управ-
лять по сети. Одни – идут уже готовые, другие – можно со-
enable брать из мелких деталей как конструктор.
configure terminal
ip route 192.168.1.0 255.255.255.0 192.168.2.21 Устройства типа IoT находятся в подразделах Home, Smart
City, Industrial раздела End Devices. Компоненты – в Boards,
Теперь проверяем. В командной строке компьютера Actuators, Sensors раздела Components. В них доступны
одной сети выполняем команду ping для компьютера дру- платы MCU и SBC (микроконтроллеры и однопроцессорные
гой сети (рис. 5). Работает! Далее с компьютера нового платы), к которым можно подключать массу готовых элемен-
филиала открываем браузер и пытаемся зайти на веб- тов: форсунки, охладитель воздуха, мотор, сервопривод,
ресурс http://192.168.1.4/image.html. Работает! Основа гото- светодиод, динамик, нагревательный элемент, экран, сен-
ва. Можно добавить остальное оборудование – телефоны, соры движения, металла, влажности, дыма, звука, ветра,
планшеты и смартфоны, Wi-Fi точки доступа, компьютеры воды, кнопки и др.
и серверы.
Попробуем создать умный кабинет и управлять

Добавление внятности Рисунок. 6. Подключение IoT-устройств к шлюзу

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

Линия (Draw Line), квадрат (Draw
Rectangle) или овал (Draw Ellipse) помогут
отделить большой сегмент ЛВС (рис. 5),
несколько компьютеров при наличии VLAN
и т. д. С помощью Resize менять размер
границ.

Инструмент Place Note выглядит в виде
текстового поля, в котором можно написать
примечание, например, название филиала,
IP-адрес сети, номер VLAN и др.

В свойствах каждого устройства мож-
но изменить имя по умолчанию. Например,
вместо PC1 можно написать BUH1, вместо
Server0 – WEB-SERVER.

системный администратор январь-февраль 2021 51

Сети инструменты

Рисунок 7. Управление IoT-устройствами в смартфоне Далее на холст добавляем смарт-
фон, во вкладке Config в поле SSID
устройствами со смартфона. Переносим на холст веб- вписываем имя беспроводной сети –
камеру, дверь, настольную лампу, температурный монитор, по умолчанию HomeGateway. Поя-
кондиционер, а также шлюз. вится связь со шлюзом (рис. 6).

В устройствах (кроме шлюза) в свойствах по нажатию Управление IoT-устройствами
на кнопку Advanced мы расширяем количество вкладок.
Переходим на вкладку I/O Config и в поле Network Adapter Управлять умными устройствами
устанавливаем беспроводной модуль PT-IOT-NM-1W-AC. можно по отдельности или создавая
Затем во вкладке Config нужно установить радиоточку зависимые правила для нескольких
Home Gateway. В результате шлюз сам определит уст- сразу.
ройства.
Заходим в свойства смартфона,
переходим во вкладку Desktop, вы-
бираем IoT Monitor, подключаемся,
используя параметры по умолча-
нию (192.168.25.1, admin, admin).
Появится окно с перечнем всех
подключенных устройств и их ста-
тусами, а также возможные действия
по их настройке и применению (рис. 7).
Управлять устройствами вручную большого смысла нет,
автоматизируем эти действия. Например, при срабатыва-
нии считывателя двери (дверь разблокируется) будут сразу
включаться настольная лампа и веб-камера.
Для этого создадим правило. Переходим на вкладку
Conditions, нажимаем кнопку Add, пишем любое имя, в вы-
падающих полях раздела If выбираем IoT11, открытому сос-
тоянию присваиваем значение true. В разделе Then set вы-
бираем IoT9, где Status=On, и IoT10, где On=true (рис. 7).

Рисунок 8. Наглядное расположение IoT-устройств

52 январь-февраль 2021 системный администратор

инструменты Сети

Теперь для кондиционера и монитора тем- Рисунок 9. Схема на микроконтроллере
пературы создадим два правила, на включе-
ние и выключение. Выглядят они так:

If
IoT20 Temperature>=20.0
Then set
IoT22 On to true
If
IoT20 Temperature<=19.0
Then set
IoT22 On to false

Возвращаемся на вкладку Home. Нажима- Рисунок 10. Конструктор для программирования
ем на кнопку Unlock устройства IoT11 (дверь)
и наблюдаем, как включаются лампа и каме-
ра. Для включения/отключения кондиционера
просто ждем роста и затем понижения цифр
в мониторе температур (он так настроен
для моделирования ситуации).

Для большей наглядности расположения
умных устройств загружаем картинку офиса
в качестве обоев. Для этого справа нажи-
маем кнопку Set Background Image, находим
место ее размещения на диске (рис. 8).

Программирование IoT-устройств функции, циклы, собираем их, как пазл, устанавливаем зна-
чения (рис. 10).
Маленькие отдельные элементы можно со-
брать и подключить к микроконтроллеру, за- Достоинства: удобная программа, визуальное отображе-
программировать его и получить какое-то уст- ние прохождения трафика, возможность программировать
ройство управления. В программе Packet IoT-устройства с помощью кода и визуального конструктора.
Tracer можно смоделировать такую ситуацию.
Недостатки: до сих пор используются многие устаревшие
Перенесем на холст плату MCU-PT, технологии, протоколы.
шлюз, ноутбук, тревожную лампу, сенсор
движения, динамик. Ноутбук с платой под- Вывод: чтобы создать локальную сеть, связать несколько
ключим по Wi-Fi, а остальные – IoT-кабелем. сетей между собой, собрать элементы умного дома воедино,
не обязательно для этого иметь реальное оборудование. Про-
Далее в свойствах контроллера перехо- грамма Packet Tracer позволяет смоделировать любую жела-
дим на вкладку Programming, слева создаем емую сеть, применить реальные команды конфигурирования
новый проект, в выпадающем списке выбираем шаблон Blink оборудования фирмы Cisco, увидеть прохождение пакетов
- JavaScript. В правой части окна отобразится готовый про- по линкам.  EOF 
граммный код, который заставляет подключенную на порт
D1 лампу мигать (рис. 9): [1] Основы использования симулятора сетей Cisco Packet Tracer –
https://winitpro.ru/index.php/2019/06/05/ispolzovanie-simulyatora-
function setup() { setej-cisco-packet-tracer/
pinMode(1, OUTPUT);
Serial.println("Blinking"); [2] Работа в программе Cisco Packet Tracer – http://mayoroven.ru/
} docum/intuit/course-778-html/

function loop() { Ключевые слова: Packet Tracer, сетевой интерфейс, графический
digitalWrite(1, HIGH); интерфейс, сетевое оборудование, маршрутизатор, коммутатор
delay(1000);
digitalWrite(1, LOW);
delay(500);
}

Чтобы не разбираться в коде JavaScript или Phyton, можно
использовать визуальный конструктор. Перенесем на холст
светодиод, дверь, сенсор движения, настольную лампу и под-
ключим их к микроконтроллеру. На первой вкладке Scenario
каждого компонента можно найти его описание и необходи-
мые значения для применения в программе.

Создадим новый проект, в выпадающем списке выбира-
ем шаблон Empty – Visual. Из разных разделов переносим
необходимые элементы программирования – переменные,

системный администратор январь-февраль 2021 53

Разработка языки программирования

Визитка

ВАДИМ ЗАРЯ, инженер-радиоэлектронщик,
специалист по радиоэлектронным устройствам и системам, [email protected]

Практическое изучение языка
программирования Python через
улучшение и усовершенствование
самостоятельно написанной программы

Создание программы «Контакты» с терминальным
интерфейсом

В данном цикле статей будет рассматриваться практический опыт изучения языка
программирования Python – от написания элементарной программы «Контакты»,
с терминальным интерфейсом, и постепенного усовершенствования её, до уровня
применения нейронных сетей (записи и получения данных голосом). Применяемый
инструментарий – Python 3, ООП, Git, GitHub, Tkinter, PostgreSQL, Django, Django
Rest Framework, HTML, CSS, Bootstrap, JSON, Linux (ОС Raspbian), Raspberry Pi, GPIO,
Нейронные сети и т. д.

Опыт сын ошибок трудных на английском языке. Я пользовался и продолжаю пользо-
ваться всеми этими вариантами, но существенный прогресс
Моё знакомство с языком программирования Python [1] на- наступил только после самостоятельной разработки полез-
чалось с момента приобретения микрокомпьютера Raspberry ного и востребованного проекта. Под словом «полезный»
Pi 3 Model B [2]. Но, для написания программ, взаимодей- я подразумеваю программу, которой будут пользоваться
ствующих с GPIO [3], необходимо было выбрать язык про- каждый день.
граммирования.
Для себя я придумал задачу по автоматизации некоторых
Первым в списке рекомендуемых производителем процессов на своей работе. Под эту задачу я написал не-
Raspberry Pi был Scratch [4]. Очень простой визуальный большую программу и запустил её. Нужно признать, это был
язык и, если нет планов углубляться дальше, а имен- незабываемый момент, когда моя программа начала вы-
но, создавать приложения с графическим интерфейсом полнять работу, которую до этого делал вручную персонал!
или веб-приложения, то можно остановиться на нём. Вто-
рым языком программирования в списке производителя Под словом «полезный»
Raspberry Pi является Python. Прочитав о возможностях я подразумеваю программу,
языка Python и немного познакомившись с его минима- которой будут пользоваться
листичным и лаконичным синтаксисом, я принял решение каждый день
осваивать именно его.
Взаимодействуя каждый день со своей программой,
Одним из преимуществ языка Python является его крос- я одновременно выполнял несколько ролей: пользователя,
сплатформенность. Это значит, что в процессе описыва- тестировщика, разработчика. Как у пользователя у меня воз-
емой разработки я с легкостью смогу переносить про- никали идеи по улучшению интерфейса и функциональности.
грамму, работающую в среде операционной системы (ОС) Как у тестировщика – поиск «багов» и передача их разра-
Windows [5], на ОС на основе ядра Linux [6], где она так же ботчику, т. е. самому себе, для исправления.
будет работать и наоборот – с ОС на основе ядра Linux
на ОС Windows. Ресурсов, предлагающих обучение про-
граммированию на языке Python, в Интернете очень много и,
возможно, кто-то захочет пойти по такому пути. А кому-то по-
нравится изучать язык по книгам. Кроме этого есть доку-
ментация на официальном сайте www.python.org [7], но она

54 январь-февраль 2021 системный администратор

языки программирования Разработка

Для написания программ,
взаимодействующих с GPIO,
необходимо было выбрать
язык программирования

Чтобы модернизировать программу, внедрить в неё новую Tkinter [8]. На начальном этапе данные (контакты) будут со-
«фишку», необходимы дополнительные знания и опыт. Ставя храняться в текстовый файл contact.txt.
перед собой какую-либо цель, я изучал необходимый мате-
риал, применял на практике и процесс освоения и обучения Следующим шагом будет применение в проекте попу-
повторялся. В результате этого простая программа выросла лярной базы данных PostgreSQL (БД) [9]. С этого момента
в достаточно сложный проект, которым, кстати, успешно я предлагаю перейти к модели «клиент-сервер» и пере-
пользуются мои уважаемые коллеги. После такой практики нести наш проект на сервер, где и будет установлена
я с уверенностью мог причислить себя к программистам БД. Модель «клиент-сервер» позволит пользоваться про-
на языке Python среднего уровня. граммой «Контакты» всем, кто находится в одной Ethernet
или Wi-Fi сети.
Предлагаю вам проанализировать и присмотреться, дома
или на работе, какой процесс на компьютере можно авто- В качестве сервера я применю микрокомпьютер Raspberry
Pi 3 Model B с установленной на него ОС Raspbian (Raspberry
Ставя перед собой какую- Pi OS with desktop) [10]. Благодаря Raspberry Pi и наличию
либо цель, я изучал у него контактов GPIO я смогу реализовать возможность
необходимый материал, пользоваться программой «Контакты» локально на сервере
применял на практике при помощи нескольких кнопок и жидкокристаллического
и процесс освоения и обучения дисплея.
повторялся
Если у вас нет в наличии Raspberry Pi и нет желания,
матизировать. Придумайте для себя проект и начинайте а может, и возможности его приобрести, я предлагаю в ка-
этот увлекательный процесс практического изучения языка честве сервера применить любой персональный компьютер
программирования Python. или ноутбук и установить на него ОС Raspbian (Raspberry Pi
Desktop) [10]. ОС Raspbian (Raspberry Pi Desktop) – это об-
Если же у вас идей никаких на этот счет пока не возникло, легченная ОС с интерфейсом Raspbian на основе дистри-
я предлагаю начать вместе со мной с написания программы бутива Debian [12], созданная специально для маломощных
«Контакты» и в дальнейшем, по мере продвижения процесса компьютеров с 32-разрядным процессором, в том числе
изучения нового материала, совершенствовать и усложнять и компьютеров Apple Mac.
эту программу. Я постараюсь в проекте применять все тех-
нологии, доступные для современной разработки на Python. Для переноса файлов проекта с компьютера на сервер
и наоборот я воспользуюсь системой управления версиями
План работы Git [11] и хостингом ИТ-проектов GitHub [13]. Существующие
в текстовом файле контакты перенесу в БД и подключу
Cначала я напишу простую программу «Контакты», состо- к ней клиента (клиентов) с уже существующей программой
ящую из нескольких строк кода, и протестирую её с под- с графическим интерфейсом «Контакты», после чего файл
робными комментариями. contact.txt можно удалить.

Далее в качестве усовершенствования создам графиче- Следующим усовершенствованием будет установка
ский интерфейс, применив встроенную в Python библиотеку на сервер веб-фреймворка Django [14]. Django даст возмож-
ность создать веб-интерфейс программы «Контакты» и взаи-
модействовать с БД через браузер, даже при отсутствии в ОС
клиента программы «Контакты» и интерпретатора Python.

Опубликую проект на бесплатном хостинге и веб-при-
ложение «Контакты» станет доступно в любой точке мира,

системный администратор январь-февраль 2021 55

Разработка языки программирования

где есть Интернет. При помощи библиотеки Django Rest После этого программа-установщик установит все не-
Framework (DRF) [15] создам API [16] для взаимодействия обходимые для работы компоненты.
клиента с сервером в формате JSON [17]. Рисунок 3. Окно установки Python

Для последнего усовершенствования программы «Контак- Если на экране появилось окно, как показано на рис. 4,
ты» я применю технологию нейронных сетей. Запись новых значит установка прошла успешно и можно приступать к раз-
контактов, поиск и получение существующих контактов, работке программы «Контакты».
а также удаление ненужных записей будет осуществляться Рисунок 4. Установка прошла успешно
голосом.

Установка языка программирования
Python 3 на компьютер

Если вы пользователь ОС Windows, то Python 3 нужно ска-
чать и установить в ОС. Здесь необходимо обратить вни-
мание на следующее: на главной странице www.python.org
в разделе Downloads на главном окне предлагается к ска-
чиванию 64-разрядная версия языка Python 3 (рис.1).

Рисунок 1. Раздел Downloads на главной странице www.python.org

Если ваша ОС 32-разрядная, то необходимо в этом же
окне выбрать вкладку Windows (рис. 2).

Рисунок 2. Раздел Downloads вкладка Windows

В открывшемся окне нужно выбрать подходящий для сво- IDE – Интегрированная среда разработки [19]
ей ОС вариант загрузки и скачать на компьютер.
Чтобы не усложнять статью дополнительным описанием
Для владельцев компьютеров с операционной системой существующих IDE, для начальной разработки я восполь-
Mac OS для скачивания Python 3 необходимо проделать зуюсь интегрированной средой разработки IDLE (Integrated
те же шаги, что и для ОС Windows, но в разделе Downloads Development and Learning Environment – Интегрированная
(рис. 2) вместо вкладки Windows выбрать вкладку Mac OS X. среда развития и обучения) [18], которая установилась вме-
сте с Python (рис. 3). IDLE Python – вполне себе нормальная
В операционные системы на основе ядра Linux, та- среда для разработки небольших приложений, эксперимен-
ких как Raspbian, Debian, Ubuntu язык программирования тов и тестов. IDE для разработки на языке Python предла-
Python 3 предустановлен. гается очень много (как платных так и бесплатных). Чтобы
сделать для себя необходимые выводы, я рекомендую по-
После скачивания установочного файла, запускаем читать отзывы в Интернете, попрактиковаться с несколькими
его для установки в ОС. Здесь я обращу внимание на сле- IDE и выбрать на своё усмотрение наиболее приемлемую
дующее: в окне, изображенном на рис. 3, необходимо отме- для вас. Для разработки веб-приложений я пользуюсь бес-
тить флажками предложенные для установки опции и нажать платной IDE PyCharm Community.
Install Now.
Зайдите в меню Пуск, найдите приложение IDLE Python
и запустите его. Если открылось окно с символом >>>, зна-
чит вы находитесь в интерактивном режиме Python. Этот ре-
жим отлично подходит для отладки программы, и в дальней-
шем я к нему еще вернусь. Кстати, вызвать интерактивный
режим также можно из командной строки или терминала,
введя команду python (рис. 5). Для демонстрации работы

56 январь-февраль 2021 системный администратор

языки программирования Разработка

интерактивного режима я сложил два числа, нажал Enter Создание программы «Контакты»
и получил результат. с терминальным интерфейсом

Для выхода из интерактивного режима необходимо ввести Все версии программы «Контакты», которые я рассматриваю в этой ста-
команду exit(). тье, размещены в моём репозитории на GitHub https://github.com/zaryava/
Рисунок 5. Вызов интерактивного режима Python из командной строки contact_v.1

Итак, нам необходимо переключиться из интерактивного Программа «Контакты» с терминальным интерфейсом будет
режима IDLE в режим редактора кода. Для этого нужно войти выполнять следующие функции:
в конфигурирование IDLE (рис. 6).
Рисунок 6. Конфигурирование IDLE Python 1. Создавать через терминальный интерфейс и сохранять
в памяти компьютера контактные данные абонентов.
В открывшемся окне – перейти на вкладку General (рис. 7),
выбрать режим Open Edit Window, нажать кнопку Apply и за- 2. Отображать через интерфейс контактные данные або-
тем кнопку Ok. Для применения настроек необходимо пере- нентов, сохраненные в памяти.
запустить IDLE. После этого IDLE будет запускаться в режиме
редактора кода. 3. Осуществлять быстрый поиск абонента по любому
Рисунок 7. Выбор режима запуска IDLE Python идентификатору (фамилии, имени, адресу, телефону, элек-
тронной почте, дополнительной информации).

4. Удалять ненужные контакты.
Для получения информации с клавиатуры я воспользуюсь
встроенной в Python функцией input().

Небольшое отступление

А почему я решил, что это именно функция, а не переменная или класс? Су-
ществует документ РЕР8 (Python Enhancement Proposal #8 – заявки на улуч-
шение языка Python) [20], в котором содержатся предложения по стилевому
оформлению кода программ на языке Python. Имена переменных и функций
необходимо писать в нижнем регистре букв, слова разделять символами
подчеркивания. Каждое слово в именах классов должно начинается с про-
писной буквы. Например, input_word – имя переменной, input_word() – имя
функции, InputWord() – имя класса. Но некоторые модули Python все-таки
вносят путаницу и присваивают своим встроенным классам имена, начи-
нающиеся с прописной буквы.

После вызова функции input() программа (интерпретатор)
будет ожидать от нас ввода данных и нажатия клавиши Enter.
Для обозначения, какую информацию для ввода ожидает
от нас программа, можно передавать необязательный ар-
гумент подсказки для ввода. Пример: input('Введите имя: ').

Я сохранил программу
как файл с названием
contact.py

Все данные, полученные из функции input(), преобра-
зуются в тип данных str – строка. Эти данные я присвою
переменным (рис. 8): last_name – для сохранения фами-
лии абонента, first_name – для сохранения имени абонента,
address – для сохранения адреса абонента, phone_number –
для сохранения телефонного номера абонента.

Рисунок 8. Программа «Контакты» (contact_v.1.0)

системный администратор январь-февраль 2021 57

Разработка языки программирования

Я сохранил программу как файл с названием contact.py. >> 'r'– открыть файл только для чтения. Файл не может
Запустить программу на выполнение можно из редактора быть изменен, запись недоступна.
кода IDLE, нажав клавишу F5.
Контакты каждого абонента я буду сохранять в текстовый
После этого откроется окно Python Shell с предложением файл отдельной строкой, состоящей из фамилии, имени,
ввести фамилию абонента (рис. 9). адреса и телефонного номера абонента. Эту строку необ-
ходимо сформировать.
Далее ввожу всё то, что запрашивает программа (рис. 10).
После ввода последней цифры телефонного номера В Python строки можно объединять путем сложения (кон-
абонента и нажатия клавиши Enter выполнение программы катенации). В результате этого будет создана новая строка
завершилось. (объект строки).

Рисунок 9. Запуск программы «Контакты» на выполнение contact = last_name + first_name + address + phone_number
Рисунок 10. Ввод контактных данных
Добавлю в программу строчки кода необходимые для ра-
боты с текстовым файлом в режиме записи ('a'). Результат
сложения строк выведу на печать (в окно выполнения про-
граммы) при помощи встроенной в Python функции print()
(рис. 11).

Строка кода file_txt_a = open('contact.txt', 'a') создаст текс-
товый файл contact.txt в той же папке (директории), в кото-
рой находится файл с программой contact.py.

После символа # начинается однострочный коммен-
тарий, который не влияет на выполнение кода и служит
для документирования кода. Код file_txt_a.write(contact)
произведет запись содержимого переменной contact
в текстовый файл contact.txt. И код file_txt_a.close() за-
кроет текстовый файл.

Возникает вопрос, куда сохранились введенные данные Рисунок 11. Программа «Контакты» (contact_v.1.1)
и сохранились ли они вообще. Введенные данные сущест-
вовали в оперативной памяти компьютера пока программа
была запущена на выполнение, как только программа выпол-
нила команду последней строчки кода, данные, связанные
с программой из файла contact.py, были удалены из опера-
тивной памяти компьютера, т. е. не сохранились.

После ввода последней Запускаю из редактора IDLE новую версию программы
цифры телефонного номера на выполнение, нажав клавишу F5 (рис. 12).
абонента и нажатия клавиши Рисунок 12. Результат выполнения программы «Контакты» (contact_v.1.1)
Enter выполнение программы
завершилось На печать вывелась подготовленная для записи в текс-
товый файл строка, на которую ссылается переменная
В Python для длительного хранения на «жестком» диске contact.
компьютера данные можно сохранять в текстовый файл.
Для работы с текстовым файлом программе необходимо Петров Василий г. Ивановск, ул. Длинная, д.8, кв.711-22-33
проделать три действия:

>> открыть файл;
>> записать данные в файл или считать данные из файла;
>> закрыть файл.
Для открытия файлов в Python существует функция
open(имя_текстового_файла, режим). Я назвал текстовый
файл для записи контактов абонентов contact.txt. Для от-
крытия этого файла я буду применять два режима:
>> 'a'– открыть файл для записи. Все записываемые

в файл данные будут добавлены в конец этого файла.
Если файл не существует, то данный режим создаст
его;

58 январь-февраль 2021 системный администратор

языки программирования Разработка

Также программой создан текстовый файл contact.txt Я вношу изменения в программу (рис. 14) и удаляю соз-
с записанной в него строкой контакта абонента (рис. 13). данный при первом запуске текстовый файл contact.txt,
так как контакт первого абонента в нем записан некор-
Рисунок 13. Текстовый файл contact.txt ректно.

Рисунок 14. Программа «Контакты» (contact_v.1.2.0)

При чтении из текстового файла мы получим стро- Прежде чем запустить новую версию на выполнение,
ку в том же виде. Поэтому необходимо сразу продумать, я подумал, что неплохо бы добавить в программу «Кон-
как производить разделение полученной строки на заданные такты» еще несколько полей. Одно поле – для сохранения
фрагменты: last_name, first_name, address, phone_number. адреса электронной почты абонента, второе – для допол-
Предлагаю в качестве идентификатора разделения взять нительной информации (профессия, место работы, Skype,
символ амперсанда &. В контактах абонентов этот символ Viber, WatsApp и т. д.) и третье поле – для сохранения даты
применятся не будет, значит в данном случае он уникален и времени записи контакта.
и отлично подойдет в качестве разделителя. Объект стро-
ки, на которую ссылается переменная contact, запишется Введенные с клавиатуры данные присвою переменным
следующим образом: email и add_inform, соответственно.

contact = last_name + '&' + first_name + '&' + address + '&' Для получения даты и времени из ОС существует модуль
+ phone_number datetime. Из этого модуля я импортирую класс datetime и,
вызвав несколько функций, получу дату и время в нужном
При открытии текстового файла в режиме 'a', каждые мне временном формате в виде строки (тип данных 'str').
новые данные (новые контакты) будут добавляться в кон- Результат присвою переменной dt.
це уже существующей записи. Получится одна длинная
строка. Проверить механизм получения даты и времени можно
в командной строке, перейдя в интерактивный режим Python
Один из способов разделения – придумать еще один (рис. 15).
уникальный идентификатор и создать фрагмент кода в про-
грамме, который выполнит это действие. Тогда в процес- Рисунок 15. Получение даты и времени из ОС
се считывания контактов из текстового файла по этому
идентификатору их можно будет разделить. В этом случае
для чтения данных из текстового файла нужно применить
метод (та же функция, только называется так из-за принад-
лежности к объекту) read(), который считывает содержимое
всего текстового файла.

Один из способов
разделения – п ридумать
еще один уникальный
идентификатор и создать
фрагмент кода в программе,
который выполнит
это действие

Также существует метод readline(), который считывает Новая версия программы показана на рис. 16.
данные из текстового файла построчно. Для применения Запускаю программу на выполнение несколько раз для за-
этого метода нужно отделять каждый контакт абонента сим- писи нескольких контактов. Если, кроме имени абонента,
волом новой строки '\n'. нужно указать его отчество, то можно записать его после
ввода имени через пробел (Введите имя: Василий Петрович).
contact = last_name + '&' + first_name + '&' + address + '&'
+ phone_number + '\n'

системный администратор январь-февраль 2021 59

Разработка языки программирования

Результат одного из запусков программы на выполнение В текстовый файл записаны три контакта. Переменная
показан на рис. 17. data1 ссылается на строку с данными первого контакта,
переменная data2 ссылается на строку с данными второго
Рисунок 16. Программа «Контакты» (contact_v.1.2.1) контакта и переменная data3 ссылается на строку с данны-
ми третьего контакта. Запускаю программу на выполнение
(рис. 20).

Рисунок 20. Результат выполнения программы «Контакты» (contact_v.1.2.2)

Мне не нравится наличие пустой строки между строчками
контактов. Эта строка появляется из-за присутствия в конце
считываемого из текстового файла контакта символа новой
строки '\n'. Но от него можно избавиться, применив метод
строки rstrip(). Передав в этот метод аргумент '\n', произойдет
удаление символа '\n' в конце строки. Фрагмент программы
показан на рис. 21.

Рисунок 21. Фрагмент программы «Контакты» (contact_v.1.2.3)

Рисунок 17. Результат выполнения программы «Контакты» (contact_v.1.2.1)

После ввода контактов откройте текстовый файл contact. Результат выполнения программы «Контакты»
txt и убедитесь, что все контакты записаны построчно. Со- (contact_v.1.2.3) показан на рис. 22.
держимое текстового файла contact.txt после записи трёх
контактов показано на рис. 18.

Рисунок 18. Текстовый файл contact.txt Рисунок 22. Результат выполнения программы «Контакты» (contact_v.1.2.3)

Теперь я добавлю в программу блок кода для чтения Следующая задача – разделить по идентификатору дан-
данных из текстового файла, а строки кода, участвующие ные каждой строки (каждого контакта) на информационные
в записи, временно закомментирую (рис. 19). фрагменты (имя, фамилия, адрес, номер телефона, адрес
электронной почты, дополнительная информация). Для этого
Рисунок 19. Фрагмент программы «Контакты» (contact_v.1.2.2) воспользуемся методом split('&') (рис. 23). В скобках в оди-
нарных кавычках указан символ разделителя. В результа-
те действия этого метода образуется список, у которого

Следующая задача –
р азделить по идентификатору
данные каждой строки
на информационные
фрагменты

60 январь-февраль 2021 системный администратор

языки программирования Разработка

в качестве элементов располагаются фрагменты строки Рисунок 26. Результат выполнения программы «Контакты» (contact_v.1.2.5)
контакта, разделенные по идентификатору '&'.

Рисунок 23. Фрагмент программы «Контакты» (contact_v.1.2.4)

Сохраняю изменения в программе и запускаю на выпол- На рис. 25 показан фрагмент программы, который об-
нение. В результате получаю список со строковыми объ- рабатывает и выводит на печать данные первого контакта.
ектами (рис. 24). Код для обработки и вывода на печать остальных контак-
тов аналогичен коду для первого контакта. Как следствие
этой аналогии напрашивается цикл для последовательного
считывания каждой строчки контакта из текстового файла,
его обработки и вывода на печать.

Рисунок 27. Фрагмент программы «Контакты» (contact_v.1.2.6)

Рисунок 24. Результат выполнения программы «Контакты» (contact_v.1.2.4)

Получить элемент списка можно по индексу. Создан бесконечный цикл while True. Выходом из него
Например, в первой строке (рис. 24) элемент с ин- является условие, при котором считанная из текстового
дексом 0 – это строка 'Петров', элемент с индексом 1 – файла строка окажется пустой data_str_n == ''. В этом
это строка 'Василий Иванович', элемент с индексом 2 – случае выполняется закрытие текстового файла file_txt_r.
это строка 'г. Ивановск, ул. Длинная, д.8, кв.7', элемент close() и срабатывает оператор break (завершение ра-
с индексом 3 – это строка '11-22-33', элемент с индек-
сом 4 – это строка '[email protected]', элемент с индексом 5 – Создан бесконечный цикл
это строка 'Спортсмен', элемент с индексом 6 – это строка while True. В ыходом из него
'19.12.2020 13:12:45'. является условие, п ри котором
Добавлю в программу строки кода для получения эле- считанная из текстового
ментов списка (рис. 25). файла строка окажется пустой

Рисунок 25. Фрагмент программы «Контакты» (contact_v.1.2.5)

Результат выполнения программы «Контакты» боты цикла и переход к строчкам кода, расположенным
(contact_v.1.2.5) показан на рис. 26. ниже цикла). Для автоматического присваивания номера
контакта я ввел переменную contact_number. С каждой
новой итерацией цикла значение этой переменной уве-
личивается на единицу. Для вывода значения этой пере-
менной на печать воспользуюсь форматированием f-strings
(f '{переменная}').

Запускаю на выполнение. Результат показан на рис. 28.
Если я раскомментирую строки, отвечающие за получе-
ние данных контакта с клавиатуры и за запись этих данных

системный администратор январь-февраль 2021 61

Разработка языки программирования

в текстовый файл, а затем запущу программу на выполнение, Результат запуска программы на выполнение показан
то программа сначала запросит данные для записи нового на рис. 30.
контакта, потом выведет все контакты на печать и завер-
шит работу. Не хватает условия выбора действия: показать Рисунок 30. Результат выполнения программы «Контакты» (contact_v.1.2.7)
контакты, создать контакт, выход. Необходимо добавить
в программу это условие (рис. 29).

Рисунок 28. Результат выполнения программы «Контакты» (contact_v.1.2.6)

Рисунок 29. Программа «Контакты» (contact_v.1.2.7) Каждый раз после выбора действия (ввода с клавиату-
ры 1, 2 или 3), необходимо нажать клавишу Enter. Программа
выполнит условие, связанное с выбранным действием, и вы-
йдет из режима выполнения.

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

Выполнение кода, заключенного в тело условия, завер-
шается оператором continue, который начинает следующий
проход (итерацию) цикла выбором действия, минуя остав-
шееся тело цикла while.

Прежде чем это сделать, я предлагаю проанализировать
программу, показанную на рис. 29. Программа уже выглядит
громоздко, а впереди еще организация поиска и удаления
контакта. Пришло время провести рефакторинг кода [21].
Кроме этого необходимо, по возможности, избегать повто-
рения кода, следуя принципу DRY (Don’t Repeat Yourself –
не повторяйся) [21].

Для удобства восприятия я разделю программу на две
части. Первая часть – основная программа (файл contact.py)
с логикой выполнения поставленной задачи. Вторая часть –
модуль defcont.py, в котором разместятся все функции про-
граммы «Контакты», доступные для выполнения в contact.py
через import. Сначала создам каждую функцию отдельно,
а потом объединю их в модуль defcont.py.

Разработка функций

Для получения данных с клавиатуры и формирования строки
контакта абонента я создам функцию с названием input_
contact() (рис. 31).

Рисунок 31. Функция input_contact()

Для осуществления действия Выход- 3 (выход из про- январь-февраль 2021 системный администратор
граммы) импортируется модуль sys.

62

языки программирования Разработка

В коде этой функции незнакомыми для вас могут оказать- В качестве основы для новой функции поиска кон-
ся строка документации в начале функции input_contact(), такта find_contact_txt() я взял функцию read_contact_txt()
заключенная в тройные кавычки, и строка return contact. (рис. 33) и добавил в нее несколько строк кода для вы-
полнения поиска. Функция для выполнения поиска по-
Строка return contact возвращает значение переменной казана на рис. 35.
contact при вызове функции.
Для организации поиска контакта абонента я применил
Прочитать строку документации для функции input_ строковую функцию find(). В качестве аргумента в функцию
contact() можно так: для поиска передается элемент в виде строки (имя, имя
и отчество, фамилия, адрес, номер телефона, электронный
print(input_contact.__doc__) адрес, дополнительная информация, дата записи, время
записи) или часть этого элемента.
Для записи значения переменной contact в текстовый
файл я создам функцию с названием write_contact_txt() Например, из текстового файла получена строка data_str,
(рис. 32). которая содержит следующую информацию:

Рисунок 32. Функция write_contac_txt() data_str = 'Петров&Василий Иванович&г. Ивановск, ул. Длинная,
д.8,кв.7&11-22-33&[email protected]&Спортсмен&19.12.202013:12:45'

Рисунок 35. Функция find_contact()

При вызове эта функция принимает два аргумента: file_ Если осуществляется поиск по элементу Петров, как по-
name – название текстового файла для сохранения кон- казано ниже,
тактов (contact.txt) и contact – строка с данными контакта
абонента.

Функция read_contact_txt() для чтения данных из тексто-
вого файла и обработки этих данных показана на рис. 33.

Рисунок 33. Функция read_contact_txt()

data_str.find('Петров')

то функция вернет индекс первого совпадения «0» из воз-
можных 115.

Если поиск выполняется по элементу 11-22-2-33, как по-
казано ниже,

Функция print_contact_txt() для обработки строки контакта data_str.find('11-22-33')
и вывода на печать данных контакта (рис. 34).
то функция вернет индекс «60». Если совпадений нет, функ-
Рисунок 34. Функция print_contact() ция вернет «-1».

Теперь создам последнюю функцию del_contact() для уда-
ления контакта абонента (рис. 36).

Функция open(имя_текстового_файла, режим) не имеет
режима для удаления записей построчно. Поэтому я при-
думал алгоритм для реализации удаления контакта. Этот
алгоритм работает следующим образом.

Функция получает номер контакта для удаления. Создает-
ся пустой список, который в цикле заполняется контактами
из текстового файла contact.txt. В случае, если номер контак-
та, полученного из текстового файла, равен номеру контакта
для удаления, то этот контакт в список не заносится. После
формирования списка с контактами текстовый файл contact.
txt удаляется. Из списка с контактами формируется новый
текстовый файл contact.txt уже без удаленного контакта.

системный администратор январь-февраль 2021 63

Разработка языки программирования

Рисунок 36. Функция del_contact() Для удобства пользования
программой «Контакты» можно
из файла contact.py сделать
exe-файл contact.exe

Вышеописанные функции я объединяю в модуль defcont. обратить внимание, это то, что функции read_contact_txt(),
py. Модуль можно посмотреть или скачать по ссылке https:// find_contact() и del_contact() включены в конструкцию try-
github.com/zaryava/contact_v.1. except для обработки исключений, в моём случае – это от-
сутствие текстового файла, в случае, если еще не созда-
Разработка основной программы вался ни один контакт. Без конструкции try-except программа
завершится из-за возникшей ошибки.
Теперь я сформирую основную программу contact.py
(рис. 37). Для удобства пользования программой «Контакты» можно
из файла contact.py сделать exe-файл contact.exe. Для этого
Рисунок 37. Основная программа contact.py необходимо инсталлировать модуль pyinstaller [23]. Это мож-
но сделать через менеджера пакетов pip.

pip install pyinstaller

Далее я объединю файл defcont.py с файлом contact.py,
а именно, скопирую содержимое файла defcont.py, вставлю
его в файл contact.py. Затем удалю строку импорта (рис. 38),
так как модуль defcont.py стал частью файла contact.py,
и сохраню.

Рисунок 38. Строка импорта в файле contact.py, которую нужно удалить

В корне диска «C» создам папку contact и в ней размещу
файл contact.py.

Теперь в командной строке нужно перейти в папку с про-
граммой contact.py (рис. 39).

Рисунок 39. Папка contact, в которой расположен файл contact.py

Далее я ввожу команду pyinstaller contact.py -F
Рисунок 40. Команда для создания файла contact.exe

Перед запуском программы на выполнение хочу напом- В результате выполнения этой команды в папке contact
нить о том, что файл с основной программой contact.py, создалась папка dist, в которой и находится файл contact.exe.
файл модуля defcont.py и текстовый файл contact.txt должны
находиться в одной папке (директории).

Логику работы этой части программы я описал выше,
поэтому повторять не буду. Единственное, на что я хотел бы

64 январь-февраль 2021 системный администратор

языки программирования Разработка

Для работы программы с уже созданными контактами Рисунок 44. Окно программы с новым интерфейсом
необходимо в папку с файлом contact.exe поместить текс-
товый файл contact.txt (рис. 41). Эти два файла (contact.exe
и contact.txt) можно поместить на любой локальный диск,
в любую папку компьютера.

Рисунок 41. Файл contact.exe

Также эти файлы можно перенести на любой другой уже созданный ранее текстовый файл contact.txt. Вся ин-
компьютер с ОС Windows, и программа всё равно будет формация, которая внесена в contact.txt, будет доступна
работать. в следующем проекте.  EOF 

Запускаю программу contact.exe и получаю окно с вы- [1] Язык программирования Python – https://ru.wikipedia.org/wiki/
бором действия. Выбираю действие – цифру 1 и нажимаю Python
клавишу Enter (рис. 42).
Рисунок 42. Окно программы [2] Raspberry Pi 3 Model B – https://www.raspberrypi.org/products/
raspberry-pi-3-model-b/?resellerType=home
Рисунок 43. Фрагмент программы contact.py с добавленными пробелами
[3] Raspberry Pi GPIO – https://www.raspberrypi.org/documentation/
Мне не нравится, что текст прижат к левой границе окна usage/gpio/
командной строки (отсутствует отступ), это ухудшает чита-
бельность. Поэтому я добавлю дополнительно пробел в на- [4] Скретч (язык программирования) https://ru.wikipedia.org/wiki/%D
чале каждой строки текста (рис. 43). 0%A1%D0%BA%D1%80%D0%B5%D1%82%D1%87_(%D1%8F%D
0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D
Результат изменения интерфейса программы показан 1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D
на рис. 44. 0%B2%D0%B0%D0%BD%D0%B8%D1%8F)

На этом я заканчиваю разработку программы «Контакты» [5] Операционные системы Windows – https://ru.wikipedia.org/wiki/
с терминальным интерфейсом. Windows

В следующей статье я создам программу «Контакты» [6] Linux – https://ru.wikipedia.org/wiki/Linux
с графическим интерфейсом, применив встроенную в Python [7] Python 3.9.1 documentation – https://docs.python.org/3/
библиотеку Tkinter. В качестве «базы данных» я применю [8] Tkinter – https://ru.wikipedia.org/wiki/Tkinter
[9] PostgreSQL – https://ru.wikipedia.org/wiki/PostgreSQL
[10] Raspberry Pi OS with desktop – https://www.raspberrypi.org/

software/operating-systems/
[11] Git – https://ru.wikipedia.org/wiki/Git
[12] Debian – https://ru.wikipedia.org/wiki/Debian
[13] GitHub – https://ru.wikipedia.org/wiki/GitHub
[14] Django – https://ru.wikipedia.org/wiki/Django
[15] Django Rest Framework (DRF) – https://www.django-rest-

framework.org/
[16] API – https://ru.wikipedia.org/wiki/API
[17] JSON – https://ru.wikipedia.org/wiki/JSON
[18] IDLE – https://ru.wikipedia.org/wiki/IDLE
[19] IDE – https://ru.wikipedia.org/wiki/IDE
[20] PEP8 – https://www.python.org/dev/peps/pep-0008/
[21] Рефакторинг – https://ru.wikipedia.org/wiki/%D0%A0%D0%B5%

D1%84%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D0%B8%
D0%BD%D0%B3
[22] DRY – https://ru.wikipedia.org/wiki/Don%E2%80%99t_repeat_
yourself
[23] Pyinstaller – https://www.pyinstaller.org/

Ключевые слова: программа, Python, коммандная строка, интер-
фейс, разработка, контакты, база данных

системный администратор январь-февраль 2021 65

Разработка DevOps

Визитка

СЕРГЕЙ ГОЛОВАШОВ, ведущий инженер DevOps, компания Bell Integrator,
[email protected]

Программные решения

для обеспечения цикла непрерывной разработки

В данной статье расскажем о программном обеспечении, которое, при правильной
настройке, должно обеспечить цикл непрерывной разработки

В цикле наших статей [1, 2] мы поставили себе задачу сотрудники находятся «на одной волне», где ручной труд
изучить более глобальную проблему, чем просто работу автоматизирован, каждый занимаются тем, что лучше всего
в консоли с целью установки какого-нибудь приложения. умеет, поэтому растет частота поставок, повышается про-
Поэтому приступаем к освещению инструментов DevOps дуктивность работы, увеличивается гибкость.
и DevSecOps.
И хотя одних только инструментов недостаточно для соз-
У DevOps есть разные определения. Он, как и Agile, дания среды DevOps, без них не обойтись. Самым важным
включает в себя различные дисциплины. Но большинство из них является непрерывная интеграция и непрерывная
согласятся со следующим определением: DevOps – это ме- поставка (CI/CD).
тод или жизненный цикл разработки ПО, главный принцип
которого – создание культуры, где разработчики и другие В цепочке для каждого окружения есть разные эта-
пы (например, DEV (разработка), INT (интеграция), TST

Статья подготовлена компанией Bell Integrator специально для читателей
«Системного администратора»

66 январь-февраль 2021 системный администратор

DevOps Разработка

(тестирование), QA (контроль качества), UAT (приемочное никуда. SCM сохраняет код в репозиториях, управляет
тестирование пользователями), STG (подготовка), PROD (ис- его версиями и координирует его среди разработчиков.
пользование), ручные задачи автоматизированы, разработ-
чики могут делать качественный код, делают его поставку Инструментов SCM немало, но стандартом де-факто за-
и могут легко перестраиваться. служенно стал Git. Я советую использовать именно его,
хотя есть и другие варианты, и лично мне был всегда очень
Поговорим об этих инструментах. симпатичен SVN.

Шаг 1. Платформа CI/CD (pipeline) Название Лицензия
Git GPLv2
Первым делом вам нужен инструмент CI/CD. Jenkins – это от- Subversion Apache 2.0
крытый инструмент CI/CD, написанный на Java, с лицензией CVS GNU
MIT, с него началась популяризация движения DevOps, ко- Vesta LGPL
торый де-факто стал стандартом для CI/CD. Mercurial GPLv2

А что такое Jenkins? Представьте, что у вас есть вол- Шаг 3. Инструмент автоматизации
шебный пульт управления для самых разных сервисов и ин- сборки
струментов. Сам по себе инструмент CI/CD, типа Jenkins,
бесполезен, но с разными инструментами и сервисами Все идет как надо. Вы можете выгружать код и фиксировать
он становится всемогущим. изменения в системе контроля версий, а также пригласить
друзей поработать с вами. Но приложения у вас пока нет.
Кроме Jenkins, есть множество других открытых инстру- Чтобы это было веб-приложение, его нужно скомпилировать
ментов. Их мы перечислим ниже в таблице. Выбирайте лю- и поместить в пакет для поставки или запустить как испол-
бой. няемый файл (интерпретируемый язык программирования
вроде JavaScript или PHP компилировать не надо).
Название Лицензия
Jenkins CC и MIT Применяйте инструмент автоматизации сборки. Какой бы
Travis CI MIT инструмент вы ни выбрали, он будет собирать код в нужном
CruiseControl BSD формате и автоматизировать очистку, компиляцию, тести-
Buildbot GPL рование и поставку. Инструменты сборки бывают разные
Apache Gump Apache 2.0 в зависимости от языка, но обычно используются следующие
Cabie GNU варианты с открытым кодом.

Шаг 2. Управление версиями Название Лицензия Язык программирования
Maven Apache 2.0 Java
Лучший (и, пожалуй, самый простой) способ проверить ма- Ant Apache 2.0 Java
гию инструмента CI/CD – интегрировать его с инструментом Gragle Apache 2.0 Java
контроля версий (source control management, SCM). Bazel Apache 2.0 Java
Make GNU -
Зачем нужен контроль версий? Допустим, вы делаете Grunt MIT JavaScript
приложение. Вы пишете его на Java, Python, C++, Go, Gulp MIT JavaScript
Ruby, JavaScript или на любом другом языке, коих вагон Buildrm Apache Ruby
и маленькая тележка. То, что вы пишете, называется ис- Rake MIT Ruby
ходным кодом. A-A-P GNU Python
SCons MIT Python
Сам по себе инструмент BitBake GPLv2 Python
CI/CD, типа Jenkins, Cake MIT C#
бесполезен, но с разными ASDF MIT LISP
инструментами и сервисами Cabal BSD Haskell
он становится всемогущим
Шаг 4. Сервер веб-приложений
Поначалу, особенно если вы работаете в одиночку, можно
сохранять всё в локальный каталог. Но когда проект разрас- Итак, у вас есть запакованный файл, который можно ис-
тается и к нему присоединяется больше людей, вам нужен полнять или выкатывать. Чтобы приложение действительно
способ, чтобы делиться изменениями в коде, но при этом приносило пользу, у него должен быть какой-то сервис
избегать конфликтов при слияниях изменений. или интерфейс, но вам нужно где-то это всё разместить.

А еще вам нужно как-то восстанавливать предыдущие
версии без использования резервных копий и применения
метода copy-paste для файлов с кодом. И тут без SCM

системный администратор январь-февраль 2021 67

Разработка DevOps

Веб-приложение можно разместить на сервере веб-прило- И инструменты с подсказками по качеству.
жений. Сервер приложений обеспечивает среду, где можно
исполнить программную логику из пакета, выполнить отри- Название Лицензия Язык
совку интерфейса и открыть веб-сервисы через сокет. Вам Cobertura GNU Java
нужен HTTP-сервер и несколько других окружений (виртуаль- CodeCover Eclipse Public (EPL) Java
ная машина, например), чтобы установить сервер приложе- Coverage.ру Apache 2.0 Python
ний. Пока давайте представим, что вы разбираетесь со всем Emma Common Public Java
этим в процессе (хотя о контейнерах я расскажу ниже). License
JaCoCo Eclipse Public License Java
Есть несколько открытых серверов веб-приложений. Hypothesis Mozilla Python
Tox MIT Python
Название Лицензия Язык программирования Jasmine MIT JavaScript
Tomcat Apache 2.0 Java Karma MIT JavaScript
Jetty Apache 2.0 Java Mocha MIT JavaScript
WildFly GNU Lasser Public Java Jest MIT JavaScript
GlassFish GNU Less Public Java
Django BSD Python Большинство этих инструментов и фреймворков написаны
Tornado Apache 2.0 Python для Java, Python и JavaScript, потому что C++ и C# – пропри-
Gunicorn MIT Python етарные (хотя у GCC открытый исходный код).
Python Paste MIT Python
Rails MIT Ruby Инструменты тестового покрытия мы применили, и теперь
Node.js MIT JavaScript пайплайн DevOps приобрел те черты, которые необходимы
для его успешной и безукоризненной работы.

У нас уже получилась почти рабочая цепочка DevOps. Как итог вы получаете тот самый цикл замкнутой разработки,
Здесь можно остановиться, дальше вы справитесь сами, про который мы столько времени говорим. В следующей
но стоит еще рассказать о качестве кода. статье поговорим про мониторинг, метрики и графики, а так-
же про нагрузочное тестирование. И в скором времени
Шаг 5. Тестовое покрытие перейдем к обеспечению безопасности в разработке.  EOF 

Тестирование отнимает много времени и сил, но лучше [1] Головашов С. DevOps: Цифровая трансформация // Системный
сразу найти ошибки и улучшить код, чтобы порадовать ко- администратор. 2020. № 7–8. С. 79–81. – http://samag.ru/archive/
нечных пользователей. Для этой цели есть много открытых article/4202
инструментов, которые не только протестируют код, но еще
и посоветуют, как его улучшить. Большинство инструментов [2] Головашов С. Контрольные точки управления и понятие труда.
CI/CD могут подключаться к этим инструментам и автомати- Инструменты постановки и контроля выполнения задач. // Сис-
зировать процесс. темный администратор. 2020. № 9. С. 45–49. – http://samag.ru/
archive/article/4248
Тестирование отнимает много
времени и сил, н о лучше сразу Ключевые слова: менеджмент организации, стандарты управления,
найти ошибки и улучшить стандарты информационной безопасности, техники SRE, DevOps,
код, чтобы порадовать DevSecOps, инструменты защиты, компенсационные меры защиты,
конечных пользователей соблюдение требований регуляторов, 382-П, ГОСТ 57580, ISO 9000,
ISO 27000
Тестирование разделено на две части: фреймворки те-
стирования, чтобы писать и выполнять тесты, и инструменты
с подсказками по повышению качества кода.

Ниже представлены фреймворки тестирования.

Название Лицензия Язык
JUnit Eclipse Public License Java
EasyMock Apache Java
Mockito MIT Java
PowerMock Apache 2.0 Java
Pytest MIT Python
Hypothesis Mozilla Python
Tox MIT Python

68 январь-февраль 2021 системный администратор

спецвыпуск Open Source

30 лет назад

в 1991 году началась история Linux

По официальным данным, в 1991 году «во время обуче- ассоциированная с Университетом Беркли компания BSDI
ния в Хельсинкском университете Линус Торвальдс заинте- выпустила на рынок дистрибутив 386/BSD по цене $995 –
ресовался операционными системами и был разочарован как было сказано «со скидкой в 99 %» по сравнению с роз-
лицензией MINIX, которая ограничивала её использование ничной ценой System V. Продавец последней – компания
только образовательными целями, вследствие чего начал UNIX Systems Laboratories (USL) – подала в суд на BSDI.
работать над своей собственной операционной системой, А заодно и на университет, который фактически даром
которая в итоге стала Linux». распространял файлы Unix. И нарвалась на встречный иск
от «академиков» (academia – общее название университет-
А до него еще в 1969 году появилась легендарная опе- ской системы в США)!
рационная системы UNIX. Сегодня под аббревиатурой UNIX
понимается целое семейство операционных систем («пере- В следующем году спорный дистрибутив поменял назва-
носимых, многозадачных и многопользовательских»). Раз- ние на NetBSD. И был выпущен еще один, название которого
нообразных членов этого семейства объединяет принцип говорило само за себя – FreeBSD.
построения: модульный дизайн, в котором конкретные задачи
выполняется своими утилитами, для работы с последними В конце прошлого века аналогичными поисками («сво-
используется командная оболочка, а взаимодействие обе- бодно-бесплатной» ОС) озаботился Apple. Выбор детища
спечивает единая файловая система. Стива Джобса в конце концов остановился на NeXTSTEP,
разработанной в компании NeXT, которая в том же 1997 году
Кроме «родных» Unix-систем, соответствующим образом влилась в Apple вместе со своей главой – Стивом Джобсом.
сертифицированных в The Open Group, имеются еще и Unix-
подобные, использующие похожие принципы построения Затем в Apple разработали открытую POSIX-совместимую
и технологии. (от Portable Operating Systems Interface – переносимый ин-
терфейс операционных систем) ОС Darwin, в которой при-
Главные отличия таких систем, как сертифицированных, сутствует как оригинальный собственный «яблочный» код,
так и «подобных», от остальных ОС в том, что с Unix могут так и коды от NeXTSTEP, FreeBSD и других ревнителей «сво-
одновременно работать сразу много пользователей на своих боды софта». Основные компоненты Darwin используются
терминалах. Решая свои собственные задачи – и не одну, в Mac OS X и Apple iOS.
а множество – с использованием ресурсов собственного же
компьютера. А специально разработанное ядро системы поз- Наконец, в 2005 году «освободили» исходный код еще
воляет с легкостью переносить ее на любой микропроцессор. одной известной операционной системы – Solaris. Перво-
начально ее – с тогда еще закрытым кодом – разработа-
Unix-системы нашли широкое применение в серверах, ли в компании Sun Microsystems для платформы SPARC,
в смартфонах и прочих гаджетах – и практически не знают а после того, как большую часть кода открыли и опубли-
себе равных в суперкомпьютерах. ковали в рамках проекте OpenSolaris, на свет родилась
одноименная ОС. И почти одновременно был создан дис-
На протяжении восьмидесятых годов создавалось множе- трибутив SchilliX, а вслед за ним, в 2008-м, – официальный
ство проектов на основе Unix, вдохновлённых этой фило- OpenSolaris 2008.05.
софией. Это были: проект GNU Ричарда Столмана, BSD
(Berkley Software Distribution), книга профессора Ендрю Та- Как резюмируют авторы одной из статей, посвященных
ненбаума «Операционные системы: дизайн и реализация», Unix, «в настоящий момент GNU/Linux и представители се-
а также MINIX (мини версия Unix). мейства BSD быстро отвоевывают рынок у коммерческих
Unix-систем и одновременно проникают как на настольные
При создании Linux Линус Торвальдс использовал ин- компьютеры конечных пользователей, так и на мобильные
струменты GNU, и в результате получилась операционная и встраиваемые системы».
система GNU/Linux, дистрибутивы которой (в частности,
Red Hat и Debian) пользуются популярностью как среди Об истории развития ОС с открытым исходным кодом
пользователей-«профи», так и среди любителей. в нашей стране читайте статьи авторов «Системного ад-
министратора» и «БИТа» в спецвыпуске «OPEN SOURCE»
Война «борцов за свободу» и «борцов за рыноч-
ные отношения» разгорелась в начале 1992 года, когда

системный администратор январь-февраль 2021 69

Open Source перспективы

СЕРГЕЙ СУПРУНОВ

Куда приведет Open Source?

Только два стимула заставляют людей работать –
жажда заработной платы и боязнь её потерять.
Генри Форд

Движение Open Source зародилось как протест против проприетарного подхода
к программному обеспечению и поначалу воспринималось, скорее, как развлечение.
Cейчас всё большее число компаний связывают с открытыми проектами свой бизнес.
Попытаемся разобраться, что ждёт эти проекты в перспективе

Что мы хотим от программы в дальнейшем на сопровождение, окупаются уже тем,
что вы сами используете эту программу. Следовательно,
Сначала посмотрим, каким требованиям должна отвечать вы ничего не потеряете, если отдадите её ещё кому-нибудь
программа, чтобы называться «хорошей» с точки зрения бесплатно (если, конечно, не боитесь, что ею воспользуются
конечного потребителя. Очевидно, что основное требова- и ваши конкуренты).
ние – минимум ошибок. Ошибки, которые в ней всё же
будут выявляться, необходимо устранять профессионально Следующий логический шаг – выпустить её не просто
и как можно быстрее. Не последнюю роль играют удобство бесплатно, но с открытым кодом. Вы по-прежнему ничего
работы и понятность интерфейса, а на все вопросы должна не теряете, но зато можете рассчитывать, что какая-нибудь
быть возможность получить грамотный и исчерпывающий «добрая душа» (мотивы доброты которой мы ещё рассмот-
ответ. рим) будет помогать вам в вашей разработке (хотя бы ука-
зывая на ошибки).
То есть программный проект должен разрабатываться
квалифицированными специалистами (в том числе и в об- С точки зрения сообщества такая мотивировка не поз-
ласти эргономики), снабжаться качественной документацией воляет продукту далеко отойти от удовлетворения частных
и эффективной технической поддержкой. Способны ли от- потребностей его разработчика. И его качество будет ров-
крытые проекты соответствовать этим требованиям? но таким, какое необходимо разработчику – не больше
и не меньше. К тому же на гарантированную техподдержку
Что движет разработчиками тоже рассчитывать не приходится. Конечно, если проект
очень хорош, то у него есть все шансы вырваться изпод
Как известно, люди ничего не делают просто так. Им не- крыла своего создателя и «уйти в свободное плавание».
пременно нужна мотивация. Такова наша природа. И чтобы Но этим движут уже другие мотивы...
понять, какое будущее ждёт открытое ПО и что мы сами
можем ждать от него, нужно попытаться разобраться в та- Программировать, чтобы учиться программировать
ком вопросе: что заставляет людей распространять свои Лучший способ научиться говорить поанглийски – это гово-
программы бесплатно? рить по-английски. То же самое и с программированием –
практика, и желательно не просто уровня «Hello, world!»,
Ричард Столлмен в своём письме «Свободному ПО двад- к чему быстро теряешь интерес, а участие в реальном
цать лет: что дальше?» выделяет два вида мотивации: отсут- проекте – это неотъемлемое условие достижения высоких
ствие нужной программы и желание быть свободным [1]. Но, результатов.
думаю, при более детальном рассмотрении мотивов будет
больше. Коротко охарактеризую основные из них. В этом плане работа над открытыми проектами практичес-
ки идеальна – вам всегда будут рады, от вас ничего не будут
Удовлетворение своих нужд требовать сверх ваших возможностей, общаясь с настоя-
На этот мотив указывает и Столлмен, а также Эрик Реймонд щими «гуру» своего дела, вы сможете перенять то, что аме-
в своей нашумевшей статье «Собор и Базар» [2] – иногда риканцы называют «лучшими практиками», то есть освоите
случается так, что вы не можете найти готовую программу наиболее эффективные приёмы работы, познакомитесь
(пусть даже и за деньги), которая обладала бы нужными вам с красивыми алгоритмами и т. д. Было бы желание.
качествами. Тогда вы разрабатываете её самостоятельно
и тем самым удовлетворяете свои потребности. То есть силы Однако эта мотивация накладывает два ограничения.
и ресурсы, затраченные на разработку и затрачиваемые Во-первых, далеко не каждый программист, пришедший

70 январь-февраль 2021 системный администратор

перспективы Open Source

в проект учиться, обладает необходимой квалификацией Особенно когда у вас есть возможность делать то же самое,
для разработки действительно качественного кода. Во- но за деньги...
вторых, как только он достигнет достаточно высокого уровня,
действие данного стимула на этом и заканчивается. К тому же в полном жизненном цикле проекта далеко
не всё будет доставлять удовольствие. Кто-то не любит
Конечно, Open Source затягивает. Ощущение причастности
к большому, общему и полезному делу заставляет не спать Конечно, Open Source
ночами, и потому многие недавние «ученики» не всегда «за- затягивает. Ощущение
вязывают» с открытым ПО, достигнув желаемого уровня ма- причастности к большому,
стерства. Но поскольку их мотивация меняется, то и данный общему и полезному
стимул нельзя назвать основополагающим для построения делу заставляет не спать
прочного и долгоживущего открытого проекта. ночами, и потому многие
недавние «ученики» не всегда
Наработка «портфолио» «завязывают» с открытым ПО
Каждый, кому доводилось искать работу, наверняка знает,
что работодатель гораздо чаще задаёт вопрос «что ты уме- писать документацию, кому-то не нравится отлавливать не-
ешь», а не «что ты знаешь». То есть опыт практической работы очевидные ошибки... Как метко заметил Николай Безруков
приобретает первостепенное значение, и запись в резюме в статье «Повторный взгляд на Собор и базар» [4], «та-
об участии в проекте разработки операционной системы вы- лантливые разработчики в первую очередь программисты,
глядит зачастую более предпочтительно, чем наличие высшего а не тестеры: они обычно предпочитают делать собственные
образования по специальности «системный программист». ошибки, а не исправлять ошибки других». Так что этот мотив
тоже нельзя рассматривать в качестве гаранта высокого
И здесь открытые проекты опять таки подкупают низкой качества и долгосрочности проекта.
«планкой вхождения». Но эта мотивация тоже не вечна – она
работает лишь до тех пор, пока человек не найдёт работу, Протест и борьба за идеалы
о которой мечтал. Второй из «столлменовских» мотивов – вы пишете открытые
программы, потому что считаете неправильным брать за них
Выполнение должностных обязанностей деньги и запрещать людям изучать и модифицировать их код.
Да, есть такие счастливцы, которые получают зарплату, Особенно когда сами создали свою программу, пользуясь
разрабатывая открытые продукты. Немало программистов, идеями и наработками других людей.
работающих над Linux, найдётся в таких компаниях, как IBM,
Oracle, не говоря уже об Red Hat Inc. и Novell, чей бизнес Это, конечно, хороший и благородный мотив, но, к сожа-
напрямую связан с этой операционной системой. (Нужно лению, трудно найти кого-то кроме самого Ричарда, кто им
заметить, что здесь есть и свои ограничения – вложения на самом деле руководствовался бы (ну ещё Торвальдс
в открытое ПО ничем не защищены, то есть любой конку- ссылается на него в своей книге как на одну из причин
рент вполне может совершенно бесплатно воспользоваться сделать код Linux открытым).
теми результатами, на достижение которых были потрачены
немалые средства.) Кстати говоря, идеологические принципы, лежащие в ос-
нове движения FOSS (Free and Open Source Software), всё
С мотивами здесь всё понятно, но нужно также понимать, чаще подвергаются сомнению. Не так давно даже Эрик Рей-
что корпорации оплачивают эту работу не по щедрости ду- монд выразил мнение, что открытые проекты более лояльно
шевной, а преследуя вполне определённые коммерческие должны относиться к коммерческим системам и, в частности,
цели. Впрочем, о них мы поговорим чуть позже. к включению проприетарного кода в открытые продукты [5].
Это, по его мнению, является ключевым условием сохране-
Just for fun ния жизнеспособности Linux.
Знаменитый «мотив» Линуса Торвальдса. Да, программиро-
вание захватывает и доставляет истинное наслаждение – Азарт и жажда борьбы
вне компьютерной жизни не часто удаётся почувствовать Это менее идеализированный вариант предыдущего случая –
себя всемогущим творцом. Оно вполне может быть хобби, людям нравится бороться. Они готовы тратить силы и время,
и для некоторых так оно и есть. А на хобби мы готовы тра- чтобы быть лучше других. Это их распаляет, зажигает огонь
тить кучу денег и времени, даже не задумываясь о выгоде, в глазах. Но для этого нужен достойный противник. Не намно-
отдаче и т. д. Нам это нравится, и этого достаточно. го сильнее, чтобы борьба с ним не выглядела безнадёжным
делом, но всё же находящийся впереди. Сейчас такой про-
Но, как пишет сам Торвальдс в своей книге «Just for Fun. тивник есть – коммерческое ПО. Оно гораздо сильнее рас-
Рассказ нечаянного революционера» [3], удовольствие – пространено, и зачастую лучше свободных аналогов. (Что бы
это третий, заключительный этап эволюционирования любой там ни говорили, но я использую AbiWord для подготовки этой
вещи. Этому этапу предшествуют борьба за выживание статьи лишь потому, что он бесплатен и работает в Ubuntu,
и достижение социального статуса. То есть программировать а вовсе не потому, что он лучше MS Word технически.)
просто так, ради одного лишь удовольствия, человек будет
только после того, как накормит свою семью, обеспечит ей
крышу над головой, завоюет устойчивое положение в обще-
стве. И если только вы не владеете солидным пакетом акций
какой-нибудь крупной компании, то на программирование
ради удовольствия остаётся не так уж и много времени.

системный администратор январь-февраль 2021 71

Open Source перспективы

Но что будет, когда открытые программы станут действи- Продвижение сопутствующих товаров
тельно лучше коммерческих? Их разработчики просто поте- Вот этому уже можно найти массу практических приме-
ряют интерес к дальнейшему улучшению. Но и не победить ров. IBM активно спонсирует разработку Linux, чтобы более
тоже нельзя – когда всё время бежишь вторым, начинаешь успешно продвигать свои серверные решения, да и чтобы
думать, что первым тебе никогда не стать, а раз так, зачем на их новом процессоре Cell гарантированно работала хотя
вообще бежать? бы одна операционная система. Sun Microsystems частично
открыла коды Solaris и готовится сделать то же самое с Java.
К сожалению, большинство из этих факторов не всегда Но отнюдь не из любви к свободе – просто ей нужно про-
в состоянии стимулировать работу над проектом, что на- давать свои Sun Fire. Безусловно, эти примеры слишком
зывается, «от и до». Первоначальная работа, когда идея упрощены и в какой-то степени даже грубы, но тем не менее
начинает воплощаться во что-то реальное, доставляет массу смысл они отражают довольно точно – бесплатное распро-
удовольствия. Но вот когда дело доходит до необходимости странение программ в данном случае служит средством
«вычищать» ошибки (не зря говорят, что последние 10% повышения прибыли в других областях.
проекта отнимают 90% времени), отвечать на бесконечные
однообразные вопросы пользователей, да и даже писать А прибыль может повыситься только в одном случае –
документацию, то здесь уже не всегда энтузиазма хватает... если мы, то есть конечные потребители, выложим больше
Традиционный путь – «свалить» это на новичков, присо- денег. Так что это «бесплатное» ПО довольно сильно на-
единившихся к проекту («поработай с полгодика в Bugzilla, чинает смахивать на пресловутый сыр...
а там, может, и в разработчики возьмём»).
Борьба с конкурентами
Так что можно сделать небольшой промежуточный вы- И снова сразу же вспоминается IBM. Она ведёт свой бизнес
вод о том, что из существующих мотиваций единственная, в самых различных секторах рынка. И, например, в секторе
которая может оказывать болееменее серьёзное влияние корпоративных баз данных одним из основных конкурентов
на полноценное развитие открытых проектов в долгосрочной IBM является Microsoft. Но Microsoft имеет интерес и в секто-
перспективе, – это всётаки оплачиваемая работа. Попытаем- ре операционных систем, куда IBM уже давно не стремится.
ся разобраться, зачем же коммерческим компаниям может Так что если поддерживать бесплатную ОС, то можно нанес-
понадобиться оплачивать разработку открытых программ. ти серьёзный урон своему конкуренту, ничуть не пострадав
самому.
«Шкурный интерес»
Суть открытого и свободно
Не подлежит, думаю, ни малейшему сомнению тот факт, распространяемого
что любое вложение, осуществляемое коммерческими ком- ПО в том, что получив
паниями, направлено на получение прибыли. (Единичный программный продукт,
случай с Canonical Ltd. принимать во внимание не будем – вы можете легко передать
не каждому мультимиллионеру захочется тратить свои деньги его кому-то ещё по меньшей
так, как это делает Шаттлворт. Да, кстати говоря, и Canonical стоимости или даже бесплатно
не только благотворительностью занята.)
И если в предыдущем случае (продвижение других то-
Поэтому посмотрим, как же можно зарабатывать на отк- варов) компанияспонсор так или иначе диктует свои тре-
рытых программах, которые каждый желающий может рас- бования разработчикам, чтобы получить те свойства про-
пространять безо всяких ограничений и по любой цене. дукта, которые соответствовали бы её маркетинговым
целям, то для того чтобы «подложить свинью» конкуренту,
Проекты под заказ достаточно просто создать участникам открытого проекта
Это, скорее, теоретическая возможность, нежели практиче- условия для разработки превосходной программы. С точки
ский пример. Суть открытого и свободно распространяемого зрения сообщества этот способ меценатства наиболее хо-
ПО в том, что получив тем или иным способом (в том числе рош. К тому же, если вам не нужна корпоративная СУБД,
и купив) программный продукт, вы можете легко передать то и переплачивать за неё вы не будете.
его кому-то ещё по меньшей стоимости или даже бесплатно.
Фактически, разработчик получает гарантию только на пер- Техническая поддержка
вую продажу. Так что если сделать первоначальную стои- На этом в значительной степени строят свой бизнес такие
мость продукта достаточно высокой, то таким путём можно компании, как Red Hat Inc., Novell, Mandriva... То есть основ-
попытаться компенсировать затраты на разработку и даже ной источник дохода – не продажи программы, а плата за её
получить прибыль. обслуживание. Поскольку люди, особенно в корпоративном
секторе, хотят просто делать свою работу с помощью ком-
Пожалуй, единственный способ продать один экземпляр пьютера – рассчитывать фундамент здания, рисовать ди-
программы по цене, превышающей её себестоимость, – зайн будущего автомобиля, раскладывать пасьянс, – то они
это разработка на заказ (иначе как вы получите гарантию,
что вообще сможете что-то продать). Но весь фокус в том,
что заказчик, выкладывая немалые деньги, будет, скорее
всего, желать получить программу в свою полную соб-
ственность, так что об Open Source в данном случае речь
вряд ли будет идти (разве что разработка будет основана
на GPL-коде, и заказчика поставят перед фактом, что «иначе
нельзя»). Потому я и охарактеризовал данный пункт как те-
оретический.

72 январь-февраль 2021 системный администратор

перспективы Open Source

совсем не желают знать, что такое файловая система и за- в основном код тех продуктов, на которых итак уже стано-
грузчик, не говоря уже о том, чтобы это ещё и настраивать. вится сложно зарабатывать. Открытие кода зачастую похоже
на принцип «отдать палец, чтобы спасти руку» – это привле-
Отвлекусь на небольшое наблюдение. Очень многие го- кает внимание к компании (и к другим её продуктам), вливает
товы, не задумываясь, отдать некоторую сумму за то, что-
бы им настроили подключение к Интернету на домашней Cпрос на техническую
Windows XP. То есть операция «Пуск → Все программы поддержку будет тем больше,
→ Стандартные → Связь → Мастер новых подключений» чем больше с программой
является для них непосильной задачей. Безо всякой иронии проблем и чем сложнее
скажу, что так и должно быть – не дело бухгалтера или врача с ней разобраться
разбираться в «драйверах», «логинах» и «IP-адресах» (хотя
Microsoft и делает всё, чтобы пользователю приходилось в проект новых (и притом бесплатных) разработчиков и те-
с этим сталкиваться как можно меньше). А открытые про- стеров, и т. д. Приходится, конечно, серьёзно спонсировать
екты, где довольно часто помощь ограничивается аббреви- эти сообщества (ядро разработчиков OpenOffice.org ещё
атурой «RTFM», не зря славятся своей сложностью. долго, наверное, будут составлять оплачиваемые компанией
Sun программисты), но определённая отдача от этого всётаки
Кстати говоря, нынешнее отношение разработчиков мно- есть. А значит, не прямо, так косвенно, но именно конечные
гих открытых программ к своим пользователям стимулирует пользователи оплачивают этот «жест доброй воли».
возврат к натуральному хозяйству: «Вы же получили ис-
ходники? Если что-то не нравится, нанимайте программиста Свобода во всём
и переделывайте, как вам надо». Как указывается в анали-
тическом отчёте компании Elashkin Research [6], даже если Конечно, есть ряд проектов, разрабатываемых как «не-
специалисты необходимой квалификации уже есть в компа- коммерческие».
нии, работодатель фактически будет вынужден оплачивать
их занятие непрофильной деятельностью. Финансирование им тоже необходимо, если они действи-
тельно стремятся обеспечить должный уровень качества.
Так что люди готовы платить за техническую поддержку. И здесь основным способом получить необходимые средства
Но здесь, когда речь идёт об открытых программах, мы на- становятся пожертвования компаний и частных лиц. Но по-
талкиваемся на очень интересную вещь. Для начала ответим жертвования редко позволяют обзавестись серьёзным «же-
на вопрос: заинтересована ли коммерческая компания в по- лезом» для выполнения всестороннего тестирования разраба-
вышении качества продаваемой ею программы? Да, заинте- тываемого продукта, не говоря уже о привлечении сторонних
ресована. Потому что основной источник дохода – продажи, специалистов для выполнения «непрестижной» работы.
и чем лучше будет программа, тем лучше она будет прода-
ваться и тем меньше будут издержки на её сопровождение. То есть некоммерческие проекты зачастую держатся
на голом энтузиазме, который, к сожалению, не вечен. Без-
Теперь зададим тот же вопрос применительно к открытым условно, есть успешные примеры, такие как Debian, хотя
продуктам. Ответ, к сожалению, будет отрицательный. Ведь более чем три года ожидания Sarge продемонстрировали,
спрос на техническую поддержку будет тем больше, чем что и здесь могут быть существенные проблемы.
больше с программой проблем и чем сложнее с ней разо-
браться. И лишь высокий уровень конкуренции сдерживает Шаг в бизнес
появление совсем никуда не годных продуктов.
Ещё одна тенденция наших дней – компании, строящие свой
Сейчас, конечно, технология программирования такова, бизнес на открытых проектах, всё чаще говорят о необхо-
что ошибки неизбежны, так что компаниям, специализиру- димости более явно переходить на коммерческие рельсы.
ющимся на технической поддержке, специально заботиться Например, Саймон Фиппс, занимающий руководящую роль
о них нет нужды. Но кто знает, что будет, когда в Linux будет в Sun Microsystems, призвал сообщество Open Source «ус-
устранена последняя ошибка? воить уроки капитализма и капиталистов» [7].

Иногда программы с открытым кодом выполняют роль Особо показательна позиция российской компании
«демо-версий», служащих продвижению коммерческих вер- «LINUX-ONLINE» – разработчика дистрибутива Linux XP
сий того же продукта. В качестве примера можно привести Desktop. Её «манифест» [8] явно декларирует, что при со-
MySQL, Sendmail. Но данный случай, в зависимости от того, хранении доступности Linux «каждому пользователю PC»
насколько возможности открытой версии меньше, чем ком- в Linux необходима сильная коммерческая составляющая.
мерческой, может быть отнесён либо к «продвижению со- К сожалению, нужно признать, что это не просто маркетин-
путствующих товаров», либо к «технической поддержке». говый ход, нацеленный на продвижение своего дистрибутива
Поэтому отдельно я его не выделяю. (хотя сами они указывают, что разрабатывают не «дистри-
бутивы», а «решения»), а вполне обоснованная позиция.
Так что получается, что попытки заработать на открытых
проектах (и тем самым обеспечить этим проектам необходи- Действительно, если в качестве стратегической цели
мый источник финансирования) так или иначе отражаются разработки ставить как можно более широкое распростра-
на карманах конечных пользователей и при этом не стиму- нение продукта, то это неизбежно приведёт к увеличению
лируют улучшение качества программ. доли «пассивных» пользователей, которые лишь потребляют

Зачем открывать код

Зачем же тогда коммерческие компании открывают код своих
флагманских продуктов, если на этом так сложно зараба-
тывать? К сожалению, нужно признать, что открывается

системный администратор январь-февраль 2021 73

Open Source перспективы

продукт, но сами не участвуют в его разработке. Эта тенден- решение». Может быть, это несколько затянет время раз-
ция итак характерна сейчас для многих открытых проектов. работки и появления новых функций, но зато можно будет
говорить о заметном повышении качества. А «фичи» всегда
В итоге если разработчики хотят сохранить этих пользо- студенты-энтузиасты добавят.
вателей, то им придётся более серьёзно относиться к во-
просу технической поддержки. А это уже возможно лишь Остаётся открытым вопрос с технической поддержкой,
на коммерческой основе. но этим в принципе по-прежнему могут заниматься коммер-
ческие компании на платной основе. Им даже проще будет
По большому счёту разработчикам, если они не получают строить свой бизнес, поскольку «источник» разработки бо-
за это деньги, безразлично, будет их программа использо- лее предсказуем и есть с кем при необходимости вступить
ваться одним пользователем или несколькими миллионами. в переговоры.
Вот число активных пользователей, присылающих грамотные
отчёты об ошибках или даже патчи, – фактор критический, Подводя итоги
но, к сожалению, на нынешнем этапе развития Open Source
можно, наверное, считать, что здесь потенциал для экс- Таким образом, можно сделать вывод, что дальнейшее раз-
тенсивного роста почти исчерпан. Кто хотел участвовать витие Open Source рано или поздно упрётся (наверно, можно
в открытых проектах, тот в них уже участвует. сказать, что уже упирается) в недостаток разработчиков,
не говоря уже о «сотрудниках», занятых на таких неинте-
На самом деле проектам нужны и пассивные пользова- ресных направлениях, как техническая поддержка. В то же
тели – но лишь как средство влияния на потенциальных время рост числа пассивных пользователей, требующих
инвесторов и жертвователей, ну и в определённой степени от разработчиков «коммерческого» качества по «свобод-
как повод гордиться своим детищем. ной» цене и мешающих тем самым программировать просто
для удовольствия, постоянно будет усиливаться.
Назад в будущее
В этих условиях у открытых проектов есть, на мой взгляд,
Получается, что бизнес-модель Open Source не подкреплена три пути. Первый – не обращать ни на что внимание и про-
достаточно надёжными и долгосрочными ресурсами, гаран- сто делать то, что и делали. Возможно, здесь трудно будет
тирующими качественное и эффективное развитие и в буду- говорить о высоком качестве конечного продукта. Возможно,
щем. Так есть ли это будущее у открытых проектов вообще? использовать его будут лишь несколько сотен человек, ко-
торые сами же и занимаются его разработкой. Но, в конце
На мой взгляд, есть. Но чтобы его увидеть, нужно забыть концов, не слишком давно так всё и было.
о коммерческой составляющей и обратить внимание на то,
что процесс работы над открытыми проектами очень напо- Второй – переход на коммерческие рельсы. Только деньги
минает научную работу. Действительно, в научной среде всё же лучше брать за сам продукт, а не за его поддержку –
тоже принято делать достоянием общественности новые так оно и честнее, и понятнее для конечного пользователя.
теории, результаты экспериментов и т. д. И каждый может Да и не будет соблазна оставить «дырочку», чтобы потом
опереться на достижения своих коллег, чтобы продвинуть- дать повод пользователям пожалеть, что не подписались
ся ещё дальше. Это естественная схема обмена мыслями на обновления.
и идеями, выработанная, скажем так, «эволюционным» путём
и отличающаяся от столь же естественной схемы обмена Третий путь – переход на научные принципы разработки
товарами и услугами. А программа – это, скорее, идея, чем без оглядки на число вовлечённых пользователей, показате-
материальная вещь. ли TCO, привлекательность для инвесторов. А все «рыноч-
ные» вопросы оставить на откуп коммерческим компаниям.
По большому счёту движение Open Source зародилось
именно в научной среде. BSD, UW-IMAP, Exim, X-Window явля- Что получится на самом деле – время покажет.
ются хорошими примерами. Эти проекты и сейчас во многом Удачи!  EOF 
опираются на университеты.
[1] Столлмен Р. Свободному ПО двадцать лет: что дальше? – http://
Что может дать открытым проектам возврат в науку? Во- zdnet.ru/?ID=312009.
первых, хоть и небольшое, но всё же стабильное финансиро-
вание, поскольку любое здравомыслящее государство заин- [2] Реймонд Э. Собор и базар – http:// www.seagreen.ru/free/esr/
тересовано в дешёвых и эффективных программах, а также esr_cathedralbazaar2.html.
в грамотных специалистах, выучившихся на этих самых про-
граммах. Да и для коммерческих компаний, которые сейчас [3] Торвальдс Л., Даймонд Д. Just for Fun. Рассказ нечаянного
используют открытое ПО и потому оказывают поддержку революционера. – Эксмо-Пресс, 2001.
проектам Open Source, в принципе ничего не меняется.
[4] Безруков Н. Повторный взгляд на Собор и Базар – http://www.
Во-вторых, университет – это практически неисчерпаемый linux.org.ru/books/ GNU/misc/second-look-at-CatB.html.
источник студентов-добровольцев (а порой и не совсем
добровольцев), которых можно привлечь к той или иной [5] http://www.nixp.ru/news/7670
работе. Конечно, рассчитывать в этом случае на высокую [6] Бизнес модель Open Source – перспективы и угрозы. Elashkin
квалификацию разработчиков не приходится, но под чутким
руководством грамотного профессора эффективность их ра- Research – http:// www.elashkin.com.
боты, скорее всего, будет заметно выше, чем при нынешнем [7] http://www.nixp.ru/news/7583.
способе взаимодействия в большинстве сообществ. [8] М а н и ф е с т L i n u x X P D e s k t o p – http:// linuxonline.ru/about/articles/

Научный подход позволит более фундаментально подхо- detail.php?ID=897.
дить к разработке, когда на смену принципу «если это ра-
ботает – не трогай» придёт подход «выбирай наилучшее Ключевые слова: Open Source, техподдержка, разработка, прог-
рамма, пользователь, открытый код, финансирование, кадры

С татья была опубликована в №10 (47), 2006 г.

74 январь-февраль 2021 системный администратор

перспективы Open Source

АЛЕКСЕЙ БАРАБАНОВ

Open Source

взглядом оптимиста

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

Наиболее полный и многофакторный анализ явле- что производитель отдает товар даром! Где же тут бизнес?
ния Open Source дается в материалах Elashkin Research Можно ли после этого разработчиков считать профессиона-
(http://www.elashkin.com), а именно в работе «Бизнес-мо- лами, если по всем формальным признакам их деятельность
дель Open Source. Перспективы и угрозы». Можно даже напоминает хобби? Именно этот парадокс создал целую
сказать, что исчерпывающий. Но я предлагаю обратиться школу наукообразных фантазеров, рассуждающих о том,
к указанному источнику лишь тем, кто нуждается в терми- что качество OSS не соответствует качеству проприетарных
нологических пояснениях, то есть не знает ничего о пред- проектов. И, мол, управление там ненадежное, и контроль
мете, или склонен к академическому способу мышления, недостаточный, а самое тревожное в том, что производители
то есть хочет знать все. Я не буду ставить перед собой цели не заботятся о благе потребителей, так как не получают
объять необъятное. Отвечу лишь на один главный вопрос: за работу деньги. Ну и после такого «веского» аргумента,
есть ли нечто, что угрожает Open Source? В обсуждении радетели за качество, как ловкие ярмарочные фокусники,
будем придерживаться терминологии, введенной упомянутой предлагают немедленно облегчить карманы зевакам, призы-
статьей, и главный объект называть Open Source Software вая их заплатить за проприетарное ПО, которое, по мнению
(OSS) или программное обеспечение (ПО) с открытым ко- добрых проповедников, спасет Мир.
дом, понимая под этим как результат работы, так и саму
процедуру его создания. Спрашивается, может ли подобное явление, как кажет-
ся на первый взгляд, игнорирующее все экономические
Бизнес-модель OSS законы, оказывать такое сильное влияние на экономику?
полностью подчиняется всем Одно из двух: или OSS – это секта, религия или партия
экономическим законам. анархистов, тогда «ату их» без всяких рассуждений о вы-
В рамках этой модели годности или невыгодности для потребителей, так как в этом
потребители платят за товар, случае OSS – это уже общественно-политическое явление.
а производители получают Или OSS – это вид новой экономики, и все противники OSS
деньги за работу сознательно лгут! Думаю, второе. И докажу это. Бизнес-
модель OSS полностью подчиняется всем экономическим
Итак, в чем феномен OSS? Он проявляет себя и в сфере законам. В рамках этой модели потребители платят за то-
технологий, и в сфере общественных отношений, а глав- вар, а производители получают деньги за работу. Начнем
ное, в сфере экономики. Можно бесконечно долго вос- обсуждение с производителей, так как именно эта сторона
хищаться тем, как проекты OSS создаются, казалось бы, экономической цепочки обязательно идентифицируется (хотя
сами собой, можно бесконечно долго митинговать на тему бы авторским правом) и поэтому в первую очередь подвер-
противостояния «старого мира» и сторонников OSS, но са- гается нападкам противников OSS.
мое главное, что бизнес OSS на первый взгляд не содержит
стандартной экономической цепочки «товар-деньги-товар». Разработчики OSS не филантропы
Вот, что особенно поражает при рассмотрении OSS, то,
О, сколько догадок на счет мотивации разработчиков OSS
высказано в прессе и на страницах вполне серьезных моно-
графий. И тема эта никогда не исчерпается. Ключевое слово
в этих опусах «даром». А логическая связка строится так:
разработчик трудится – даром! Что такое «даром» в эко-
номике? Это значит, что в процессе передачи некоторого
товара его стоимость не учитывается. Ну а в отношении

системный администратор январь-февраль 2021 75

Open Source перспективы

Можно ли разработчиков
считать профессионалами,
е сли по всем формальным
признакам и х деятельность
напоминает хобби?

разработчиков OSS, что они питаются святым духом, так как, В становлении OSS сыграли главную роль три фактора:
создав ценный продукт, не взяли за него плату. Если бы 1. Интернет, как средство доставки, позволивший
это было так, то тема OSS исчерпала бы себя естествен- сделать почти бесплатными как передачу (размещение),
ным путем после смерти от голода последнего безумного так и получение (загрузку) программной продукции.
разработчика. Учитывая, что обычный человек без пищи Примеры:
не сможет прожить более месяца даже с помощью мантр, >> владение недорогим хостингом обходится менее 80 $
то OSS не продержалось бы такое время и уж точно не смог-
ло расти подобными темпами. Значит, все ложь с самого в год;
начала. С этого звонкого слова «даром». >> неограниченный трафик доступен за 25 $ в месяц.
Этот фактор позволяет снизить стоимость оборота про-
Итак, первая аксиома: все участники процесса OSS дукции OSS и одновременно реализовать ряд преимуществ
со стороны разработки за свой труд получают... выгоду! путем привлечения определенной аудитории к сайтам, свя-
занным с OSS.
Не деньги, а именно выгоду, некоторое преимущество, 2. Интернет, как средство рекрутирования и интегра-
стороннее обязательство и прочее. Именно поэтому возни- ции разработчиков OSS.
кает вопрос об условиях реализации этой выгоды, или о лик- Примеры:
видности полученных преимуществ или сторонних обяза- >> все проекты имеют свои «домашние» сайты и элект-
тельств. Старая формула «товар-деньги-товар» была сильна
тем, что деньги считались абсолютной ценностью. Но в усло- ронную почту для связи с разработчиками;
виях современного мира использование банковских билетов >> создаются даже специальные бесплатные виртуальные
и даже виртуальных электронных денежных единиц ставит
вопрос о гарантии ликвидности самих оборотных денег. По- места для размещения проектов OSS и организации
чему же покупка акций предприятий зарубежных государств их разработчиков. Этот фактор снижает стоимость
никого не смущает, а вот возвратность инвестиций в OSS разработки и сопровождения OSS и обеспечивает
так тревожит? Дело в том, что реализация преимуществ ее сотрудниками.
от производства OSS сопровождается большим числом ус- 3. Интернет, как среда электронных платежей.
ловий. Даже само функционирование проектов OSS также Примеры:
возможно лишь при соблюдении ряда условий. >> для работы с OSS и аналогичной продукцией были
созданы специальные платежные системы, ориенти-
Теперь можно дать ответ на вопрос, почему так многочис- рованные на небольшие и очень быстрые переводы.
ленны версии защитников о преимуществах OSS и столь же Это самый важный фактор для реализации выгод от про-
велики числом доводы противников. Все они описывают дажи продукции OSS. Он единственный обеспечивает пря-
частные условия, гарантирующие или препятствующие ре- мую конвертацию в денежный эквивалент.
ализации выгод, полученных от продажи продукции, соз- Могут ли перечисленные факторы исчезнуть или пере-
данной OSS. Хотя ключевых факторов совсем немного. стать действовать? Иначе говоря, угрожает ли что-то Интер-
И в упомянутой выше работе они названы среди прочих: нету? Конечно, да! Война, например. Стоит ли об этом беспо-
«В основе этого явления лежит огромный рост скорости коиться? Конечно, да! Стоит ли это обсуждать не как фактор
обмена информацией и чрезвычайно низкая стоимость этого политики, а именно отраслевой экономики? Конечно, нет!
процесса». Конечно, не надо понимать, что, протянув вы- А теперь, учитывая, что перечисленные факторы обеспе-
сокочастотный канал из Европы в Америку и дождавшись чивают возможность производства продукции с минималь-
амортизации его стоимости, мы создадим OSS. Ключевое ными издержками, на основе эффективной системы группо-
слово – «Интернет»! вой работы и создают возможность получать за это живые

76 январь-февраль 2021 системный администратор

перспективы Open Source

деньги, стоит ли обсуждать проблемы тех, кто не умеет В этом секрет того, что люди присоединяются к OSS-
воспользоваться очевидными преимуществами? Ведь это по- проектам и ничего не просят взамен – им важна причаст-
добно тому, что нуждающийся увидел деньги и прошел мимо! ность к группе! И аналогично, они с удовольствием поддер-
То есть совершенно не соответствует природе человека. живают OSSпроекты, так как им важно, что такая поддержка
приносит им уважение!
Смотрите, что выходит. Разработчику необходимо полу-
чать плату за свой труд, чтобы иметь средства к существо- Что может разрушить
ванию. Участие разработчика в проекте OSS обеспечивает иерархию потребностей
такую возможность. Что еще надо, чтобы доказать, что раз- и отбросить людей на нижние
работчики все-таки имеют доход от своей деятельности? уровни? О твет очевиден:
Скептики хотят узнать «как»? Надо «схватить за руку» и пря- факторы, к оторые могут
мо вручить «ключи от квартиры, где деньги лежат», а то ведь привести к экономическому
не поверят! Но не забывайте, в этом разделе мы обсуждаем регрессу
только сторону разработки. То есть здесь не будем затра-
гивать, «почему» платят за бесплатные продукты категории Вот она, «экономика наоборот»! В условиях современ-
OSS, а просто примем, что это есть. Допустим это! ного индустриального общества, когда уровень благо-
состояния, уровень гарантированных удобств и уровень
Итак, если допустить, что некие потребители все-таки гарантированного качества окружающих вещей настолько
вопреки бытовой логике платят за бесплатные продукты, высок, что индивидуум даже не желает обсуждать вопро-
то нет никаких препятствий для разработчиков OSS получать сы цены, поскольку разница в качестве конкурирующих
эту плату и данному процессу ничто не угрожает. Значит, предложений уже несущественна. Именно в этом случае
настало время обсудить мотивацию потребителей продукции, важными становятся вторичные и зачастую бесплатные
распространяемой OSS. добавки в виде OSS-продукции, которая и трансформи-
руется в средство обозначения принадлежности к группе
Потребителям нравится платить за продукты, и способа достижения общественного уважения! Нет, день-
созданные как OSS ги никуда не исчезают. И труд тоже. Но, присоединяясь
к группе, труд раздают даром, а ожидая уважения, также
Вот это самое спорное утверждение. Именно здесь скрыт раздают и деньги!
секрет успеха OSS. Скептик с незамысловатым умом скажет,
что такое невозможно, зачем платить за то, что получают Господа из Elashkin Research пишут об этом так: «...OSS
даром! И здесь обычно сторонники OSS начинают нудный использует более современные модели маркетинга...»,
разговор о вторичных способах получения дохода, а значит и чуть далее «...методы движения Open Source ближе все-
и о вторичных способах взимания платы. Ну, вроде того, го к методам новомодных сект и религиозных течений.»
что «бесплатный сыр только в мышеловке» и прочее. Чем От таких слов хочется поморщиться и сказать, что здесь
сами себя в угол загоняют, кроме того, что проявляют еще явно происходит манипуляция истиной. Хотя далее они же
и чудеса сутяжничества. признаются: «Основной вектор распространения OSS на-
правлен на технических специалистов и социально актив-
При обсуждении этого вопроса противники OSS рас- ных людей...». Ну, здесь совсем немного осталось, чтобы
сматривают мотивацию абстрактного отдельно взятого че- догадаться, что «технические специалисты и социально
ловека и задают вопрос, «зачем платить за то, что даром». активные люди» – это именно те, кто занимает верхушку
Это логическая ловушка. Надо рассматривать не отдельного пирамиды Маслоу. Может быть, в следующем опусе специ-
человека, а общество в целом или отдельного человека алисты из Elashkin Research озвучат и эту мысль.
в общественном окружении. Как формируется мотивация
такого человека? Есть уже доказанная теория об иерархии Теперь снова зададимся вопросом, что угрожает OSS
потребностей, известная как пирамида Маслоу. Чего может с этой точки зрения. Что может разрушить иерархию потреб-
добиться человек, оплативший бесплатный продукт? Если ностей и отбросить людей на нижние уровни? Ответ очеви-
ден: факторы, которые могут привести к экономическому
Разработчику необходимо регрессу. Даже более того, только в развитых странах, где
получать плату за свой число граждан, соответствующих верхним уровням пирамиды
труд. Участие разработчика Маслоу, достаточно велико, может зародиться и развиваться
в проекте OSS о беспечивает движение OSS. Специалисты из Elashkin Research приходят
такую возможность к тому же выводу путем анализа вторичных способов за-
работка на OSS с помощью сервисного обслуживания: «...
он находится на низшей ступени, где важно удовлетворение на практике высокий уровень сервисов в IT-экономике ха-
физиологических потребностей, то такой поступок приведет рактерен как раз для развитых рынков и «богатых» стран.»
к тому, что далее ему не хватит средств для чего-то на- Но далее они делают главную ошибку. Они считают ус-
сущного. Если он находится на ступени, где важна его бе- луги по сопровождению OSS главным источником дохода
зопасность, такая растрата уменьшит бюджет мероприятий
безопасности. А вот если он уже стоит на том уровне, где
важны потребности группы, или даже там, где важно уваже-
ние его самого, то все кардинально меняется.

системный администратор январь-февраль 2021 77

Open Source перспективы

в бизнес-модели Open Source. И все их заблуждения, оби- или присоединяются к разработчикам, то есть возвращают
ды и сетования на обманутые ожидания основаны на этой труд, но делают это после получения продукта.
вздорной идее. Например, можно там прочесть такую фра-
зу: «В отсутствие примеров стран с высокой долей Open Говоря иначе, потребители OSS вынуждаются или рабо-
Source...». Что это? Неужели кто-то ждет появления стран тать на него, или платить за него. И поэтому распростра-
с доминирующим уровнем сервисных услуг? Ну, разве лишь нение OSS в станах третьего мира может привести лишь
кто-то очень наивный. Это все равно, что требовать от все- к тому, что где-то в Центральной Африке станут чтить нового
го гражданского населения высокой сознательности пря- белого колдуна Марка, но не стоит ждать, что появятся аф-
мо с пеленок. Утопия! Но с другой стороны, чем не упрек риканские инкубаторы OSS, которые будут рекрутировать
OSS? Вот, мол, не сможете победить и не сможете заменить в свои проекты европейцев. OSS – это своего рода «тро-
Linux-ом MS Windows! А зачем? Человек не может питаться
только сладким эскимо, смотреть только боевики, читать Внутри OSS все готово
только детективы и всю сознательную жизнь не работать для получения доходов,
по найму, а играть в теннис. Возможно, это идеал для кого- а потребительская среда
то, но не правило. Пирамида Маслоу сужается к вершине – точно так же готова платить,
вот это правило! Поэтому одно из ключевых утверждений если не прямо по счету,
аналитики от Elashkin Research, что «тезис о пользе OSS то опосредованно
для ускоренного развития рынка высоких технологий пока
не находит своего подтверждения», не более чем уловка янский конь». Принятие такого подарка не принесет ничего
(или ошибка, не знаю, что хуже). Дело в том, что не OSS при- хорошего никакой «Трое».
водит к развитию высоких технологий, а развитие технологий
в высокоразвитой общественной среде порождает OSS! Вы все еще думаете, что за OSS никто не платит? В от-
Зарождение OSS является «лакмусовой бумажкой», отмечаю- сталых странах да, в передовых выстраиваются в очередь!
щей достижение обществом определенного уровня развития Иначе говоря, для развитых стран OSS давно уже стал
как в технологическом плане, так и в плане общественных инструментом влияния и национальной гордости. Гордость
отношений. Поэтому все рассуждения от Elashkin Research в розницу не продают, но все за нее платят.
на счет OSS в России, а особенно выводы, построенные
на российской статистике, смеху подобны. OSS в России нет! Перспективы OSS
Есть разработчики-россияне, участвующие в международных
OSS-проектах. Есть отдельные компании, ведущие успешный Cтало ясно, что внутри OSS все готово для получения до-
бизнес в секторе OSS. Но никакое внедрение OSS в странах ходов, а потребительская среда точно так же готова платить,
с развивающейся экономикой, например в Индии, в Китае если не прямо по счету, то опосредованно как минимум.
и в обсуждаемой России, не изменит статус этих стран. Так что же теперь мешает создать и развивать OSS, на-
Так как подобные страны становятся лишь нахлебниками пример, в той же России? Может, нужен указ Думы, и тогда
OSS-проектов и попадают в зависимость от них. И тут уже мы все бросимся писать «бесплатные программы»?
совершенно правильно отмечено, что «дальнейшее раз-
витие IT в стране будет тормозиться.» Я бы даже усугубил. Что вообще нам для этого нужно? Дешевый Интернет?
OSS – это реинкарнация «халявы». В свое время украденные Смотрю на свой ADSL-роутер, вроде уже есть. Высокораз-
технологии IBM 360 сыграли решающую роль в погребении витое демократическое общество? Смотрю на экран теле-
визора, говорят, что тоже есть. Обеспеченные граждане
Зарождение OSS является с высоким уровнем самосознания? Смотрю в окно на про-
«лакмусовой бумажкой», езжающие дорогие автомобили и догадываюсь, что их тоже
отмечающей достижение изрядно. Почему же нет OSS? Тут мне возразят: «А как же
обществом определенного ALT Linux, Этерсофт и другие, которые разрабатывают ори-
уровня развития гинальный отечественный OSS?» Дело в том, что эти ком-
в технологическом плане пании вынуждены строить свой бизнес по традиционной
схеме, и их бюджет пополняется из поступлений от продаж
отечественной IT. И теперь выживет лишь та страна, которая по традиционным физическим каналам. Сравните их с Fedora
не только возьмет все от OSS, но и вернет обратно не менее! Project или с openSUSE. Почувствуйте разницу между мел-
Значит, лишь тогда можно утверждать о существовании OSS кими частными инициативами и деяниями транснациональ-
в России, когда наша страна станет оплачивать собственные ных корпораций. Для того чтобы OSSпроект мог успешно
проекты OSS, и эти проекты станут востребованы за рубе- развиваться, он не должен попадать в тиски жестких по-
жом. А в противном случае все мы превратимся в обслужи- требительских требований. То есть надо исключить диктат
вающий персонал, сопровождающий чужие OSS-проекты. неграмотного потребителя, голосующего «рублем».

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

78 январь-февраль 2021 системный администратор

перспективы Open Source

на развитие наукоемких проектов, тоже не готовы. И даже расценить такую ситуацию типичный простоватый россий-
российские олигархи, времени которых хватает на вздорные ский налоговик?
телепередачи по поиску менеджера-эксгибициониста, тоже
не находят здесь своего интереса. То есть наше общество Но зато теперь можно сказать, когда у нас появится
не готово к созданию собственного OSS. И поэтому с удо- отечественный OSS. Это случится, когда «...одна палочка
вольствием потребляет и обслуживает зарубежный. и девять дырочек сокрушат целое войско, когда король...».
Ой, чуть раньше, конечно, но условия не менее сказочные.
Тут самое время задать вопрос, а в какой форме обще- Тогда, когда наше общество накормит бедных, обеспечит
ство может выразить свой интерес в OSS. Не будем обсуж- стариков, устроит инвалидов и успокоит неуравновешен-
дать зарубежные страны. Попробуем ответить, как это может ных экстремистов. Вот тогда терпимость и доброжелатель-
произойти в нашем отечестве. ность в обществе возрастут настолько, что отечественные
OSS-разработки получат финансовую поддержку, и никто
Ключевой момент – это обеспечение финансирования. не нее не покусится, как сейчас все на злосчастный ста-
Если уровень технологии и подготовка среды потенциальных билизационный фонд, который потому и стабилизационный,
разработчиков можно признать достаточными, то последним что его тратить нельзя.
требованием будет финансирование. То есть надо «влить»
Выводы
Для многих противостояние
OSS и проприетарного Для многих противостояние OSS и проприетарного ПО со-
ПО с осредоточено средоточено в соревновании Linux vs Windows. Это очень
в соревновании Linux примитивно, но почти верно. Ошибкой является стереотип-
vs Windows ное приравнивание MS Windows к старому и капиталисти-
ческому, а Linux – к новому и коммунистическому. Отсюда
в систему «кровь», и она заработает. Вот этого-то и не про- и напрасное ожидание, что Linux и все продукты, произ-
исходит! веденные OSS, окажутся дешевле проприетарных. А про-
исходит ровно наоборот. Именно Linux получается дороже
Никакие сервисные услуги не накормят разработчиков, в эксплуатационном цикле для корпоративных потребите-
которые должны не крутиться вокруг серверов и рабочих лей, чем MS Windows. Да, согласен, потому-то я и работаю
станций, а писать код в комфортных условиях. Значит, на Linux, что это приносит больше прибыли при меньших
все столь бурно обсуждаемые вторичные способы заработка усилиях. Linux и другие OSS являются следующей за про-
не смогут сыграть существенной роли в становлении OSS, приетарными моделями формой развития IT-отрасли. И со-
так как эти поступления будут оседать на счетах сервис- ответственно они несут большую эксплуатацию разработчи-
ных же предприятий и не дойдут до разработчиков, если кам, дороже для потребителей и выгоднее для инвесторов.
только... если только сами сервисные компании, как IBM Но не надо ждать, что движение OSS будет добиваться
и Novell, не осознают необходимость отчислений! Вот, опять успеха повсеместно. С появлением коммунистических и раз-
пришли к мысли о иерархии потребностей. витых демократических стран на планете Земля история
многих феодальных и даже рабовладельческих государств
Теперь просуммируем все ранее сказанное, примени- вовсе не завершилась путем добровольного присоединения
тельно к вопросам финансирования. Итак, объект финан- к СССР. Но так же, как неизбежен прогресс в общественных
сирования – это компания, ведущая OSS-разработки ме- отношениях, так и распространение OSS уже не остановить.
тодами, описанными в первом разделе настоящей статьи. Потому что он усилиями таких компаний, как IBM и Novell,
То есть компания со столь высоким уровнем виртуализации превращается в инструмент неоглобализма.
своей деятельности, что ее капитализация и IPO на рынке
ценных бумаг в экономической системе, ориентированной И теперь можно ответить на вопрос, угрожает ли что-
на сырьевые отрасли, вряд ли возможна. Источник финан- нибудь OSS. Нет, не угрожает! Напротив, это сам OSS
сирования – это частные лица и компании, готовые к поощ- угрожает оригинальным коммерческим проектам. Чужой,
рению проектов с негарантированной финансовой отдачей импортированный OSS – это быстрая и сладкая смерть
или вообще к спонсированию, что в условиях фискальных национальной IT-индустрии той страны, которая не сможет
налоговых законов тоже невозможно. Способ финансирова- противопоставить аналогичный свой OSS. Зачем вывозить
ния – это целевые перечисления, управляемые и контроли- «мозги»? Можно подарить «бесплатный» OSS и тем привлечь
руемые негосударственными и коммерчески толерантными чужих специалистов к обслуживанию наукоемкой индустрии
комитетами, что в условиях коррумпированного государства «доброго дяди» взамен отечественной.
тоже, увы, невозможно.
Столлман со товарищи, конечно, революционеры.
У вас еще остались вопросы о том, что мешает OSS Но как учит История, после каждой революции создается
и угрожает его развитию? Сами подумайте, если предпри- свой «НКВД», и за каждый подарок прогресса надо платить.
ятие, называемое коммерческим, отдает свою продукцию Обесценив процесс получения программных продуктов, ве-
даром, а с другой стороны, существует иное предприятие, дущие индустриальные страны подняли цену его владения
для которого никакой проводкой в балансе и никакой произ- на недосягаемую для прочих высоту!  EOF 
водственной необходимостью не оправдать оплату работы,
которая фактически достается ему даром, то как может Ключевые слова: Open Source, техподдержка, разработка, прог-

рамма, пользователь, открытый код, финансирование, кадры

Статья была опубликована в №10 (47), 2006 г.

системный администратор январь-февраль 2021 79

Open Source особое мнение

КРИС КАСПЕРСКИ

Как зарабатывают

на Open Source

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

Практически на любом программистском форуме можно рынка еще как-то держатся на плаву, но объемы продаж
встретить человека (а то и целую группу людей), пропа- ПО до приобретения Феррари явно недотягивают.
гандирующую «Свободу Кода» (в той или иной трактовке)
и призывающую программистов открывать исходные тек- Открытые исходные тексты представляют реальную угро-
сты своих проектов, разделив знание с миром. Продавать зу для компаний-гигантов и дают программистам возмож-
уже проданную программу – страшный грех и единственно ность урвать свой кусок пирога, пополнив карманы пачками
правильный путь, ведущий в рай, – это трудиться на благо приятно хрустящих банкнот. Здесь, в этой статье, мы будем
человечества в поте лица своего, не заботясь о коммерче- говорить исключительно о коммерческой составляющей
ской выгоде. Open Source, оставив идеологическую подоплеку в покое.
Но для начала нужно разобраться с терминологической
Примечательно, что большинство вышеуказанных лич- путаницей, царящей в этом мире.
ностей сами ничего не программируют, но с удовольстви-
ем пользуются программами, за которые не нужно пла- Различные виды лицензий
тить. Естественно, им хочется, чтобы таких программ было
как можно больше. Тем временем программистам нужно Английский язык относится к числу наиболее примитивных
на что-то жить, и не просто жить, но еще покупать дорого- среди всех высокоразвитых, чем, собственно, и объясняет-
стоящую вычислительную технику, летать на различные кон- ся его популярность, а вовсе не тем, что Америка правит
ференции, да и просто носиться на Феррари-512-TR в свое миром и центр научно-технического прогресса находится
удовольствие – почему бы и нет, если их труд оплачивается?! именно там. В английском очень мало слов, вследствие чего
каждое слово имеет множество значений, что, в конечном
Открытые исходные тексты счете, едва не погубило движение Open Source. Термин
п редставляют реальную угрозу «free» означает не только «свободный», но и «бесплатный»,
для компаний-гигантов и дают поэтому понятие «Free Software» можно толковать двояко,
программистам возможность и большинство пользователей (по закону Мерфи) истолко-
урвать свой кусок пирога вали его совсем не так, как это задумывалось. Чуть позже
«free» заменили на «open», но это лишь добавило путаницы
В 16 лет еще можно работать на благо человечества, и позволило Microsoft и другим компаниям «примазаться»
не требуя ничего взамен, но с возрастом неизбежно вста- к движению за свободное ПО, путем раскрытия части исход-
ет проблема: как зарабатывать на жизнь?! Программисты ных текстов под подписку о неразглашении и без передачи
относятся к тем немногим счастливчикам, совмещающим прав на их последующую модификацию.
приятное с полезным, зачастую полностью отдающимся
своей работе и при этом зарабатывающим неплохие деньги, Давайте выделим следующие уровни свободы. Абсолют-
правда, с каждым годом этих денег становится все меньше ная свобода предоставляется BSD-подобными лицензиями,
и меньше. Массовый рынок давно находится под пятой позволяющими делать с исходными кодами все, что угодно:
крупных корпораций, мелкие фирмы скупаются на корню нарезать на болванки и перепродавать, модифицировать
или идут ко дну косяками. Узкоспециализированные секторы по своему усмотрению, использовать в составе коммер-
ческих проектов… и все это без какихлибо отчислений!
В частности, на базе свободной BSD построена закрытая
CISCO OS, а ряд сетевых компонентов лег в основу стека
NT. Компании-гиганты обогатились, а разработчики… по-
дарили миру свободный код, повторив историю с Проме-
теем. (Тут ктото может увидеть противоречие, ведь выше

80 январь-февраль 2021 системный администратор

особое мнение Open Source

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

утверждалось, что Open Source создает угрозу компаниям- Это справедливо, но… никакой свободой здесь и не пахнет.
гигантам и… в то же самое время их обогащает. На самом Во многих случаях GPL является хитрым маркетинговым
деле, никакого противоречия здесь нет, CISCO поставляет трюком: «свободная» программа требует гораздо меньших
на рынок маршрутизаторы, снабженные всеми необходи- вложений в рекламу для ее продвижения. Людям свойствен-
мыми сертификатами, и схожую функциональность можно но скачивать то, что бесплатно, но… как только дело доходит
получить от более дешевой связки PC + BSD, коллектив до коммерческого применения, приходится либо нарушать
разработчиков BSD маршрутизаторами не занимается, по- лицензию (ведь открывать свой код только потому, что там
скольку здесь кроме энтузиазма нужны большие капита- используется пара «свободных» библиотек, никто не будет!),
ловложения. Microsoft, довольно много позаимствовавшая либо… платить разработчикам!
из BSD, сократила расходы на разработку своей системы
и смогла создать более конкурентоспособный серверный Поэтому BSD – это свобода и открытость, а GPL – все-
продукт, который миллионы людей покупают за деньги, го лишь открытость. Что же касается «бесплатности»,
в то время как BSD можно приобрести по цене носите- то это не более чем распространенный миф. По дорогам
ля, причем BSD не стоит на месте и активно развивается, тоже можно ездить как бы бесплатно, но если вспомнить,
предоставляя возможности, которые в Windows появляют- что их строительство обычно финансируется из местно-
ся с огромным запозданием или не появляются вообще! го бюджета, а местный бюджет – это налоги, то какаято
Вот только один пример: при возникновении исключения странная «бесплатность» у нас получается. Другой при-
мер – телевидение, оплачиваемое рекламодателями, вклю-
Никто же не будет спорить, чившими в свои продукты добавочную стоимость на рекла-
что бесплатная программа му. То есть «бесплатные» телеканалы оплачиваются пивом,
более конкурентоспособна стиральным порошком, прокладками и прочими продуктами
своего коммерческого народного потребления. При всей ненависти зрителей к ре-
аналога кламе «бесплатные» каналы весьма успешно конкурируют
с коммерческими.
в одном из драйверов, Windows останавливает всю сис-
тему целиком, не позволяя драйверам файловой системы Давайте попробуем найти бизнес-схему, позволяющую
сбросить свои буфера. И хотя такая возможность на уровне выпускать «бесплатные» программы. Ведь никто же не будет
архитектуры в NT закладывалась изначально, она до сих спорить, что бесплатная программа намного более конку-
пор остается нереализованной, а вот крах одного из мо- рентоспособна своего коммерческого аналога, даже если
дулей в BSD оказывает минимально пагубное воздействие аналог превосходит ее по ряду параметров.
на остальные компоненты системы, позволяя ей корректно
завершить свою работу или даже перезапустить «упавший» Ниже обсуждаются различные бизнес-схемы, ориентиро-
модуль на лету). Свобода «коммунистического типа» пред- ванные как на индивидуальных программистов, так и на круп-
лагается нам под видом GPL-подобных лицензий, требующих ные компании. Подчеркну еще раз – именно бизнес-схемы,
отчислений в случае применения их в коммерческих продук- целью которых является максимализация прибыли, а вовсе
тах или открытия кода всего проекта под все той же GPL. не стремление осчастливить человечество в планетарном
масштабе.

Мотивы раскрытия исходного текста

Прежде чем обсуждать аргументы сторонников Open Source,
обратите внимание на одну интересную деталь. Боль-
шинство пользователей предпочитают скачивать готовые

системный администратор январь-февраль 2021 81

Open Source особое мнение

бинарные сборки, игнорируя наличие исходных текстов, его с закрытым браузером Opera. Лавинообразный рост
которые, во-первых, занимают гораздо больше места, а во- критических ошибок, обнаруженных в FireFox за последнее
вторых, очень часто требуют наличия внешних библиотек, время, доказывает, что качество кода определяется исклю-
влекущих в свою очередь дополнительные зависимости, чительно профессионализмом его создателей и доступность
причем все они не самым лучшим образом стыкуются друг исходных текстов для всеобщего аудита не в состоянии
с другом, отказываясь компилироваться новой (или, наобо- исправить многочисленные дефекты изначально небрежно
рот, старой) версией компилятора. И даже когда сборка сконструированного продукта.
проходит без сучка и задоринки, она все равно требует
процессорного времени и дискового пространства, не го- Кстати говоря, «аудит безопасности» в подавляющем
воря уже о сетевом трафике. большинстве случаев – формальная процедура, проводимая
по заказу тех, кто свято верит в идею, что при целена-
Имея исходные тексты правленном поиске можно обнаружить чтонибудь «интерес-
на руках, п ользователь может ное». Ни одна фирма со всей «свитой» своих программис-
убедиться, ч то в программе тов не смогла выпустить продукт, полностью свободный
нет закладок, дыр и прочих от ошибок, допускающих удаленные атаки, а ведь они знают
ошибок свои исходные тексты намного лучше, чем кто-то чужой.
И это ошибки, допущенные по небрежности! Тщательно же
Так зачем же скачивать исходные тексты, если мы не со- продуманная закладка может (и должна!) срабатывать лишь
бираемся дорабатывать программу «напильником» или про- при сочетании определенной комбинации внешних воздей-
водить аудит безопасности? Правильно, – незачем. Вот по- ствий. Она не сосредоточена в каком-то одном конкретном
тому большинство пользователей их и не качает, а один месте, а как бы «размазана» по всем исходных текстам.
из самых популярных дистрибутивов Linux – KNOPPIX Чтобы ее обнаружить, необходимо не только держать весь
распространяется без исходных текстов, и ведь никто же проект в голове, но и проанализировать все возможные
не жалуется! Другой вопрос, что собирая программу с опре- связи между его компонентами, что невозможно, не говоря
деленными ключами, можно здорово сократить ее размер, уже о том, что закладка может использовать некоторые
выкинув все ненужное или оптимизировать под конкретный особенности компилятора/линкера, поэтому они должны
тип процессора, но при желании этого же эффекта можно быть проанализированы тоже. А железо?! Можем ли мы ему
добиться путем использования динамически подключаемых на 100% доверять?! Достаточно вспомнить «странности»
библиотек, включив в дистрибутив все необходимые двоич- реализации команды AAA, чтобы доказать, что, даже имея
ные компоненты, размер которых будет заведомо меньше полный исходный код программы и справочник по командам
исходных текстов! x86, мы не можем знать, как он поведет себя, встретившись
с «необычными» аргументами. Аудит, заказанный конкретной
Рынок уже давно все расставил по местам, доказав, фирме, на 99% бесполезен, а исходные тексты, выложенные
что у массового пользователя нет никакой потребности в ис- на всеобщее обозрение, создают иллюзию безопасности,
ходных текстах, по крайней мере, в мире Windows. Пестрота успокаивающую общественность, поскольку существует
UNIX-подобных систем требует создания множества бинар- вероятность, что кто-то обнаружит спрятанную закладку
ных сборок, а разработчикам заниматься сборками лень. случайно (и ведь обнаруживают!), однако при этом мы не-
Гораздо проще выложить исходные тексты, и пусть каждый явно постулируем, что все люди, живущие на земле, это –
пользователь самостоятельно компилирует их под свою хорошие люди и они не будут использовать свои знания
платформу, ругаясь при этом всеми словами и пытаясь найти в корыстных или тем более преступных целях. К тому же
готовые сборки на неофициальных сайтах. шансы обнаружить ошибку не так уж и велики. В частности,
в конце августа 2006 года Daniel Bleichenbacher выступил
Таким образом, на потребительские свойства массово- с докладом на конференции криптоаналитиков, где показал,
го продукта раскрытие исходных текстов никак не влияет. что при стечении определенных обстоятельств цифровая
Тем не менее, сторонники движения Open Source утвержда- подпись RSA может быть подделана в прямом смысле сло-
ют, что: имея исходные тексты на руках, пользователь ва – одной лишь бумагой и карандашом (даже без исполь-
может убедиться, что в программе нет закладок, дыр зования кластера суперкомпьютеров). Виною тому не сам
и прочих ошибок. Другими словами, пользователь может алгоритм RSA, а ошибки его реализации. Одной из таких
провести аудит безопасности или заказать его сторон- реализаций оказался знаменитый проект OpenSSL, которой
ней фирме. вплоть до версии 0.9.8c использовал RSA-ключи с экспонен-
той 3, удаляющие padding-поля PKCS #1 до генерации хэш-
Но это даже не смешно! Да, действительно, вокруг круп- суммы, что позволяет удаленному атакующему подделать
ных проектов таких, например, как OpenBSD, образовалось PKCS #1 сигнатуру, подписанную RSA-ключом, и препятству-
целое сообщество поклонников, среди которых есть как экс- ет корректной проверке различных цифровых сертификатов,
перты, так и новички, занимающиеся поиском ошибок из чи- использующих PKCS. А ведь OpenSSL подвергался аудиту
сто спортивного интереса или в качестве демонстрации множество раз. Его исследовали и профессионалы, и люби-
(читай – рекламы) силы своего интеллекта. Однако откры- тели, и просто «интересующиеся», но… результат все сказал
тость проекта никак не связана с количеством имеющихся сам за себя: наличие исходных текстов позволяет каждо-
в нем дыр. Взять хотя бы открытоый FireFox и сравнить му пользователю исправлять ошибки, допущенные раз-
работчиками, дорабатывать программу под свои нужды,
развивать и совершенствовать ее сообща.

82 январь-февраль 2021 системный администратор

особое мнение Open Source

Прежде чем исправлять ошибку, как минимум, требует- Мотивы удержания исходных текстов
ся ее воспроизвести, а каждый программист, хоть какое- под колпаком
то время проработавший в службе технической поддержки,
знает, что практически никто из пользователей не способен Что мешает программистам распространять исходные тек-
грамотно описать условия, при которых возникает ошибка. сты вместе с продуктом? В первую очередь – опасение,
А ведь чтобы ее устранить, одной лишь квалификации не- что кто-нибудь возьмет готовую программу, слегка доработа-
достаточно. Первым делом следует разобраться со структу- ет ее и будет продавать без каких бы то ни было отчислений.
рой исходных текстов, что требует времени, причем весьма Но эта угроза совершенно безосновательна. Если действие
значительного. Не лучше ли поручить исправление ошибок происходит в стране, где законы об охране авторского права
самим разработчикам? действуют не только на бумаге, распространителей запросто
можно привлечь к ответственности, если же законы «отдыха-
Что же касается новых возможностей… ну хорошо, допу- ют», то дорабатывать программу совершенно необязательно.
стим, разобравшись, какая строка за что отвечает, мы доба- Гораздо проще скопировать ее один к одному и продавать,
вили необходимую нам функциональную возможность в про- как это делают пираты.
грамму, изменив десяток файлов в сотне мест. Мы посылаем
исправленные исходные тексты координатору проекта, но нас Наукоемкие ноу-хау, заложенные в программу, лучше сра-
посылают обратно, поскольку уже давно вышла новая вер- зу же патентовать, поскольку в противном случае их все рав-
сия и никому не интересно «перетаскивать» все изменения но выдерут дизассемблером, хотя… 99% программ ничего
из старой, к тому же такая функциональная возможность, принципиального нового (на уровне кода) в себе не со-
по его мнению, никому не нужна, да и реализована она слиш- держат и основная доля находок приходится на дизайнер-
ком криво, нестабильно и вообще идеологически неправиль- ские решения, то есть на видимый невооруженным глазом
но. Если наши изменения не будут приняты и включены в ос- интерфейс, а вот код… порою на него страшно смотреть.
новной проект, это означает, что мы намертво привязываем А кому хочется демонстрировать свой непрофессионализм?
себя к своей «собственной» правленой версии, поскольку Особенно, если программа содержит ворованные компо-
переход на новые потребует больших трудозатрат. ненты. Анализируя откомпилированный код, невозможно
доказать, соответствует ли он данному исходному тексту
На самом деле, для расширения функционала программы или нет, поэтому воровство легко сходит с рук.
достаточно реализовать механизм плагинов или встроен-
ный скриптовый язык. Отладчик OllyDbg распространяется Плюс еще стадный признак и инерционность мышления.
без исходных текстов, но для него написано огромное ко- В мире UNIX принято распространять программы вместе
личество плагинов, которые не привязаны к какой-то одной с исходными текстами, и большинство программистов так по-
конкретной версии и могут распространяется как по офи- ступают, даже когда их исходные тексты интересны только
циальным, так и по независимым каналам: исходные тек- им самим. В мире Windows, напротив, большинство программ
сты служат гарантом, что автор программы неожиданно распространяется в двоичном виде, и программисты «за-
не уедет в Израиль и проект, лишенный поддержки, жимают» исходные тексты только потому, что так поступают
не умрет, ударив по всем его пользователям. все остальные.

Потребителя в первую очередь Бесплатный сыр вне мышеловки
интересуют не исходные
тексты, а бесплатность Разобравшись в проблеме, перечислим мотивы раскрытия
продукта исходных текстов и распространения программы на бес-
платной основе, основываясь на чисто коммерческих сооб-
Какая-то доля истины в этом утверждении есть, но… рас- ражениях. А мотивов таких достаточно много.
крыть исходные тексты это одно, а подобрать достойного пре-
емника – совсем другое. Не нужно приводить в пример FireFox, Проба пера
возникший на обломках Netscape, или FAR, создатель которого Ух ты, сколько у нас лазерных дисков скопилось! Без хо-
сосредоточился на RAR, поняв, что не сможет тянуть два про- рошего каталогизатора не обойтись. Но все существую-
екта одновременно. Возьмите DOS Navigator, пользующиеся щие либо неудобны, либо не поддерживают необходимых
во времена DOS огромной популярностью, особенно в среде нам возможностей, либо хотят немереных денег. Возникает
программистов. Ну и где он сейчас? А ведь исходные тексты мысль – а что если попробовать написать каталогизатор
открыты… Но сплоченной команды разработчиков, подхватив- самостоятельно?! Заодно и в программировании попрак-
ших знамя и продолживших «дело Ленина», как-то не сложи- тикуемся!
лось и продукт распался на несколько независимых проектов,
ни один из которых не получил дальнейшего развития. И вот, каталогизатор написан, мы с удовольствуем пользу-
емся им и… в какой-то момент до нас доходит, что его мож-
Подводя итог, можно сказать, что потребителя в первую но продать. Мысль интересная, но с точки зрения бизне-
очередь интересуют не исходные тексты, а бесплатность са неправильная. Чтобы продавать продукт, его нужно
продукта, поэтому дальнейший разговор мы будем вести очень сильно довести до ума – это раз. Нужно придумать
именно в этом ключе. хоть какую-то защиту, чтобы не взломали (хотя, все равно
ведь взломают) – это два... Также придется приготовить
себя к необходимости отвечать на вопросы покупателей,
оказывая им поддержку, съедающую все время и отрываю-
щую от действительно важных проектов – это три. Причем
заработать много денег все равно не удастся. Во-первых,
на рынке уже существует куча подобных каталогизаторов,

системный администратор январь-февраль 2021 83

Open Source особое мнение

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

Несмотря на то, что исходный Весь фокус в том, что несмотря на то, что исходный код
код никому из участников никому из участников проекта единолично не принадлежит,
проекта не принадлежит, основную ценность представляет не текст, а… координация
основную ценность его создания. Уберите лидера, и проект развалится, в луч-
представляет не текст, шем случае распавшись на несколько независимых «остров-
а координация его создания ков», в худшем – просто задохнется. К тому же, не надо
забывать, что движение Open Source имеет разветвленную
А вот если выложить каталогизатор в свободный доступ, сеть каналов распространения программного обеспечения
мы хоть ничего и не приобретем, но зато ничего и не поте- и постоянно используется средствами массовой информа-
ряем. Тысячи людей скажут «спасибо», протестируют про- ции в качестве фетиша по поводу и без повода. То есть раз-
грамму на всем спектре оборудования, подскажут несколько работка продукта под знаменем Open Source обеспечивает
интересных идей по ее улучшению и это еще не все! Коекто хорошую рекламу, способствует его продвижению на рынок,
может подкинуть интересный коммерческий заказ, а кое- что оказывает поразительное психологическое давление
кто даже предложить работу. на конкурентов, у которых желание прибрать наш бизнес
к рукам возникает раньше, чем попытка реально оценить:
Случай из жизни. Прохожу собеседование при приеме какую угрозу для их существования он представляет.
на работу и на вопрос: что, мол, я за «северный олень»
такой, говорю – а вот у вас на рабочем столе я вижу ярлык Да, по лицензии GPL продукт не может быть куплен
своей программы. Отношение сразу меняется, и нижняя без согласия всех разработчиков, на что поклонники Open
планка моей квалификации определяется сама собой. Только Source всегда напирают, но зато он может быть похоро-
не надо вставлять свое резюме прямо в программу. Во-пер- нен, к чему конкуренты, собственно, и стремятся. Конечно,
вых, это несолидно (специалисты, как правило, не ищут с психологической точки зрения, не слишком-то приятно
работы, это работа ищет их), во-вторых, жестко вшитое работать с перспективой быть закопанным в могилу, но…
резюме доставляет множество хлопот и проблем после того, эта бизнес-схема приносит неплохие деньги, а програм-
как вы уже нашли работу. Лучше просто дать ссылку на сайт мное обеспечение в конечном счете все равно устаревает,
с динамически обновляемой информацией. отправляясь в небытие.

Оружие против монстров Программа как услуга

Конкурировать с компаниями-гигантами на самом деле Рассматривая программу как товар, мы, во-первых, ввязыва-
не так сложно, как это кажется, особенно, если распро- емся в войну с хакерами и пиратами, норовящими взломать
странять свой продукт на бесплатной основе. Несмотря программу, выложить ее в файло-обменную сеть или рас-
ни на какие усилия Microsoft, весовая доля FireFox и Opera пространять по цене носителя. А конкуренция?! Десятки
все растет и растет. И хотя стабильности IE ничего не угро- компаний предлагают схожие по своим функциональным
жает, Microsoft с большим удовольствием скупила бы конку- возможностям программы, и на рынке появляются все новые
рентов, если бы они только продавались. Многие компании и новые игроки. Как говорится, тут не до наживы! Выжить
изначально строят свой бизнес на том, что через некоторое бы… А что!!! И выживем, если начнем рассматривать про-
время их купит тот, кому они мешают, или тот, кому нужна грамму как услугу.
клиентская база. Так было в случае и с WinAmp, и с ICQ…
да много можно привести примеров! Вон, легендарный ис- Продажи программы – не единственно возможный ис-
следователь недр Windows Макр Руссинович, и тот продал точник дохода. Пусть программа будет бесплатной, пусть ею
свой бизнес Microsoft, чем остался страшно доволен: http:// пользуются все желающие! А мы им поможем! Техническая
www.sysinternals.com/blog/ 2006/07/on-my-way-to-microsoft. поддержка, всевозможные семинары и тренинги, литература
html. и бумажная документация… Перечень платных услуг можно
продолжать бесконечно. В технически сложных програм-
Конечно, подобные шаги требуют внушительных капита- мах (таких, например, как IDA Pro, PC-3000) огромную роль
ловложений, и существует риск, что продукт не «пойдет», играет наличие центра обучения специалистов, поскольку
конкуренты не обратят на него внимания или рыночная самостоятельно разобраться с продуктами подобного уровня
ситуация неожиданно изменится, сделав продукт ненужным среднестатистический пользователь не в состоянии. А про-
(в частности, распространение высокоскоростных каналов граммные комплексы еще требуют и грамотного внедрения.
связи снизило популярность менеджеров закачек в десятки Здесь мало вставить лицензионный диск и щелкнуть по пик-
раз, и выжили те, кто обеспечивал лучшую каталогизацию тограмме с надписью «Install»!

Но оставим корпоративный сектор тем, кто на нем па-
сется. Возьмем вещи простые и куда более приземленные,
например, уже упомянутый каталогизатор дисков, беспер-
спективность продаж которого мы обсуждали выше. А те-
перь прикрутим к нему онлайновую службу, позволяющую

84 январь-февраль 2021 системный администратор

особое мнение Open Source

пользователям обмениваться своими базами данных (если проданных ключей. Постойте, а как же с базой?! Ведь вто-
один человек «вбил» описание дисков в базу, зачем тысячам рая волна пользователей, которым она доступна за деньги,
других делать то же самое?!), после чего начнем привлекать за просто так ее пополнять не будет!!! Следующая хитрость:
лейблы (лейблами (от англ. label, одним из значений которого мы говорим, что каждый, кто зальет столько-то описаний
является «бренд») в музыкальной индустрии называют ком- дисков, получит бесплатный доступ на какое-то время
пании, покупающие права на произведения и занимающиеся (а то и на всю жизнь).
их рекламой, распространением и т. д. (см. «record label»
на wikipedia – http://en.wikipedia.org/ wiki/Record_label)) (или про- В общем, главное фантазию иметь и не зацикливаться
сто магазины, торгующие дисками), предоставив им возмож- на схеме «программа – деньги».
ность информировать пользователей о новинках и вести мо-
ниторинг реальной популярности своей продукции. Ведь если Другие мотивы
у человека есть два альбома такой-то группы, то сообщение
о появлении третьего, навряд ли оставит его равнодушным. Разработки, оплачиваемые различными грантами или соз-
То есть мы продаем контекстную рекламу, и основным ис- данные в ходе различных исследовательских программ,
точником прибыли становятся именно лейблы. Прибыль бу- дотируемых из госбюджета, как правило, не принадлежат
дет тем выше, чем больше у вас пользователей, количество их создателю и распространяются в открытых текстах
которых обратно пропорционально стоимости программы. на бесплатной основе. Но в основном это относится к на-
То есть для достижения максимальной прибыли программа учным программам, ареал обитания которых никак не пере-
должна распространяется бесплатно! Наша основная задача – секается с офисными продуктами и другими приложениями
собрать как можно больше пользователей, предоставив им массового назначения.
те сервисы, в которых они острее всего нуждаются (заказы
новых дисков одним кликом мыши, поиск по названию файла/ Еще одним мотивом к раскрытию кода становится сво-
композиции в базе, пиринговая сеть, наконец!). рачивание работы над проектом, как произошло, например,
в случае с Netscape. К сожалению, остальные компании
Естественно, сразу же возникает вопрос о приватности следовать этому примеру не хотят. Например, Compuware,
и безопасности. Передавая онлайновой службе описания объявившая о прекращении поддержки soft-ice, наотрез от-
своих дисков, пользователь рискует нарваться на очень казалась отдавать исходные коды последней версии за раз-
крупные неприятности, если эти диски – пиратские (а в боль- умную сумму, хотя она могла бы их просто подарить миру,
шинстве случаев это так и есть). Следовательно, необходимо ничего от этого не потеряв. Но… в мире бизнеса законы
обеспечить такой механизм передачи данных от пользова- логики работают по-другому. Это намного хуже, чем собака
телей к базе и от пользователя к пользователю, который на сене (по крайней мере, собака на сене лежит, и если она
бы гарантировал со 100% надежностью, что ничей IP-адрес позволит корове съесть его, лежать ей придется на сырой
не будет «засвечен». Технически добиться этого очень лег- земле, а для хвоста это нехорошо). Compuware в любом
ко – достаточно использовать proxy-серверы, в роли которых случае не получит никакой прибыли от заброшенного soft-
могут выступать и сами пользователи. Да-да, если инфор- ice и не потерпит убытка, передав soft-ice конкурентам, ведь
мация передается не напрямую, а через цепочку наугад вы- других отладчиков у нее все равно нету, но… существуют
бранных пользователей, каждый из которых не запоминает такие понятия, как жадность и глупость. Глупость – хоронить
IP-адрес отправителя, то определить IP-адрес обладателя легендарный продукт вместо того, чтобы искать новые биз-
данного диска – невозможно. Правда, при одном лишь ма- нес-схемы для его распространения.
леньком условии. Что наша программа работает честно
и что в ней нет никаких закладок, оставленных по просьбе К сожалению, подобные ситуации не редкость, а скорее
(или под нажимом) спецслужб разных стран. Существует общепринятое правило поведения.
только один путь убедить пользователей, что все в порядке,
это – открыть исходные тексты. IMHO Заключение

Вот простой пример бизнес-схемы, основанной на бес- Все упирается в деньги. Мы живем не при коммунизме,
платно распространяемом программном обеспечении. Самое и окружающие нас товары и услуги стоят денег, следова-
забавное, что написание подобного каталогизатора не тре- тельно, программировать на чистом энтузиазме можно либо
бует практически никаких вложений и хороший программист за счет родителей, либо добывая средства к существованию
напишет его буквально за неделю. Однако сам по себе каким-нибудь иным способом (торговлей бананами, напри-
он бесполезен, и львиная доля труда уйдет на создание мер), что превращает программирование из ремесла в хобби.
обширной базы данных (ну кого из нас не раздражает, когда Ведь помимо бизнес-схем в мире есть и простое увлечение,
Microsoft CD-Player Deluxe не опознает очередной диск?). страсть, стремление, азарт, любовь к компьютерам, ино-
Переложив эту задачу на плечи пользователей, мы полу- гда переходящая в манию, граничащую с помешательством.
чим базу в обмен на… в том-то и дело, что пользователи Есть люди, ощущающие буквально физическую потребность
не получат ничего. писать программы, разрабатывать новые алгоритмы или про-
сто проводить за монитором все свободное и несвободное
Допустим, с лейблами договориться не удалось, но, имея время. Но далеко не все из них примыкают к движению
базу, созданную первой волной пользователей, мы можем Open Source, предпочитая держаться в стороне от шумной
продавать не саму программу, а доступ к базе, который, и пестрой толпы, построенной на бизнесе и пропаганде.  EOF 
кстати, легко контролировать, пресекая хакерскую деятель-
ность. Невозможно сгенерировать ключ, если его проверка Ключевые слова: Open Source, техподдержка, разработка, прог-
осуществляется на сервере, хранящем список легально рамма, пользователь, открытый код, финансирование, кадры

Статья была опубликована в №10 (47), 2006 г.

системный администратор январь-февраль 2021 85

Open Source администрирование
АЛЕКСЕЙ БЕРЕЖНОЙ

Особенности перехода

на бесплатные решения Open Source

Статья посвящена вопросам миграции на Open Source-системы. Рассмотрены плюсы
и минусы данного процесса, а также всевозможные «подводные камни»

Первое и самое главное. Эта тема очень болезненна. В пер- бования конкретного бизнеса (не путать с  пожеланиями
вую очередь тем, что любую миграцию, а тем более такую пользователей), которые лучше удовлетворит та или иная
всеобъемлющую и глубокую, не провести с наскока уда- система. Впоследствии мы еще вернемся к этому вопросу.
лой «чапаевской атакой». Много людей потерпели неудачу
именно из-за того, что недооценили риски и переоценили Ниже я буду много говорить о тех или иных преимуще-
свои возможности. Поэтому их негативный опыт и, как след- ствах и недостатках свободных или проприетарных про-
ствие, обиды и непонимание, время от времени выплескива- дуктов. Но это тоже относительно. Существует огромное
емые на страницы форумов и блогов, создают вокруг этой число компаний, где закрытое коммерческое ПО прекрасно
темы нездоровый ажиотаж. В то же время существует нема- себя чувствует и ИТ-подразделения в состоянии обеспе-
ло «суперспецов», винящих во всех своих бедах компанию чить бизнес необходимым уровнем поддержки для всех за-
Microsoft и лично Билла Гейтса. И это тоже неправильно. дач. Но  в  целом интерес в мировом сообществе к откры-
Любая система, любая платформа имеют свои выраженные тому программному обеспечению не только не ослабевает,
достоинства и недостатки. Остальное – вопросы внедрения, но растет с каждым годом.
а также квалификации персонала.
Что побуждает выбирать продукты Open Source
Эта статья основывается на моем личном опыте и здра-
вом смысле. Я бы не хотел, чтобы эта публикация стала 1) Дороговизна коммерческого ПО и непрозрачность
причиной очередной «священной войны» на тему Linux vs лицензионной политики
Windows или LibreOffice vs Microsoft Office. Честно говоря, Иногда складывается впечатление, что корпорации – произ-
все это надоело до чертиков. Всегда есть объективные тре- водители коммерческого ПО делают все возможное, чтобы

Free Software, Open Source или Freeware купности наличие прав на  свободное распро- ставляется с открытыми исходниками. Это  мо-
странение, модификацию и изучение программ. жет быть и закрытый продукт, при этом еще
Часто пользователи и даже ИТ-специалисты Данный термин, строго говоря, не является и  выпущенный какой-нибудь крупной корпора-
путают следующие термины: свободное прог- точным. Многие продукты, выходящие под этой цией, например, Microsoft.
раммное обеспечение (Free Software), открытое вывеской, бывают не всегда бесплатны. Напри-
программное обеспечение (Open Source), и бес- мер, производитель ПО может потребовать ку- Вообще с понятием «freeware» нужно быть
платное программное обеспечение (Freeware). пить платную поддержку в случае коммерческо- предельно осторожным, особенно если не ука-
го использования программы. Или выпускать зана специальная лицензия.
Выражение «открытое программное обес- продукт в двух версиях: усеченной бесплатной
печение» (Open Source) означает, что данное и расширенной платной. Например, за продукт могут не требовать
ПО распространяется с открытым кодом. Любой оплаты исключительно при некоммерческом
человек может ознакомиться с его структурой В своих доводах разработчики программ использовании или если его использование
и  алгоритмами, а также задействовать в своих при этом часто напоминают, что под свободой ограничено рамками того или иного географи-
разработках. Есть определенные сдерживаю- понимается свобода создания продуктов и ис- ческого региона. Например, продукт бесплатен
щие условия, например, в некоторых случаях пользования существующих наработок. А если только для стран СНГ.
при  использовании чьих-то результатов труда кому-то не нравится, никто не мешает написать
автор обязан опубликовать и  свои исходники, свою программу. Существуют также коммерческие открытые
но это уже детали общей картины. разработки, объединенные общим термином
И, наконец, «бесплатное программное Open Core. Они поставляются с открытым ко-
Термин «свободное программное обес- обеспечение» (Freeware) далеко не всегда по- дом, но свободными и тем более бесплатными
печение» (Free Software) предполагает в сово- не являются.

86 январь-февраль 2021 системный администратор

администрирование Open Source

Интерес в мировом сообществе
к открытому ПО не только
не ослабевает, но растет
с каждым годом

усложнить жизнь ИТ-специалистам. Обилие лицензионных новление требует немалых денег. С бесплатными решени-
политик, программ, условий и тому подобных вещей при- ями таких проблем гораздо меньше. К сожалению, бывают
водит к тому, что разобраться во всей этой свистопляске случаи, когда ранее бесплатный продукт со следующего
очень непросто. выпуска становится платным, но производители, как прави-
ло, оставляют «лазейку» в виде бесплатного «ответвления»
Масла в огонь подливают весьма высокие цены. Как пра- или  значительно снижают цены при переходе со старой
вило, общая сумма затрат зависит от количества рабочих версии на новую.
мест и аппаратного обеспечения. Например, лицензирова-
ние по количеству пользователей и сокетов для установ- 2) Уязвимость закрытых коммерческих систем
ки процессора. А еще есть масса юридических тонкостей В первую очередь здесь нужно отметить архитектурные
при покупке, использовании и передаче лицензий. В итоге особенности закрытых коммерческих продуктов от таких
системному администратору приходится вникать во все ню- гигантов, как Microsoft, Adobe и других. И это немудрено,
ансы данного процесса, чаще всего в ущерб своей основ- ведь большинство подобного программного обеспечения
ной деятельности. пришло в свое время из мира персональных компьютеров.
Например, операционная система Windows Server 200x, яв-
Но в качестве альтернативы можно предложить мас- ляющаяся прямой наследницей Windows NT, которая в свою
су бесплатных решений из мира Open Source, возможно, очередь вобрала в себя многие черты Windows 3.x Понятное
не  таких «навороченных», зато уж точно не вызывающих дело, что требуемый уровень защиты персоналки на поря-
головной боли у системного администратора по вопросам док ниже, чем серверной системы общего пользования.
легитимности использования. Не забываем также, что ком-
мерческие программы рано или поздно устаревают, а их об-

Термин «проприетарное программное Подведем итоги. «Открытое программное Для облегчения данного процесса были вве-
обеспечение» (Proprietary Software) означает, обеспечение» не обязательно является бес- дены в строй различные лицензии на открытое
что его правообладатель (автор, создатель, по- платным, а бесплатное ПО (Freeware), как  уже программное обеспечение. Например, документы
купатель и так далее) оставляет за собой моно- писалось выше, может быть и проприетар- BSD [1] и MIT [2] означают, что  продукт полно-
польное право на использование, модифика- ным.  Термин «свободное программное обес- стью бесплатен, в то время как GPL [3] требует
цию и распространение. Обычно этим термином печение» в первую очередь означает свободу уточнения. Следует сразу оговорить следую-
обозначают любое  ПО, не  подходящее под по- разрабатывать новые программы, то есть ис- щий момент. Мы будем исходить из положения,
нятие «открытое» или «свободное». пользовать открытый код. что если правообладатель не требует обязатель-
ной компенсации за использование данного про-
Часто используются смешанные решения, Путаница возникает из-за двойственного дукта или он разместил его под соответствующей
которые называют гетерогенными. Например, толкования английского слова «free», которое лицензией, не  предполагающей оплаты, то этот
на платформе MS Windows запущена система в одном случае означает свободный, а в другом продукт именно бесплатный. Нюансы правопри-
электронного документооборота с открытым ко- – бесплатный. менительной практики я намеренно оставляю
дом. Или, наоборот, на базе FreeBSD разверну- за  рамками данной публикации. Защите прав
та проприетарная коммерческая ERP-система. Единственный способ знать наверняка, при использовании бесплатного и открытого ПО
Как правило, такие системы позволяют макси- что  за «фрукт» вы только что  скачали, – само- лучше посвятить отдельную статью. Надеюсь, кто-
мально удовлетворять нужды бизнеса, при этом му проверить информацию об условиях оплаты. нибудь из  моих юридически подкованных коллег
весьма экономно используют существующие Сделать это можно либо на домашней странич- сделает это.
ресурсы, в том числе и финансовые. ке продукта, либо связавшись с разработчика-
ми или службой поддержки.

системный администратор январь-февраль 2021 87

Open Source администрирование

Мало того, до сих пор современные коммерческие продук- Да, компания Microsoft вроде бы многое делает для обес-
ты вынуждены поддерживать уровень совместимости с  бо- печения безопасности своих творений. В качестве при-
лее старыми и даже совсем древними версиями аналогичных мера многие приводят последние операционные системы
программ. Иначе корпорации потеряют часть прибыли, а это Windows Server 2008 R2 и Windows 7. Но там скорее реали-
ни один капиталист никак не может допустить. И,  конечно, зована концепция «закручивания гаек», а не устранения уяз-
все это не могло не сказаться на уровне защищенности опе- вимостей. Очень характерный пример тому – User Account
рационной системы и сопутствующего ПО. В  то же время Control (UAC) [5]. В итоге через некоторое время при появ-
большинство продуктов Open Source так или иначе выросло лении новой «отмычки» все возвращается «на круги своя».
на UNIX-платформе, пришедшей именно из многопользова-
тельской среды. Подобные системы изначально избавлены 3) Низкая отказоустойчивость закрытого ПО
от первородных грехов своих проприетарных собратьев, проприетарных систем
в первую очередь от «настольно-персональной» архитектуры. Выше я писал, что многие проприетарные продукты, такие
как Windows, пришли из мира персональных систем. Име-
Еще один немаловажный аспект: корпорации – произво- ет ли смысл заботиться о полностью безотказной работе
дители коммерческого ПО долгое время чересчур усердно отдельной персоналки? Конечно, нет! Во-первых, человек
стремились к тому, чтобы любая домохозяйка без особой не в состоянии работать круглые сутки все семь дней в не-
подготовки могла написать программу для своего компью- делю. Во-вторых, при условии, что вся информация хранит-
тера. Оборотная сторона медали – сейчас любой малолет- ся централизованно, финансовые потери от простоя одного
ний вандал может состряпать вредоносный код и внедрить сотрудника чаще всего не настолько велики. К сожалению,
его в  работающую систему. Поэтому сотрудники ИТ- данная «философия» преследует многие закрытые коммер-
подразделений, тех, где в основном используется пропри- ческие продукты до сих пор. Необходимость еженедельной,
етарное ПО, должны находиться в повышенной боеготовно- а то и ежедневной перезагрузки компьютера в целях уста-
сти, а бизнес – оплачивать дорогостоящие средства борьбы новки обновлений, очистки оперативной памяти – обычные
с вредоносными программами «всех мастей и расцветок». суровые будни для большинства Windows-администраторов
В общем и целом получается как в пословице: «один дурак и пользователей. Но практически для всех бесплатных
может задать вопрос, на который сто умных не ответят». систем Open Source эти проблемы неактуальны. Конечно,
К  счастью, создатели UNIX-систем не были так безрас- нельзя не отметить старания разработчиков коммерческо-
судны, поэтому испортить жизнь пользователям продуктов го закрытого ПО, например, поддержка отказоустойчивых
Open Source гораздо сложнее. кластеров или горячего резервирования, но в целом факт
остается фактом: от программных сбоев чаще страдают
Если говорить более конкретно, в частности, об операци- пользователи проприетарного ПО.
онных системах семейства Microsoft Windows, а также о про-
дуктах, созданных для поддержки и расширения ее возмож- Важный комментарий: MacOS  X  [6], поставляемая
ностей, то не устраивает следующее. Нельзя мешать в кучу с  компьютерами Apple, является коммерческой, а места-
корпоративную и домашнюю системы. Системы для домаш- ми и проприетарной. Но основой для ее  создания послу-
него использования (Home Edition) от Microsoft представляют жила другая ОС Darwin [7], родившаяся на базе симбиоза
собой всего лишь урезанную и слегка подпорченную («чтоб NextSTEP [8], FreeBSD [9] и других открытых систем. Поэтому
за меньшие деньги жизнь медом не казалась») корпоратив- она избавлена от многих проблем, свойственных, например,
ную систему (Professional Edition). При  этом разработчики, Microsoft Windows. Другое дело, что и схема распростране-
как правило, чаще озабочены отнюдь не  бесперебойной ния MacOS X, мягко говоря, несколько отличается от страте-
работой офисных приложений, а  функционированием но- гии тотального захвата рынка корпорацией Microsoft.
вейших компьютерных игр. Работа в корпоративной среде –
это, как правило, работа в  офисе. И там для большинства 4) Высокая стоимость владения проприетарных
пользователей не нужна ни поддержка игровых программ, продуктов
ни мультимедийная поддержка в таком расширенном объеме. Исходя из вышеописанных пунктов понятно, что для ре-
При этом системный администратор не может изменить сис- шения таких проблем требуется дополнительное финан-
тему, которую он же и устанавливает, так как по рукам и но- сирование. В первую очередь это затраты на недешевое
гам связан существующим соглашением о лицензировании. антивирусное ПО, а также программы для диагностики
и  восстановления после сбоев. А свободное программное
А администратор современных систем Open Source лег- обеспечение не  предполагает таких специфичных затрат.
ко может подогнать систему под существующие нужды, ис- Да, в гетерогенных инфраструктурах используются не-
пользуя обычный менеджер пакетов, при этом даже не по- которые аналогичные продукты, например, коммерческие
гружаясь в дебри ядра системы. антивирусы для файловых серверов, работающих на UNIX-
системах. И это делается в первую очередь для безопаснос-
Имея на руках UNIX-систему, вы можете не устанавли- ти Windows. Но стоимость владения – это не только покупка
вать серверную поддержку SMB-протокола, попросту го- и платное обновление дополнительного ПО, это и постоян-
воря, программу Samba [4]. В Windows «не устанавливать» ные работы технического персонала по контролю, обслужи-
не получится, библиотека для поддержки «вживлена» в ядро, ванию, обновлению работающих систем. Никто не говорит,
и даже отключение в настройках сети не удалит этот модуль что, если серверы и рабочие станции используют только
из системы. В итоге максимум, что вы можете, – это на уров- свободное программное обеспечение, их совсем не придет-
не политик запретить пользователю создавать шары. А вирус ся обслуживать. Но экстремальных авралов по избавлению
с удовольствием будет использовать этот протокол со всеми
возможностями, разумеется, не спросив ничьего разреше-
ния на это.

88 январь-февраль 2021 системный администратор

администрирование Open Source

работающей сети от новой версии вируса Kido скорее всего Например, выделенный сервер Баз Данных, на котором
удастся избежать. При этом чаще всего без  дополнитель- не установлено ничего, кроме самого программного обес-
ных финансовых и трудовых затрат. печения для работы СУБД и, может быть, службы удален-
ного доступа посредством командной строки. (Меня всегда
5) Более высокая адаптируемость продуктов удивляло присутствие Службы Печати Windows, пусть даже
Open Source в отключенном состоянии, на сервере c установленным
Обычно, когда описывают распространенную коммерческую MS SQL Server).
систему, например, Microsoft Windows 7, то не забывают упо-
мянуть фразу: «Под нее написана масса программ, это га- На первом месте всегда
рантирует для вас полную свободу действий». Но, помимо должны быть цели бизнеса,
этой самой массы программ, которые далеко не все стабиль- а уже потом все остальные
но работают, существуют и другие технические аспекты. факторы

Большинство проприетарных продуктов выпускается Еще один пример – всевозможные специализированные
в  расчете на некоего усредненного пользователя, чаще устройства: межсетевые экраны, тонкие клиенты, принтсер-
всего за своим домашним компьютером. В итоге мы имеем веры, сетевые хранилища... В таких устройствах для повы-
некий средненький по возможностям и быстродействию шения производительности и уровня безопасности убирают
интерфейс управления, среднюю по производительности все лишнее из устанавливаемой системы. Проприетарные
и отказоустойчивости файловую систему, средний уровень системы такой роскоши не позволяют, и на помощь приходят
безопасности и так далее. В случае с корпоративными ре- продукты Open Source. При этом чаще всего выбирают имен-
шениями такой подход очень и очень неоптимален. Тут мо- но бесплатные системы как наиболее доступные для исполь-
жет потребоваться гораздо более тонкая система настроек. зования и свободные в плане всевозможных модификаций.
Например, в Open Source-системах на семейства UNIX поль-
зователь может установить различные графические обо- 6) Динамичность разработки свободного ПО
лочки – «менеджеры окон», например, KDE [10], Gnome [11], Действительно, свободные программные продукты обнов-
LXDE [12], XFCE [13], кардинально меняющие внешний вид ляются чаще проприетарных, и зачастую при этом добавля-
системы и имеющие разные системные требования. ются новые полезные функции и компоненты. Я не говорю
о том, что закрытое коммерческое ПО застыло в своем раз-
На производительный компьютер можно установить ин- витии, но все же проприетарная модель разработки более
тересные и очень красивые с точки зрения эстетики KDE неповоротлива, чем открытая.
и GNOME, в то время как на слабеньких машинах прекрас-
но уживется простенький LXDE, в котором есть практически Отчасти это связано с ограниченным, нередко очень
все, что нужно для работы. ограниченным числом «светлых голов» в отделе разра-
ботки, отчасти – с наличием недальновидных менеджеров,
Отдельный вопрос: файловые системы. Большинство тех которые при этом обладают реальной властью, сумели так
же Windows-систем используют одну-единственную уже по- повернуть ситуацию в свою пользу, что им все остальные
рядком устаревшую файловую систему NTFS [14], ну еще сотрудники боятся лишний раз слово сказать. Факт остает-
можно вспомнить о совсем старенькой FAT32 [15], которая ся фактом – свободное программное обеспечение рождает-
оставлена для поддержки флешек. Тут ни о каком выборе ся в гораздо более демократичной среде, чем корпоратив-
файловых систем для конкретной задачи не идет и речи. ные продукты. Хотя это вовсе не закономерность, а скорее
А ведь это очень мощный инструмент в руках системного ад- личные наблюдения.
министратора. Например, можно повысить производитель-
ность дисковой подсистемы или, наоборот, пожертвовать Когда не стоит мигрировать на открытое ПО
быстродействием в обмен на безопасность. Желающим
знать об этом больше, могу порекомендовать замечатель- 1) Компания закупила полный комплект лицензий
ную статью о файловых системах будущего [16]. Пользова- на закрытое коммерческое ПО
тели систем Open Source и ИТ-персонал компаний, стоящий Трудно представить ситуацию, когда, потратив немалые
на страже их интересов, благодаря такой возможности вы- деньги на приобретение компьютерных программ, учреди-
бора приобрели в свое распоряжение мощный инструмент, тели и руководство дадут свое согласие на миграцию в сто-
способный получить на имеющемся аппаратном обеспе- рону бесплатного Open Source, которая является весьма не-
чении дополнительные резервы для роста безопасности простым и в некотором роде затратным процессом.
или производительности.
Такая ситуация становится возможной только под воз-
Похожие вещи можно сказать и о возможности выбора действием внешних факторов, таких как нормативные акты
системного загрузчика, например, Grub [17], Grub2 [18] со стороны властей, поглощение компании более крупной,
или  даже старенького LILO [19]. Ясно одно: те, кто ис- в которой используется СПО и так далее.
пользует Windows и другое закрытое коммерческое ПО
в своем бизнесе и даже домашнем хозяйстве, не получают Но не надо забывать, что любые программы устаревают,
всех преимуществ, которые им могли бы дать Open Source- а за обновление своих коммерческих продуктов их право-
системы. обладатели хотят немалых денег. Поэтому рано или поздно

Одна из практических сторон применения такого демо-
кратического подхода: экономия существующих ресурсов
и адаптация программных продуктов на различных аппарат-
ных ресурсах и платформах.

системный администратор январь-февраль 2021 89

Open Source администрирование

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

2) Есть колоссальная база знаний по работе ***
с уже установленным ПО Мы рассмотрели основные причины, побуждающие руко-
Причем эта база должна располагаться не только в голо- водство и простых сотрудников ИТ-подразделений решить-
вах и не только в виде набора файлов или веб-страничек ся на такой смелый шаг, как миграция с одной платформы
на  корпоративном сервере. Она должна быть и в головах, на другую. Не спорю, некоторые постулаты могут оказать-
и  на жестких дисках, и на книжных полках. Без специа- ся спорными, но не стоит забывать, что наша жизнь раз-
листов соответствующей квалификации любая библиоте- нообразна и многолика, и то, что в одной ситуации может
ка – всего лишь мертвый груз. В то же время наличие даже показаться мелочью, в другой окажется причиной, опреде-
самых квалифицированных специалистов не предполагает, лившей судьбоносный выбор. В то же время необходимо по-
что они будут помнить все инциденты и своевременно их на- нимать, что на первом месте всегда должны быть цели биз-
ходить в недрах свое памяти. неса, в том числе и защита от опасных и непредвиденных
ситуаций, а уже потом все остальные факторы.
3) В компании используется специфичное ПО,
которому пока еще нет достойных СПО аналогов В следующей части статьи будут рассмотрены этапы под-
Например, среди бесплатного открытого программного готовки миграции, методы перехода и различные варианты
обеспечения нет достойного конкурента для AutoCAD. По- итоговой инфраструктуры. EOF
этому приходится использовать рабочие станции с Windows
на борту. Следует отметить, что количество программ, ста- 1. Программная лицензия университета Беркли. Подробнее
бильно удобных в работе, растет день ото дня. Поэтому сто- здесь – http://en.wikipedia.org/wiki/BSD_licenses.
ит время от времени интересоваться, что  есть новенького
среди СПО, и проверять, подойдет ли это вашему бизнесу. 2. Лицензия, или правильнее группа лицензий, созданных
Поэтому данную причину остановки миграции следует рас- в  Массачусетском технологическом институте (МТИ) – http://
сматривать не как запрет, а скорее как отсрочку. en.wikipedia.org/wiki/MIT_License.

4) Нет специалистов, способных грамотно осуществить 3. Правильнее было бы написать GNU GPL или GNU General
миграцию и дальнейшую поддержку Public License – Универсальная общедоступная лицензия
Да, это может породить весьма щекотливую ситуацию вроде: GNU – http://ru.wikipedia.org/wiki/GNU_General_Public_License.
«Один сисадмин за выходные переустановил на всех маши-
нах Linux, а в понедельник его уволили за паралич работы 4. Домашняя страничка проекта Samba – http://samba.org.
офиса». Но, во-первых, для выполнения непосредственно 5. Руководство по использованию UAC – http://technet.microsoft.
процесса миграции можно привлечь стороннего специали-
ста. В большинстве случаев это дешевле, чем постоянно пла- com/en-us/library/cc709691(WS.10).aspx .
тить корпорациям за право использовать свои собственные 6. Знаменитая операционная система корпорации Apple – http://
компьютеры. Во-вторых, не следует забывать, что человек
– существо, способное к обучению. При наличии достаточ- ru.wikipedia.org/wiki/Mac_OS_X.
ного количества информации, тестовой площадки и желании 7. Открытая операционная система, выпущенная Apple Inc –
учиться можно не только «обкатать» переход на СПО до уров-
ня автоматизма, но и постараться учесть все нюансы, чтобы http://ru.wikipedia.org/wiki/Darwin.
не прерывать работу бизнеса. При этом есть двойная поль- 8. Объектно ориентированная многозадачная операционная систе-
за: специалисты, подготавливающие миграцию, начинают до
тонкостей разбираться не только в технических аспектах, но ма от компании NeXT Computer для собственных компьютеров с
и в бизнес-процессах компании. А это воистину дорогого сто- одноименным названием – http://ru.wikipedia.org/wiki/NeXTSTEP.
ит. В целом этот пункт также можно рассматривать как сдер- 9. Сайт проекта операционной системы FreeBSD – www.freebsd.
живающий, но не запрещающий фактор. org/ru.
10. Домашняя страничка проекта KDE – http://www.kde.org.
5) Открытое ПО несовместимо с существующим 11. Сайт проекта Gnome – http://www.gnome.org.ru.
аппаратным обеспечением 12. Страничка легкого оконного менеджера LXDE – http://lxde.org/lxde.
И это может быть проблемой. Например, отсутствие внят- 13. Проект графической оболочки XFCE – http:// www.xfce.org.
ной поддержки RAID-контроллеров сводит на нет миграцию 14. Описание файловой системы NTFS – http://ru.wikipedia.org/wiki/
серверной части ИT-инфраструктуры на любую другую сис- NTFS.
тему, кроме той, которая на них сейчас установлена. 15. Описание файловой системы FAT32 – http://ru.wikipedia.org/
wiki/FAT32.
Сейчас продукты Open Source способны без особых проб- 16. Савчук И. Новая школа против старой. Файловые системы бу-
лем работать на большинстве единиц оборудования известных дущего. //«Системный администратор», №9, 2011 г. – С. 42-47.
производителей, таких как HP, IBM, Dell, Intel. Не стоит также 17. Описание загрузчика Grub – http://ru.wikipedia.org/wiki/GRUB.
забывать, что многие проекты очень быстро развиваются. Со 18. Статья об особенностях загрузчика Grub2 – http://ru.wikibooks.
org/wiki/Grub_2.
19. Описание загрузчика LILO – http://ru.wikipedia.org/wiki/LILO.

Ключевые слова: Open Source, техподдержка, разработка, прог-
рамма, пользователь, открытый код, финансирование, кадры

Статья была опубликована в №1-2 (110-111), 2012 г.

90 январь-февраль 2021 системный администратор

администрирование Open Source

АЛЕКСЕЙ БЕРЕЖНОЙ

Стратегия и тактика перехода

на бесплатные решения Open Source

Какие есть возможности для миграции на Open Source-системы? Что выбрать
в качестве той или иной методики, какие ошибки бывают при переходе на свободное
программное обеспечение?

Любые изменения в ИT-структуре являются достаточно се- И последнее, самое важное: данная статья – мое видение
рьезным испытанием для системных администраторов. Если ситуации, основанное на собственных знаниях, личном опы-
дело касается смены платформы, в момент перехода на- те и здравом смысле. Это «не книга советов на все случаи
грузка на технических специалистов возрастает многократ- жизни» и не попытка навязать свою точку зрения. Поэтому
но. Как избежать лишних потрясений и всякий раз находить любители острых дискуссий на тему Linux vs Windows могут
нужные решения? не беспокоиться.

Этот материал является продолжением публикации Подготовка к миграции
«Особенности перехода на бесплатные решения Open
Source» [1]. В ней шла речь о достоинствах и недостатках Давайте рассмотрим основные этапы подготовки к миг-
открытых систем. Допустим, вы как читатель прониклись рации.
идеями, изложенными там, и теперь встал вопрос: а как,
собственно, переходить, с чего начать, какой методики при- Инициатива руководства
держиваться? Обычно в таких случаях пишут что-то вроде: «Заручитесь
поддержкой руководства». Здесь вопрос стоит гораздо
Важные комментарии жестче: «Желание осуществить миграцию в первую оче-
редь должно исходить именно от руководства». Неваж-
Несколько слов о предполагаемой ИT-инфраструктуре. но, кто первый заикнулся о самой идее миграции. Важно,
Как известно, нельзя составить книгу рецептов на все слу- что все заявления о предстоящих изменениях должны идти
чаи жизни. Особенно в рамках одной статьи журнала. По- именно с самого «верха». От руководства же требуются
этому нужно заранее определить, чему мы собираемся уде- решительность и убежденность в правоте принимаемого
лить внимание, а что придется оставить «за кадром». Итак: решения. Потому что малейшая неуверенность может спро-

>> В качестве объекта миграции рассмотрим довольно ти- Желание осуществить
пичную для российской действительности схему: боль- миграцию в первую очередь
шинство пользователей работают на рабочих станци- должно исходить именно
ях, руководители имеют персональные корпоративные от руководства
ноутбуки. Ядро для поддержания бизнес-процессов
сосредоточено на нескольких серверах и реализовано воцировать некоторых не слишком лояльных сотрудников
на Windows-платформе. на скрытый (а может быть, и явный) саботаж. В то же вре-
мя от ИТ-персонала нужен взвешенный подход. Все задачи
>> Это обычная торговая компания, не занимающаяся должны выполняться в установленные сроки, но при этом
такими интересными вещами, как САПР [2], создание с учетом бесперебойной работы пользователей. И самое
анимации, верстка и дизайн и так далее. Такая не очень главное: ИT-специалисты не должны ничего объяснять,
большая контора «Рога и копыта», основными прило- рекламировать и тем более оправдываться перед другими
жениями которой являются офисный пакет и такой сотрудниками. На все «нетехнические» вопросы отвечают
чудесный продукт автоматизации бухгалтерской и про- только представители руководства компании.
чей хозяйственной деятельности, как «1С» [3].

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

системный администратор январь-февраль 2021 91

Open Source администрирование

Для проведения
безболезненного перехода
не бывает много информации

Информированность Например, о приостановке работы серверного оборудова-
О, «...как много в этом звуке для сердца русского сли- ния или о временном изъятии персональных компьютеров
лось...». На самом деле это очевидное условие соблюдается у пользователей.
далеко не всегда. Для проведения безболезненного перехо-
да не бывает много информации. Как минимум необходимо Предварительное тестирование
знать практически все об используемом программном обес- Лучше один раз увидеть, чем семь раз услышать. Точ-
печении, бизнес-процессах, для которых оно применяется, но так  же лучше один раз попробовать на деле, чем семь
и кто из пользователей в нем заинтересован. Иногда воз- раз  увидеть. Любой вопрос о замене программы или обо-
никают курьезные ситуации, когда выясняется, что отдел ин- рудования должен начинаться с проверки и ей же заканчи-
формационных технологий до сих пор поддерживает прило- ваться. Существует масса способов организовать тестовую
жение, давно ставшее неактуальным для бизнеса. Поэтому платформу: от виртуальной среды до испытательных стен-
всегда нужен предварительный аудит ИT-инфраструктуры, дов, собранных из старого компьютерного хлама. Важно
полностью затрагивающий все сферы жизни компании. одно: без глубокого анализа возможных и очевидных проб-
лем и путей их решений ни один пункт из плана миграции
Трезвый взгляд нельзя выпускать в свет.
Нужно понимать, что любое изменение ИT-инфраструктуры
в конечном итоге производится в целях получения большей Обратная связь
прибыли. В таких сложных вопросах, как переход на другую Очень важный на самом деле момент. Без конструктивного
платформу, обе крайности – и фанатизм, и нерешительность диалога, без своевременных «сигналов с мест» можно лег-
– одинаково недопустимы. «Ничего личного, только биз- ко загубить любое хорошее дело. Поэтому очень важно во-
нес». Приготовьтесь к мысли, что полностью перейти вряд время реагировать на пожелания и даже критику со сторо-
ли получится. Поэтому обычно идет речь о смешанных или ны рядовых пользователей. При этом необходимо отделять
гетерогенных структурах. Существует множество факторов, важное от второстепенного, не поддаваясь на провокации
способных затормозить процесс миграции на любом участ- и решение чьих-то персональных вопросов в ущерб дру-
ке. Например: редкая или, наоборот, очень популярная прог- гой работе. Нужно четко и ясно осознавать, что получение
рамма, полноценной замены которой нет и не предвидится. прибыли и рентабельность предприятия имеют наивысший
Или банальное отсутствие драйверов для RAID-контроллера. приоритет в использовании информационных технологий,
Исходя из своего опыта могу сказать, что, если доля компью- а удобство или пожелания отдельно взятого сотрудника
теров, работающих под управлением проприетарного ПО, не обязательно следуют интересам бизнеса.
не будет превышать 20%, это уже существенный результат.
Не нужно замыкать все на себе
Планирование Часто приходится наблюдать довольно грустную карти-
Невозможно все знать наперед. Хотя и очень хочется. По- ну, когда системный администратор или даже весь ИT-
этому необходим предварительно составленный план, ко- департамент переоценил свои силы и в итоге сдался под
торый позволит не только определиться с графиком работ, гнетом возросшей нагрузки во время миграции. Особенно
но и понять, какие действия надо предпринять, если что-то это характерно для компаний, укомплектованных по прин-
пойдет не так. Хорошо продуманный и подтвержденный до- ципу «никого лишнего». Перевод на другую платформу
кумент такого рода позволит ответить на множество вопро- и  все пункты, которые с  ним связаны: переговоры с руко-
сов, которые обычным способом решить просто нереально. водством, сбор информации, планирование, тестирова-

92 январь-февраль 2021 системный администратор

администрирование Open Source

ние, анализ промежуточных результатов, требуют немалой Но на самом деле это совсем иной продукт. Не лучше
концентрации сил и дополнительного времени. В итоге все и не хуже своего «собрата» от Microsoft. Он просто другой.
эти процедуры затягиваются на долгие месяцы, что само по Несмотря на схожие характеристики, его возможности и ме-
себе является скорее признаком провала, нежели предсто- тоды работы отличаются от MS Office. Например, существу-
ящего успеха. ет огромное количество отдельных дополнений, созданных
различными авторами, и пользователь, и системный адми-
Избежать этого возможно, воспользовавшись помощью нистратор могут сформировать итоговый функционал уста-
со стороны. Существуют специализированные компании, новленного пакета исходя из требований бизнеса, а также
помогающие осуществить процесс миграции на решения пожеланий пользователей.
Open Source, например, …. [4].
Из данного примера становится понятно, что, если пы-
Несколько направлений таться решить вариант миграции с MS Office на LibreOffice,
что называется, «в лоб», можно потерпеть неудачу.
Одной и той же цели можно достигнуть разными путями.
Для  информационных технологий эта фраза справедлива После такого перехода время от времени возникают
как никогда. Но бывает, что люди и не подозревают, что одну мелкие неурядицы, например, ошибки форматирования
и  ту  же проблему можно решить несколькими способами. документа или отсутствие обработки сложных макросов,
Отсюда и рождаются слухи о «несостоятельности» такого созданных в продуктах от Microsoft. Все эти вопросы необ-
рода миграций. ходимо было решать заранее, а не «по ходу пьесы». В ито-
ге у участников «миграционного марафона» накапливают-
Есть несколько направлений или, точнее сказать, мето- ся усталость, раздражение, неверие в собственные силы
дов по переводу работающей ИT-инфраструктуры с пропри- и, как следствие, – желание обвинить во всем разработчи-
етарных систем (чаще всего это платные продукты крупных ков, которые, дескать, плохо постарались, создавая «бес-
корпораций, таких как Microsoft, Autodesk, Adobe Systems платный аналог». Если потратить время и усилия на более
и т.п.) на свободное программное обеспечение. качественную подготовку миграции, можно сократить число
неприятных «сюрпризов» в разы, а то и в десятки раз.
Метод простой замены
Самый известный и понятный для новичков. Его суть заклю- Но представьте себе мысленно картину того, что было до
чается в поиске прямых аналогов работающих служб и сер- начала перехода и что станет после. Вы получите, по сути
висов. Нужна замена файл-серверу на Windows – исполь- дела, совсем другую инфраструктуру. Да, она будет насле-
зуем Samba [5]. Нужно чем-то заменить MS SQL Server [6] довать принципы своей прародительницы, безотказно ра-
для работы «1С» – поднимаем сервер с PostgeSQL [7]. ботать и удовлетворять требованиям вашего работодателя.
Но и внешний вид используемых программ, и методы рабо-
На рабочих станциях в свою очередь заменяем ты, да и непосредственно сами бизнес-процессы все равно
MS  Windows на подходящий дистрибутив Linux, Microsoft изменятся. И тут возникает другой немаловажный вопрос: а
Office на LibreOffice [8] (или OpenOffice.org [9]), Nero стоит ли вообще цепляться за старое? Возможно, есть дру-
Burning ROM [10] на Brasero [11] или K3B [12], и т.д. и т.п. гие решения, более интересные, надежные, безопасные.
Об этом пойдет речь ниже.
Сейчас для очень многих проприетарных продуктов мож-
но подобрать нечто похожее в мире Open Source. Казалось Централизация приложений
бы: «Красота да и только! Живи да радуйся». Но есть один Как вы уже поняли, метод прямой замены отнюдь не идеален.
Основная причина, которая и порождает остальные пробле-
Если пытаться решить мы, – все бизнес-процессы основываются на особой роли ра-
вариант миграции с MS Office бочей станции. Несмотря на все попытки изменить ситуацию,
на LibreOffice «в лоб», можно например, создать единую систему управления и безопаснос-
потерпеть неудачу ти вроде GPO AD [14], все-таки до конца не удается избавиться
от необходимости рисовать «последний штрих», подстраивая
факт, который может здорово помешать, если не до  кон- каждый компьютер для работы конкретного пользователя. В
ца застопорить подобную миграцию. Всего три слова: итоге получается, что основной спектр проблем, решаемый
«Это разные программы!» ИT-отделом, – это проблемы рабочих станций. В предыдущей
статье как раз и говорилось о проблемах, связанных с насле-
Возьмем для примера LibreOffice. Он является форком дием такого «персонального подхода».
(копией) продукта OpenOffice.org, который в свою оче-
редь произошел от другого известного офисного паке- Такое положение вещей существует достаточно давно,
та  – StarOffice [13]. В свое время этот пакет был весьма со времен отказа от «больших» ЭВМ вроде EC ЭВМ18xx [15]
популярен в различных странах, например, в Германии. (IBM System/360). Именно тогда на рабочем столе офисного
И покупали его отнюдь не из-за дешевизны, а в первую оче- сотрудника появился Его Величество Персональный Ком-
редь из‑за удобства использования. пьютер, который и царствует в большинстве российских
организаций по сей день.
Забавно, что с появлением пакета уже под именем
OpenOffice.org он почему-то стал восприниматься в не слиш- Несмотря на современные и ультрамодные тенденции,
ком удачной роли: «почти как MS Office, только похуже, появляющиеся в мире информационных технологий, на-
и за него денег платить не надо». пример, облачные вычисления, офисная рабочая станция,
по сути, представляет собой основное средство общения
пользователя с информационной системой компании.

системный администратор январь-февраль 2021 93

Open Source администрирование

Это порождает некоторую узость в обеспечении работы биз- ние на каждом новом компьютере. И не нужно будет нести
нес-процессов со стороны системных администраторов и дру- дополнительные траты на техподдержку и администрирова-
гих специалистов, которые организуют работу любой компании ние. При такой системе количество пользователей в сети
исключительно по такой персонально-компьютерной схеме. не имеет большого значения. Значительно упрощаются
резервное копирование и установка обновлений. В итоге
В результате система документооборота представляется в будущем стоимость владения такой вот «самописной сис-
исключительно в виде свалки офисных документов на сете- темой» окажется ниже «стандартных» решений Microsoft
вых ресурсах. Комплексные меры безопасности ограничи- и других гигантов программного бизнеса.
ваются установкой антивируса, корпоративного файервола
и запретом съемных носителей. А понимание бизнес-про- При этом при сравнении совокупной стоимости пользо-
цессов самой ИT-инфраструктуры не заходит дальше нас- вательских и серверных лицензий, включая офисные паке-
тройки групповых политик Active Directory. ты и антивирусы, стоимость системы для офиса примерно
на 100 рабочих мест на базе персональных компьютеров бу-
А если посмотреть на вещи по-другому, оторвавшись дет сопоставима с построением «своей» информационной
от  бесконечных установок драйверов, Windows, MS Office, системы. Особенно если учесть, что программисты не будут
настройки политик в AD, учета купленных лицензий и восста- писать все программы с нуля, а воспользуются уже суще-
новления удаленных файлов на машине с банк-клиентами? ствующими разработками. Конечно, все зависит от конкрет-
Чем же занимается обычная торговая фирма? Например:
Если бухгалтерия,
>> работа с торговыми представителями: учет, заказы, по- управленческий учет,
ставки, рекламации, реклама; д окументооборот
и все остальные участки
>> внутренние коммуникации: почта, телефонная связь, бизнес-процесса
корпоративный чат и доска объявлений; сосредоточены
в одном или нескольких веб-
>> логистика и склад: прием, выдача, списание товара, за- приложениях, т о становится
полнение документации, формирование отчетов и  за- безразлично, какая ОС стоит
явок; на компьютерах пользователей

>> работа с клиентами: привлечение, накопление инфор- ной задачи, региона, аппетитов разработчиков и  умения
мации, программа лояльности; вести переговоры. Но в целом ситуация примерно такова.

>> документооборот: заполнение форм, регистрация, ви- Данную модель сейчас очень настойчиво продвигают
зирование, согласование, печать, хранение, поиск; в виде облачных вычислений. Но для того, чтобы избавиться
от «персонально-компьютерной» схемы работы и   о  конца
>> бухгалтерия и управленческий учет; адаптировать свои информационные процессы под нужды
>> и все остальное, что не вошло в данный список. бизнеса, совсем необязательно связываться с  удаленным
И тут становится понятно, что такие шаблонные решения облачным провайдером.
«как у всех» не всегда и не полностью подходят для реализа-
ции сложных бизнес-процессов. Каждая компания – это уни- Сейчас существует множество открытых продуктов, в том
кальный живой организм, который очень трудно втиснуть в числе и бесплатные версии, позволяющие организовать со-
стандартные рамки. Отсюда и бесконечные конфликты между вместную работу. Например, Alfresco [18].
ИT-подразделениями и остальным бизнесом. Потому что ин-
формационный департамент зачастую пытается ограничить Многие коммерческие системы сейчас разрабатывают
жизнь предприятия исключительно готовыми наработками, не только для Windows, но и для других платформ, а также
сделать «все как у всех», а это невозможно в принципе. для кроссплатформенных решений. Например, «1С» в вер-
Гораздо мудрее выглядит другой путь – найти разработ- сии 8.2 поддерживает установку серверной части и клиент-
чиков, чтобы создать новое или адаптировать уже существу- ской части для Linux.
ющее свободное программное обеспечение, чтобы макси-
мально учесть нужды бизнеса. А если построить эту систему Тонкие клиенты и терминальные подключения
как веб-приложение, использующее свободную СУБД, на- Раз уж мы заговорили о централизации, то нельзя не упомянуть
пример, PostgeSQL или Firebird [16], поддерживающее попу- еще один путь развития информационных технологий в биз-
лярные браузеры, такие как Firefox, Opera, Seamonkey [17], несе. Это внедрение терминальных серверов и тонких клиен-
то можно получить полностью кроссплатформенную систе- тов, выражаясь «сисадминским» языком, – терминализация.
му, не привязанную к конкретной платформе.
Если бухгалтерия, управленческий учет, документообо- Публикации на эту тему мелькают в СМИ и на страницах
рот и все остальные участки бизнес-процесса сосредоточе- нашего журнала довольно часто. Поэтому нет смысла вда-
ны в одном или нескольких веб-приложениях, то становится ваться в пространные разъяснения.
безразлично, какая операционная система стоит на  ком-
пьютерах пользователей.
Разумеется, такое решение стоит определенных денег,
и в некоторых случаях общая сумма может показаться не та-
кой уж маленькой. Но нужно понимать, что в данном случае
строится инфраструктура «на вырост», с учетом развития
компании. Да, сегодня необходимо потратить определенную
сумму на «свой» продукт, который можно развивать и до-
полнять. Зато в будущем не придется, скрипя сердце, по-
стоянно платить немалые суммы за программное обеспече-

94 январь-февраль 2021 системный администратор

администрирование Open Source

Вкратце: терминальный сервер – это выделенный очень дей, способных все время изучать что-то новое: функции,
мощный компьютер или группа серверов, к которым по сети программы, команды, методики... А таких людей всегда бу-
подключаются бездисковые станции небольшой мощности. дет не хватать, и неважно, о какой платформе идет речь.
Данная схема позволяет предоставить пользователю для
работы удаленный «рабочий стол» или опубликовать от- ***
дельное приложение. Вот и подошел к концу наш разговор о проблемах миграции
на свободное программное обеспечение. Надеюсь, что рас-
В некоторых организациях для создания таких рабочих смотренные вопросы и рекомендации позволят использо-
мест применяют устаревшие офисные компьютеры. Но луч- вать все преимущества Open Source-решений в вашей ра-
ше использовать специальные готовые устройства, которые боте. EOF
уже содержат в себе миниатюрную операционную систему
с необходимыми программами-клиентами для  подключения 1. Бережной А. Особенности перехода на бесплатные решения
к серверам. Пионером в производстве таких устройств счита- Open Source. //«Системный администратор», №1-2, 2012 г. –
ется фирма WYSE [21], но многие известные корпорации, та- С. 38-44.
кие как Hewlett Packard, выпускают свои варианты устройств.
Тонкие клиенты могут быть построены на различных плат- 2. Описание САПР (CAD) – http://en.wikipedia.org/wiki/Computer-
формах, не обязательно совместимых с Intel x86. И, конечно, aided_design.
на них могут быть любые операционные системы: от Windows
XPe или Linux до собственных разработок компаний. 3. Официальный сайт программы «1С» – http://www.1c.ru.
4. место для рекламы
Заменив громоздкие персональные компьютеры на легкие 5. Страничка проекта Samba – http://www.samba.org.
практичные тонкие клиенты, можно убить двух зайцев: получить 6. Описание Microsoft SQL Server –http://ru.wikipedia.org/wiki/
все выгоды от использования тонких клиентов и выполнить ми-
грацию рабочих станций на надежные Open Source-решения. Microsoft_SQL_Server.
7. Страничка проекта PostgreSQL – http://www.postgresql.org.
Наиболее популярными терминальными серверными 8. Русская страница проекта LibreOffice – http://ru.libreoffice.org.
платформами пока остаются проприетарные решения от 9. Сайт проекта OpenOffice.org – http://ru.libreoffice.org.
таких гигантов программной индустрии, как Microsoft и Citrix 10. Официальный сайт продуктов Nero – http://www.nero.com/rus.
Systems [22]. Но существует и масса интересных реше- 11. Веб-страничка программы Brasero – http://projects.gnome.org/
ний на базе продуктов Open Source, например: LTSP  [23],
Nomachine [24] и его бесплатный вариант FreeNX [25], brasero.
VNC  [26], xrdp [27] и, конечно, старый добрый X Display 12. Cайт программы K3B – http://www.k3b.org.
Manager Control Protocol (XDMCP) [28]. 13. Официальный сайт StarOffice – http://www.staroffice.com.
14. Статья о Sun Microsystems – http://ru.wikipedia.org/wiki/
При использовании тонких клиентов можно практически
полностью уйти от решения вопросов с настройкой локальных Sun_Microsystems.
рабочих мест. Нет особой нужды искать замену групповым по- 15. Официальный сайт компании Oracle – http://www.oracle.com/
литикам Acrive Directory, если все действия пользователи со-
вершают на одном или нескольких терминальных серверах. index.html.
16. Статья о групповой политике – http://en.wikipedia.org/wiki/
Еще одна из положительных сторон терминализации –
возможность выполнить переход в два этапа. Сначала пере- Group_Policy.
вести пользователей на терминальные решения с примене- 17. Статья о EC ЭВМ – http://www.megabook.ru/Article.asp?AID=
нием тонких клиентов на базе проприетарных продуктов,
одновременно (а лучше заранее) подготовив аналогичные 607021.
решения на базе свободного ПО. Использование тестовых 18. Сайт проекта Firebird – http://www.firebirdsql.org.
(trial) версий в ряде ситуаций позволяет избежать боль- 19. Русская страничка браузера Seamonkey – http://mozilla-russia.
ших денежных затрат. В любом случае легче решать воп-
рос с установкой и адаптацией программного обеспечения org/products/seamonkey.
под нужды пользователей на нескольких серверах, нежели 20. Страница проекта Alfresco – http://www.alfresco.com.
на каждом отдельно стоящем компьютере. 21. Официальный сайт дистрибьютора WYSE в России –

И снова о специалистах http://wiat.ru.
22. Российский подраздел официального сайта компании Citrix
Разговоры о «дороговизне» специалистов, обладающих по-
знаниями в Open Source или Unix-like-система в частности, Systems – http://www.citrix.ru.
сильно преувеличены. Грамотный системный администра- 23. Статья о LTSP – http://ru.wikipedia.org/wiki/LTSP.
тор, имеющий сертификат по проприетарным продуктам, 24. Сайт компании NoMachine – http://www.nomachine.com/
стоит также недешево. Почему же тогда прочно укрепилось
мнение, что хорошего «юниксоида» днем с огнем не най- products.php.
дешь? Только ли дело в деньгах? Наверное, нет. Основ- 25. Коротенькая заметка о FreeNX – http://ru.wikipedia.org/wiki/
ная причина в том, что свободное ПО очень быстро раз-
вивается. Тут практически невозможно прослушать курсы FreeNX.
и  длительное время пользоваться полученными знаниями. 26. Информация по VNC – http://ru.wikipedia.org/wiki/Virtual_
Предприятия, использующие такие продукты, испытывают
своего рода кадровый голод. Дефицит любознательных лю- Network_Computing.
27. Страничка программы xrdp – http://www.xrdp.org.
28. Информация о X Display Manager Control Protocol (XDMCP) –

http://ru.wikipedia.org/wiki/XDM.

Ключевые слова: Open Source, техподдержка, разработка, прог-
рамма, пользователь, открытый код, финансирование, кадры

Статья была опубликована в №4 (113), 2012 г.

системный администратор январь-февраль 2021 95

Open Source безопасность
СЕРГЕЙ ЯРЕМЧУК

Безопасен ли открытый код?

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

В последнее время явно заметен всплеск публикаций, в ко- мечания скептиков, Open Source становится все более при-
торых недвусмысленно намекают, что Open Source отнюдь влекательным и уже не является уделом энтузиастов: мно-
не так безопасен, как считают его сторонники [1], а сам гие проекты поддерживаются фондами, имеют серьезный,
факт наличия исходного кода никак не влияет на защищен- в  т.ч.  финансовый, потенциал и штатных программистов.
ность систем и приложений и даже, более того, вредит. Как Все как у коммерческих разработчиков, вот только код они
подтверждение своих слов авторы приводят самую разноо- не прячут. Чтобы не быть голословными, обратимся к стати-
бразную статистику [2], показывающую количество найден- стике Netcraft за март и апрель 2012 года [3].
ных уязвимостей и выигрышную позицию проприетарных
приложений, исходный код которых недоступен (безопас- Посмотрим еще, как дела на рабочих столах. По вер-
ность через сокрытие, Security through obscurity). На первый сии Netmarketshare [4] и StatCounter [5]: Windows – 92%,
взгляд авторы публикаций полностью правы, но только если Mac OS X – 7%, Linux – 1%.
не пытаться переосмыслить все проблемы с разных точек
зрения. В статье я не буду идти привычным путем, т.е. рас- На рабочих столах по-прежнему лидирует Windows,
сказывать, что какой-то путь более правильный, не буду су- но уже заметна немалая доля Mac OS X. Причем их соотно-
жать рамки, а попробую посмотреть на проблему безопас- шение по регионам существенно отличается. Так, в России
ности немного шире. Mac OS X пользуются всего 2,13%, в США – более 10%.

Все сказанное в статье является субъективным мнени- Вывод напрашивается сам собой: на критических при-
ем автора, которое основано на многолетнем опыте ис- ложениях, там, где нужна стабильность, скорость, безо-
пользования Unix/Linux и Windows, устранении последствий пасность и масштабируемость, используются приложения
вирусных инфекций и анализе причин их возникновения, с  открытым исходным кодом, им доверяют специалисты
да и просто здравом смысле. и  они популярны. Где решает пользователь, там лидирует
Windows.
Немного о статистике
Вероятно, найдется читатель, который скажет, что по од-
Есть три вещи в мире: ложь, правда и статистика. ним лишь веб-серверам такой вывод делать очень опро-
метчиво, ведь бизнес использует и другие приложения,
Марк Твен где соотношение уже не так ярко выражено, и будет полно-
стью прав.
Противоборство Open Source и проприетарных решений
продолжается очень давно, во всяком случае, я прочитал Хотя ситуация с почтовыми серверами, СУБД, VoIP, FTP,
первую статью на эту тему еще в прошлом веке, поэтому CMS и некоторыми другими не намного хуже, здесь тоже
уже можно, наверное, сделать какие-то выводы. Компью- Open Source-приложения не пасут задних, только нет хо-
терный мир, перенесший несколько сотен эпидемий и вы- рошей статистики. То есть факт остается фактом: наличие
державший миллионы самых разных вирусов, за это вре- открытого исходного кода никоим образом не сказывает-
мя не  рухнул, ни одной идее так и не удалось полностью ся отрицательно на популярности продукта, а в некоторых
победить, отвоевав заветные 100%, и, главное, показать проектах предпочитают именно такие решения, ведь часто
преимущество на практике. Но, даже несмотря на все за- стандартной функциональности не хватает, и необходимо
серьезное вмешательство в код. Например, всем известный
факт: в Twitter, обрабатывающем миллионы запросов, ис-
пользуется переработанная версия СУБД MySQL, которую
можно легко найти в Сети.

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

96 январь-февраль 2021 системный администратор

безопасность Open Source

обычно, когда спорят о недостатках Open Source, предпо- тической уязвимости патчи выпускаются в течение одного-
читают смешивать все аргументы в кучу, не разделяя не- двух дней, причем это было характерно для Open Source
большие проекты и серьезные приложения, рассчитанные как в 2007 году [6], так и сегодня.
на использование под высокой нагрузкой. И что, те и другие
имеют одни и те же недостатки? Не можем же мы сравнивать Подход к устранению проблем в решениях с отрытым ис-
тот же Apache с приложением, написанным энтузиастом ходным кодом как минимум вызывает уважение. В промежу-
и поддерживаемым в свободное время. Очевидный ответ – точных релизах вполне могут находить уязвимости, которые
нет. Более того, если так подходить, то можно поставить также портят статистику, но такие версии редко использу-
в один ряд и любой проприетарный проект, разработанный ются в производственной среде и ориентированы больше
корпорацией или программистом-одиночкой. на энтузиастов.

На первом же графике [2] мы видим, что по количеству Уязвимость vs Безопасности
найденных уязвимостей опять же лидируют компании, про-
двигающие Open Source-проекты – различные Enterprise Наличие уязвимости – это потенциальная возможность
Linux, Apple, Oracle/Sun, Google. Корпорация Microsoft за-
нимает пятое место в этом антирейтинге с учетом позиции «...настоящая правда всегда неправдоподобна… Чтобы сделать
на март 2012-го. Достоверность данных оставим на совести правду правдоподобнее, нужно непременно подмешать к ней лжи.
докладчика (доклад прозвучал на RSA Conference 2012), Люди всегда так и поступали».
но опять же задумаемся над методом представления.
Федор Достоевский
Мы не должны забывать, что под словом «Linux» под-
разумевается не только ядро, но и ОС со своим составом для  проведения атаки, и здесь статистика [2] для того же
приложений, разрабатываемых разными программистами, RHEL по сравнению с Microsoft выглядит несколько удру-
некоторые ставятся «из коробки» или штатной системы па- чающей, если отвлечься от нескольких важных моментов.
кетов, а поэтому уязвимость в некоторой библиотеке или Достаточно вспомнить, что уязвимости имеют несколько
утилите (фактически пакете) может быть причислена к са- характеристик, важные из которых: опасность, вектор экс-
мому дистрибутиву. То есть безопасность целого часто за- плуатации (локальная или удаленная) и наличие эксплоита.
висит от частного, и дырявый давно не обновляемый плагин Собственно говоря, они связаны, так как если в характе-
к веб-браузеру может свести на нет все усилия разработ- ристике сказано, что можно выполнить команду удаленно,
чиков дистрибутива. Это, кстати, хорошо показано на  гра- да и еще и готов эксплоит, всегда получим высшую катего-
фиках в [2], где видно, что количество уязвимостей в ОС рию опасности.
на несколько порядков меньше, чем в приложениях.
Кроме того, немаловажную роль играет и версия продук-
Отличный пример для сравнения OpenBSD: безопасная, та, ведь часто проблема может быть только в определен-
с открытым исходным кодом ОС, у которой в установке ном релизе, который давно уже не актуален. И в плюсы лю-
по умолчанию за время разработки найдено всего две уяз- бой характеристики можно отнести графу – наличие патча.
вимости, позволяющие выполнить атаку удаленно. И все по- Для любого сисадмина именно последняя графа означает,
тому, что базовую систему полностью контролирует основ- насколько спокойно он будет спать. Если патч есть, систе-
ная группа разработчиков: установи веб-сервер, и  общая ма автоматического обновления сама предложит его уста-
защищенность уже будет зависеть и от этого компонента. новить, и он может даже не знать, что, оказывается, была
какая-то серьезная уязвимость. Но вот отчет в [2] эту сторо-
Например, недавно обнаруженная уязвимость в OpenSSL ну немного обходит.
(CVE-2012-2110) будет относиться ко всем дистрибутивам
Linux/Unix (библиотека используется многими приложениями, Для примера сверим данные на Secunia.com для всех
а поэтому часто установлена по умолчанию), как Enterprise, дистрибутивов Red Hat и Windows Server 2008. В списке всех
так и любым другим, то есть теоретически из одной пробле- решений для Red Hat в графе Unpatched стоит 0, т.е. проб-
мы мы получим несколько уязвимостей в разных дистрибути- лемы если и выявлены, то уже устранены [7], и о них можно
вах. А еще добавим старые версии дистрибутивов и прило- забыть. Теперь смотрим состояние в Windows Server 2008
жений, которыми мало кто пользуется. Теперь умело это все и  обнаруживаем, что около 2% уязвимостей до  сих пор
посчитаем/обыграем и можем на цифрах убедить кого угод- не устранены [8] (3 из 173), причем, судя по пустому отче-
но, что Linux – это  проблема безопасности (а уж поверьте,
те, кто в этом заинтересован, считают именно «правильно»). Таблица 1. Количество веб-серверов (по данным Netcraft)

В то же время продукты от Microsoft (как и большинство Разработчик Март % Апрель % Изменение,
проприетарных решений) идут как бы сами по себе, т.е. «пу- 2012 2012 %
стые». А если Windows оснастить тем же набором приложе-
ний «на все случаи» и затем посчитать их ошибкой самой Apache 420,337,139 65,24 443,102,561 65,46 0,22
MS? Как это повлияет на статистику и место в антирейтинге? Microsoft 88,971,973 13,81 92,488,751 13,66 -0,15
nginx 65,369,149 10,15 69,869,916 10,32 0,18
Если брать во внимание любые другие дистрибутивы
Linux, нужно не забывать, что есть стабильные ветки с дол- Google 21,150,938 3,28 22,039,901 3,26 -0,03
гим сроком поддержки (вроде LTS в Ubuntu) – приложе-
ния в  них отбираются особенно тщательно – и тестовые/
промежуточные релизы, в которых обкатываются новые
технологии. За обновлениями и стабильностью работы
LTS-версий пристально следят, в случае обнаружения кри-

системный администратор январь-февраль 2021 97

Open Source безопасность

ту за 2012 год, эти проблемы давние (обнаружены в 2010-м Поэтому главный вывод делаем такой: статистика – вещь
и имеют статус Moderately critical). Для Windows 7 не устра- очень тонкая и сложная, одни и те же цифры можно интер-
нено 5% уязвимостей, причем как минимум одна имеет претировать по-всякому. Так давайте не смешивать сухую
статус Highly critical. «Окно уязвимости» (т.е. время от об- статистику и безопасность.
наружения проблемы до выпуска патча) в проприетарных
продуктах занимает по времени до пяти недель (за редким Выручает ли анализ кода?
исключением). Понятно, что разработчики должны все про-
анализировать, протестировать и так далее, но это доста- Опыт показывает, что код пишут везде одинаково,
точно большой срок. как в Open Source, так и закрытых проектах, везде работают

Скажите, что более безопасно: RHEL, который офици- Противник, вскрывающий ваши ошибки, полезнее для вас, чем друг,
ально не имеет проблем, или Windows? Чем подход лучше? желающий их скрыть.
Причем точно такая ситуация была и год, и два, и пять лет
назад – Microsoft всегда был в «должниках», не закрывая Леонардо Да Винчи
все найденные уязвимости.
люди, имеющие разный опыт и совершающие одинаковые
Согласно данным SecurityLab [9], за 2011 год было опи- или примерно одинаковые ошибки. Среднестатистически
сано 4733 уязвимостей, из них производители устранили в любом приложении можно найти ошибки вне зависимо-
58%, для 7% доступны инструкции по решению проблемы. сти от лицензии, доступности исходного кода, количества
Здесь уже вопрос не в том, доступен или нет исходный код, и опыта разработчиков и так далее.
а в отношении разработчика к поддержке своего продукта.
А  ведь в покупку проприетарного решения вложены сред- Главный тезис сторонников Open Source – возможность
ства, и немалые. Более того, если администратор, исполь- анализа кода всеми желающими, в итоге разработчик
зующий Open Source, знает о проблеме и не видит патча, не  сможет спрятать закладку, а программа гарантировано
он теоретически может сам найти и изменить проблемный не будет иметь незадекларированные функции, а если такие
кусок кода. Но об это чуть дальше. есть, их рано или поздно найдут. В принципе все понятно:
код открыт, просмотреть его может любой, а значит, спря-
Вот в итоге и получается, что «червь Conficker по-преж- тать что-то тяжело. Кроме того, в Open Source приходится
нему опасен» (с) Microsoft [10], а ведь вирус не молодой держать марку, так как плохой код будет виден, что может
– в ноябре ему уже будет пять лет. Интересно, что  среди сказаться на репутации проекта.
продуктов, имеющих уязвимости «нулевого дня» (т.е. те, ко-
торые хакеры уже используют, а разработчики еще о ней Как бы там ни было, в открытых проектах пишут хорошо,
и  знать не знают), судя по отчетам последних лет, нет что подтверждает отчет тестинговой компании Coverity, кото-
Open Source-решений. А вот по Windows ситуация такая. рая начиная с 2006 года совместно с американским Отделом
«По  сравнению с другими операционными системами национальной безопасности проводила исследования ПО
у продукта от компании Microsoft их было найдено больше с открытым и закрытым исходными кодами. По результатам
всего. Причем линейка ОС Windows держит лидерство как 2011 года оказалось, что открытый исходный код как мини-
в общем зачете (92 уязвимости), так и в индивидуальном – мум не уступает по качеству проприетарному [11].
только у этих ОС в отчетный период было обнаружено две
критические уязвимости». При этом важное замечание име- Но у противников здесь свой аргумент: даже небольшая
ет то, что «При учете уязвимостей во внимание не принима- программа может иметь тысячи строк кода, а поэтому най-
лись уязвимости в ПО сторонних производителей». Этот от- ти закладку или ошибку просто невозможно, это все равно,
чет немного не соответствует [2]. Какой более правильный?

Рисунок 1. Статистика использования ОС на ПК по версии Netmarketshare Рисунок 2. Отчет Secunia по уязвимостям Windows 7

98 январь-февраль 2021 системный администратор


Click to View FlipBook Version