Автор Гілка: Вийшов у світ Stali 0.0  (Прочитано 4046 раз)

Відсутній OzySTS275M

  • Новачок
  • *
  • дописів: 27
  • Карма: +0/-0
  • Цікавлюсь гарними фільмами, музикою, книгами.
Вийшов у світ Stali 0.0
« : 2016-03-27 07:43:59 »
Новий дистрибутив Linux — Stali, або Static Linux від команди розробників програмного забеспечення - suckless.org. Дана команда розробників вирізняється серед інших, фокусуванням на мінімалізмі коду, продуктивності, та цільовій напрямленості програм на користувачів із досвідом роботи у технічній сфері . Зокрема команда suckless відома своїм динамічним менеджером вікон для X (dwm). Із даним менеджером, та  основною філософією та стандартами створення програм, команди suckless, можна докладніше ознайомитися на їх офіційному сайті.  

Основні відмінності Stali:
  • Підтримувані архітектури ЦП тільки x86_64 (підтримка arm64 буде додана згодом).
  • Використовується власна програма, та формат, для свторення makefilesstali.mk, всюди крім ядра Linux.
  • Ігнорується Linux FHS (Стандарт Ієрархії Файлової-системи Лінкус), натомість використовується власний. Докладніше у filesystem.
  • Не використовується systemd, натомість використовується власна розробка — sinit.
  • Загальне базування програм на muscl libc.
  • Розробниками заявлено кращу продуктивність у порівнянні із іншими дистрибутивами для x86_64 архітектур, за раxунок використання тільки статичного прикріплення для бінарних файлів (static linked binaries).
  • Розробниками заявлено мінімалізацю вектору ризиків безпкеки, зокрема повністю вирішена проблема LD_PRELOAD та суміжних їй.
  • Дистрибутив включає у себе багато, вручну відібраних утиліт та програм, зокрема, створених командою suckless (таких як: sbase, ubase, dwm, dmenu, та інші).
  • Оновлення дистрибутиву відбувається не через менеджер пакунків, а через git.
  • Об’єм що займає дистрибутив Stali версії 0,0, складає всього-лиш ~ 34 МБ.

  • sta.li - Ресурс дистрибутиву static linux у веб.
  • suckless.org - Сайт розробників де вони публікують новинки своїх програм.
  • stali.iso — Сторінка завантаження дистрибутиву.
« Змінено: 2016-03-28 16:58:26 від lvm »
"Наша істинна національність - це людство"
- Ґерберт Уеллс

Поспілкуватися зі мною можливо на dreamwidth, у блозі мого друга (frostysh).

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3822
  • Карма: +11/-0
  • Програміст
Re: Вийшов у світ Stali 0.0
« Відповідей #1 : 2016-03-28 17:02:05 »
Ігнорування FSHS — зло, статичні бінарники — зло, не використання systemd — фігово, musl — повільніший за glibc, відсутність LD_PRELOAD — не фіча, оновлення через git — зло, маленький розмір — не грає ролі якщо це не роутер якийсь.
[Fedora Linux]

OzySTS275Ma

  • Гість
Re: Вийшов у світ Stali 0.0
« Відповідей #2 : 2016-03-29 05:46:01 »
Ігнорування FSHS — зло, статичні бінарники — зло, не використання systemd — фігово, musl — повільніший за glibc, відсутність LD_PRELOAD — не фіча, оновлення через git — зло, маленький розмір — не грає ролі якщо це не роутер якийсь.
Ну, незнаю, вам видніше, бо ці чуваки (і чувачки) пишуть у своєму фак’ю що не так усе і погано — http://sta.li/faq . Зокрема там пояснюється чому їхні маленькі "статичні" бінарні файли не є зло, і чому вони віддають перевагу отому "muscl", і чому-це оновлення через GIT_HUB зло? Централізація, так, але , ну скажімо так, у випадку коли ти у РФ/Україні, то це навпаки вигідніше, Я гадаю...
Як по мені, то статична фішка у пам’яті із "динамічниою адресацією" виглядає прикольно.
Мені, як не обізнаному у даній темі, важко щось розсудити, але 34 МБ, дуже заманливо для мене!

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3822
  • Карма: +11/-0
  • Програміст
Re: Вийшов у світ Stali 0.0
« Відповідей #3 : 2016-03-29 12:59:22 »
Ну, незнаю, вам видніше, бо ці чуваки (і чувачки) пишуть у своєму фак’ю що не так усе і погано — http://sta.li/faq . Зокрема там пояснюється чому їхні маленькі "статичні" бінарні файли не є зло,  
Статичні файли були ще у версії Лінукс 0.0.1. Від них відмовилися по дуже простій причині: вони жруть пам'ять: дискову пам'ять, ОЗП, кеш процесора. Особливо цінна пам'ять — це кеш процесора другого-третього рівня, який один на всіх і котрого всього 0,5-6Мб. Коли кеш процесора заб'ють кілька копій однієї й тієї ж функції з різних бінарників, то частота процесора(-ів) впаде до частоти пам'яті — тобто всі n процесорів сидітимуть і чекатимуть поки пам'ять їм щось пришле на виконання. На іграшкових системах це швидко — бо кеш вміщає все, а на завантажених системах настає торба.

По друге, статичне лінкування підпадає під дію ліцензії LGPL, яка вимагає щоб у такому випадку бінарник теж був під дією (L)GPL, що далеко не всім підходить. (Це стосується і docker-а).

і чому вони віддають перевагу отому "muscl",  

muscl в два рази повільніший за glibc. Розмір бібліотеки на диску мене не турбує, так як в пам'ять витягується лише те, що використовується (сторінками по 4Кб).

і чому-це оновлення через GIT_HUB зло?  

Тому що github — це приватна контора. А git не призначений для роботи з бінарниками і його кеш об'єктів буде пухнути при кожному оновленні. Якщо вас так хвилює місце на диску, то вас повинно хвилювати те що git витрачатиме в кілька раз більше місця під зберігання даних про цей дистр, чим сам дистр. І ця пропорція з часом буде тільки рости.

Централізація, так, але , ну скажімо так, у випадку коли ти у РФ/Україні, то це навпаки вигідніше, Я гадаю...
 

Що саме вигідніше? Оновлення дельтами? Так воно є і у Федорі чи ЦентОС.

Як по мені, то статична фішка у пам’яті із "динамічниою адресацією" виглядає прикольно.
Мені, як не обізнаному у даній темі, важко щось розсудити, але 34 МБ, дуже заманливо для мене!

Нічого не зрозумів.
« Змінено: 2016-03-29 13:04:13 від lvm »
[Fedora Linux]

Відсутній prapor

  • Письменник
  • *****
  • дописів: 518
  • Карма: +0/-0
Re: Вийшов у світ Stali 0.0
« Відповідей #4 : 2016-03-29 13:14:59 »
Нічого не зрозумів.
Не дивуйтесь. Це норма.
- I'm afraid your son has the knack.
- The knack?
- The knack. It's a rare condition characterised by an extreme intuition about all things mechanical and electrical. And utter social ineptitude.
- Can he lead a normal life?
- No, he'll be an engineer.

OzySTS275Ma

  • Гість
Re: Вийшов у світ Stali 0.0
« Відповідей #5 : 2016-03-30 08:49:20 »
Статичні файли були ще у версії Лінукс 0.0.1. Від них відмовилися по дуже простій причині: вони жруть пам'ять: дискову пам'ять, ОЗП, кеш процесора. Особливо цінна пам'ять — це кеш процесора другого-третього рівня, який один на всіх і котрого всього 0,5-6Мб. Коли кеш процесора заб'ють кілька копій однієї й тієї ж функції з різних бінарників, то частота процесора(-ів) впаде до частоти пам'яті — тобто всі n процесорів сидітимуть і чекатимуть поки пам'ять їм щось пришле на виконання. На іграшкових системах це швидко — бо кеш вміщає все, а на завантажених системах настає торба.

По друге, статичне лінкування підпадає під дію ліцензії LGPL, яка вимагає щоб у такому випадку бінарник теж був під дією (L)GPL, що далеко не всім підходить. (Це стосується і docker-а).

http://sta.li/faq
Цитата
Aren’t statically linked executables consuming more memory?

We believe that due to the small size of the base system the opposite will be the case. First of all, the kernel will load each static executable’s .rodata, .data, .text and .comment sections only once for all instances into memory. Second, because each static binary has only been linked with the object files necessary, it has already been optimized at linkage time for memory consumption. When loading it, we don’t require the kernel to map all dependent dynamic libraries into memory from which our binary might only use 5% of the functions they provide. So, in reality, the memory footprint is becoming less, and the dead code hold in memory (or paged) reduces overall consumption. This is also true for programs, like surf, which don’t use all webkit/gtk/glib functions.
Тобто мертво-код забезпечує, щось таке як і з динамічним причепленням? Щоб Арифметичне Логічний Пристрій тупашило одну функцію для багатьох , чогось там, у кеші ЦП? .

Я гадаю git анігілює недоліки (L)GPL ну он Бекрієвка живе собі на гіршій від (L)GPL ліцензії, і нормально себе почуває, а воно сильніше централізовано ніж STALI .

muscl в два рази повільніший за glibc. Розмір бібліотеки на диску мене не турбує, так як в пам'ять витягується лише те, що використовується (сторінками по 4Кб).
Ну, незнаю, Я прочитав отут — http://www.etalabs.net/compare_libcs.html (тут мабуть старуваті версії, але нічого), що в плані швидкодії оте muscl не так і сильно поступається glibc, і Я не думаю що воно вже ж так жуватиме пам’ять... Правда вони там використовували щось отаке, типу Берклі, чи Я не знаю...

http://www.etalabs.net/compare_libcs.html
Цитата
POSIX threads refers to threads with real POSIX semantics, not the historical broken LinuxThreads (where each thread behaves like a distinct process) or similar implementations.
Загалом, оте muscl показує себе непогано, принаймні у тестах. Ну, Я не спеціаліст, тому вам видніше.

Тому що github — це приватна контора. А git не призначений для роботи з бінарниками і його кеш об'єктів буде пухнути при кожному оновленні. Якщо вас так хвилює місце на диску, то вас повинно хвилювати те що git витрачатиме в кілька раз більше місця під зберігання даних про цей дистр, чим сам дистр. І ця пропорція з часом буде тільки рости.

Що саме вигідніше? Оновлення дельтами? Так воно є і у Федорі чи ЦентОС.
https://en.wikipedia.org/wiki/Git_%28software%29
Цитата
Cryptographic authentication of history
    The Git history is stored in such a way that the ID of a particular version (a commit in Git terms) depends upon the complete development history leading up to that commit. Once it is published, it is not possible to change the old versions without it being noticed. The structure is similar to a Merkle tree, but with additional data at the nodes as well as the leaves.[32] (Mercurial and Monotone also have this property.)
Виглядає прикольно. Типу сигнатури для першоджерельного коду.

https://en.wikipedia.org/wiki/Git_%28software%29
Цитата
Periodic explicit object packing
    Git stores each newly created object as a separate file. Although individually compressed, this takes a great deal of space and is inefficient. This is solved by the use of packs that store a large number of objects in a single file (or network byte stream) called packfile, delta-compressed among themselves. Packs are compressed using the heuristic that files with the same name are probably similar, but do not depend on it for correctness. A corresponding index file is created for each packfile, telling the offset of each object in the packfile. Newly created objects (newly added history) are still stored singly, and periodic repacking is required to maintain space efficiency. The process of packing the repository can be very computationally expensive. By allowing objects to exist in the repository in a loose, but quickly generated format, Git allows the expensive pack operation to be deferred until later when time does not matter (e.g. the end of the work day). Git does periodic repacking automatically but manual repacking is also possible with the git gc command. For data integrity, both packfile and its index have SHA-1 checksum inside, and also the file name of packfile contains a SHA-1 checksum. To check integrity, run the git fsck command.
Ну звичайно слова SHA-1, мене щось не радують... В теорії виглядає заманливо, але на практиці, Бог його знає.
Як по мені, то статична фішка у пам’яті із "динамічниою адресацією" виглядає прикольно.
Мені, як не обізнаному у даній темі, важко щось розсудити, але 34 МБ, дуже заманливо для мене!

Нічого не зрозумів.
Та Я мав на увазі ось оце, ну, якщо Я правильно розумію

http://sta.li/faq
Цитата
Another argument often heard is that static functions have predictable addresses, whereas dynamic linking provides the ability of address randomization. We have two answers to this. The first is: it is simple to use position-independent code in static executables and (assuming a modern kernel that supports address randomization for executables) fully position-independent executables are easily created on all modern operating systems. The second is: In reality, address randomization is predictable and we usually see the same addresses when a dynamic library is loaded or has been pre-loaded again and again. Thus we consider this as an issue with low impact and this is not a real focus for us.
Типу, статично прикліплений бінарі, і саме Ядро ОС створює собі ураган випадковщини? Правильно?



@prapor — Ви цей во, там, ото  консервуйтесь у своїх *їзмах :P А тут , можливо, майбутній Бох світу машин — Озі, "роздупляється" із лінкуванням :D .

Відсутній Михайло Даниленко

  • Адміністратор ЩОДО
  • Літератор
  • *****
  • дописів: 1262
  • Карма: +0/-0
  • [Debian Stretch]
Re: Вийшов у світ Stali 0.0
« Відповідей #6 : 2016-03-30 11:07:08 »
OzySTS275Ma: [!] 10 днів. Причина — реєстрація дубліката користувача для обходу адміністративних обмежень.
« Змінено: 2016-03-30 15:37:33 від ISBear »

r00t x

  • Гість
Re: Вийшов у світ Stali 0.0
« Відповідей #7 : 2016-03-30 17:39:44 »
... А тут , можливо, майбутній Бох світу машин — Озі, "роздупляється" із лінкуванням :D .

 :D В Золоті цитати?, чи нє  :-/

---
класно тут. я зіпсований, мокрий настрій розігнав.

попрошу мій попер ком знищити.