LINUX.ORG.RU

Первый установочный образ Stali (static linux) от сообщества Suckless

 ,


8

8

Сообщество Suckless, широко известное своей философией разработки ПО, а также набором программ, среди которых dwm, dmenu, surf, tabbed, st и другие, представило первый установочный образ дистрибутива Stali (static linux).

Проект интересен, прежде всего, множеством нестандартных архитектурных решений, отсутствующих в других дистрибутивах и воплощающих философию suckless на уровне ОС.

Основные отличия:

  • статическая линковка всех программ;
  • игнорирование FHS, предлагается иная иерархия директорий;
  • установка и обновление при помощи git;
  • замена coreutils и util-linux на sbase и ubase собственной разработки;
  • использование musl в качества системной libc;
  • отсутствие systemd, используется sinit (suckless init).

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

В дополнение к образу доступна пошаговая инструкция по установке.

>>> Подробности

★★★★

Проверено: Klymedy ()
Последнее исправление: Klymedy (всего исправлений: 6)

Ответ на: комментарий от annonymous

А почему они не получили широкого распространения? Потому что балом правили крупные конторы типа рэдхата, а им было не интересно. Качественный продукт коммерчески не выгоден. Выгодно блоатваре - миллионы строк кода, и чем запутаннее, тем лучше.

annonymous ★★
()

/usr -> / # softlink pointing to /

Представляю какая там свалка.

entefeed ☆☆☆
()
Ответ на: комментарий от vostrik

Хроническое неверие есть вариант психоза, так же, как слепая вера. Только к психологу.

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

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

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

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

Я уже понял суть, спасибо.

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

Кстати там нет ни гита, ни компилятора в rootfs.

Deleted
()

Джва года ждал!

CYB3R ★★★★★
()

статическая линковка всех программ;

Не нужно.

mcgeek
()

О, выглядит аппетитно как замена alpine и busybox для контейнеров.

ei-grad ★★★★★
()
Последнее исправление: ei-grad (всего исправлений: 1)
Ответ на: комментарий от Deleted

Тоже об этом подумал и удивился. Кого-то пример Mint ничему не научил. А может GPG тоже «sucks» по-ихнему?

anonymous
()

http://sta.li/faq

Of course Ulrich Drepper thinks that dynamic linking is great, but clearly that’s because of his lack of experience and his delusions of grandeur.

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

anonymous
()

Млять там pass по умолчанию для рута то?

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

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

Думаю, основной функцией данного дистрибутива - является пропагандистская и назидательная: показать разработчикам популярного системного софта (особенно разрабам GNU), что их поделки слишком распухли и что дальше так продолжаться не может. То что статический код на базе musl, без использования glibc, может быть быстрее и компактнее - вообще отличная реклама для musl'а и жирный такой намёк разрабам glibc - что пришло уже время что-то менять.

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

Он требует линковку с последней версией. На этом собтвенно и всё. LGPL идет лесом. Крайне невменяемая лицензия.

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

Ты не понимаешь принципа suckless. Там SVG в десять тысяч строк.

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

Если в памяти одновременно окажется много приложений, юзающих одну и ту же жирную либу (например, какой-нибудь тулкит), то кэши будут пухнуть.

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

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)

Динамические библиотеки немного лучше статических, но их использование более сложное. И не из-за того, что процесс загрузки программы замедляется. Проблемы начинаются уже на этапе компиляции :)

Odalist ★★★★★
()

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

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

А ещё у их проектов отличный код. Ничего лишнего, всё просто и юниксвейно,

согласен, кстати, но вот есть и плохие стороны этой простоты, типа патчей вместо плагинов

нафига так хитро

может быть, дело в том, что в /usr есть куча другого хлама кроме /lib и /bin, который арчерам не захотелось совать в корень

а фс арча плохо в пример приводить, например, потому что

$ yaourt -Qo /usr/libexec/
/usr/libexec/ is owned by qtcreator 3.6.0-4
$ yaourt -Si qtcreator | grep Repo
Repository      : extra

Avoid using /usr/libexec/ for anything.

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

Как минимум есть fossil

фосиль пробовал, если на сервере и локально разные версии фосиля - wiki глючит

dinama
()

Еще раз убеждаюсь в том, что они слегка неадекватные 1. Ок, смотрим доку. Начинаем ставить. И видим следующее.

2. В нынешнее время дистриб без пакетного менеджера вообще пыль. С любыми интересными решениями внутри.

bryak ★★★★
()
Последнее исправление: bryak (всего исправлений: 4)

Как бы я не пробовал играть с позицией ключа -static, результирующий файл rez1 получается размером в 900 Кб. После применения программы strip размер ее уменьшается до 200 Кб, но это же не сравнить с тем, что первая статическая компиляция давала программу размером 10 Кб. А связано это с тем, что любая программа написанная на C/C++ в Linux использует стандартную библиотеку «C» library, которая содержит в себе определения таких функций, как printf(), write() и всех остальных. Эта библиотека линкуется к файлу как динамическая, чтобы все программы написанные на C++ могли использовать единожды загруженные функции. Ну, а при указании ключа -static компилятор делает линковку libc статической, поэтому размер кода увеличивается на все 200 Кб. Этот эффект я не смог побороть. Поэтому я пришел к выводу, что статическую библиотеку и динамическую лучше всего создавать с разными именами.

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

А может GPG тоже «sucks» по-ихнему

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

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

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

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

на чем бы потестить, чтоб не сломать систему?

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

слегка? да там не только на ос, хватит на surf, dwm и патчи вместо плагинов посмотреть, чтобы получить представление об употребляемых ими веществах

parted

очевидно же, гнутая блоатварь, да как таким вообще пользуются?!

fdisk

а тут не знаю, с чегойта они его выпилили

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

не, ну двм там работает. Хотя я не согласен к их подходу расширения функциональности посредством патчей. Верней, может это и правильно, но в единственном случае: когда ВЕСЬ(подчеркиваю, сторнирую 100500 раз) базовый функционал тайлинга(в данном случае), то бишь focusonclick, pertag, uselessgap, cfacts должны быть в базе dwm, а все остальные патчи, расширяющие функциональность, должны не затрагивать базовую часть dwm и желательно друг друга.

bryak ★★★★
()

установочный образ Stali

звучит как-то мягковато для их радикальных взглядов.

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

Когда взял дистрибьютив, выпилил всё нужное и дал ему имя stali

bryak ★★★★
()
Последнее исправление: bryak (всего исправлений: 1)
Ответ на: комментарий от anTaRes

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

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 2)
Ответ на: комментарий от system-root

Ну и как без fdisk и иже с ним поставить это чудо инженерной мысли ? Что, расширять функционал посредством наложения патчей ?:)

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

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

Код в виртуалках тоже. Однако, работает же.

kirk_johnson ★☆
()

распаковал исошку, директория .git занимает 28Мб, все остальное 18Мб. Дальше больше?
Не очень понятно как они планирнуют устанавливать отдельные пакеты, например пейтон, пейрл, или там апач с пхп?..

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

Ты еще скажи, что тебе всякие веб-серверы с СУБД нужны. Три мириад'a ненужно!

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

Вообще разные вещи ведь.

Если ты запустишь две одинаковые виртуалки, то у тебя окажется два совершенно идентичных набора занятых страниц. Если теперь одну виртуалку немножечко изменить (например, запустить другой набор прикладных приложений), то в этой виртуалке изменятся только те страницы, которые соответствуют новым приложениям (ну и таблицы разные), а большая часть памяти ядра, равно как и образы остальных [служебных] программ в памяти, вообще никак не изменится.

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

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 2)
Ответ на: комментарий от DawnCaster

Все, я повторюсь, все программы данной идеологии получили продолжение в серьезных проектах.
Первое - идеи. Второе - код, прозрачный, аки слеза.
Так что не только пропаганда ;)

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

Пропоненты статической линковки нигде не говорят, что их доводы применимы только к какому-то особому подмножеству систем. Напротив, они заявляют, что динамическая линковка — безусловное зло. Если я ошибаюсь, то прошу пруфлинк на соответствующие заявления от авторов suckless.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от bryak

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

kedr
()

Нет FHS, но почему бы не как в GoboLinux и т.п.? Название дистра и некоторых каталогов нелепое и никто всерьез не полезет это юзать.

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