Доступен (https://github.com/arsv/minibase/releases) первый стабильный релиз проекта Minibase (https://github.com/arsv/minibase/), в рамках которого развивается пользовательское окружение на базе ядра Linux, позволяющее получить рабочую загрузочную систему с минимально возможным набором самодостаточных компонентов. Минимальный размер окружения составляет 19 Мб. Поддерживается сборка (https://github.com/arsv/minibase-br/) для архитектур x86_64, arm, arm64 и rv64. Система может быть загружена как в QEMU, так и на реальном оборудовании. Наработки проекта написаны на языке Си и распространяются (https://github.com/arsv/minibase/r) под лицензией GPLv3.В базовую поставку входит ядро Linux (3MB), набор модулей ядра (6MB ), набор прошивок для беспроводных чипов (9MB) и подборка статически собранных утилит (650KB), таких как cat, ls, du, df, systime, sync, dmesg, switchroot, pstree, elfinfo, lsdri, modprobe и mount. Большинство из утилит специально написаны для Minibase и не основываются на коде штатных утилит. Все исполняемые файлы в базовом окружении собраны статически - применение стандартной Си-библиотеки (libc) не обязательно, но для обеспечения запуска дополнительных динамически собранных приложений (например, X.org) предусмотрена возможность использования библиотеки musl.
В состав также входят инструменты для поиска и подключения шифрованных или нешифрованных разделов (passblk, findblkб dektool, dmcrypt), базовые процессы системы инициализации (init, super, reboot, svctl), урезанный вариант udevd и syslogd, инструменты для монтирования (mountd, pmount), утилита для запуска привилегированных процессов (sudo), система мультиплексирования терминалов (vtmux), простая интерактивная командная оболочка (cmd), утилиты для настройки сетевых интерфейсов (ifmon с поддержкой DHCP, ip4cfg, ip4info), конфигуратор беспроводной сети (wsupp, wpa_supplicant). Опционально поддерживается установка SSH-сервера/клиента dropbear (200KB), командного интерпретатора dash (100KB) и графического стека (27MB), который может включать X.Org-сервер или композитный сервер Weston (Wayland).По своим задачам окружение minibase во многом напоминает busybox и сопоставимо с ним по размеру. Ключевое отличие заключается в том, что busybox оформлен в виде единого исполняемого файла, а busybox позиционируется как набор статически собранных исполняемых файлов. При этом Minibase не ставит перед собой цель обеспечения совместимости с инструментарием POSIX или GNU и в большей степени нацелен на поставку специфичных для Linux сервисов (KMS VT, сетевые утилиты, шифрование диска). Minibase также не требует libc для сборки - за счёт прямого обращения к системным вызовам пакет самодостаточен, для его сборки достаточно компилятора и компоновщика. Для выполнения привилегированных операций в Minibase не используется suid-бит или capabilities, вместо этого осуществляется обращение к специальному привилегированному сервису через IPC.
URL: https://github.com/arsv/minibase/releases
Новость: http://www.opennet.ru/opennews/art.shtml?num=47944
Ключевое отличие заключается в том, что busybox оформлен в виде единого исполняемого файла, а busybox позиционируется как набор статически собранных исполняемых файлов (с)
Исправьте опечатку
Уже кто-то предложил.PS: мне категорически непонятно сравнение с busybox, у которого повторное использование кода/функциональности: при статической линковке ведь происходит ровно противоположное!
PPS: ...в смысле дублирование.
> PS: мне категорически непонятно сравнение с busybox, у которого повторное использование кода/функциональности: при статической линковке ведь происходит ровно противоположное!
> PPS: ...в смысле дублирование.busybox: ELF отмаплен один раз и практически не выгружается.
static linkage: каждый ELF мапится (и в сумме они заняли бы больше), но при неиспользовании
эти страницы могут быть освобождены. Так что при практическом использовании требования на
память могут быть заметно скромнее.
При едином elf'е никто не мешает ядру забирать страницы памяти у этого elf'а и использовать их под другие нужды.
>static linkage: каждый ELF мапится (и в сумме они заняли бы больше), но при неиспользованииэти страницы могут быть освобождены.
Здрасьте, в busybox тоже неиспользуемые страницы отмапливаются, как и в любом приложении, если специально mlock не делать. Так что потребеление памяти в первом случае <= второго
> эти страницы могут быть освобождены.Для PIC --- да. Для не-PIC --- не знаю. Возможно, тоже. Хотя нагрузку на файловую подсистему немного добавят.
> Так что потребеление памяти в первом случае <= второго
А вот это не так, кроме случая "загрузили всё".
Прокомментируйте как-то, а то я ещё не решил, нужно это или нет. На вид похоже, что более рабоспособно чем тот же tiny core linux, можно использовать как систему для восстановления.
Для embedded систем самое оно.
Нет
Опять ты?
Это голос в твоей голове. И моей тоже.
> Для embedded систем самое оно.С какого перепугу?
Куда влезет ЭТО - можно и дебиан впихнуть, сразу возможностей на порядок больше и можно отлаживаться на десктопе. А куда не влезет - openwrt/lede как-то осмысленнее. И маленькие и даже пакетный менеджер при этом есть.
> , а то я ещё не решил, нужно это или нет.Так вы решили или нет? Поспешите, пожалуйста.
А то без вашего решения столько народа простаивает в ожидании!
Я решил, что нужно. Обязательно пользуйтесь, очень удобно!
сбросьте пожалуйста ссылку на описание rv64.
забыл что это, не могу нагуглить.
risc-v?
https://passlab.github.io/CSE564/notes/lecture07_RISCV_ISA.pdf
# lxc-create -n alpine-base -t alpine# du -sk /var/lib/lxc/alpine-base
6940 /var/lib/lxc/alpine-base
И ядро даже есть, как в сабже?
А теперь добавь к нему ядро, модули и firmware и будет больше 19МБ
Да, с ядром будет больше - на размер ядра.
Но там уже есть пакетный менеджер, нормальный shell, полторы сотни POSIX-утилит, libcrypto, libssl, libz, libc, mdev, система инициализации.
Чем это отличается от Alpine?
тут не-musl и пачка утилит вместо бизибокса, для работы непригодно, но годится для фрагментации сообщества и внесения раздора
>для работы непригодно, но годится для фрагментации сообщества и внесения раздораболее 90% линукс-дистров попадает под это описание.
нет
> нетЯ не спрашиваю, как ты порпобовал "для работы" >10% дистрибутивов.
Гораздо интереснее, как предыдущий оратор сделал это с 90% ! #болтуны опенета #покамыедины
Подскажите начинающему, как на такое ставить пакеты, когда нет ни dpkg ни apt, если не жалко, ткните ссылкой не в гугл.
Лол пакеты.
Тебе предстоит долгая дорога.
man make.
Подозреваю, что в данном дистрибутиве ни man, ни make нет. Только собирать на стороне и вручную копировать в ФС.
> Подозреваю, что в данном дистрибутиве ни man, ни make нет. Только собирать
> на стороне и вручную копировать в ФС.Да там автор ужаленный buildroot'ом (в хрошем или в плохом смысле).
> man makeЛегко отделаться хочешь. Нет, тут info make нужен.
> Подскажите начинающему, как на такое ставить пакеты, когда нет ни dpkg ни apt, если не жалко, ткните ссылкой не в гугл.Подсказываю, как даже не начинавший -- начинающему: пакетов в современном понимании здесь нет. Надо ставить туда компилятор и собирать ручками. А ввиду того, что POSIX-совместимость не гарантируется, возможны разные грабли.
А зачем оно тебе?
Имел ввиду не только этот, а тот же alpine, coreos. Как в них развернуть openvpn или nodejs - хз. В нете, как правило, либо однострочники для убунты или самосборки. Думал может скрипты какие есть.
> Как в них развернуть openvpn или nodejs - хз.Уроки не выучены, а он что-то "разворачивать" собрался?
Приходиться разбираться и учить, так как вокруг богоподобные "специалисты", которые только и могут острить тупыми заплесневелыми шутками
Скрипт есть: ./configure && make && make installНо ты должен понимать, что делаешь.
>под лицензией GPLv3хорошо
>не ставит перед собой цель обеспечения совместимости с инструментарием POSIX или GNUправильно
>Minibase также не требует libc для сборки - за счёт прямого обращения к системным вызовам пакет самодостаточенинтересно
>не используется suid-бит или capabilities, вместо этого осуществляется обращение к специальному привилегированному сервису через IPCВаще грамотно
Кто эти люди?
>>не используется suid-бит или capabilities
> Ваще грамотноС чего бы?
> Кто эти люди?
С учётом статики я бы ни разу не исключал проблем с проверкой прав доступа к этому IPC -- люди явно неграмотные.
> С учётом статики я бы ни разу не исключал проблем с проверкой
> прав доступа к этому IPC -- люди явно неграмотные.предвзятость? Опять же почему?
>> С учётом статики я бы ни разу не исключал проблем с проверкой
>> прав доступа к этому IPC -- люди явно неграмотные.
> предвзятость? Опять же почему?Вот вот, «Кто эти люди?».
«Большинство из утилит специально написаны для Minibase и не основываются на коде штатных утилит.» Вот вот, а код кто-нибудь смотрел? А то, новый код, новые «дырки» (вообще молчу про закладки)?
Вот именно. Все эти "базовые утилиты" не такие уж базовые и случаев и нюансов там хватает.
> Шигорин
> люди явно неграмотныеНу конечно же неграмотные, эти загнивающие западники иконы рядом с компьютером не ставят!
>> Шигорин
>> люди явно неграмотные
> Ну конечно же неграмотные, эти загнивающие западники иконы рядом с компьютером не
> ставят!Чо пристали то. Вот если бы там стояла фотка с обнаженной поп-дивой это бы как то изменило уровень грамотности или гнилости?
А, вот оказывается, что ставит Лёня перед своим компьютером! :)
> Вот если бы там стояла фотка с обнаженной поп-дивой это бы как то изменило
> уровень грамотности или гнилости?Нет, на грамотность не влияет. Просто показывает, что обычный мужик с обычными инстинктами. В отличие от.
Кто-то не слышал про изготовление initramfs: "статических", "динамических", на базе klibc, busybox/toybox + musl/dietlibc/newlibc.
Вот интересно - если сейчас взять набор гнусных утилит и glibc достаточно мохнатого года - прокатит вместо подобных штук по потребелнию ресурсов? Понятно, что там несколько багов заткнуть надо будет, но это вопрос другой.А то убогая функциональность busybox и вот это "не ставит перед собой цель обеспечения совместимости с инструментарием POSIX или GNU" лично меня не радуют совершенно. Больно надо учитывать очередные особенности очередного ls. Хотя, конечно, здесь лицензия правильная.
> А то убогая функциональность busyboxНапример?
Сравни количество ключиков ls или любой другой команды в coreutils и в busybox и не спорь с очевидными вещами.
Думаю, даже более 10-летней давности это будет занимать в образе больше места. Чтобы реализовать больше ключиков, нужно больше места в исполнемых файлах.
И что? По нынешним временам один мегабайт, десять или сто - вообще не принципиально, даже стоимость примерно одинаковая будет.
> Сравни количество ключиков ls или любой другой команды в coreutils и в busybox и не спорь с очевидными вещами.Разве у ls есть ключики отличные от -l и -a? Не знал. Хотя вроде пользую вот уже почти 20ть лет..
> Сравни количество ключиков ls или любой другой команды в coreutils и в
> busybox и не спорь с очевидными вещами.ls - не показатель.
ls - интерактивная утилита, в скриптах её использовать нельзя.
ls из busybox поддерживает > 25 "ключиков".Давай другой пример.
> ls - интерактивная утилита, в скриптах её использовать нельзя.Держите меня семеро -- он делает мне смешно.
> Держите меня семеро -- он делает мне смешно.Не "невозможно", а "нельзя!".
И если ты не следуешь этому "дружескому совету", то держать тебя таки надо подальше от компьютера - например, иди в "преподаватели":)
ls -b1 в помощь. А тот, что в busybox - нельзя, там ключик -b не завезли, насколько я вижу.
> ls -b1 в помощь. А тот, что в busybox - нельзя, там
> ключик -b не завезли, насколько я вижу.Забавно: и в POSIX его "не завезли"...
> Не "невозможно", а "нельзя!".
> И если ты не следуешь этому "дружескому совету", то держать тебя таки надо подальше от компьютера - например, иди в "преподаватели":)Почему нельзя? Что плохого в том, что я взял вывод "ls -t | head", чтобы посмотреть какие там файлы последними менялись?
Мне на самом деле неясны эти ограничения. Что с того что ls "интерактивная" утилита? emerge тоже интерактивная, и даже более интерактивная чем ls, потому что она может зависнуть в ожидании ввода пользователя, но это не мешает мне отправлять вывод emerge в пайп для дальнейшей фильтрации и обработки.
То есть, на самом деле, у меня два вопроса:
1. "Можно" ли использовать ls в интерактивно вводимых командах, в которых используются перенаправления ввода/вывода, циклы, условия, сабшеллы и прочие фишки баша? Если нельзя, то почему?
2. Если в (1) можно использовать ls, то почему "нельзя" в "настоящем" скрипте, который сохранён в файлике с расширением .sh?И да, у меня просьба не приводить аргументы про преподавателей: если это лучшие аргументы из доступных, то лучше помолчать зубами к стенке.
Например вывод ls зависит от переменных окружения. И мало ли что там у юзера выставлено. В файлике это может сломаться в зависимости от настроек.> это не мешает мне отправлять вывод emerge в пайп для дальнейшей фильтрации и обработки.
Но в космос с тобой я бы не полетел...
> Например вывод ls зависит от переменных окружения. И мало ли что там
> у юзера выставлено. В файлике это может сломаться в зависимости от
> настроек.О, да, это валидный аргумент. Но не стоит его переоценивать: опции командной строки имеют более высокий приоритет, чем переменные окружения. При этом, у bash -- с этим вообще беда: алиасы, функции... У coreutils тоже интересно -- есть ряд переменных окружения, которые влияют на очень многие утилиты: например, LC_ALL и POSIXLY_CORRECT. И да, эти переменные вполне могут влиять на вывод утилит, например при выставленном POSIXLY_CORRECT block-size по-умолчанию становится равным 512 байтам, уж не знаю везде ли, но в таких утилитах как ls, du, df -- по-любому. То есть, если следовать твоему аргументу бездумно, то мы придём к выводу, что на bash вообще нельзя писать скриптов. Если же подходить не бездумно, то получается, что надо искать какую-то разумную грань, между "не писать на bash" и "писать на bash как угодно". А где эта грань находится уже зависит от конкретной задачи.
Но, повторю, хоть этот твой аргумент и не остановит меня от использования ls и emerge в скриптах, твой аргумент принят: я согласен, что не стоит писать скрипты с использованием ls для сколь-нибудь широкой группы людей. Мне сложно оценить какие юзкейсы имел в виду Andrey Mitrofanov, и следует ли ему отказаться от ls в его скриптах, но, в общем случае, всё же не стоит.
>> это не мешает мне отправлять вывод emerge в пайп для дальнейшей фильтрации и обработки.
> Но в космос с тобой я бы не полетел...Если ты пишешь скрипты на bash для управления летательными аппаратами, то даже если тебе захочется полететь со мной в космос, тебе это не удастся в силу моего нежелания. Я уж молчу о том, что тебя просто никто не пустит в космос писать там на bash, и уже из-за этого тебе не удастся туда полететь со мной ли или без меня.
Думается мне, Вы слишком хорошо думаете обо всех, кто занимается IT для космоса.А между тем, это тоже люди, разных поколений и квалификации,
и у них тоже далеко не всё с первого раза получается идеально:
http://www.opennet.ru/opennews/art.shtml?num=36871
и со второго, и с третьего иногда...Так что, там уже давно не только лишь bash.
И это даже если не брать в расчёт миллиардеров-инноваторов.
Ничего пока на города не упало, и то хорошо...
> ls - интерактивная утилитаНет. Она ничего не запрашивает у пользователя, а только выводит.
> ls - интерактивная утилитаВоу-воу. Помедленней. Это как так?
> осуществляется обращение к специальному привилегированному сервису через IPCА Лёня уже добавил suidd в свой шедевр?
> А Лёня уже добавил suidd в свой шедевр?Ты, наверное, хотел сказать "в свой шедеврD"?
одной 1.44" дискеты с OpenBSD хватит для всех :)
> одной 1.44" дискеты с OpenBSD хватит для всех :)Той-то, которую ты себе сделал? Да, с нас хватит.
Осталось определиться куда её можно засунуть в 18м году.
Как хватило одного полена для твоего изготовления.
хм. не полена. палки...
>Minibase также не требует libc для сборки - за счёт прямого обращения к системным вызовам пакет самодостаточеНаверное, полезен в качестве учебника, как напрямую из процесса обращаться к системным вызовам, ввиду малости исходного кода.
> Наверное, полезен в качестве учебника, как напрямую из процесса обращаться к системным
> вызовам, ввиду малости исходного кода.Зачем для такой https://duckduckgo.com/?q=smalles+elf+executable
фигни -- аж целый учебник?!Ты ещё скажи, что LFS копипастить или одним-скриптом-всё собирать - полезно для изучения сис.программирования.
Лол, я такие вещи обычно на коленке делаю, crosscompiler+busybox+linux.Точно, пойду добавлю нескучные обои и попиарюсь!
> Лол, я такие вещи обычно на коленке делаю, crosscompiler+busybox+linux.И где используешь? А то серьёзно непонятно, зачем всё это надо.
Ковырял ядро на rpi. Почти полный busybox в initramfs и поехали. Busybox умеет в вызов через симлинки, потому там все вполне минимально и рабоче
Жаль, что авторы сего поделия, судя по отсутствию соответствующей информации на указанном сайте, сами не вполне понимают для каких целей они создали и дальше развивают сие пoделие...
Сколько уже было таких проектов а-ля "давайте выкинем все ненужное!", по ходу которых сначала выкидывается все вообще, а потом постепенно запиливается "нужное", перерастая дальше в полновесный линуксовый дистр. Нужным оказалось всё подряд, вот ведь незадача. :-)
> Жаль, что авторы сего поделия, судя по отсутствию соответствующей информации на указанном
> сайте, сами не вполне понимают для каких целей они создали и
> дальше развивают сие пoделие...Они уже в новостях -- инвесторы уже кипятком в очереди выстраиваются.
> Сколько уже было таких проектов а-ля "давайте выкинем все ненужное!", по ходу
> которых сначала выкидывается все вообще, а потом постепенно запиливается "нужное", перерастая
> дальше в полновесный линуксовый дистр. Нужным оказалось всё подряд, вот ведь
> незадача. :-)
Вот что пишет о сим творении сам автор:This is a non-conventional, highly opionated personal project that is nowhere near complete. Lots of code has been, and lots of code will be re-written over and over again while I'm figuring out how I'd like to see it done. Third party contributions will likely do more harm than good at this point.
Остается только один вопрос - накой об этом новость на опеннете?
> Остается только один вопрос - накой об этом новость на опеннете?Мы - те самые "пацаны во дворе оценят".