LINUX.ORG.RU

Леннарт Поттеринг представил mkosi, инструмент для генерации образов ОС

 


3

4

Следом за casync, Леннарт Поттеринг представил ещё один свой проект — mkosi (Make Operating System Image).

mkosi предназначен для генерации загрузочных образов операционных систем, представляющий собой обёртку над утилитами dnf --installroot, debootstrap, pacstrap и zypper.

Поддерживается создание образов на базе дистрибутивов Fedora, Debian, Ubuntu, Arch Linux, openSUSE. Созданный образ можно запустить из контейнера командой «systemd-nspawn -b -i image.raw».

mkosi позиционируется как legacy-free, т. е. программа поддерживает только актуальные на сегодняшний день технологии. Это означает поддержку только таблиц разделов GPT (и отсутсвие поддержки MBR), возможность генерации образов, основанных только на systemd, и генерацию только для загрузки на системах с поддержкой EFI (не MBR/BIOS).

Проект написан на языке python, распространяется под лицензией LGPL-2.1.

Репозиторий на github — https://github.com/systemd/mkosi.

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



Проверено: Shaman007 ()
Последнее исправление: JB (всего исправлений: 3)

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

Если ты можешь организовать MitM, то ты и без systemd способен натворить кучу веселых штук.

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

В чём проблема такого подхода

Ещё пара лет раздумий и ты всё-таки догадаешься, что а апстрим патчи надо слать не через ЛОР ;-)

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

поэтому нормальные люди избегают этого поделия
alwayslate

Ничего, лет через 5 сообразишь зачем systemd используют. Авось к тому времени ещё и на клавиатуру с shift заработаешь.

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

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

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

Не уверен, что в случае с init нужно универсальное решение. К примеру, на маршрутизаторах с openwrt варианты вроде systemd(и даже upstart) явно избыточны, на десктопах - самое то, а на серверах и обычного upstart за глаза хватает, там скорость загрузки не особо важна, дополнительные фичи вроде systemd.automount с autofs тоже не особо востребованы. Был бы systemd модульным, с возможностью включения/отключения нужных модулей и функционала - возможно какое-то универсальное решение с него бы получилось запилисть. С его текущей архитектурой это великолепное решение для десктопов, спорное для серверов и не подходящее для маломощных специализированных девайсов. Но в своей нише, на десктопах и ноутбуках, systemd хорош. Очень хорош.

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

Ну, всё-таки Леннарт - не Гитлер. Он никому зла не делает, наоборот делится с ообществом своими идеями и наработками.

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

Не знаю, у меня с Pulse Audio давно никаких проблем нет, когда-то в скайпе были проблемы, решались незначительной правкой конфига, но с тех пор годы прошли, и ни разу за эти годы не сталкивался с проблемой с pulseaudio.

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

Ну, тут модно было не любить Pulse Audio ещё когда systemd и в проекте не было. А я с самого начала забил на этот тренд, и с удовольствием юзал сабж.

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

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

Sd на данном этапе развития — сырое УГ. Пользоваться глючной и дырявой поделкой, выступая в качестве бесплатного альфа-тестера — себя не уважать.

Помнится у некоторых товарищией была даже не любовь к Network Manager, и вместо него они пропагандировали использование сторонних велосипедов вроде wicd

Пользуюсь wicd на недобуке, брат жив.

ручной настройки сети в /etc/network/interfaces

Разве на серверах сеть настраивают как-то иначе?

Отдельно стоит вспомнить хейтеров Gstreamer, пропагандирующих альтернативные велосипеды вроде aRts, Xine и подделий на его основе и т.п. И где теперь фанбои aRts? Думаю, юзают с удовольствием Gstreamer, только боятся признаться, что в своё время они поставили не на ту лошадку, и зря хейтили Gstreamer.

Выпущены 0day-эксплоиты для обработчиков мультимедиа
Сомнительное на самом деле удовольствие. Хотя мазохистам конечно виднее.

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

Будто что-то плохое.

а вовсе не в том ПО, которое они хейтят.

Проблема в том что практически всё вышеперечисленное ПО вместе с сабжем — УГ.

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

Но зачем выбирать сабжевую поделку, не дающую выбора (т.н. „legacy-free”), если есть более адекватные универсальные инструменты?

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

Гитлер тоже старался.

только актуальные на сегодняшний день технологии
только таблиц разделов GPT
только на systemd
только для загрузки на системах с поддержкой EFI

Ну ты понял.

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

Может, потому, что они были хороши, а поделки Лёньки Поца не заходят, ибо они - говно?

Кушать говно сейчас модно же. Не хочешь быть модным? Ты что, ретроград?

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

Кресты ограничены обратной совместимостью. А это означает что даже при полном неприятии современных стандартов ты сможешь пользоваться современными компиляторами.

Да, на серверах и десктопах всё надо только ломать и переписывать с нуля, никакой обратной совместимости. Ибо NIH, а переписывание компиляторов хомячки просто не оценят.

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

Ну и, естественно, как и в любом софте (особенно таком сравнительно новом) тут есть уявзимости. Закроют патчами, как и в openssh, nginx, как и везде

Зачем нужен openssh и nginx — понятно. Но вот зачем нужен дырявый systemd?

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

А я не понимаю зачем пихать в продакшн сырую глючную поделку дабы потом иметь из-за неё геморрой.

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

А у тебя есть репутация феерического говнокодера?

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

path = os.path.splitext(path)[0]

Берём path с расширение tar.bz2 и получаем не то, что хочется:

>>> os.path.splitext("file-123.tar.bz2")
('file-123.tar', '.bz2')

range(len(units)-1, -1, -1)

Вот тут можно покрасивее:

reversed(range(len(units)))
pod ★★
()
Ответ на: комментарий от pod

Берём path с расширение tar.bz2 и получаем не то, что хочется:

strip_suffixes("file-123.tar.xz")
'file-123'

Там же while не зря. А bz2 в оригинале тоже не было. В этом варианте достаточно его надо всего лишь добавить в EXT и всё, без всяких elif и [:-4]

-     EXTS = (".xz", ".raw", ".tar")
+     EXTS = (".xz", ".raw", ".tar", ".bz2")

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

Не будьте строгим, парень просто пидон изучает.

Один вот C изучал, например, а в результате OpenSSL получился.

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

И правда - зачем дробить то, что по задумке монолитно? Как и кости.

awesomelackware
() автор топика
Ответ на: Может ошибка у меня, не знаю от awesomelackware

Это у него, распространенное заблуждение — приравнивать EFI к !MBR. Но он образы генерирует, в основном, хотя со squashfs можно было бы просто архив раскрывать на флешку, например, без связи с MBR/GPT.

Но ничего, выучит Питон, почитает стандарт UEFI и приделает новые костыли.

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

Проблема не в том, какой из двух вариантов выбрать. Просто хорошо бы выбрать один, раз уж взялись писать «магические числа». Или оба раза 1024*1024*1024 или оба раза 1024**3. В одном участке кода так очевиднее. Это само по себе мелочь, но там весь код такого уровня.

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

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

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

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

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

Да, на серверах и десктопах всё надо только ломать и переписывать с нуля, никакой обратной совместимости

даже мастдай переписывают

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

Уже и в openembedded systemd ввели? Да ёпта...

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

этот проект по крайней мере безобидный.

«возможность генерации образов, основанных только на systemd»

Ничего безобидного леннарт не делает. Его цель - захватить всё. Так как всё что не systemd это «legacy» - значит будет поддержка сборки только образов с systemd.

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

Ну, всё-таки Леннарт - не Гитлер. Он никому зла не делает, наоборот делится с ообществом своими идеями и наработками.

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

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

Ничего, лет через 5 сообразишь зачем systemd используют.

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

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

На alsa лично мне это не надо. А так - пусть набирает. Это жестокий мир, в котором правят такие ушлые ребятишки, как этот Лёнька. Особенно если он со своими поделиями сидит на зарплате от редхата.

А на alsa мне нужно другое. И, может, когда и запилю себе плагинчик с нужной функциональностью. Заодно и ЦОС подучу. Но это когда звёзды сойдутся.

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

Но в своей нише, на десктопах и ноутбуках, systemd хорош. Очень хорош.

Для обычного пользователя sysvinit ещё лучше, а уж openrc божественен. cgroups использовать можно везде, кому это вообще нужно. И зависимости между сервисами для старта есть везде. А больше ничего хорошего эта поделка даже не пытается предоставить.

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

Ничего безобидного леннарт не делает. Его цель - захватить всё. Так как всё что не systemd это «legacy» - значит будет поддержка сборки только образов с systemd.

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

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

Он тратит миллионы человекочасов других людей на попытках избавиться от его говнотворчества. И убивает экосистему силами редхата.

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

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

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

1) самый простой пример

template<typename A, B>
auto f(A a, B b)
{
   // your code
}

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

Я бы такую хрень не вводил язык, ибо хипстеры точно будут ей злоупотреблять. А для сложных случаев навороченных шаблонов есть decltype.

2) auto a = f();

это совсем не то же самое, что

auto &a = f();

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

========

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

Это одна из фич обновлённых плюсцов, которые я принял неоднозначно.

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

Sd на данном этапе развития — сырое УГ. Пользоваться глючной и дырявой поделкой, выступая в качестве бесплатного альфа-тестера — себя не уважать.

У меня с ним на десктопе и на серваке с Centos 7 проблем не было не разу, следовательно для меня systemd вполне стабилен. Хотя, Centos 6 с upstart, конечно привычней.

Проблема в том что практически всё вышеперечисленное ПО вместе с сабжем — УГ.

Спорное утверждение, по мне так нормальное ПО, но на вкус и цвет все фломастеры разные.

Но зачем выбирать сабжевую поделку, не дающую выбора (т.н. „legacy-free”), если есть более адекватные универсальные инструменты?

Где они, эти универсальные инструменты? Я и среди СПО, и среди проприетарных решений вижу в основном различные велосипеды разной степени навороченности, но велосипеды. И каждый со своей спецификой.

lucentcode ★★★★★
()

Леннарт Поттеринг совершил каминг-аут

Когда же уже.

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