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)
Ответ на: комментарий от monk

Ликвидировали уязвимость

# ldd -sh: ldd: not found

Убрали жёсткую привязку версий приложений друг к другу.

для этого надо было переписать busybox ? по-моему единственная их цель - дрочево на лицензию

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

для этого надо было переписать busybox

Да. Потому что, например https://archive.debian.net/lenny/busybox требует в системе glibc >= 2.7. То есть скачать и запустить в Debian sarge или RedHat 5.2 уже не выйдет.

То есть, есть у тебя, например, роутер c sh и ssh. Хочешь ты туда поставить busybox. Тебе надо сначала посмотреть какая там glibc, потом сделать систему с такой же glibc, в ней скомпилировать и только потом полученный бинарник залить в роутер.

monk ★★★★★
()
Ответ на: комментарий от KOHb-TPOJIJIbJIEP

Не, я знаю что есть (и как называется) ман страница, на которой написано про LD_PRELOAD, а вот ты банально не умеешь пользоваться манами, но при этом забавно корчишься.

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

Не, я знаю что есть (и как называется) ман страница, на которой написано про LD_PRELOAD

«Ай, маладца!»
Ну так прочитай уже что там про этот самый LD_PRELOAD написано.

KOHb-TPOJIJIbJIEP
()
Ответ на: комментарий от iluha16

Метод явно же не очевидный для пользователя, существует ли хотя бы один пакетный менеджер который после апдейта хотя бы выдаёт сообщение о том что надо бы перезапустить процессы?

Dpkg например выдает при критических апдейтах.

Это же временный каталог для сборки пакета и он уже удалён.

Так бывает. Если обнолять либу на новую версию то в maps тоже будет «deleted» - это значит что замапленая либа удалена с диска - верный признак для перезапуска процесса.

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

uClibc

Ну вот у них свой musl, который быстрее: http://www.etalabs.net/compare_libcs.html

Могу предположить, что и sbase пошустрее будет. Ну и идея «один бинарник на всё» не очень хороша с точки зрения простоты кода. Подробности: http://lists.suckless.org/dev/1411/24118.html

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

Прокуренным свитерам, которые дрочат на устаревшие и неактуальные для нынешнего времени стандарты?

Да! Давайте все сломаем!

но не признают очевидных вещей.

Каких например?

Stali это скорее попытка обратить внимание мировой линукс-общественности на проблемы, которые пора бы давно решить.

О да, фанаты Uriel'a тебе нарешают. Похоже ты плохо знаком с этой тусовкой и ее «решениями».

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

Ну вот у них свой musl

с чего ты взял что он их ?

https://git.busybox.net/buildroot/tree/toolchain/toolchain-buildroot/Config.i...

Могу предположить, что и sbase пошустрее будет

ты это серьезно ? насколько - микросекунды которые ты никогда визуально не заметишь ? Я бы на твоем месте сравнил функциональность

https://git.busybox.net/busybox/tree/Config.in#n16

Ну и идея «один бинарник на всё» не очень хороша с точки зрения простоты кода.

посмотри на код - потом рассуждай

https://git.busybox.net/busybox/tree/coreutils

https://git.busybox.net/busybox/tree/Config.in#n562

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

т.е. со временем .git распухнет до безобразия? (или я ошибаюсь?)

Скорее всего раз в n циклов они будут пересоздавать репу. К тому же базовая часть, которая через git судя по всему совсем небольшая.

zloelamo ★★★★
()

В общем я завис.

Скачал их образ, кроме sh никакой оболочки на нем нет и это ад, про автодополнение и историю команд можете забыть, ну ок будем мучиться, попутно читая инструкцию:

  • Prepare a disk partition for stali, we recommend formatting it with ext4fs
    fdisk, cfdisk на диске нет, ок грузимся с другого диска(у меня был arch под рукой)
  • # git clone http://git.sta.li/rootfs-x86_64
    git на установочном образе нет, на диске с arch тоже нет. Идем в соседнюю виртуалку, монтируем диск со stali, грузимся, ставим git, клонируем и продолжаем работать из этой виртуалки
  • Prepare chroot
    каталогов /proc, /dev, /sys по умолчанию нет, ну ок создаем
  • chroot into stali
    ок
  • build a custom kernel
    ядро есть в /boot/vmlinuz, попробую с ним для начала
  • setup system/bootloader etc
    Что делать с lilo/grub выгружать исходники и собирать? А если зависимости? Как собирать статически?

Из 400+ сообщений хоть один прошел квест до конца?

Deleted
()

Сообщество Suckless

«А их уже выпустили из сумасшедшего дома?» Почти©

Because dwm is customized through editing its source code, it’s pointless to make binary packages of it. This keeps its userbase small and elitist. No novices asking stupid questions.

Тут же и психиатром быть не надо, чтобы исчерпывающий диагноз поставить.

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

Покажи мне эти самые приложения, в которых убрали жесткую привязку версий. Или ты приложениями называешь утилиты из busybox ? Мда...серьёзную и кропотливую работу сделали товарищи из suckless. Да что уж там, - это не серьезная работа, а революция - не иначе.

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

А после перезапуска (/etc/init.d/syslog-ng stop && /etc/init.d/syslog-ng start) `grep openssl /proc/[0-9]*/maps` вообще ничего не находит. Так что же получается теперь вообще никто не использует эту либу? А у меня в firefox эта страница по httpS загружена, так чё в firefox эта либа своя статически слинкованная? И странно почему syslog-ng которая использовала старую удалённую версию теперь не использует новую версию?

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

Addiction hell?

Ноу итизнт.

Hell dependencies

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

Я же попросил тебя запустить новую игрулю на win95 и старую на win7. Либо выкатывай скрины запущенных игр

К сожалению, я в глаза не видел никогда этих игр, и винды у меня нет, только на работе. Боюсь, что этот эксперимент будет слишком дорогим - где-то надо купить Windows 95 (а она вообще сейчас продается?), потратить около 8 тыщ на Windows 7, потом купить кризис или что ты там предлагал. Еще купить железо чтоб все это установить. Для меня такой эксперимент слишком дорог, уж извини.


К сожалению здесь, на лоре, настоящих программистов почти и нету

Как ты определил, непрограммист?

Читателю необязательно быть писателем, чтобы чтобы отличить графоманию он настоящей литературы.


Пока винда предустанавливается на компы - линуксу ничто не поможет.

Линукс и фридос предустанавливают на компы. И сносится в первый же день использования.


Какой «такой»? И кто это вообще?

Гоголь еще не отменили вроде.

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

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

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

Xintrea ★★★★★
()
Ответ на: В общем я завис. от Deleted

Из 400+ сообщений хоть один прошел квест до конца?

Ты спрашиваешь это так, как будто этот «типа дистрибутив» нужен для того, чтобы его ставить, а не для того, чтобы его обсуждать на лоре.

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

Из 400+ сообщений хоть один прошел квест до конца?

Ты спрашиваешь это так, как будто этот «типа дистрибутив» нужен для того, чтобы его ставить, а не для того, чтобы его обсуждать на лоре.

Какой смысл обсуждать не посмотрев? А вообще да, вся суть lor...

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

Да! Давайте все сломаем!

Ломать все не нужно, да никто и не собирается. Пересмотреть стандарт, сделать проще и логичнее.

но не признают очевидных вещей.

Каких например?

Какой-то анон в одной из подобных тем уже давал развернутый ответ. Кратко повторю.

1)нелогичность FHS 2)куча каталогов непонятного назначения, которые дублируют функционал друг друга. Накой спрашивается эти /usr/bin, /usr/local/bin, usr/share/, /opt и т.д. 3) размазанность файлов приложений по всей FHS 3) лапша из симлинков 4) пакетные менеджеры. Которые по факту костыли, следящие за тем, чтоб говно из унитаза вместо сточной трубы в канализацию, не пошло в рукомойник. Да и то не всегда получается и с чисткой говна потом могут быть проблемы, примером тому apt, который не все за собой чистит после удаления Emacs. В итоге огромная нагрузка на мейнтейнеров которые проделывают огромную и ненужную работу, проблемы с установкой софта для простых юзеров и пункт 5. 5) dependency hell 6) часто проблемы с работой системы и софта после обновлений.

И прочее. Этого мало?

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

Хотя при современном повсеместном 100 Mbit/s интернете и скачать заново хоть сколько не проблема.

Я не знаю как у вас, а у нас в Гермашке 100Mbit/s есть очень мало где и стоит астрономических денег. А повсеместно есть 16mbit/s. Такие дела.

Так что вы там зажрались.

dikiy ★★☆☆☆
()

Попробовал эту musl libc. getchar()/scanf()/gets() на вызывает fflush(stdout). Ну и как с этим жить? После каждого printf(«prompt ») вызывать fflush(stdout)? Нафиг нафиг. busybox то точно придётся переделывать.

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

Я не знаю как у вас, а у нас в Гермашке 100Mbit/s есть очень мало где и стоит астрономических денег. А повсеместно есть 16mbit/s. Такие дела.

Так что вы там зажрались.

А у нас в рашке в маленьком провинциальном городке (около 400 км от москвы) 100 Mbit/s за 900 рублей в месяц. Ну это я столько плачу, причём из этого вроде бы 50 рублей за статический IP. А на подъездах висят объявления 300 рублей/месяц за 100 Mbit/s но из-за таких копеек даже не буду себя утруждать сменой провайдера т.к. работает всё идеально - ни одной проблемы, ни одного разрыва с тех пор как провели оптиковолокно 4 года назад. Скорость скачки в qbittorrent превышает 10 порой. К каждой пятиэтажке подведено оптоволокно от трёх провайдеров, в каждом подъезде 3 шкафчика висят. Единственно куда не везде подведено оптоволокно это двухэтажки которых очень мало и одноэтажная застройка в новом районе где раньше были заброшенные дачи, но там пока даже фонарей нет по ночам. Это просто праздник интернета какой то! Даже не верится что прогрессивная европа так отстала, может вы в деревне в глухой живёте или может перепутали и там не 16 mbit/s а 16 mbyte/s?

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

от трёх провайдеров

желтополосатый, яйцевидный и ростелеком? А локальных провайдеров не осталось, всех пожрали провайдеры-гиганты?

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

Даже не верится что прогрессивная европа так отстала, может вы в деревне

В деревнях интернет вообще только по спутнику зачастую возможен. Никаких DSL и в помине нет.

в глухой живёте или может перепутали и там не 16 mbit/s а 16 mbyte/s?

нет. Именно 16. 100 есть за 35-40 евро в месяц да и то, редко где. В больших городах еще по телекабелю есть инет, но цены в том же духе.

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

желтополосатый, яйцевидный и ростелеком? А локальных провайдеров не осталось, всех пожрали провайдеры-гиганты?

1. Ростелеком. Раньше был волгателеком, в народе «вобла», его купил ростелеком.

2. MTT.DOM.

3. ТТК.

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

нет. Именно 16. 100 есть за 35-40 евро в месяц да и то, редко где. В больших городах еще по телекабелю есть инет, но цены в том же духе.

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

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

> Какую цель они преследовали и какую неразрешимую проблему решили ?
Ликвидировали уязвимость.

Это называется «вместо устранения стука в моторе, выкинули сам мотор». Уязвимость - в поведении ldd, а не самой сути динамической линковки. Непонимание сути вещей и ведёт к таким говнодистрам.

Убрали жёсткую привязку версий приложений друг к другу.

:))) Вот уж точно чушь! Жёсткая привязка - это как раз статическая линковка, взяли - и внедрили в экзешник все зависимости! Динамическая линковка потому и динамическая, что позволяет ЛЕГКО МЕНЯТЬ уязвимые библиотеки без перекомпиляции всего дистра.

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

Боюсь, что этот эксперимент будет слишком дорогим

Я предложил альтернативный вариант. Или он слишком сложен для тебя?

Читателю необязательно быть писателем, чтобы чтобы отличить графоманию он настоящей литературы.

Я тебе задал конкретный вопрос. Зачем ты мне выкатил этот школьный аргумент? На вопрос он не отвечает.

Линукс ... предустанавливают на компы.

Пруф, статистику.

И ты так и не ответил, ради чего все твои посты. Я просто с тебя херею.

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

вангую, что libc у них как раз динамически линкуется

У stali? Статически, конечно.

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

Динамическая линковка потому и динамическая, что позволяет ЛЕГКО МЕНЯТЬ уязвимые библиотеки без перекомпиляции всего дистра.

В теории все хорошо, но вот только на практике выходит, что после обновления одной библиотеки приходится все к чертям обновлять, ибо сломалось.

А вот при статической линковке можно и не обновлять.

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

А вот при статической линковке можно и не обновлять.

А если в libc уязвимость? Всю систему обновлять? Или я чего-то не так понимаю?

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

Установил ты как-то две coreutils. После этого пишешь ls. Из какой версии он должен запуститься?

Тут можно попробовать прикрутить alternatives.

OldManClone ★★
()

даже не хочу знать как переводится suckless

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

А если в libc уязвимость? Всю систему обновлять? Или я чего-то не так понимаю?

Да. Это минимальное неудобство по сравнению с «Я обновил A для B и сломал себе C».

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

т.е. то, что он себя программистом не считает - это не верная мысль?

в какой тред с твоими комментариями не заглянешь, везде ты фэйл ходячий, из серой массы лоронаселения

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

«Ада зависимойтей» теперь не существует! Ура!

Да здравствует ад независимостей!

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

Нет, смотрите. Вы говорили, что

В теории все хорошо, но вот только на практике выходит, что после обновления одной библиотеки приходится все к чертям обновлять, ибо сломалось.

Получается, и так, и эдак придётся всё обновлять, только с динамической линковкой качать меньше.

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

он себя программистом не считает - это не верная мысль?

Да я потом заметил, лень было править.

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