направленности на смерть. Это может кому-то не нравится, но можно сколь угодно долго отрицать то, что трава зеленая и от этого она зеленой быть не перестанет.
При этом управленческий состав дистрибутива Gentoo не имеет желания разобраться в происходящем и в виду этого, никаких шагов по трансформации дистрибутива не происходит. И очень жаль!
Для начала, стоило бы разобраться в причине популярности дистрибутива Gentoo (2005-2010 год) и дальнейшем спаде популярности и неминуемой смерти дистрибутива в течении последующих 10 лет.
Причина популярности в 2005-2010 годах заключалась в том, что:
1. бинарные дистрибутивы, несмотря на их количество, не предоставляли пользователю актуальных версий пакетов программного обеспечения в стабильной ветке. Ветки тестинг и анстейбл не предоставляли пользователю стабильную работу, с периодичной регулярностью приводящих рабочую станцию в неработоспособное состояние. Далее дистрибутив debian пересмотрел свою позицию и стабилизировал версии пакетов, на которых пользователь смог работать (имеется ввиду контекст девелоп студио и десктоп). И стал популярен. Именно по этой причине.
2. дистрибутив Gentoo имплементировал инновационную технологию USE-флагов, которая не реализована в полной мере в других дистрибутивах. Частично она реализована в NixOS. Эта технология позволяла пользователю менять функциональный интерфейс ОС.
Управленческий состав Gentoo до сих пор считает, что причиной популярности была идеология «сборка программного обеспечения из исходных текстов». Это не так. Конечному пользователю нужна гибкость в плане функционального интерфейса. И только. Пользователь за эту возможность готов даже ждать, пока пакеты соберутся из исходных текстов.
Отсутствие эволюционирования дистрибутива Gentoo привело к появлению дистрибутивов, которые пытаются эту гибкость пользователю предоставлять. В разных контекстах, даже самых невероятных. Вопиющий пример — это появление дистрибутива NixOS, который пытается предоставить пользователям следующие возможности:
- возможность использования нескольких версий программного обеспечения
- возможность фиксирования состояния
- декларативная настройка операционной системы
- возможность изменения функционального интерфейса ОС (аналог USE-флагов)
Каждый из этих пунктов в этом дистрибутиве реализован. При этом фиксация на 1, 2 пункте привела к многочисленным трудностям в использовании этого дистрибутива. 3 пункт переусложнён и имеет тенденцию к дальнейшему переусложнению и уже привел к тому, что этот
дистрибутив потерял универсальность. Самый простой пример: попытайтесь сделать chroot из
установочного образа NixOS в другой дистрибутив.
Итак, Gentoo предоставила инновационный интерфейс USE-флагов, который позволяет менять функциональный интерфейс операционной системы. Основной недостаток реализации — время сборки из исходных текстов. Вопрос: является ли сборка из исходных текстов единственно
возможной в вопросе реализации предоставления возможности изменения функционального интерфейса? Мой ответ: НЕТ. Такую возможность можно реализовать не применяя сборку из исходных текстов. На этом пути конечно же есть проблемы. Но для того, чтобы их решать(а решить их в конечном итоге можно, на практическом уровне дистрибутив NixOS это показал) лежит исключительно в плоскости трансформации идеологии управленческого состава дистрибутива Gentoo.
Множество раз на просторах рунета(и не только), пользователями поднимался вопрос бинарных кешей пакетов. Ответ всегда один: это невозможно сделать, по причине того, что у каждой рабочей станции процессор со своим набором CFLAGS и что пакет, который собран с одним
набором CFLAGS не обязательно будет работоспособным на другой рабочей станции с другим набором CFLAGS. И ввиду этого технически невозможно реализовать бинарный кеш пакетов, которые бы работали на других рабочих станциях даже в пределах одной архитектуры(допустим
AMD64). Это утверждение верно, но пути решения есть:
- использование GENERIC CFLAGS
- сегментирование бинарных кешей по CFLAGS
И первый и второй пукнт есть возможность реализовать. Желания у управленческого состава дистрибутива Gentoo нет. Что ожидает дистрибутив Gentoo, если у него появлятся бинарные кеши пакетов? Он обречен. На успех.
Я мечтаю, чтобы управленческий состав дистрибутива Gentoo пересмотрел свою идеологию и принял стратегическое решение по вектору направленности этого замечательного дистрибутива и стал по-настоящему инновационным в мире дистрибутивов.
PS: в Gentoo более 10 лет саботируют появление централизованного бинарного кеша пакетов. Кому интересно, обязательно детально изучите комментарии
m1n7
Неа, пользователю нужно работать, играть, лазить в интернетах, стабильная работа на серверах, наличие большого числа готовых решений по траблшутингу. И только. Ускорение на 10-15% никому не нужно, особенно если за это нужно будет платить самостоятельной долговременной сборкой вместо апт-гет инсталл за 2 минуты.
btw, форматирование очень странное
anonymous Автор
1. пользователям операционной системы необходимо удовлетворять свои потребности. Каждому свои. Эта фраза на необходимом уровне абстракции
2. ускорение ДО 10-15% возможна и в случае использования бинарного кеша. Пакет, который собран на одной рабочей станции, будет работать столько же быстро и на другой рабочей станции, у которой аналогичный набор CFLAGS
dimkrayan
не очень понимаю, за счет чего будет это ускорение, если процессор — generic.
А отключить неиспользуемые возможности зачастую можно в конфигах.
mva
ну, есть всякие PGO/LTO, вот это вот всё.
Но лучше без них (переносимость бинарников между машинами лучше)
// а вообще, автор имел в виду, что бинарные хосты прекрасно могут быть и под не-generic march/mtune/cflags
andy_p
У меня установлена kubuntu и gentoo на одном хосте. Могу с уверенностью утверждать — gentoo существенно быстрее. И грузится тоже быстрее.
gnomeby
какой профайл генту используется?
andy_p
KDE
andy_p
Комптлю с флагом native.
gnomeby
их пяток.
Oxyd
В *buntu слишком много всякой ненужности запихано в систему из коробки. А вот сравнивали-бы с каким-нить условным арчем или даже минтом, то скорость работы была-бы ± одинаковой.
gitKroz
Подписываюсь: быстрее, заметно.
История. У меня Gentoo установлена на 3 компьютерах: моем домашнем десктопе, ноутбуке для жены, ноутбуке отца. Ноутбуки слабые, регулярно их не обновляю. Но раз лет в 5-7 приходится, ибо браузеры сильно протухают. Однажды решил, что сделаю-ка я одинаковые настройки на всех компьютерах, чтобы упростить установку (можно просто скопировать скомпилированную систему), да и обновления в виде бинарных пакетов перенести. Сделал такой профайл, накатил на ноутбук отца. Сразу поступил отзыв, от на самом деле не привередливого пользователя: работает медленнее.
Переустанавливать времени нет, вот докупил памяти, SSD, чтобы хоть как-то компенсировать.
nrndda
Так ведь автор акцентирует внимание на выборе зависимостей пакетов с помощью USE-флагов, а не на оптимизациях как таковых при сборке из исходников. Хоть и результат обоих пунктов приводит к ускорению работы ОС в целом.
На самом деле это только часть подхода Gentoo. Ведь есть всякие firefox-bin, libreoffice-bin и ещё несколько, но ведь не все поголовно ставят их. Я бы поставил только в случае слабого компьютера, для bootstrap (icedtea-bin или rust-bin) или для проверки какого-то бага.
anonymous Автор
Я акцентирую внимание на том, что технически возможно создать бинарный кеш для пакетов и с GENERIC CFLAGS и не с GENERIC CFLAGS. Первый вариант более простой, но даже его хватило бы для того, чтобы Gentoo была топовым дистрибутивом, а второй вариант — более сложный. Но со вторым вариантом мы бы все имели более быстрый бинарный дистрибутив, чем любой бинарный дистрибутив, который присутствует на текущий момент
И единственное, почему мы еще не видим этого — отсутствие желания у управленческого состава дистрибутива Gentoo
DreamingKitten
Вы по сути хотите превратить один из немногих успешных source-based дистрибутивов в ещё один из десятков binary-based. Ведь бинхост, собранный с генерик флагами вообще ничем не будет отличаться от репозитория любого другого дистра, той же убунты.
Кстати, такая возможность в генте уже есть — вы можете поднять собственный бинхост и ни разу не собрать ничего из исходников, ну разве что генкернел.
Единственная причина, почему этого не сделано — не в упёртости мейнтейнеров генты а в том, что никому нафиг не упёрлось за свой счёт обеспечивать удобство другим. И ещё потому, что в генту приходят именно за сборкой из исходников.
VolCh
Ну, кто за чем приходит. Я приходил за системой, оптимизированной под моё железо. Ушёл как раз потому что надоело каждый раз ждать сборки
0xd34df00d
А зачем ее ждать? При обновлениях это неважно, а новый софт… Вы его так часто ставите?
dimkrayan
ну, пересборка мира иногда привносит проблем.
Где-нибудь в середине процесса что-нибудь сломается — и вот уже и система (по крайней мере ее графическая часть) не работает, а пересобирать еще часов 5.
nrndda
С одной стороны я забыл про -march/-mtune, с другой подумал
— относилось как раз к оптимизациям -O2/-O3/lto/graphite/openmp. Возможно стоит указать, что речь в статье как раз о march/mtune.Вот есть несколько бенчмарков, где сравнивались разные флаги march (и O2/O3, но не о них сейчас):
Заметный прирост есть только для научных пакетов. Для пакетов обработки видео/звука прирост очень мал, а для остальных не заметен вовсе. Согласен, что можно было бы сделать несколько наборов, на пример: mmx; mmx+sse+sse2; sse+sse2+sse3+ssse3+sse4_1+sse4_2; все предыдущие sse*+avx/avx2/avx512, но ведь разницы между двумя или тремя последними практически нет. Всё зависит от того, насколько хорошо компилятор может сам использовать эти инструкции (для zen использование avx может наоборот уменьшить производительность, такая же беда у avx512 в intel). Это похоже на разницу между O2 и O3, где к тому же можно ещё и проблем огрести. Для большинства пакетов её нет, а для тех где есть авторы пакетов и так советуют собирать с этими флагами.
Лично мне больше всего нравится в gentoo это как раз USE-флаги. А к возможности собирать с march/mtune я, наверно, просто привык уже и не обращал внимания.
Ещё хотел бы упомянуть, что в gentoo настолько хорош и гибок portage, что даже не сильно разбираясь можно откатывать или изменять правки в пакетах от мэйнтейнеров. На пример, совсем недавно в зависимость llvm добавили sphinx для сборки man страниц: bug. В двух chroot, которые я использую для steam и wine пришлось бы тянуть несколько десятков зависимостей только для сборки этих мануалов, хотя в этих chroot у меня стоит FEATURES="noman nodoc noinfo". Т.е. ну вот вообще бесполезно собирать man-страницы. Откатить на старое поведение можно несколькими способами даже без правки ebuild.
gitKroz
Так есть уже. Называется Calculate Linux.
mva
там не все пакеты, увы.
И не под все архитектуры...
saboteur_kiev
Да ладно.
Это нужно почти всем. Просто стандартные дистрибутивы работают не медленнее на большинстве серверов, и редко когда сборка из исходников дает такой прирост.
Иначе на всех датацентрах была бы гента
dakuan
Скорее 10% прироста производительности, которые будут заметны только на некоторых задачах, не перевешивают возросших затрат на обслуживание.
saboteur_kiev
В крупных датацентрах автоматизируется почти все, и выделить десяток-другой сотрудников, чтобы они подготовили возможность разворачивания Генту для пользователей — не проблема.
Тот же AWS — найти на каких задачах получаешь 10% прироста, и подготовить для этих задач генту — окупится очень быстро.