LINUX.ORG.RU

Ingo Molnar, разработчик ядра Linux «Нам нужно полностью пересмотреть модель распространения ПО»

 , ,


1

4

Представляю Вашему вниманию мой перевод статьи разработчика ядра Linux Инго Молнара (Ingo Molnar), размещенной в двух частях на его странице в G+. Статья вызвала горячее обсуждение на зарубежных тематических новостных площадках, и, на мой взгляд, заслуживает Вашего внимания.

Удивительно, но главным недостатком дистрибутивов Linux для настольных ПК является их недостаточная свобода.

Помните, сколько уязвимостей и проблем с качеством Linux-систем было найдено в последнее время, в частности моими коллегами Linas Vepstas, Jon Masters, Linus Torvalds и многими другими, и информация, с которая я знакомился в обсуждениях, привела меня к выводу, что разработчики свободного ПО просто не осознают, в какую бездну провалились.

Серьёзные недостатки Linux-систем, с которыми мы постоянно сталкиваемся практически во всех, даже самых популярных дистрибутивах Linux, имеют первопричину в фатальных архитектурных ошибках 10-20-летней давности.

Дистрибутивы Linux создали собственные замкнутые (и даже закрытые) экосистемы и пытаются контролировать по 20 тысяч программных пакетов, которые суммарно содержат миллиарды строк кода. Обычные задержки при обновлении приложений составляют недели (вплоть до месяца) для исправлений безопасности и месяцы (вплоть до года) для серьёзных нововведений. Все Linux-дистрибутивы - централизованные организации с иерархической структурой, а не распределённые в пространстве свободные демократические сообщества.

А как поступают остальные (большей частью не являющиеся свободными) конкуренты? Они движутся в прямо противоположном направлении: Apple/iOS и Google/Android имеют только около ста тесно интегрированных системных пакетов, которым уделяется огромное внимание и с которым работают как с одним целым проектом. Эти системы документируются и развиваются в десятки раз интенсивнее, чем это происходит с десятками тысяч пакетов в рамках каждого дистрибутива Linux. И гораздо легче задокументировать 10 миллионов строк кода, чем тысячи миллионов.

Для обеспечения должного разнообразия приложений на площадках Apple Store и Google Play сторонним разработчикам открывается полный доступ к внутренней структуре всей платформы и ведётся контроль над внедрением в систему дополнительных приложений. Как результат, большинство новых приложений добавляются с задержкой лишь в несколько дней (в пределе - несколько недель), а их обновления - в несколько часов (в редких случаях - нескольких дней), в общем, весь процесс происходит настолько быстро, насколько быстро над этим сам работает каждый проект. К тому же для iOS/Android нет практически никаких ограничений и препятствий для приложений, стремящихся попасть на официальные площадки по распространению - они попадают туда почти автоматически.

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

В итоге платформы iOS и Android способны поддерживать и управлять десятами тысяч приложений, число которых в перспективе легко может дорасти до миллиона.

(Да, мы все знаем случаи, когда Apple или Google банили те или иные приложения. Не слушайте, что они при этом говорят, а обращайте внимание вот на что: обе площадки содержат сотни тысяч приложений, и с точки зрения пользователей являются полностью открытыми системами распространения.)

Системы управления пакетами в Linux неплохи для задач корпоративного сектора (также имеющего иерархическую структуру и использующего централизованное планирование), но настольные Linux-дистрибутивы перестали расти уже 10 лет назад на отметке в тысячу пакетов...

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

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

То есть, для исправления текущей ситуации с Linux-дистрибутивами нам нужно полностью пересмотреть модель распространения ПО: уйти от церковного строя к рыночной системе. Конкретнее, понадобится учесть следующие технологические нюансы:

  • Необходимость принудительного использования безопасной «песочницы» для запуска приложений как на уровне пользователя, так и на уровне ядра. Сегодня установка нового пакета из репозитория - это компромисс и выбор из серии «все или ничего» в плане общей безопасности системы. Пользователи должны быть свободны в своём желании получать и запускать даже непроверенный код.
  • Плоская модель зависимостей пакетов (то есть, обновление одного пакета не должно принудительно заставлять обновлять другие (дублирование содержимого может быть устранено на другом уровне системы, например, на уровне файловой системы).
  • Гарантированная совместимость ABI с новыми версиями основной системы (то есть, при установке пакета он будет гарантированно работать в дальнейшем, не требуя от пользователя обновлений). Пользователи должны быть свободны от пресса необходимости постоянного обновления большей части дистрибутива.
  • Узловая сеть для увеличения пропускной способности каналов. Пользователи должны быть свободными от тяжеловесных и развесистых зависимостей приложений.
  • Криптографическая защищённость данных, а также наличие обзоров и официальных пометок о безопасности и достоверности приложения. Этим достигается важный пункт в системной безопасности: необходимые сертификаты для установки ПО понадобятся для корпоративного сервера так же, как сейчас для обычного пользователя, пожелавшего опробовать новую игру на смартфоне. Такое устройство системы распространения ПО позволит пользователям либо присоединиться к выбору большинства (положившись тем самым на количество установок), либо прислушаться к специалистам (и при выборе пакета исходить из авторитетного мнения экспертов), а также смешивать оба этих подхода.

На мой взгляд, Android маркет активно приближается к описанной модели функционирования, за исключением наличия узловой сети для загрузки пакетов и структурированной системы репутации приложений, к тому же Android, разумеется, никак не относится к свободному ПО.

«Маркет» расширений Gnome3, по-моему, успешно движется в нужную сторону, однако он не рассматривает никаких вопросов безопасности и не обеспечивает стабильность системы после установки пакетов.

Свободное ПО уже 10-15 лет тупо следует примеру развития закрытых систем и никогда даже близко не приближалось к простой и действенной модели распространения и заботы о целевой операционной системе. Закрытое ПО делает все большие шаги вперёд и свободным проектам нужно хотя бы поспевать за ним, чтобы выжить. И я думаю, мы это сделаем, я уверен, что свободное ПО как никакое другое подходит для реализации описанной технологии распространения.

>>> Источник

★★★★★

Проверено: Shaman007 ()
Последнее исправление: ins3y3d (всего исправлений: 2)
Ответ на: можно просто его подобие сделать от muteki_okami

Кстати, как народ смотрит на то,чтобы разделить разработку ядра на две ветки: чисто десктопную, и чисто серверную?

Как раз вот это - плохая идея. Ты перечитай про что собственно в статье пишут - по сути все про дистропроблемы. Понастроили раздутых cathedrals, грубо говоря :D А надо бы кафидралы в площади подсократить, а на освободившихся площадях базаров развести.

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

kernel ★★☆
()
Ответ на: комментарий от ZenitharChampion

1) http://xkcd.com/927/
2) Нужна кардинально новая платформа, включая маркет, песочницу, API ядра дистрибутива, а системы зависимостей это технические детали реализации.

CrossFire ★★★★★
()
Ответ на: комментарий от Bod

Я дополню критерием тупиковости системы: разделение понятий пользователя и разработчика.

r2d2
()
Ответ на: комментарий от CrossFire

2) Нужна кардинально новая платформа

Нужна платформа. Старой, если не считать отдельные дистрибутивы, и не было почти.

proud_anon ★★★★★
()
Ответ на: комментарий от r2d2

Что реализовать? Ни одной конкретной идеи. А проблема высосана из пальца.

Сказал, как отрезал, аноним с лора!

Ygor ★★★★★
()

Предлагаю поубирать со всех сайтов пакеты RPM и DEB, а вместо них разместить SRPM и DEB-SRC. Как сделал проект OpenMPI. И вам не придётся выкладывать по 20 вариантов одного бинарника (как здесь, только здесь их 6).

ZenitharChampion ★★★★★
()

согласен, но не по всем пунктам. Однако подобные критические замечания полезны - необходимо знать куда развиваться и какие дыры затыкать в первую очередь

Pinkbyte ★★★★★
()
Ответ на: комментарий от r2d2

Конечно полностью не читал. Слишком много букв. А времени мало.

powerpc
()
Ответ на: комментарий от MrClon

Мне кажется, или всё это напоминает «а давайте сделаем как в винде»?

Нет, скорее, как «в андроиде».

В винде нет ни того, ни другого.

hobbit ★★★★★
()
Ответ на: можно просто его подобие сделать от muteki_okami

Кстати, как народ смотрит на то,чтобы разделить разработку ядра на две ветки: чисто десктопную, и чисто серверную?

ЯДРА? Лично я против.

Двоичные сборки ядер - да, может быть. Но кодовую базу надо сохранить единой.

hobbit ★★★★★
()
Ответ на: комментарий от Zubok

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

Люто плюсую.

Я неоднократно хотел сказать то же самое, но не не смог сформулировать так же ёмко.

hobbit ★★★★★
()

Давно это было известно. Только что-то никто не хочет ничего делать в этом направлении.

VeroLom ★★
()
Ответ на: комментарий от momo

>> Ну и с зоопарком дистрибутивов хорошо бы разобраться. Хватит двух: Debian и Gentoo.

Ubunta нужна еще в качестве переправы с виндовса на линух.

Где релизы рушатся как карточный домик, пока не зальёшь в неё тонны апдейтов? :-( Лучше из DEB-based лько Debian, тогда любой встреченный в Интернете DEB-пакет у тебя заработает в любом случае. А не окажется, что он от убунты, и не установится.

ZenitharChampion ★★★★★
()
Ответ на: можно просто его подобие сделать от muteki_okami

В любом случае я «ЗА» инновации. Кстати, как народ смотрит на то,чтобы разделить разработку ядра на две ветки: чисто десктопную, и чисто серверную?

Ни в коем случае! Ядро должно быть едино, а серверность/десктопность должна настраиваться конфигом ядра.

VeroLom ★★
()

пытаются контролировать по 20 тысяч программных пакетов

Пускай игрушки и прочий шлак вынесут на отдельный репозитоий. И отдадут в руки энтузиастов.

имеют только около ста тесно интегрированных системных пакетов

А они за несколько лет не сильно протухают?

tele
()
Ответ на: комментарий от thesis

Глядишь, еще доживем до вменяемой системы распространения приложений в люниксах.

Шансы примерно те же, что дожить до второго пришествия.

geekless ★★
()

Закусывать надо.

>Вашему
>Вашего
Положи шифт на место.

Deleted
()

Нет уж, пусть будет стабильный дистр, где все работает как часы пусть даже с не очень новым софтом (см. Дебиан Стейбл) А для тех кому хочеться Андроид Маркет и прочие помойки - можно сделать App Market дл Гнома или КДЕ. И пусть разрабы в пакеты свои гномовские или гдешные либы суют, чтобы везде работало.

Sergogo
()
Ответ на: комментарий от harper

«Разработчик» хочет, чтобы в репозитории могла попасть любая поделка, вне зависимости от того, будет ли она работать и не дестабилизирует ли она систему.

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

curufinwe ★★★★★
()
Ответ на: комментарий от overmind88

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

И кому они мешают?

geekless ★★
()
Ответ на: комментарий от kernel

> При чем подозреваю что если дебианы с редхатами (ну плюс suse еще) договорятся, создадут среду для ISV, и вынесут туда весь прикладной софт кроме «системных» пакетов, то остальные дистрибутивы просто сами последуют примеру флагманов. Потому что будет ситуация когда пакет из этой новой среды будет тупо качественней аналога в в не-мейнстрим дистрибутиве.

Твой комментарий мне понравился больше всех, и я решил спросить уточнение: ты хочешь чтобы весь минимальный набор библиотек (основные зависимости любой программы), вроде freetype, gnu, curl, cups, libnss были в одном общем репозитории, а всё прикладное ПО было у каждого дистрибутива в отдельном репозитории? Или наоборот, основа у всех своя, а прикладное ПО у всех в одном общем репозитории?

ZenitharChampion ★★★★★
()
Ответ на: комментарий от proud_anon

достаточно было бы отделить «базовый софт системы» (который будет составлять основу дистрибутива), «дополнительный софт» (который не составляет основы, но находится в репозиториях) и «внешние программы».

Ты описал Арч или Убунту.

geekless ★★
()
Ответ на: комментарий от dubrsl

два уже много

Не много. Один бинарный, один source-based. Как раз оптимально.

curufinwe ★★★★★
()
Ответ на: комментарий от Ygor

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

Thero ★★★★★
()
Ответ на: комментарий от kernel

При чем подозреваю что если дебианы с редхатами (ну плюс suse еще) договорятся, создадут среду для ISV, и вынесут туда весь прикладной софт кроме «системных» пакетов, то остальные дистрибутивы просто сами последуют примеру флагманов.

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

geekless ★★
()
Ответ на: комментарий от tele

Пускай игрушки и прочий шлак вынесут на отдельный репозитоий. И отдадут в руки энтузиастов

В бубунте вроде же так и сделано, не?

curufinwe ★★★★★
()
Ответ на: комментарий от geekless

Ты описал Арч или Убунту.

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

proud_anon ★★★★★
()
Ответ на: комментарий от geekless

И кому они мешают?

Чувству прекрасного :)

Плохо, что нельзя самому удалить пакеты, только через запрос в рассылку.

Ещё проблема - человек поддерживал пакет, потом пропал, а пакет не осиротил, и вот его никак нельзя будет взять себе, опять только через рассылку.

overmind88 ★★★★★
()
Ответ на: комментарий от Sergogo

App Market дл Гнома или КДЕ

Руки прочь от кед!!!

Гном пусть поганят, его не жалко :)

curufinwe ★★★★★
()

Какая-то каша в голове у разработчика ядра Инго Молнара. Как относится «модель распространения» к критикуемой им политике внедрения приложений в дистрибутив?

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

stormy
()
Ответ на: комментарий от Deleted

Ну, потому что никто не хочет пойти путем Кернигана и Ричи: взять и написать на этом языке операционку...

proud_anon ★★★★★
()
Ответ на: комментарий от stormy

Как относится «модель распространения» к критикуемой им политике внедрения приложений в дистрибутив?

«Через жопу» == «Через жопу».

thesis ★★★★★
()
Ответ на: комментарий от proud_anon

Внешние программы будут не в отдельном репозитории, а устанавливаться пользователями самостоятельно.

А я не «самостоятельно» что ли их ставлю? AUR просто удобный сборник рецептов, им пользуются не потому, что из собора так приказали, а потому что он действительно удобен. Можно сказать, он еще более базарен, чем андройдомаркет. Вы же базар хотели получить? Получите, распишитесь.

geekless ★★
()
Ответ на: комментарий от stormy

ТС, зачем ты используюшь так много псевдоинтеллектуальных оборотов при переводе? Ты всё запутал. «symptoms of mistakes made 10-20 years ago» - это по-твоему «фатальных архитектурных ошибках 10-20-летней давности»? Ты слишком много додумываешь (точнее высасываешь из пальца). Не переводи так больше.

stormy
()
Ответ на: комментарий от stormy

>Ты слишком много додумываешь

Это нынче называется литературный перевод :}

Deleted
()
Ответ на: комментарий от geekless

Вы же базар хотели получить? Получите, распишитесь.

Я лично? Я лично хотел получить платформу. Что является платформой в случае AUR, Arch Linux? У нее как-то слишком мало пользователей.

proud_anon ★★★★★
()
Ответ на: комментарий от proud_anon

proud_anon

Думаю, достаточно было бы отделить «базовый софт системы» (который будет составлять основу дистрибутива)

Arch GNU/Linux [core]

proud_anon

«дополнительный софт» (который не составляет основы, но находится в репозиториях)

[community]

proud_anon

«внешние программы»

AUR

Весело, да?

h
()
Ответ на: комментарий от ZenitharChampion

ты хочешь чтобы весь минимальный набор библиотек (основные зависимости любой программы), вроде freetype, gnu, curl, cups, libnss были в одном общем репозитории, а всё прикладное ПО было у каждого дистрибутива в отдельном репозитории?

Так в принципе тут не получится. Просто все в линуксе устроено так, что подобный вариант не пройдет.

Или наоборот, основа у всех своя, а прикладное ПО у всех в одном общем репозитории?

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

kernel ★★☆
()
Ответ на: комментарий от proud_anon

У нее как-то слишком мало пользователей.

Тем не менее, вполне достаточно, чтобы быть одним из самых удобных для десктопа дистрибутивов.

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

geekless ★★
()
Ответ на: комментарий от ZenitharChampion

Я видел не раз, как человек не осилив дебиан, ставит бубунту, и все у него из коробки работает. Хотя может ситуация сильно изменилась.

momo
()
Ответ на: комментарий от h

Весело, да?

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

Кстати, модель с одним репозиторием может сыграть ту же злую шутку, что приключилась с Андроид-маркетом: пользователи могут думать, что раз репозиторий централизованный и называется «Arch Repository» (пусть и User), то его кто-то тщательно модерирует и отвечает за качество программ.

proud_anon ★★★★★
()
Ответ на: комментарий от geekless

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

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

proud_anon ★★★★★
()
Ответ на: комментарий от proud_anon

proud_anon

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

И как пользователь вообще узнает о том, что софтина существует? Не Шindows-like же установкой заниматься.

h
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.