Ломаем стереотипы: 15 вопросов архитектору Linux

24/6/2024

Содержание:
Кто такой архитектор Linux и умеет ли он, как в фильмах, писать крутые программы за пару часов? «Компьютерра» взяла интервью у Леонида Кантера, архитектора по интеграции ОС «МСВСфера» от «Инферит».

Наш эксперт - Леонид Кантер, с 1996 собирал один из первых русскоязычных дистрибутивов — Black Cat Linux. С 2000 по 2009 занимался разработкой российского дистрибутива ASPLinux. С 2009 по 2023 работал в компании CloudLinux Inc, из них 2016-2022 — в должности IT-директора. Опыт работы с Linux более 25 лет. В 2023 году присоединился к вендору «Инферит» в команду «Инферит ОС» в качестве архитектора по интеграции ОС «МСВСфера».

Разговор затронул тему универсальности Linux, его присутствия в повседневной жизни — от смартфонов до суперкомпьютеров. Погрузимся в историю и узнаем, как выглядели операционные системы 30 лет назад и как Linux может стать ведущей ОС в России с уходом Microsoft с этого рынка.

— Архитектор Linux — кто это?

Архитектор — это должность человека, который определяет архитектуру продукта от его внешнего вида до функциональности. В том числе и такого продукта, как дистрибутив Linux. Моя должность полностью называется «Архитектор интеграционных проектов», в команде отвечаю за интеграцию нашего продукта, дистрибутива ОС «МСВСфера» от «Инферит», с программным обеспечением других отечественных разработчиков. То есть, фактически, отвечаю за его совместимость с имеющимися программным обеспечением, с которым предстоит работать нашим потенциальным пользователям и заказчикам.

— Linux для всех или для избранных?

На нынешнем этапе развития Linux можно смело говорить, что он для всех. И для офисной работы, и для игр, и для просмотра фильмов и прочих развлечений — он подходит практически для всего. Все наши привычные устройства, начиная от wi-fi роутеров и смартфонов на Android, имеют как минимум ядро Linux. Его же имеет множество других устройств, которые не видим. Например, абсолютное большинство веб-сайтов крутятся на Linux. Все суперкомпьютеры из топ-500 самых мощных систем мира работают под управлением Linux, и ни одной другой ОС в этом списке нет. Доля Linux на рабочих станциях выросла за прошлый год. По данным Starcounter в марте 2024 года она составляла 4%. В связи с уходом компании Microsoft с российского рынка и отсутствием альтернатив у Linux есть все шансы стать ведущей операционной системой в России. Если еще не знакомы с Linux, предлагаю начать знакомство с ОС «МСВСфера» от «Инферит». Версию для домашнего использования можно скачать бесплатно по ссылке.

— Что такое дистрибутив Linux?

Слово «дистрибутив» происходит от английского  distribute — «распространять», то есть дистрибутив — это средство распространения операционной системы Linux, которое представляется в виде загрузочного носителя. Сейчас основной способ распространения — это образ CD-ROM, который записывается на USB-флеш-накопитель. Как правило, дистрибутивы Linux включают в себя обязательный компонент — это ядро Linux, а также набор программного обеспечения, системные библиотеки (основная системная библиотека называется glibc) и прочие библиотеки, которые нужны для работы прикладного софта.

Если это серверный дистрибутив, то он включает в себя набор серверных компонентов, таких как веб-сервер, сетевые сервисы dns, электронная почта, файловые серверы, также он может включать в себя контроллер домена Windows.

Если это дистрибутив для рабочей станции, то он обязательно должен включать в себя окружение рабочего стола (например GNOME, KDE, Mate и другие), а также набор прикладных программ, таких как веб-браузер, офисный пакет, мультимедийный проигрыватель, почтовая программа, календарь и так далее.

Совокупность всех этих приложений и сервисов и является дистрибутивом Linux.

— Чем дистрибутив Linux отличается от дистрибутива Windows?

У этих дистрибутивов есть как общие черты, так и отличия. К общим чертам относится то, что и дистрибутив Windows, и дистрибутив Linux можно загрузить с установочного носителя и установить на компьютер или сервер. Отличия существуют в начинке. Например, в формате исполняемых файлов — у Windows это exe, а у Linux это elf. Отличается и модель разработки: Windows разрабатывается монопольно компанией Microsoft, а Linux — сообществом. При установке операционной системы Windows в ее дистрибутивном диске поставляется минимальный набор приложений. После установки Linux можно подключить репозитории, которые содержат огромное количество приложений, в том числе распространяемых бесплатно. В целом, установив Linux, вы получаете возможность прямо из коробки, не тратя дополнительных средств, получить более широкий функционал, чем в случае установки Windows.

Еще хотелось бы подсветить такое отличие, как наличие в Linux развитого управления программными пакетами. На английском это называется package management. В Windows, если установить штатными средствами  программу, совсем не очевидно, какие файлы приходят с этим пакетом, какие изменения он делает в системе, что происходит после удаления. Как правило, после удаления ПО в Windows остается множество «хвостов», от файлов до записей в реестре. То есть в Windows практически невозможно, после удаления какого-то софта, получить такую же систему, какой она была до установки этого пакета.

В Linux все намного проще. Одной командой можно легко просмотреть состав пакета, узнать, какие скрипты выполняются до установки и после установки. Если этот пакет сам не дочистил «хвосты» после удаления, можно легко получать информацию о том, что именно нужно дочистить чтобы вернуть систему в исходное состояние, в котором она была до установки этого пакета. Кроме того, в пакетном менеджере RPM, который используем, есть средства проверки целостности файлов пакета, то есть пакет RPM содержит информацию о контрольных суммах всех файлов, которые входят в этот пакет. При установке пакета эти контрольные суммы попадают в системную базу. И если у администратора возникает подозрение, что файлы могли быть изменены, то можно одной командой «rpm -V имя пакета» пересчитать все контрольные суммы этих файлов и сверить их с эталоном. Если выяснится, что какой-то исполняемый файл был изменен или подменен, то можно просто переустановить этот пакет, и целостность системы будет восстановлена.

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

— В чем секрет успеха Linux?

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

— Чем дистрибутив Red Hat отличается от дистрибутива Debian?

Я бы назвал два основных отличия. Первое — это пакетный менеджер. Red Hat Enterprise Linux (RHEL) использует пакетный менеджер RPM, который изначально назывался Red Hat Package Manager. Потом он стал расшифровываться как просто RPM Package Manager, потому что стал использоваться большим количеством дистрибутивов помимо RHEL, и стал развиваться уже не только самой компанией Red Hat. Debian использует другой формат пакетов, они называются deb пакеты, а утилита для их доставки — APT (Advanced Packaging Tool). Это их отличия с технической точки зрения.

С организационной — RHEL разрабатывается внутри одной компании. Сначала это была просто компания Red Hat, а сейчас это подразделение компании IBM, то есть мы говорим о коммерческом дистрибутиве. Debian разрабатывается некоммерческой организацией Debian Foundation, и, в основном, он развивается сообществом энтузиастов.

Debian содержит огромное количество пакетов. Их намного больше, чем в RHEL, и они имеют достаточно высокое качество сборки. Отличие Debian еще в том, что он поддерживает намного больше аппаратных архитектур, чем RHEL. Cейчас Debian поддерживает около десяти аппаратных платформ. Эта открытость Debian привела к тому, что на его основе образовалось огромное количество производных дистрибутивов, самыми известными из которых являются Ubuntu, Linux Mint, а также есть и отечественные дистрибутивы, которые тоже базируется на Debian.

С другой стороны, так как компания Red Hat нанимала многих ведущих разработчиков открытых проектов, многие ключевые компоненты операционной системы Linux (такие как glibc, система инициализации systemd и так далее) разрабатывались в первую очередь в Red Hat, и именно из него попадали в другие дистрибутивы, в том числе и в Debian. Это позволяет считать, что RHEL является своего рода первоисточником многих ключевых компонентов дистрибутивов Linux.

Поскольку дистрибутив RHEL разрабатывается коммерческой организацией, он ориентирован на крупный бизнес и государственные структуры и старается соответствовать всем критериям безопасности для прохождения соответствующих сертификаций и проверок. Его изначальная ориентированность на корпоративный рынок и на тех, кому важно соответствовать строгим требованиям безопасности, сподвигнула нас выбрать именно этот дистрибутив за основу для нашего продукта — операционной системы «МСВСфера» от «Инферит».

— Linux 30 лет назад и Linux сейчас – есть ли различия? Что изменилось за 30 лет?

Изменилось многое. Я начинал пользоваться Linux, когда еще не существовало Windows 95, был только Windows 3.1. На тот момент разница была просто космическая. Windows 3.1 казался чем-то очень примитивным, в нем даже не было нормальной поддержки сети TCP/IP, она была только в Windows 3.11 для рабочих групп. Linux выглядел намного более интересным, потому что в нем была встроена полная поддержка всех интернет технологий, были доступны любые средства программирования и разработки. Даже графика работала намного лучше и профессиональнее. Но когда вышел Windows 95, ситуация изменилась. Разработчикам Linux пришлось догонять и адаптироваться к новому интерфейсу Windows. Началась своеобразная гонка, и она шла с переменным успехом. Сейчас современные графические среды в Linux предоставляют намного больше возможностей для настройки интерфейса под себя. Можно создать любую компоновку линуксового десктопа: меню как в Windows 10, или док как в Mac OS, или вообще что-то свое. Кнопки управления окнами, заголовки, цвета, и так далее — таких возможностей настройки очень много, можно нарисовать что угодно. Что касается приложений — имеющегося набора ПО для Linux на текущий момент более чем достаточно.

— Если бы вы встретились с Л. Торвальдсом, что бы вы у него спросили?

Линус Торвальдс более 10 лет назад издал книгу «Just for fun» — биографический рассказ прародителя операционной системы Linux. В ней можно найти ответы практически на все вопросы, которые хотелось бы ему задать.

— Вы умеете, как в фильмах, писать крутые программы или приложения за пару часов? Какие качества нужны, чтобы собирать дистрибутивы Linux? Это сложнее, чем писать программы, или нет?

Я не программист. Начинал как системный администратор, потом был IT-менеджером, много лет занимался сборками дистрибутивов — программистом меня сложно назвать.

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

Я видел не менее десяти разных дистрибутивов Linux, включая производные. Самым первым был Slackware, потом появился Red Hat и Debian.

— Вы долго учились, чтобы стать инженером Linux?

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

Сейчас есть много аналогов, есть на что посмотреть. Самый простой способ — это взять готовый дистрибутив, поменять ему название в нескольких местах, добавить ему «нескучные обои» (прим.: мем с сайта linux.org.ru) и сказать, что это новый дистрибутив. Но собрать новый дистрибутив — мало, нужно позаботиться о том, чтобы людям было удобно на нем работать, сложилось сообщество. Создать операционную систему несложно, сложно ее сопровождать, поддерживать и развивать, поэтому приходится много работать над тем, чтобы отличаться от других дистрибутивов не только «нескучными обоями», но и другими функциями, которые принесут ему популярность и расширят круг пользователей.

— У вас есть команда? Какие роли есть в командах Linux?

В нашей команде разработки операционной системы «МСВСфера» от «Инферит» есть самые разнообразные роли. Есть программисты, devops и системные администраторы, которые отвечают за инфраструктуру. Есть специалисты, которые занимаются сборкой пакетов и обслуживают сборочную систему. Есть тестировщики, которые проверяют готовый продукт. Есть  переводчики, потому что локализация интерфейса отдельных пакетов — это отдельная большая работа, а  также технические писатели, которые готовят документацию, и специалисты по внедрению.

— Что такое ядро операционной системы? Может ли оно выстрелить?

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

Ядро уже выстрелило в 1991 году — и получился Linux. А запустил это ядро Линус Торвальдс.

— Линукс это только для работы или для повседневной жизни?

Я использую Linux как основную операционную систему на домашнем компьютере уже 30 лет и чувствую себя в нем комфортно. У меня есть ноутбук с двойной загрузкой, на котором стоит Linux + Win. Я иногда загружаю Windows, чтобы посмотреть, как там что-нибудь реализовано. Остальное время я провожу в Linux. У меня есть много знакомых, которые не являются IT-специалистами и тоже используют Linux как основную операционную систему для решения различных задач, начиная от подготовки офисных документов и заканчивая профессиональным видеомонтажом. В состав дистрибутива ОС «МСВСфера» от «Инферит» мы также включили набор ПО, который поможет в решении ваших задач.

— Эквивалентны ли приложения для Linux и Windows?

Мы живем в такое время, когда многие приложения разрабатываются параллельно для Windows и Linux и имеют абсолютно одинаковый функционал. В первую очередь, это браузер — Firefox, Google Chrome, Яндекс браузер, даже Microsoft Edge есть для Linux и имеет практически такой же функционал как для Windows. Microsoft Office для Linux не существует, но для работы с документами есть альтернативы — LibreOffice, например, собирается и для Linux, и для Windows. Один из самых популярных видеопроигрывателей VLC тоже выходит одновременно для Windows и Linux. Можно назвать огромное количество приложений, которые собираются одновременно для обеих операционных систем.

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

— Приходилось ли вам чинить компьютеры?

Когда-то мне приходилось не только чинить, но и собирать компьютеры «с нуля». Первые компьютеры на восьмиразрядном отечественном процессоре собирал, когда был еще студентом второго курса. Потом была постройка ibm-совместимого 16 разрядного компьютера на базе процессора 80-86 тоже отечественного аналога. Приходилось ремонтировать все компьютеры, прокладывать локальную сеть, когда руководил офисом в Донецке. Практически все свои настольные компьютеры собирал сам из различных запчастей. Ноутбуки, естественно, покупались, но в них тоже бывает интересно «поковыряться». Последнее, что делал с ноутбуком — устанавливал в Lenovo ThinkPad модули считывания смарт-карт и модуль NFC. Расширил заводскую комплектацию при помощи компонентов, закупленных на Aliexpress.

Оригинал статьи в журнале Компьютерра

Рекомендуем

Инферит ИТМен

Как крупному бизнесу выбрать систему инвентаризации

Крупному бизнесу с разнородной ИТ-инфраструктурой, более 20 000 устройств в парке и строгими требования ИБ, не так просто выбрать систему для инвентаризации. В статье директор продукта «Инферит ИТМен» Василий Гурьев собрал реальный опыт по внедрению такого ПО в больших компаниях и рассмотрел 7 основных критериев, которые помогут бизнеса уровня Enterprise избежать серьезных ошибок и лишних расходов.

Читать

Инферит Клаудмастер

Как приручить облачного зверя: раскрываем тему FinOps

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

Читать

Инферит Облако

Погубят ли отраслевые облака привычные решения?

«В изданиях уровня Forbes хорошим тоном считается предрекать забвение привычных облачных платформ. Якобы на их место придут отраслевые решения, и вот тогда все заживут счастливо. Поделюсь мнением, почему это не так, как минимум в России», - Виталий Ранн, директор по продукту «Инферит Облако».

Читать