LINUX.ORG.RU

В чём смысл Никсоси?

 , ,


0

3

Вчера решил потыкать палкой в Никсось. Вопросов в итоге больше, чем ответов.

1. Декларативный конфиг. Запихнули все настройки в один файл. В других линуксах это будет комплект файлов. Но потаенный смысл «декларативности» ускользает.

2. Вся движуха происходит в /nixos/ базовая иерархия линуксовых директорий практически не используется. В чем опять же, смысл? Устроить срач в одной отдельно взятой директории? Причем этот срач превосходит изначальный срач в других линуксах.

3. Не релевантность опыта использования Никсоси. Можно десятилетия сидеть в никсоси и не иметь опыта в линуксе. Всё, что происходит в никсоси - остается в никсоси.

4. Воспроизводимость системы. Непонятно зачем. Развернуть одинаковую систему на много компов одновременно? Это можно сделать и в других линуксах. И это не то, что надо делать постоянно.

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

Это всё сугубо мое личное мнение. Возможно, я сильно заблуждаюсь. Кто сможет раскрыть мне глаза?

ДОБАВЛЕНО: Еще один животрепещущий вопрос. Как в никсоси разруливаются зависимости? Существует ли разделение на обязательные и необязательные? И если да, то как это настроить?

И да, чехарда с именами разделов при загрузке - присутствует.

★★★★★

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

Легко могу представить циклы в yaml,

Я всем сейчас покажу этот ад, чтоб боялись и икали:

jobs:
  - job: print_vars
    steps:
    - ${{ each var in split(variables.vars, ', ') }}:
      - script: |
          echo ${{ var}}
        displayName: Printing ${{ var }}

пользуюсь каждый день.

Соболезную, серьезно. Это самый настоящий ад.

Чем XML хуже?

Объясняю. XML и Yaml это документы , данные.

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

Конкретно в примере с Yaml происходит под капотом еще большая дичь в виде пост-обработки самого себя, по описанным в себе же правилам.

alex0x08 ★★★
()
Ответ на: комментарий от shell-script

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

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

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

Для nix вполне достаточно было бы того же самого, что мы имеем в Ansible, но недостаточно.

Впрочем, да, я тут подумал, что для Ansible тоже недостаточно.

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

Один раз описать всю систему и далее вне зависимости от фаз Луны и положения Юпитера в Козероге иметь возможность это дело получить.

То есть нам, домашним юзерам, просьба не беспокоиться?

papin-aziat ★★★★★
()
Ответ на: комментарий от Aceler

что для Ansible тоже недостаточно.

Его нигде недостаточно, но декларативный документ дает стабильную основу, что важно для документов.

Поэтому например сборка через Gradle непредсказуема - вместо декларативного документа там сразу полноценный язык (groovy), с бесконечными циклами и многопоточностью. Разраб вставит «while(true)» в код скрипта и все, сборка встанет.

alex0x08 ★★★
()
Ответ на: комментарий от papin-aziat

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

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

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

Ты шуткуешь ведь, да?

papin-aziat ★★★★★
()
Ответ на: комментарий от Aceler

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

Поэтому-то и не бывает чисто декларативных конфигов в реальной жизни. Поэтом в ansible в yaml'ы вставляют loop'ы и прочие громоздкие конструкции.

Nix пытается это решить своим языком, но в итоге оно так или иначе транслируется всё в те же наборы if'ов, только через прослойку своего языка.

shell-script ★★★★★
()
Ответ на: комментарий от utanho

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

Ты ещё не готов принять истину, не дорос, не вылупился из матрицы, что не понятно?

papin-aziat ★★★★★
()
Ответ на: комментарий от shell-script

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

Поэтом в ansible в yaml’ы вставляют loop’ы и прочие громоздкие конструкции.

Которые всё ещё не язык.

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

Старая мозоль. При старте системы происходит параллельная инициализацая дисков. Кто первый успел, тот и sda.

Ого, прогресс, уже старая, и ни слова о багах 🤣

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

Вообразим юниксоида, который сорок лет пролежал в коме, но вдруг очнулся и первым делом спросил, что случилось с IT за эти годы, что сейчас вместо юниксов, гцц, эмакса и X11. Ему ответят, что всё поменялось, вместо юниксов теперь юниксы же (один для серверов, один для рабочих станций), вместо гцц теперь гцц, вместо emacs, emacs (+ появились упрощённые копии), а вместо x11 — сюрприз-сюрприз — х11 (но почти доделали упрощённую замену, скоро внедрят, буквально лет на 15-20 делов). Я б от таких новостей плюнул и обратно в кому прыгнул. Вы можете заметить, что я утрирую, там вместо сишки много других языков появилось, но кто знаком с лиспом, тот в питоне ничего нового не найдёт. А лиспы ещё старше юниксов. Строгая типизация и функциональное программирование, которые нынче (т.е. лет 10-15 уже) входят в моду — это дело, но кто в 1984-м Standard ML видел, тот не будет шокирован. Systemd на SysV init не похож, но это уже слишком — переписать init и считать это достаточным прогрессом за 40 лет разработки.

Да что говорить, если контейнерам пришлось потратить 30 лет, с 1986-го по примерно 2016-й, чтобы быть принятыми индустрией.

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

Дык меняется-то картинка!

Так-то ясно, что в основе вещей лежит что-то долгоиграющее, а порой и вечное, если в твой спич ещё и дискретную математику притащить, или типа того.

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

papin-aziat ★★★★★
()
Ответ на: комментарий от utanho

И что земля круглая, и что вертится вокруг солнца, – тоже. Это всё важно и неважно одновременно. Чем отличается мудрая бабуля, которая всю жись на фабрике отработала, от внучка айтишнега?! Тем, что она уже знает, что люди не меняются, а внучку узнать эту горькую истину только предстоит.

Стоит только поместить этот икс (человеческую природу) в любое уравнение и как-то сразу всё встаёт на свои места 🤣

papin-aziat ★★★★★
()
Ответ на: комментарий от shell-script

Я склоняюсь к мысли, что никсось должна быть хороша для виртуализации. Когда нет времени/ресурсов/неохота разрулмвать зависимости пакетов, а надо быстро развернуть систему в заданной конфигурации. К слову, это умела ещё вин9х. Но в никсоси решили, что надо использовать не просто текстовый конфиг, а ЯП.

utanho ★★★★★
() автор топика
Ответ на: комментарий от papin-aziat

Дык меняется-то картинка!

В смысле? Как были плоские прямоугольные окошки, так и остались. 3d-интерфейсы и дополненную реальность пытаются рожать, но что-то как-то не взлетает. А в области простого 2d между картинкой из 83-го и картинкой из 96-го разница ещё заметна. А вот в разницу между 96-м и 2023-м нужно уже вглядываться.

В остальном же, чтобы уйти от тезиса «IT — консервативная индустрия» нам нужно как-то серьёзно уверить себя, что «в гноме вышла новая версия калькулятора, кнопки сделали ещё больше» — серьёзная новость, прогресс и инновация. У меня, вот, как-то себя убедить в этом не получается.

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

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

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

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

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

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

А в области простого 2d между картинкой из 83-го и картинкой из 96-го разница ещё заметна. А вот в разницу между 96-м и 2023-м нужно уже вглядываться.

А если, как мы говоришь «утрировать», то вообще ничего не меняется – всё те же окошки.

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

Тут был человек, который мог совершить революцию в UI, но его загнобили подкупленные проприетарщиками модераторы

Новый фундамент интерфейса, всплывающие окна, тонущие двери, мастерская идей

alex1101
()
Ответ на: комментарий от papin-aziat

Тут можно использовать аналогию с кинематографом. Между немым кино и звуковым разница огромная. А между чёрно-белым и цветным уже не особо. Картинка чуть другая, а киноязык тот же. 3д вообще почти бесполезно, с ним наигрались, когда оно было в диковинку, да и забили.

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

Да. Я вот всё жду, может надоест это всё Шапке и они наконец скажут своё «баста», и принудят гномеров сделать уже что-то окончательное, на десятки лет, хотя тогда уж скорее выкинут гном и запилят что-то новое.

papin-aziat ★★★★★
()
Ответ на: комментарий от theNamelessOne

Я бы не был тут так уверен.

Отчего же? Запихнуть рантайм с базовую систему и совать флатпаки в /nix. Воспроизводимость заколосится и сопровождать будет проще

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

Наткнулся на opennet и где-то я подобное уже видел. 😀

A. Чего только люди не напридумывают лишь бы NixOS не использовать.
  	
B. Вменяемые люди очень многое готовы придумывать, лишь бы только не использовать NixOS.
 	
A. Почему эти ваши люди так и не придумали что-то нормальное?
  	
B. Придумали - не использовать NixOS. 


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

На лоре такой цирк постоянно.

Меня в никсоси смущают 2 момента. Несоответствие заявленных параметров действительности и непрозрачность поведения системы.

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

Несоответствие заявленных параметров действительности и непрозрачность поведения системы.

Это ты еще со стартапами дела не имел, там каждый второй: «строим космолет для захвата Альфа-Центавры для будущего захвата галактики», а ракеты запускает все также один Илон Маск.

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

Лично я за пол первых часа использования nixos в своей жизни сумел повторить своё привычное окружение в gentoo

Домашник примонтировал со всеми настройками?

Я тоже давно на Gentoo и давно смотрю на nix. Но меня каждый раз останавливает изначально затраченное время.

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

Да я особо и не претендую. Мне главное чтоб работало, надёжно и легко изменялось под мои нужды. Как оно там внутри, мне, в целом, по фиг. Ну, до тех пор пока позволяет настроить так как я хочу. То есть вообще без какого-либо фанатизма.

Короче, мне ехать, а не шашечки

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

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

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

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

utanho ★★★★★
() автор топика