8 сезон · выпуск 6 · 27 октября 2022 · 44 мин
От ЗАГСов до всех телефонов на Android. Как Linux стал использоваться везде
Слушать · 44:13
В 1991 году Линус Торвальдс учился в университете и захотел исправить недочеты в учебной операционке. Так появилось ядро Linux. Спустя 30 лет Linux насчитывает миллиарды пользователей, и почти все устройства, которые нас окружают, используют разработку Торвальдса под капотом. Разбираемся, как Linux прошел этот путь вместе с Георгием Курячим, разработчиком российского дистрибутива Linux.
Реклама. Бесплатный курс по подготовке к алгоритмическому собеседованию от Яндекс Практикума: https://clck.ru/32S23E
Сcылки
YouTube-канал записей лекций Георгия: https://www.youtube.com/channel/UC6m3WI2mgZLj3LgNYWQNH6g
Сайт UNИX: https://uneex.org/MainPage/
Сайт сообщества ALT Linux Team: https://www.altlinux.org/
Сайт компании «Базальт СПО»: https://www.basealt.ru/
Упомянутые книжки
Just for Fun: The Story of an Accidental Revolutionary: https://www.amazon.com/Just-Fun-Story-Accidental-Revolutionary/dp/0066620732/
Русский перевод этой книги: http://lib.ru/LINUXGUIDE/torvalds_jast_for_fun.txt
FreeBSD Handbook: https://docs.freebsd.org/en/books/handbook/
Подписаться на «Запуск++» в Телеграме: https://t.me/+N_AopnXC0dBkMGQy
Подписаться на Либо/Либо+ в Телеграме, куда включены эпизоды «Запуск++»: https://t.me/+LXZx5JRqO4o0MjJi
Партнер этого подкаста — Яндекс Практикум. https://practicum.yandex.ru/
Над выпуском работали
- Редакторка
- Маша Агличева
- Продюсерка
- Настя Медведева
- Звукорежиссер
- Юра Шустицкий
- Дизайнер обложки
- Петр Сутупов
Транскрипт
Самат Галимов, Гоша Курячий · расшифровано автоматически, ошибки возможны
-
Всем привет! Самат Галимов, и это подкаст «Запуск завтра». Как технический директор я пытаюсь разобраться, как устроены сложные и интересные штуки. Я зову профессионала, с которым можно поговорить простым человеческим языком. Сегодня мы поговорим об операционной системе Linux. Когда говорят «операционная система», вы, наверное, представляете себе Windows, его меню пуск, или macOS, если вы пользуетесь техникой Apple. Linux представляется таким нишевым решением для технарей, часто еще говорят красноглазиков. На самом деле это не так. Linux работает на миллионах, если не на миллиардах устройств по всему миру. Например, каждый телефон на Android под капотом использует ядро Linux. Или, например, домашние Wi-Fi-точки, которые раздают дома интернет. Почти все они работают на Linux. Что это за программа такая, которая началась как студенческий образовательный проект, а сегодня стала незаменимой частью нашей современной жизни, мы сегодня разберемся. Это подкаст студии Либо-Либо, и мы его сделали вместе с сервисом онлайн-образования Яндекс Практикум. У Практикум есть курсы не только для начинающих, но и для опытных разработчиков. Например, если вы устраивались на работу программистом, то наверняка сталкивались с алгоритмическими собеседованиями. Это когда программисту для устройства на работу нужно решить какие-то сложные алгоритмические задачи. Большинство программистов не используют эти алгоритмы в работе каждый день. но их все равно часто проверяют на собеседованиях. Специально для таких случаев практикум сделал 10-часовой бесплатный курс. Там вы разберетесь в теории и попрактикуетесь на конкретных задачках. Этот курс подготовили опытные разработчики, которые не только сами проходили подобные собеседования, но и собеседовали других. Ссылка в описании к этому эпизоду.
-
Привет, меня зовут Гоша Курячий, я работаю в компании Basalt SPO, которая занимается российским дистрибутивом Linux, и преподаю в Московском государственном университете.
-
В каком году появился Linux и кто его создал?
-
Простой финский парень Linus Torvalds делал курсовую, что ли, и у них в качестве объекта для изучения была такая учебная операционная система, написанная Эндрю Таненбаум (Andrew Tanenbaum), которая называлась Minix. И Linus не понравилась там, по-моему, по началу файловой системы. И он её переделывал. Припиливал, значит, свою нормальную файлосистему к Minix, назвал её расширенной файлосистемой, вот это всё. Причём поначалу это было такое пользоваться для себя, Линус хотел. А потом уже, значит, когда это стало технологически завоёвывать какие-то пространства, понятное дело, тут пришли уже заказчики, сказали, ребята, вот давайте.
-
Что значит «припиливал»? Он был студентом, и у него был исходный код этого Minix.
-
Да, но ничего, так сказать, кроме учебных проектов делать на ней нельзя.
-
И Линус к ней допилил сначала одну штучку, потом вторую, и постепенно перепилил, всё получается, ну большую часть.
-
А потом в какой-то момент до него дошло, Диму товарищи говорят, научник (научный руководитель), он говорит, чувак, ты делаешь операционную систему новую, зачем тебе вообще этот Миникс, у тебя будут проблемы с лицензией. Давай, делай ядро на свободной лицензии, ну он и сделал.
-
Какие операционные системы были популярны в тот момент, это начало 90-х?
-
Ну, там была история такая, что поначалу же, условно, 70-80-е годы операционная система – это же operating system, это систематизация операций с компьютером. То есть, это такой способ превратить компьютер, как какой-то чёрный ящик, в нечто удобное, ну или, скажем так, пригодное для использования покупателя этого компьютера. Поэтому компьютеры строились там 5 лет, все поры. И операционные системы, operating system, инструкции по эксплуатации, грубо говоря, строились с ними тоже пять лет. Поэтому вот сказать, что операционных систем было много разных, ну, сколько компьютеров примерно. За двумя, возможно, тремя исключениями. Главным исключением был, конечно, системы гнезда Unix, которые были созданы по академической технологии. И к 90-му году уже довольно большую силу набирал Windows, в первую очередь, прям вот исключительно в эту как-то систему для рабочих столов, для десктопов, потому что в 80-е годы появилось очень много потребителей компьютеров, которые вообще не бум-бум, и вся эта operating system, т.е. инструкция по эксплуатации компьютера, филькина грамота, им нужны были applications, т.е. им нужно было сесть, и свою прикладную область в своем прикладном окошке порешать. И аналитики Микрософта очень быстро сообразили, с какой стороны бутерброды масляные, и ворвались на этот рынок прямо в 80-е годы. Параллельно с этим совершенно отдельно существовали маки со своими операционными системами, в смысле Apple и Macintosh. Они продолжали исповедовать идею, компьютер строится, операционная система строится к нему. Ну и на те поры, в 90-е годы, было ещё довольно много всяких экспериментальных операционных систем разной степени успешности. Все они умерли.
-
Окей. Значит, есть Unix, пришедший из академических лабораторий Bell Labs и подобных. Есть Windows, который уже сам набирает популярность, и он нужен для нормальных людей, которым нужно Excel запустить. И есть Mac, который живёт своей жизнью. Это условно.
-
Ну, если очень грубо, то так, да.
-
Это начало 90-х. Как Линус поделился своей операционкой с миром? Вообще, как ты ей делился, как она вышла в мир?
-
Где-то в 91-м году он уже переделал планировщик, переделал терминальную систему, переделал то, переделал всё, и вот, по-моему, в 91-м он уже... Было сообщение, что, мол, смотрите, я такое ядро написал операционной системы. Штуку, вокруг которой можно путём добавления всевозможных приложений и служебных утилит сделать настоящую операционную систему. И, соответственно, в специфическом списке рассылок, это, кстати, до сих пор один из основных информационных инструментов общения сообщества, это список рассылки почтовой. И начался жизненный путь Линукса именно со сообщения, что вот, ребята, я зарелизил ядро операционной системы, по версии 1 можно пользоваться, пользуйтесь, но это еще далеко не операционная система.
-
Это начался как проект, который человек, который хочет разобраться в операционках, сделал что-то, потому что ему интересно. Прошло 30 лет. Что с линксом сегодня, где он используется? Можешь просто масштаб как бы... Масштаб везде.
-
Ну то есть есть такой южноафриканский миллиардер, Марк Шаттлворт (Mark Shuttleworth). Да, Марк Шаттлворт (Mark Shuttleworth). Так вот этот самый Марк Шаттлворт (Mark Shuttleworth) в свое время, когда он затеивал пафосный проект под названием Ubuntu Linux, он завел в системе отслеживания ошибок багу, ну ошибку, в которой написал «нужно достичь мирового господства». И она там висела у них. Короче, он ее, эту багу отметил как по фикшену, когда вышел Android, потому что все устройства с Android, они на ядре Linux. Вообще все. Я больше того скажу, домашние мыльницы, которые маршрутизаторы, они тоже на ядре Linux за очень малым исключением.
-
Wi-Fi-точки вот эти.
-
Да. Значит, по количеству инсталляций ядра операционной системы, похоже, Linux сейчас вообще первый в мире.
-
И мне кажется, каждый человек на планете так или иначе является пользователем Линукса, просто может об этом не знать.
-
Да, вот. Если опять-таки речь идёт не о дистрибутиве, не о операционной системе, не о вот этом самом Operation System, а именно о чём-то под капотом, в который мы тыкаем, в общем, не разбирая.
-
Хочется погрузиться в кишки, как Linux устроен изнутри, но при этом остаться живыми. я Линус. Что мне нужно запрограммировать, чтобы создать свою операционную систему?
-
Ну, что такое операционная система? Операционная система— это инструмент трёх направлений. Все три направления про ресурсы компьютера. Это инструмент унификации, разделения прав и учёта ресурсов компьютера. Под ресурсами компьютер при этом понимается, память, процессорное время, внешние устройства, устройство передачи данных, всё. Собственно, operating system как таковой – это попытка как-то случайно самопроизвольно сложившийся компьютер передать в пользование человеку, который хочет им воспользоваться. Для этого нужна унификация, чтобы всё, что ты делаешь с компьютером, никак или почти никак не зависело от той железки, с которой он сделан. Это унификация. Разделение доступа нужно для того, чтобы случайно или намеренно те приложения, которые эксплуатируются в рамках операционных систем, друг другу не навредили, а учет нужен примерно для того же, но с другой стороны, чтобы не получилось так, что случайно или намеренно все ресурсы забрало себе одно из приложений, и никто этого на постоянке заметить не может.
-
То есть операционная система— это такая прокладка между железом, который у меня работает, и между программами, которыми я пользуюсь каждый день. Эта операционная система как раз соединяет, делает так, чтобы эти программы нормально работали на моем железе и не задумывались о том, какой конкретно у меня модель компьютера или что там делают соседние программы.
-
Да, это, кстати, относительно недавнее открытие, ему тоже лет 30 примерно, сколько Линуксу. Но до этого операционные системы были именно что-то такое инструкции по эксплуатации конкретного железа. А вот в какой-то момент, еще во времена Unix-систем, пришла идея кросс-платформенности, когда, собственно, ядро операционной системы – это привязка того, что мы понимаем под операционной системой, к железу, а дальше операционная система – это та самая прокладка, от которой ты говоришь. Всё, пользователь операционной системы просто тыкает в заранее задокументированные возможности и получает результат.
-
Ты упоминал какие-то части операционной системы. Я вот себе очень грубо так представляю, поправь, если я не прав, что операционная система состоит из ядра, которые делают какие-то самые системные штуки. Да, потом есть драйверы, которые отдельные могут быть для каждой железки. Их там много разных, потому что много разных железок на свете. И есть программы условно, то, что называется User Space, обычные программы, которым пользуются обычные люди. Условно Excel, WhatsApp и тому подобное. А, еще есть GUI, графический интерфейс, внутри которого обычный пользователь живет и может пользоваться.
-
Ну, это напоминает слегка усещенную классификация китайских животных по Борхесу. Насчет основного разделения действительно на User Space и Kernel Space, то есть на ту часть программного обеспечения, которая не обращает внимания на разделение учетов и бла-бла-бла ресурсов. Которая сама этим разделением и учетом занимается.
-
А, это как раз и Kernel Space.
-
Да-да-да. И то, которое подчиняется этому разделению учёта, это как раз юзерспейс. В основном разницы между ними нет. С одной стороны, понятно, какие-то вещи очень удобно реализовывать в kernel space, в том числе вещи случайные, например, управление каким-то экзотическим внешним устройством. И мы получаем вот эту вторую твою категорию, то, что ты назвал драйверы. То есть, ситуация, когда у нас ядро находится в памяти постоянно, а вот к нему ещё можно прилепливать какие-то дополнительные, туда, прямо в ядро, дополнительные функциональности, чтобы там, ну, не знаю, заработал видеокамера какая-нибудь. И в этом смысле понятие драйвер очень такое мутное, потому что драйвером может являться код прямо в ядре, драйвером может являться модуль, драйвером может являться программа, запускаемая уже в юзерспейсе, которая что-то обслуживает, драйвером может являться просто конфигурационный файл к уже имеющимся функциональностям. А вот что там дальше творится в юзерспейсе, вопрос сложный, потому что это вопрос, собственно, того, как будут эти операционные системы пользоваться. Вот когда-то на тех лекциях, на которых ещё ты был, там была такая архитектура цветочка, если помнишь. То есть там пестики или тычинки, короче, серединку, ромашки, был внешний слой то, что называлось демоны, системные службы, то есть, это такие функциональности операционной системы, которые тоже примерно всегда присутствуют, а ты к ним ходишь и говоришь, дорогой демон, слово демон, кстати, неправильный перевод с греческого слова diamond, американские программисты не отделяли одно от другого, а diamond – это платоновская такая штука, это такой дух, который вечно с тобой, но ничего не делает сам, не проявляет активности, пока ты к нему не обратишься. Вот эти самые демоны, которые юнюксовые, они примерно так устроены. То есть это службы, которые выполняют некоторую функциональность. Вот, например, обслуживают принтер. И это часть операционной системы, потому что тебе нужно, чтобы твой компьютер не просто печатал, допустим, ты бросил 10 документов, а он их там по очереди распечатал, не перемешал странички. Но при этом это уже программная часть, то есть она вся в юзерспейсе, она вся совершенно отдельно, ее можно поднять, опустить, вот это все. Дальше есть какие-то инструментальные штуки, которые обычно называются утилиты. Это следующий такой венчик этого цветочка. Это штуки, которые ты дёргаешь, когда тебе нужно решить какую-то небольшую подзадачу. В случае Linux системно-следующих идеологий Unix это очень важный слой, потому что их можно объединять, делать из них композицию, и фактически таким конструктором очень большой класс больших задач решается. Ты можешь просто взять несколько утилит, написать shell script, то есть написать сценарий. вызвать одну утилиту, по результатам её работы другую, обработать третий, бла-бла-бла-бла-бла, и получится результат. У меня есть такой грешок. И последнее, собственно, те самые пользовательские приложения, которые, в общем, задействуют всю вот эту машинерию, надеются на её существование, т.е. они aware of, они знают, что есть весь этот цветочек. Но их задача – пользователю прикладному показать прикладную его среду, обеспечить ему интерфейс, вот это всё. Какой будет этот интерфейс? Графический, текстовый, ещё какой-нибудь, не знаю, сенсорный? Вопрос, в общем, третий. Другое дело, что вот в силу того, что ведущая модальность у большинства людей зрительная, графический интерфейс, и зрительный поиск как один из способов решения прикладных задач, он рулит. Поэтому GUI часто считается составной частью операционной системы.
-
Мог ли Linux пользоваться программами, которые уже существовали в тот момент в других Unix-ах? Например, PoE к файлам, текстовые редакторы. Он мог комбинировать свое ядро с этими программами или нет?
-
В этом и была идея. К моменту появления Linus на этом поле уже с лицензионной чистотой. И сообщества, которые занимались разработкой там когда-то академической, они, собственно, переключились идеологически именно на то, что называется, открытую разработку под свободной лицензией. Буквально в тот же год Патрик Волкердинг (Patrick Volkerding), Тоже делал свою курсовую или дипломную, ему научник сказал, ну смотри, видишь, какая клёвая перспектива, ты можешь взять свободное ядро, свободный Toolchain, то бишь инструменты разработки от GNU, ещё кое-какие, значит, там накидать программы, у тебя получится прямо операционная система, которую можно поставить, и она будет работать. Ты представляешь? Тот говорит, представляю. И сделал. И через год ему пишут, Патрик, новые версии вышли. Линус добавил фичи в ядро. Где твой дистрибутив?
-
Давай.
-
Тут Патрик понял, что попал. Он до сих пор существует, свои слакварию. Чуть ли там их не в одиночку делает. Именно поэтому его в сообществе зовут The Man.
-
Ты упомянул гну. Что это такое?
-
Гну— это сообщество хакеров. В понимании слова «хакерство» сугубо американскому, сугубо рубежа 80-90-х годов. То есть это не взломщики, а именно компьютерно неориентированные люди.
-
Нерды.
-
Ну да-да-да, вот такие вот нерды, да. Один из главных деятелей всего этого движения и довольно известный чувак в мире, Ричард Столман, он же РМС, как раз и стоял у истоков GPL, которая даёт хакеру свободу действий, потому что запрещает любому человеку, который воспользовался, значит, этим кодом, запрещает как бы закрывать его. То есть фактически принуждает к сотрудничеству.
-
Значит, вот был Линус, студент, который переписал Minix и сделал своё собственное ядро. Параллельно с ним в Америке был Ричард Столман и Ко, которые делали маленькие программки-утилитки.
-
Ну как маленькие, например, компилятор C, да?
-
Окей, сорян. Беру свои слова обратно. Они делали средний уровень между ядром и обычным программами, которые пользуются обычные люди. Вот Toolchain— инструменты разработки. Почему они делали эти инструменты разработки отдельно? Ведь все эти инструменты уже были сделаны в 80-е и в 60-е, когда делали Unix.
-
Так вот ровно поэтому, вернее, даже по двум причинам. Причина первая – они лучше знали, как надо, потому что, напоминаю, вот эти пятилетние циклы разработки, IT стала стремительно бежать вперёд, и всё, что было сделано пять лет назад и с тех пор не модифицировалось, устаревший шлак. Это во-первых. Во-вторых, большая часть этих инструментов и не являлся BSD-шным, было вполне себе закрытым, этим воспользоваться было нельзя. Нужно было разработать именно полный комплект под свободной лицензией. Вот у нас есть комплект инструментов разработки можно разработать. Под винду даже есть.
-
Обычно, когда говорят инструменты разработки, я себе представляю текстовый редактор современный, продвинутый. А что имелось в виду вот в проекте GNU? Что значит инструменты разработки?
-
Ну, во-первых, там был текстовый редактор, который назывался Emacs, про который злые языки шутят, что это очень хорошая операционная система, прекрасный файловый менеджер, отличный броузер, только вот текстовый редактор странненький. Тем не менее, он реально был в течение десятилетия примерно вообще несравним ни с чем по мощности. И тот же самый Столман его делал. Разумеется, компилятор C, разумеется, компоновщик, разумеется, сопутствующие утилиты по анализу и модификации бинарников. Разумеется, отдельно работа с файловой системой, с уровня уже унифицированного.
-
То есть это поиск, например.
-
Да, например, поиск. Разумеется, работа с текстом, что очень важно для юникс-ориентированных систем, где весь вывод текста и, соответственно, решение прикладной задачи.
-
строчки, пересчитать и тому подобное.
-
Да-да-да, там выковырять из них кусочки, да, вот это всё. Что там ещё? Работа с процессами, ну и подобные части, которые как раз, если вот так призадуматься, и представляют собой, ну, скажем так, командный интерфейс к ядру операционной системы. Всё, что может ядро, ты можешь, например, написать программу носить, ею воспользоваться, а вот этот самый комплект, который предоставляет GNU, это и есть такие программы носить.
-
Окей, значит у нас есть ядро, которое написал Линус, у нас есть инструменты разработчика, которые сделала команда GNU во главе со Столманом. Но когда я себе представляю Windows или Mac, например, то это гораздо больше, чем просто ядро и инструменты разработки. Например, графический интерфейс, калькулятор, блокнот для заметок, видеоплеер. Короче, миллион каких-то маленьких программ, которые тоже, я считаю, часть операционной системы. Откуда они берутся в Linux?
-
Поскольку мы имеем дело со свободно лицензируемым и открыто разрабатываемым программными продуктами, то любой открыто разрабатываемый и свободно лицензируемый программный продукт может быть, то, что называется, собран, то есть скомпилирован из исходных кодов, превращен в приложение на базе ядра Linux. Получается такая штука, которая называется дистрибутив. Дистрибутив— это, собственно, с точки зрения линуксоида и около того— это набор программных продуктов для того, чтобы они хорошо работали в рамках конкретного сообщества, в рамках конкретных договоренностей относительно того, как устроен рабочий стол, как устроено ядро, как устроены файл-системы и так далее. В этом деле очень много стандарта, поэтому особых проблем для такой пересборки. Адаптации к конкретному окружению в общем нет. Проблема в основном в том, что хочет собственно сообщество, которое вокруг этого затусовалось. Классический дистрибутив содержит несколько тысяч таких программных продуктов. Тысяч. Основа для дистрибутива, называемый репозиторий, хранилище, содержит десятки тысяч таких программных продуктов. Каждый из них свободно лицензируемый. То есть у нас есть полное право делать копию этого продукта, модифицировать его код так, чтобы он работал в составе нашей операционной системы хорошо. То, что называется патчить. И распространять его безо всяких ограничений. Каждый из них. Все это такое. И вот тот факт, что вот это дальнейшее распространение улучшенных версий, оно не просто не запрещено, оно поощряется авторами, делает возможным такое вот существование. Когда мы набираем операционную систему, ту самую, о которой мы сейчас с тобой говорим, с графическим интерфейсом, с приложениями, со всеми делами, из конкретных источников различных, коих, как я уже сказал, порядка 20 тысяч.
-
Получается, что современная операционная система— это тысячи, если не десятки тысяч программ, которые работают вместе. В Линуксе это всё разобрано. В смысле, есть отдельный человек, который делает какую-то программу, отдельный человек, который делает ядро, отдельный человек, группа людей, которые делают какие-то инструменты. Но есть люди, которые дальше из этого собирают так называемые дистрибутивы, которые за тебя делают во многом этот выбор, набирают эти программы и делают какой-то... опыт, сколько таких разных дистрибутивов, чем они отличаются?
-
Их довольно много, но крупных не так много, особенно сейчас. Там была довольно забавная история. Количество дистрибутивов Linux внезапно, причем таких больших, взорвалось, то есть их стало очень много в момент, когда вышел Windows 95.
-
С чем это связано, я не понял.
-
Это связано с тем, что пользователь Windows 3.11, посмотрели на Windows 95, которая, во-первых, занимала в пять раз больше места, во-вторых, работала медленнее, в-третьих, имела какие-то неустранимые баги, потому что ребята торопились, в-четвертых, выглядела совершенно по-другому, начали подумать, а зачем нам вообще этот Windows? Может, еще что-нибудь попробовать? С каждым выходом винды, которая, значит, меняла интерфейс и при этом, разумеется, становилась во много раз медленнее, наблюдался взрывной интерес и продвижение, значит, пользовательской части, интерфейсной части Linux-дистрибутива. Windows 95, еще там все-таки Linux был достаточно маргинален. А первая большая волна пришлась на 2000-е годы, и там основную часть вот этих различных дистрибутивов, как ни странно, занимали национальные дистрибутивы. Русские, турецкие, французские, испанские, вот китайские. Дело было связано с тем, что формировались именно языковые сообщества вокруг соответствующего Линукса, и выяснялось, что там в случае... Ну, как бы переводить и переводить, да? Ну, кто будет переводить программу, которая обеспечивает софт для фермы разведения цветных ежей? Ну, кто его будет переводить на русский язык? Только российские люди по фану или потому что они ежеводы хотят внедрять, ну, что-то такое. И вот эти вот самые дистрибутивы национальные, они довольно лет за десять сошли на нет, коннективити (connectivity) и информационная связанность. И нет необходимости пилить свой собственный дистрибутив, если можешь перевести просто саму приложенку или интерфейс в той же Ubuntu. Так что на сегодняшний день, грубо говоря, существуют большие дистрибутивы, там, из большой пятёрки, они нужны просто для разных целей. То есть уже они диверсифицируются не по языковому принципу, а по принципу применимости. У нас, условно, есть Fedora и Red Hat, которые явно направлены на технологическую сторону, да, там работают многие разработчики того же компилятора. У нас есть, с другой стороны, Debian, GNU-Linux, который специально направлен на комьюнити, это такой полностью community-driven, community-based, там всё для сообщества, и все дисциплинарные решения как раз устроены. У нас есть, допустим, какой-нибудь Canonical и Ubuntu, которые фактически паразитируют на Debian, но на самом деле нифига не паразитируют, а как это? Сопрофитируют, да? То есть, дебиановскую базу для того, чтобы устраивать на этом коммерцию. И у нас есть другой вариант комьюнити-дривен-дистрибутива, условно Arch-Linux, который, наоборот, там никакой полисе. Ну, короче, туда просто прийти, просто что-то сделать, и оно у тебя будет работать полностью на твой страх и риск, коммунициализировать это довольно тяжело. Но в действительности, если сейчас пойти на сайт DistroWatch, мы увидим сотни дистрибутивов, просто их комьюнити, их скорость развития и их наполняемость очень разная. Зависит от цели. У больших дистрибутивов, таких как Fedora, Debian, да даже Ubuntu, есть очень много так называемых деривативов. То есть соблюдается сообщество, которое говорит, а мы сейчас сделаем Ubuntu, но с перламутровыми пуговицами. Или мы сделаем какую-нибудь фигню на... А, да, ну Slack есть, разумеется. Slackwire никуда не делся. Здравствуй, Патрик. Или мы сделаем на базе Slackware какой-нибудь Live CD, Live-образ и работать. Ну, вот такое. Или мы сделаем инструмент для тестирования безопасности. Назовем его Kali Linux. От богини Кали, значит.
-
Хакерский дистрибутив реально полезный.
-
Да-да-да. Только у них там, конечно, с сопровождением все ужасно. То есть, их много, больших мало. Кое-где остались национальные дистрибутивы, например, в России, потому что в России полным-полно национальных специфик. Представителем которого, кстати, являюсь, собственно, я. Я работаю в компании, которая занимается как раз конкретно российским Линуксом, сообществом линуксоидов.
-
Можешь, пожалуйста, рассказать, что это за дистрибутив, зачем ты его делаешь и чем он отличается от других?
-
Я когда-то на факультете, операционной системой гнезда BSD, в частности FreeBSD, но потом как раз на рубеже 2000-х стало приходить много Microsoft, и я так очень расстроился. Начал глядеть направо, глядеть налево, и внезапно мой студент говорит, а у нас тут есть такое совершенно безумное предприятие, и это, значит, русские люди пытаются сделать русский дистрибутив. Не хочешь ли туда пойти работать? Я подумал, а что, ну, Linux, что, ладно. Это был 2003, что ли, год? Ну, как обычно, купил чаю, печенек, пришел, значит. А там сидят два совершенно прекрасных чувака, Алексей Новодорский и Алексей Смирнов.
-
А зачем, погоди, зачем они собрались, зачем они начали делать свой дистрибутив?
-
А вот эта история такая. Это были как раз те самые 2000-е годы, те самые, когда произошел взрыв национальных дистрибутивов, переводных, ровно в тот самый момент. Они вышли на такой Mandrake Linux, изначально французский. Там очень интересный чувак во главе сообщества, до сих пор какие-то очень интересные штуки делают, делали. который в Mandrake Russian Edition. Они захотели выйти на русский рынок. Поскольку там их было двое, всего они сказали, ну, мы сами-то это не осилим, мы сейчас посмотрим направо, посмотрим налево. Они посмотрели направо, посмотрели налево, нашли команду, которая делала мобильную операционную систему вооружённых сил.
-
Что вообще?
-
Это тоже какой-то Linux, чтобы было понятно, только очень-очень древничный, которых там во время частично расформировали, люди оттуда поубегали. И, значит, довольно успешно сделали локализованный дистрибутив, но в этот момент они встретили ещё народ, в частности, нашего главного специалиста Диму Левина на выставке на какой-то, которым очаровала их идея, что мы сейчас сделаем вообще свой репозиторий.
-
Мандрых не нужен, сделаем сами.
-
Да. Ну, в смысле, не нужен. Он, конечно, нужен, но зачем нам Mandrake как инфраструктура? Мы сделаем сами инфраструктуру. Ну и уже через год был мейнтейнеры. Сам Новодорский собирал либриофис, как сейчас, помню, тогда еще open office назывался. Т.е. идея была такая, что начать, а там посмотри. Устроить такую, условно говоря, научную лабораторию, прокормить её, в общем, не так сложно. Ну, там взяли какого-нибудь iRU, поставили туда Linux в качестве базовой операционной системы. Понятное дело, что в те поры это была delete only операционная система, просто, значит, чтобы не ставить туда винду за деньги. Но они платили за каждый экземпляр, вот, пожалуйста. Поговорили с некоторыми структурами более серьёзными, например, с российской компанией информационно- внедренческие комплексы ВК. Те сказали, а нам нужен firewall. Но не такой вот ваш страшный линуксовый firewall с этими вашими командами ужасными, а с кнопочками. Ну, окей, сказали, мы сделаем. Нашли людей, которые там фронтендеров, нашли бэкендеров, сделали проект, который называется ИВК Кольчугу. Такой типичный академический способ. Вот есть лаборатории, на которые вышибаются гранты.
-
Окей. И там люди занимаются тем, что им нравится. Прошло почти 20 лет с 2003 года. Сколько людей пользуются этим русским Линуксом? Насколько он актуален? Чем занимается? Это всё ещё такая же лаборатория или уже что-то?
-
Не-е-е. Там, значит, за это время произошло много всяких эпопей с нами, с компанией. Сообщество называется AltLinuxTeam, а LT— это естественно рекурсивный акроним, который расшифровывается как AltLinuxTeam. И тогда же компания называлась тоже AltLinux, только русскими буквами. Нас всё время путали. Самый крупный проект был в 2008-2009 году, он назывался Пакет свободного программного обеспечения для образовательных учреждений России, и это был AltLinux чистой воды вот с нами сделанный. Под это компания очень сильно разрослась, потому что довольно большой фронт работ, этому предшествовали, в общем, очень смешные события конкурентного плана, но что-то такое мы сделали.
-
То есть вы пытались сделать операционную систему, которую бы устанавливали в школах вместо ВинДС, насколько я понимаю, да?
-
Да, именно так. Причем там все происходило примерно в таком плане. Прибежали какие-то люди, сказали, все, завтра сносим винду, что-нибудь поставим. Вот Linux, например. Мы такие, да вы с ума сошли, давайте, ну не знаю, хотя бы 5 лет на это. Ну хоть 3 года. Они сказали, ну ладно, 3 года.
-
А в чем трудность собрать репозиторий, собрать дистрибутив для того, чтобы устанавливать школу? В чем прикол этого проекта?
-
Приколы три. Один из них вообще никак не преодолимый был на те поры, и это бесконечное число унаследованных приложений. Большая часть того, что в школьном образовании хоть как-то использовалось как инструмент какой-то обучающий, это были какие-то адовые поделки под какие-то странные версии Windows, на флеше, еще на чем-то, которые что-то там демонстрировали. Все это, разумеется, под Linux работать не собиралось, и не было запланировано, что оно работает. Вторая проблема, конечно же, это, собственно, operation system, то есть инструкции по эксплуатации. То, что люди, ну, условно говоря, к этой винде привыкли, а в Линксе тогда было все слегка по-другому.
-
То есть учитель в деревне, условно, не сможет просто обслуживать эти компьютеры с Линксом.
-
Да, ну, или, скажем так, в деревне как раз сможет, ему там немного надо, да, а вот в городе уже не сможет, потому что у него там есть какие-то потребности. И третья главная проблема, Это, разумеется, имеющиеся готовые методички, потому что большинство учителей информатики, скажем, или даже не информатики, используют компьютер не потому, что они сели и подготовили себе последовательные действия, а по готовым методичкам. Учителя вообще так устроены, учителя бешено перегружены, им, в общем, неинтересно изучать ни компьютеры, ни операционные системы, им с детьми работать надо.
-
Это звучит как просто адский проект, огромный. Я даже не знаю, как первую часть решить, это технически сложная задача, а от второй и третьей это огромная организационная работа.
-
Ну так вот, ничего из этого проделано не было, кроме первой части, в которой участвовали мы. Мы сделали вот этот самый PSPO, красивую пафосную белую коробочку. в которой был просто наш дистрибутив, большой, с большим количеством методматериалов, с довольно приличным корпусом, который как раз моя команда делала образовательным. Прямо вот можно зайти на мой сайт, на unix.org, и посмотреть там в раздел PSPO. Все, что ты увидишь в разделе PSPO на unix.org, это все сделали студенты с моей.
-
Это инструкция по тому, как пользоваться Линуксом.
-
Да, да, да, да. Там несколько образовательных кривых. Ну, короче, я считаю, что на те поры был довольно хороший штук. Это был, внимание, пилотный конкурс на, условно, 70 миллионов. Конкурс по внедрению на всей стране, по всей стране. Был на полмиллиарда, и его выиграли абсолютно другие люди, которые с нами вообще не связывались совсем. То есть мы думали, ну что, они сейчас будут внедрять, они же к нам придут? Нет. И вот это внедрение по всей стране этой штуки в школы само по себе было устроено так, что эти люди не справились, например, с тем, чтобы добавить разработанный мной метод материала на диск. Они туда его добавили, он стал незагрузочным.
-
Что за бред вообще? То есть они вообще абсолютно некомпетентные люди, что ли?
-
Абсолютно. Ты же понимаешь, кто во всем был виноват? Альтлинукс. Потому что это его же, его же, ты открываешь, а там альтлинукс. В общем, это вызвало дикую совершенно волну хейта, очень сильно повредило наши репутации. Но мы одно время довольно крупно сотрудничали с тем самым ВК, с которым, я говорю, у нас работы с самого начала были всегда. Но потом выяснилось, что ВК очень специфический рынок, просто так с ним кашу не сваришь. Ну и, в общем, дела у нас пошли в гору, и сейчас мы достаточно приличная контора. Ну, например, у нас внедрение по ЗАГСам всей страны сейчас.
-
Как это происходит? Расскажи. То есть условный LibreOffice нужно взять и собрать так, чтобы им можно было пользоваться для русских документов, документа оборота?
-
Ты удивишься. Нет, не LibreOffice.
-
А что?
-
Мы, вообще-то, продуктовая фирма. Мы делаем платформы и продукты. Но у нас, скажем, третий уровень поддержки, потому что, например, в этих ЗАГСах нужно печатать социально значимые документы.
-
свидетельство о рождении, свидетельство о браке.
-
Да, браке, смерть, вот это всё. И там это делается на матричных принтерах, причём с точностью до миллиметра.
-
И это очень круто, потому что у меня однажды распечатали северистое браке на лазерном принтере, и оно, конечно, краска осыпалась в течение двух лет.
-
Именно. Вообще-то по закону так делать нельзя. По закону должна быть надёжная печать, то есть глубокая печать, то есть только матричный принтер, вот это всё. И понятное дело, что они там закупают очередные странные матричные принтеры, кому, значит, сделать так, чтобы они вообще работали. Только нам больше некому. Вот такого рода доработка. То есть это не то, что мы пишем софт для ЗАГСа. Это примерно так выглядит.
-
Мы с тобой обсудили, что Линукс практически везде, но при этом я сижу на Маке, многие мои знакомые сидят на Винде. Почему Линукс так сильно завоевал все остальные сферы, кроме десктопов?
-
В первую очередь, Линукс как open-source, потому что Линукс напоминает только ядро. Вся вот эта open-source движуха в первую очередь завоевала, разумеется, признание разработчиков. Люди в этом участвуют, им это интересно, они делают что-то для себя, это для себя работает, они от этого еще большее делают для себя, вот это все. Во-вторых, такой способ разработки открыт для новых технологий, и это главная фишка Linux. Это именно Linux устроен так, что он принимает все, лишь бы там качество кода было приличным. В данном случае я Linux как ядро имею в виду. Ну, поскольку у тебя Linux как ядро решает твои задачи низкого уровня, естественным путём ты вокруг него выстраиваешь какое-то решение производственное для него. Это в производстве. Что же касается десктопов, то там нужно решать очень много задач, которые не решаются сообществом, которые решаются многочисленными тренингами, тестами, оттачиванием юзкейзов и всё остальное. Всё это вещи дорогостоящие. И занимаются им сейчас, за некоторым исключением важным, типа там, например, защищением того же Canonical, компании, у которых многодесятилетний опыт как раз вот такой работы с программным обеспечением, расходной. А вот подразделение, которое бы сидело и занималось юзабилити, и нанимало бы видных, не просто видных, а главных специалистов в мире в области юзабилити, как это делается Apple Macintosh, там Норман, например, работал. Ну, за деньги. Мы не позволить себе это не можем, ни рынка у нас такого нет.
-
То есть в Линуксе интерфейсы реально хуже, чем, например, в Маке, потому что Мак в них вкладывается. А в Линуксе нет людей, нет компаний, которые бы вкладывались под хорошие интерфейсы под Линуксом.
-
Ну, насчёт реально хуже – это вопрос, естественно, исключительно о вкусе, но речь идёт о юзабилити. Не о хуже – лучше, а о том, что вот у нас есть задача, чтобы массовый пользователь проголосовал ногами за нас. Для этого нужно решить очень много довольно серьёзных, я бы сказал так, технических проблем, которые никто не решает. При этом прошу заметить, что есть ещё и обратный эффект. Любая массово решённая задача, рассчитанная на, словно, массового пользователя, вызывает лютый батхёрд у специалистов.
-
А в Линуксе решение принимают, как раз, специалисты.
-
Да.
-
Знаешь, это комнаты, в которые нет выхода.
-
Слушай, но, с другой стороны, никто и не собирается, да? Вот что сделал Google? Взял ядро Линукс, обмазал его тем интерфейсом, который нужен пользователю, получился вот такой продукт под названием Android. Какие проблемы?
-
Окей.
-
Никаких проблем.
-
Я хочу вернуться к разработке и спросить, сколько людей сейчас программирует Линукс, занимается Линуксом?
-
Слушай, это какое-то абсолютно несметное число, надо посмотреть, сколько коммиттеров у ядра, там несколько миллионов строк кода, они измеряются десятками тысяч людей, коммиттеров. Это про ядро. Опять, да, ты сказал Линукс, я, естественно, среагировал на ядро. Сколько людей в сумме являются разработчиками дистрибутива Линукс на базе ядра Линукс, если считать таковыми всех, кто написал все эти программы, а также всех, кто хотя бы раз туда свой код помещал, я думаю, все, кто умеют программировать. Хорошо, половина из них.
-
Те, кто не под винду пишет, имеешь в виду.
-
Те, которые пишут под винду тоже, потому что большинство приложений кроссплатформенные.
-
О господи, окей.
-
То есть, если ты поучаствовал в свободном проекте, с очень большой вероятностью попадешь в какой-нибудь дистрибутив.
-
Супер. Получается, это огромный проект, в котором участвует практически все человечество. Кто принимает ключевые решения?
-
Понятное дело, что всегда существует вот в такого рода сообществе пирамидальная структура. Хороший пример – это, собственно, само ядро Linux. Есть человек, который только читает, он уже давно ничего не программирует, он только читает большое количество изменений, которые вносятся в исходный код ядра. Долгое время таким человеком был сам Линус, который последнее время программировал только свою любимую программу для учёта подводных плаваний, для дайвинга, больше ничего не делал, только читал и ругался.
-
У меня вопрос такой, Линус же не просто читает и ругается, он, я так понимаю, имеет право отказать тому коду, который он прочитал.
-
Ну, собственно, да. Он принимает решение о принятии соответствующего куска кода в основной код ядра. Но поскольку разработчиков реально десятки тысяч, то под ним существуют люди, которые курируют подсистемы ядра, которые тоже занимаются примерно тем же самым. Они в основном читают, возможно, сами что-то там исправляют, то, что видит Линус по сбору и упорядочению некоторого вклада, который был внесен в их подсистему, таким образом, чтобы это потом можно было вообще понять, что происходит. В некоторых случаях есть еще один подуровень, ну потому что реально народу много. На каждом из этих уровней принимаются решения в рамках своей компетенции. В любом свободном сообществе вообще-то так устроено, что вот этот человек, который принимает решение, эта должность, скажем так, выборная. Сейчас вот в последнее время Грег Кроа-Хартман (Greg Kroah-Hartman). То есть в этом случае принимает решение самый компетентный член сообщества, которому по тем или иным причинам сообщество больше всего доверяет. Иногда это не один человек, а совет. Как в случае, например, Питончика, Гвидо, создатель языка. Гвидо ван Россум, был главным таким третейским судьёй, к которому в последнем случае обращались. А в какой-то момент он заметил, что люди долго-долго-долго вели срач, споры не договорились, пришли к Гвида, сказали, Гвида, рассуди, Гвида сказал, делайте так, они сделали по-другому, он сказал, ого, вы теперь сами лучше знаете. Он не обиделся ни в коем случае, наоборот, подметил ситуацию, что сообщество заматерело до такой степени, что умеет принимать решения без вот этого пожизненного добровольного диктатора, то, что называется. Так что бывают сообщества, в которых такого рода эксперты, они сменяемые. Это в случае ядра. Если ты интересуешься Линуксом как дистрибутивом, то это вопрос, на кого ориентирован дистрибутив. Debian GNU/Linux, поскольку он ориентирован полностью на сообщество. Там сообщество же и принимает в долгих-долгих дискуссиях какие-то ключевые решения. А допустим, вот у нас в компании базальта СПО «Базальт СПО», в том смысле, что компания определяет, для чего они нужны, куда они пойдут. И в этом случае соотношение с сообществом, ну, такие, да, сообщество занимается, словно говоря, репозиторием и комьюнити-дистро, который ему сообществу нужен, а мы делаем на базе этого всего продукт, который нужны нам. Соответственно, разумеется, сообщество не против, потому что, почти никогда не против, потому что мы им вносим всякие полезные фичи, но иногда бывает так, что интересы конфликтуют, но это нормально совершенно, это все улаживается. Да, но поскольку контроль за выпуском продуктов компании базальта-СПО лежит на компании базальта-СПО, тот эксперт оттуда принимает решение. Строго все эти эксперты входят в сообщество AltLinux Team. Это принцип компании у нас не работает в разработке никто, кто не прошел бюджет.
-
Кайф. У меня есть вопрос про то, насколько корпоративные деньги влияют на культуру Линукса, потому что пока, по твоему рассказу, может сложиться впечатление, что это всё делают независимые хакеры. Давно не так. на ядро Линукса люди, которые тоже хакеры, они очень крутые программисты, но они на зарплате в компаниях Intel, Microsoft и вообще в разных компаниях контрибьюторами ядра Линукса.
-
Да, всё так. И эта штука называется профессионализация сообщества, наблюдается последние лет 10. Фишка состоит в том, что в принципе задачи, которые мы сейчас решаем вот мы как сообщество, стали слишком сложные, и у них решения стали слишком тяжелые для такого, в общем, любителя со стороны. То есть где-то там в 90-е годы человек мог написать 300 строк на C, и как бы это была целая приложенька. Сейчас это не так. Поэтому в действительности очень много полезного в то же ядро вносят конторы, которым, собственно, нужно, чтобы это ядро работало с их железом, с их дисциплиной работы.
-
Компания Google или компания Facebook, в которой десятки тысяч серверов под Linux.
-
Да-да, именно так. Насколько это влияет на культуру, я бы сказал, что не очень сильно, потому что если какой-то конторе не нужно поэксплуатировать вот этот способ открытой разработки и вот эту информационную культуру взаимодействия, то она и сделает закрытую разработку. Зачем ей брать Linux для этого или там что-то? В том смысле, что это скорее... Ну, то есть, когда я говорю слово «эксплуатируют», я имею в виду взаимовыгодное сотрудничество. То есть, эти самые крупные корпорации, которые успешно пытаются с Линуксом взаимодействовать, они играют примерно в те же игры. А когда они не играют в эти игры, их, в общем, осуждают. Говорят, ребята, вы тут некачественный код, плохо додокументированно, не поддерживайте полисы, не делайте так, иначе мы вас не принимем.—
-
Ага, то есть они платят программистам, которые играют под тем же стандартом качества, что и индивидуальные контрибьюторы.—
-
Да.—
-
Но мой вопрос немножко про другое. Он про то, что если компания платит зарплаты, и большую часть программистов оплачивает, которые эту работу делают, не получает ли они таким образом власть в принятии решений?—
-
Получает. А я не вижу в этом ничего худого. В том смысле, что решение понимает тот, которому нужнее. Просто смотри, какая штука. Вот представь себе, что ты... Оставим сейчас в стороне Linux, потому что он слишком большой. Допустим, ты нашел какую-то операционную системочку свободную и ее разработчиков, которые тебе ужасно подходят под бизнес-модель твою. И у тебя есть, собственно говоря, три пути. Путь первый – это вкладываться прямо в этих разработчиков, то есть они будут продолжать делать свою свободную операционную систему. а ты будешь их еще подкармливать, подбрасывая им некоторые задачки, которые они либо будут решать, либо не будут, в зависимости от того, сумеют они это делать, не сумеют, может, ты их заинтересовать не можешь. Это путь номер один. Путь номер два. Ты сам делаешься ключевым разработчиком этой операционной системы, часть людей нанимаешь, и вы с сообществом взаимодействуете, ты делаешь ту часть, которую сообществу делать неинтересно, И предоставляешь сообществу какие-то плюшки, например, вычислительные ресурсы, информационные ресурсы, какие-то технологические решения в этой самой операционной системке, которые сообществу нужны, или, скажем, она очень не против, чтобы оно там появилось. Ну, короче говоря, вы взаимодействуете. Та часть, которая не может быть сделана just for fun, делается на... основе, та часть которой может быть сделана, особенно с твоим, так сказать, подсыпанием корма в эту кормушку, делается сообществом с большим удовольствием. Путь третий. Ты фактически присваиваешь сообщество, начинаешь всем платить, принимаешь решение, в том числе неугодное сообщество, но поскольку ты фактически задаёшь тон, тебе трудно что-то возразить. В какой-то момент люди понимают, что уйди ты, проект просто закроется, потому что он зависит финансово от тебя. И часть из этих людей ещё до этого уходит, потому что они не согласны с твоей политикой, а как комьюнити они повлиять на твоё решение не могут. Ты фактически получаешь такую странную разработку, которая вообще непонятно для чего открытая. У тебя бонусов с открытой разработки, вообще говоря, в какой-то момент нет. Все три способа имеют свои плюсы и минусы, в том числе и третий имеет свои плюсы. Но мне кажется, что способ номер два наиболее общий. С его помощью можно добиться большего, чем с помощью первого или третьего.
-
У меня есть несколько классических вопросов финальных, которые я задаю всем гостям. В твоем случае будут два вопроса. Я, честно говоря, знакомился с тем, как устроены компьютеры и операционные системы во многом через FreeBSD Handbook. Это такая книжка, документация по FreeBSD. Есть ли подобная книжка про Linux?
-
Про Linux подобных книжек очень много, все они разные степени адекватности. Очень много написано в каждом сообществе по-своему, разумеется, потому что это как раз и есть то, чем сообщества сейчас отличаются. Как адаптировать соответствующие приложения, в том числе системные, для работы с конкретным дистрибутивом Linux, Как собрать пакет, как его оформить, что где положить. Вот по это все очень много всякой полисе. Наиболее, так сказать, продвинутые ребята как раз внезапно в арче на этот счет. Там прям дикое количество. То есть я, когда мне нужно что-то такое узнать, лезу именно на арчевики.
-
Когда ты гуглишь, оно обычно вылезает первым.
-
Ну нет, когда гуглишь, обычно вылезают убундовские формы первыми, но их надо игнорировать.
-
Отфильтровать.
-
Да, их надо игнорировать, потому что там люди, в общем, делятся знаниями, на какую кнопку нажать в основном. Ну, собственно, в этом и была цель, да, Ubuntu? А дальше, да, дальше арчивики. Но одной большой книжки, как устроен этот ваш Linux от начала до конца, быть просто не может.
-
Посоветуй, пожалуйста, книжку про историю Linux.
-
Just for fun, Linus, прям вот ровно про всё это.
-
Ссылка на все эти ресурсы будет в описании к этому эпизоду. Кайф. Спасибо тебе огромное, что пришёл, мне очень понравилось. И это подкаст студии Либо-Либо. И мы его сделали вместе с сервисом онлайн-образования Яндекс Практикум. Над подкастом работали редакторка Маша Агличева, продюсерка Настя Медведева, звукорежиссёр Юрий Шустицкий. За джингл спасибо Алексею Зеленскому. Редактор субтитров А.Синецкая Корректор А.Егорова