Static Linux. Дистрибутив основан на Alpine Linux, используется musl и BusyBox. Ядро и корневая файловая система собраны в единый файл для запуска на системах с UEFI загрузкой (Secure Boot должна быть отключена). Для установки необходимо скачать bootx64.efi (http://static.flibex.ru/counter.php?file=bootx64.efi) и разместить его на отформатированный в FAT32 диск в директории X:/efi/boot/bootx64.efi Ядро собрано без поддержки подгружаемых модулей, в качестве init и для монтирования подключаемых дисков используются shell скрипты. Планируется статически слинковать все используемые программы, но на данный момент собран только toolchain и несколько основных программ.
> Static Linux.Цель? Как жить без ASLR? Зачем отключать Secure Boot?
Статически слинкованные программы быстрее, все в одном файле, не нужны подгружаемые библиотеки. ASLR только усложняет эксплуатацию уязвимостей, отчасти порожденных именно динамическим линкованием, а не избавляет от них. К сожалению нет возможности подписать загружаемый образ сертифицированной подписью :), поэтому надо отключать Secure Boot.
А тебе и не надо его подписывать сертифицированной подписью.
Подписывай своей, просто не забудь интегрировать свою подпись в тот же уефи.
> Подписывай своей, просто не забудь интегрировать свою подпись в тот же уефи.И не забудь ВСЕ остальные их подписи с UEFI поудалять. В UEFI должна быть только твоя подпись!
> Статически слинкованные программы быстрее, все в одном файле, не нужны подгружаемые библиотеки.Файлы ооочень жыыырные, система много места занимает, если диск медленный, например LiveCD/DVD, то система с динамически связанными библиотеками загрузится быстрее.
> ASLR только усложняет эксплуатацию уязвимостей, отчасти порожденных именно динамическим линкованием, а не избавляет от них.
Статическая линковка -> известность всех адресов -> вири будут этим пользоваться. ASLR нужный элемент защиты от вирей. Его стоит использовать. У тебя код PIC? Бинари собираешь PIE?
> К сожалению нет возможности подписать загружаемый образ сертифицированной подписью :), поэтому надо отключать Secure Boot.
Сертифицируй себе подпись сам и не верь больше их сертификатам: https://habr.com/en/post/273497
> Файлы ооочень жыыырные, система много места занимает, если диск медленный, например LiveCD/DVD,
> то система с динамически связанными библиотеками загрузится быстрее.Да, файлы на диске становятся больше, но не ооочень:) зато памяти программа занимает меньше.
> Статическая линковка -> известность всех адресов -> вири будут этим пользоваться. ASLR
> нужный элемент защиты от вирей. Его стоит использовать. У тебя код
> PIC? Бинари собираешь PIE?Если собирать с PIE всеравно получется динамический файл, PIE и статическая сборка не очень дружат:) Поэтому без PIC, PIE. А ты часто встречался с вирусами в Linux?:)
> Сертифицируй себе подпись сам и не верь больше их сертификатам: https://habr.com/en/post/273497
На каждом компьютере необходимо прописать новые ключи, зачем эти заморочки, когда можно просто выключить SecureBoot?
> Да, файлы на диске становятся больше, но не ооочень:) зато памяти программа занимает меньше.Это смотря кто ее собирал и как линковал.
> Если собирать с PIE всеравно получется динамический файл, PIE и статическая сборка не очень дружат:) Поэтому без PIC, PIE.
С пробитыми намертво гвоздями адресами памяти в асемблерных оптимизация PIC не дружит и соответственно PIE неполучится. А с простым C кодом проблем получить PIE бинарь не должно быть. Даже само ядро OS должно быть PIE бинарем и использовать ASLR.
> А ты часто встречался с вирусами в Linux?:)
Да. ;)
> На каждом компьютере необходимо прописать новые ключи, зачем эти заморочки, когда можно просто выключить SecureBoot?
Таковы обязаности админа. Иначе буткита подцепишь.
Вирусы и буткиты в моем случае маловероятны, т.к. использую программы из официальных репозитариев.
А ты не пробовал, загрузиться с моей сборкой? Просто интерестно мнение? Как оно?:) А то вот решил поделиться с общественностью своим рукоделием:) Еще многое коряво и надо доделать, но многое уже сделал, свой init, свой hotplug...
Также качаю официальные исходники и проверяю их PGP подписи и сам, правильно, собираю. Это все не значит что система не должна себя защищать от вирусов стандартными методами.Сборки иногда выкладываю: https://mirror.yandex.ru/mirrors/ftp.linux.kiev.ua/Linux/CD/.../
Мнение о сборке могу сказать без загрузки. Давай сюда вывод:
paxtest blackhat
checksec -pl 1
PaX не используется.
Вывод checksec.sh --proc-all* Does the CPU support NX: Yes
COMMAND PID RELRO STACK CANARY NX/PaX PIE
init 1 Partial RELRO No symbol table found NX enabled No PIE
init 2112 Partial RELRO Permission denied NX enabled No PIE
udhcpc 2543 Partial RELRO Permission denied NX enabled No PIE
wpa_supplicant 2549 Full RELRO Canary found NX enabled PIE enabled
login 2551 Partial RELRO Permission denied NX enabled No PIE
ash 2554 Partial RELRO Permission denied NX enabled No PIE
startx 2590 Partial RELRO Permission denied NX enabled No PIE
udhcpc 2621 Partial RELRO Permission denied NX enabled No PIE
xinit 2636 Full RELRO Canary found NX enabled PIE enabled
X 2637 Partial RELRO Canary found NX enabled PIE enabled
jwm 2652 Full RELRO Canary found NX enabled PIE enabled
conky 2656 Full RELRO Canary found NX enabled PIE enabled
st 2710 Full RELRO Canary found NX enabled PIE enabled
ash 2711 Partial RELRO Permission denied NX enabled No PIE
firefox 2843 Full RELRO Canary found NX enabled PIE enabled
Web Content 2893 Full RELRO Canary found NX enabled PIE enabled
WebExtensions 2935 Full RELRO Canary found NX enabled PIE enabled
Web Content 2964 Full RELRO Canary found NX enabled PIE enabled
Web Content 3011 Full RELRO Canary found NX enabled PIE enabled
st 3101 Full RELRO Canary found NX enabled PIE enabled
ash 3102 Partial RELRO Permission denied NX enabled No PIE
ash 3103 Partial RELRO Permission denied NX enabled ""То что с "No PIE" собрано мной, остальное это alpinelinux. Мной собрано еще очень мало пакетов, времени не хватает:(
> PaX не используется.А надо обязательно.
> Вывод checksec.sh --proc-all
Почему собираешь без:
канареек для защиты стека
позиционно независимого бинаря
дай вывод checksec -f /sbin/init почему у тебя нет фортификацииПочему линкуешь без relro?
> собрано еще очень мало пакетовКомбинирование статически собранных пакетов с динамическими сделает из системы разсадник вирей.
> Комбинирование статически собранных пакетов с динамическими сделает из системы разсадник
> вирей.Вопервых постараюсь собрать все пакеты статически, а вовторых почему рассадник вирей? :) Как эти вещи связанны?
Все что хотел написать написал.Сначала мне надо хотя бы со своих помоек убрать статическую линковку и оставить только динамическую с PIE и ASLR.
> Сначала мне надо хотя бы со своих помоек убрать статическую линковку и
> оставить только динамическую с PIE и ASLR.Что у тебя собранно статически? Поделись опытом... :)
> Что у тебя собранно статически?Секрет!
> Поделись опытом... :)
Да я уже все написал:
1 https://linux.die.net/man/1/scanelf
scanelf -a -R /bin /sbin /lib /opt /usr2 https://manpages.debian.org/testing/devscripts/hardening-che...
hardening-check /bin/bash3 https://manpages.ubuntu.com/manpages/disco/man1/checksec.1.html
checksec --proc-libs 1
checksec --dir /bin
checksec --kernel4 paxtest blackhat
Когда будет все хорошо собрано приходи сюда хвастаться.
> используется muslВспомнил, что пару лет назад смотрел эту либу. Тогда musl не поддерживала разделяемые библиотеки и не могла ASLR. Для меня наличие ASLR важно и поэтому от musl отказался. Решил что лучше разделяемые библиотеки и PIE бинарь.
На безопасность надо смотреть глобально, целостно, а не покусочкам:
Какую безопасность дает сам по себе PIC? Никакой!
Какую безопасность дает сам по себе PIE бинарь? Никакой!
А если ядро OS умеет рандомизировать адресное пространство (ASLR) то запуск PIE бинаря уже затрудняет взлом, неизвестны адреса в памяти.
А если есть еще система следящая за применением брутфорса, для угадывания адресов в памяти и блокированием этого пользователя, то можно уже говорить о гарантиях безопасности.
> Вспомнил, что пару лет назад смотрел эту либу. Тогда musl не поддерживала
> разделяемые библиотеки и не могла ASLR. Для меня наличие ASLR важно
> и поэтому от musl отказался. Решил что лучше разделяемые библиотеки и
> PIE бинарь.Сейчас musl полноценная библиотека на ней построены Alpine Linux и Void Linux и гараздо компактнее glibc, что актуально для статической сборки.
> На безопасность надо смотреть глобально, целостно, а не покусочкам:Безопасность в основном зависит от тех кто разрабатывает ядро, библиотеки и программы. Делая свою сборку приходится использовать то что есть. Статическая сборка в плане безопасности надежнее динамической. И еще, во всех дистрибутивах ядра собраны с инструметами для отладки debugfs, трассировка и т.п. вот это огромная дыра в безопасности.
> Сейчас musl полноценная библиотекаmusl уже умеет разделяемые библиотеки и ASLR?
> Делая свою сборку
Хреновая пока у тебя сборка. Смотри выше, по флагам компиляции и линковки у тебя провал в безопасности.
> musl уже умеет разделяемые библиотеки и ASLR?Разделяемые библиотеки точно умеет, а на счет ASLR наверно, да, раз собирается с PIE.
> Хреновая пока у тебя сборка. Смотри выше, по флагам компиляции и линковки
> у тебя провал в безопасности.PIE не "манна небесная" она не избавляет от проблем с безопасностью, а только усложняет их использование, и повторюсь многие проблемы в безопасность создаются именно динамической линковкой
> наверно, даНадо будет, когда нибудь, еще раз глянуть на musl
> PIE не "манна небесная" она не избавляет от проблем с безопасностью
Твои бинари вообще без всяких опций безопасности собраны. Пересобери нормально.
> Твои бинари вообще без всяких опций безопасности собраны. Пересобери нормально.Почему "вообще без всяких опций безопасности" с частичной RELRO, полная почемуто не делается, не стал с эти разбираться, а если делать PIE то файл всеравно получается динамический файл с зависимостью "/lib/ld-musl-x86_64.so.1" поэтому без PIE
Давным давно решил что правильно собирать динамические бинари. Системы со статическими бинарями никогда не собирал и не использовал. Если есть документация по безопасной сборке статических бинарей и статических системах дай ссылку, может прочту.> Почему "вообще без всяких опций безопасности" с частичной RELRO, полная почемуто не делается, не стал с эти разбираться,
Давай сюда свои CFLAGS и LDFLAGS. Занимаюсь только динамической линковкой с glibc, но может прокатить и у тебя.
> а если делать PIE то файл всеравно получается динамический файл с зависимостью "/lib/ld-musl-x86_64.so.1" поэтому без PIE
Дай вывод
file /sbin/init
scanelf /sbin/init
собраны с PIE и без.
scanelf -a /sbin/init
> Давным давно решил что правильно собирать динамические бинари. Системы со статическими
> бинарями никогда не собирал и не использовал. Если есть документация по
> безопасной сборке статических бинарей и статических системах дай ссылку, может прочту.Документации никакой нет, все сам разбирался:)
> Давай сюда свои CFLAGS и LDFLAGS. Занимаюсь только динамической линковкой с glibc,
> но может прокатить и у тебя.CFLAGS='-march=x86-64 -mtune=generic -Os -pipe -static -s -fomit-frame-pointer -fstack-protector-strong -fno-unwind-tables -fno-asynchronous-unwind-tables -ffunction-sections -fdata-sections -Wl,--gc-sections'
LDFLAGS='-z relro'
> Дай вывод
> file /sbin/init
> scanelf /sbin/init
> собраны с PIE и без.init это shell скрипт, т.е. ash, т.е. busybox :)
scanelf -a /usr/bin/busybox
TYPE PAX PERM ENDIAN STK/REL/PTL TEXTREL RPATH BIND FILE
ET_EXEC PeMRxS 0755 LE RW- R-- RW- - - STATIC /usr/bin/busybox
CFLAGS_SEC="-fPIE -fstack-protector-all -fPIC"CFLAGS="-march=x86-64 -mtune=generic -Os -pipe -static -s -fomit-frame-pointer -fstack-protector-strong -fno-unwind-tables -fno-asynchronous-unwind-tables -ffunction-sections -fdata-sections -Wl,--gc-sections ${CFLAGS_SEC}"
LDFLAGS='-Wl,-z,relro'
На busybox, grub не пробуй, на чем нибудь другом.
> CFLAGS_SEC="-fPIE -fstack-protector-all -fPIC"за -fstack-protector-all спасибо, попробую
> На busybox, grub не пробуй, на чем нибудь другом.UEFI тем и удобна что не нужно grub и т.п. использовать
-fstack-protector
Emit extra code to check for buffer overflows, such as stack smashing attacks. This is done by adding a guard variable to functions with vulnerable objects. This includes functions that call alloca, and functions with buffers larger than or equal to 8 bytes. The guards are initialized when a function is entered and then checked when the function exits. If a guard check fails, an error message is printed and the program exits. Only variables that are actually allocated on the stack are considered, optimized away variables or variables allocated in registers don’t count.-fstack-protector-all
Like -fstack-protector except that all functions are protected.-fstack-protector-strong
Like -fstack-protector but includes additional functions to be protected — those that have local array definitions, or have references to local frame addresses. Only variables that are actually allocated on the stack are considered, optimized away variables or variables allocated in registers don’t count.
Лучше
-fstack-protector-strong
Не верь Google и их понятиям "strong"
> Не верь Google и их понятиям "strong"Это не google а мануал gcc:)
https://gcc.gnu.org/onlinedocs/gcc-10.2.0/gcc/Instrumentatio...
>> Не верь Google и их понятиям "strong"
> Это не google а мануал gcc:)
> https://gcc.gnu.org/onlinedocs/gcc-10.2.0/gcc/Instrumentatio...Это Google добавил понятие "strong", в gcc было -fstack-protector,
-fstack-protector-all и еще одна опция определяющая размер стека.
> получается динамический файл с зависимостью "/lib/ld-musl-x86_64.so.1" поэтому без PIEКто-то ему же должен релокейшен в памяти сделать. Глянь это https://www.openwall.com/lists/musl/2015/06/01/12
> частичной RELRO, полная почемуто не делается, не стал с эти разбиратьсяПопробуй сначала пересобрать с -fPIC
> Попробуй сначала пересобрать с -fPICСпасибо:) но не хочу сейчас этим заморачиваться, и -fPIC тоже не хочу использовать
Попробуй мою сборку, не бойся, вирусов нету. Интерестно мнение...
Установка ведь простая, возьми любую флешку в FAT32 и закинь bootx64.efi в X:/efi/boot/bootx64.efi
Перестал интересоватся оригинальной Alpine после того как они ядро без grsecurity патчей собирают.Не нашел ничего привлекательного в статически слинкованом дистре с скриптом вместо init на ash с busybox. Боитесь что виря в прелоад засунут? Не нравится мне ваша сборка. Да и не гружу чужих ISO без PGP подписей.
> Перестал интересоватся оригинальной Alpine после того как они ядро без grsecurity патчей
> собирают."... Pax С 2014 года распространяется только в составе проекта grsecurity ..."
"... С 26 апреля 2017 года исходные коды grsecurity и связанных патчей больше не доступны для скачивания, а их распространение производится только на платной основе..."
И как ты испльзуешь Pax и grsecurity? У тебя есть платная подписка?
А статическая сборка позволяет избежать например Return-to-libc attack и не только :)
Прочел GPL-2: https://www.opennet.dev/openforum/vsluhforumID3/120167.html#80Но если тебе лень читать, то можешь начать с: https://www.grsecurity.net/~paxguy1/pax-linux-4.9.24-test7.p...
> А статическая сборка позволяет избежать например Return-to-libc attack
Если собрать все с PIE и SSP, использовать ASLR ядро, так же защиту получим от Return-to-libc
> и не только :)
Давай весь список, можешь статейку о статической линковке здесь выложить.
> Прочел GPL-2: https://www.opennet.dev/openforum/vsluhforumID3/120167.html#80Нет. Полез на https://www.grsecurity.net/ а там скачивать дозволено только авторизованным пользователям, и почитал https://ru.wikipedia.org/wiki/Grsecurity и там
написанно "С 26 апреля 2017 года исходные коды grsecurity и связанных патчей больше не доступны для скачивания, а их распространение производится только на платной основе"
Как ты скачиваешь grsecurity-*.patch ? :)> Но если тебе лень читать, то можешь начать с: https://www.grsecurity.net/~paxguy1/pax-linux-4.9.24-test7.p...
Это последний бесплатный патч от 25-Apr-2017. И ты этим пользуешься?
> Если собрать все с PIE и SSP, использовать ASLR ядро, так же
> защиту получим от Return-to-libcВозможно, не буду спорить.
> Давай весь список, можешь статейку о статической линковке здесь выложить.
Не умею я статейки писать:)
> https://www.grsecurity.net/featureset/memory_corruption
Не открывается ссылка
>> Прочел GPL-2: https://www.opennet.dev/openforum/vsluhforumID3/120167.html#80
> Нет. Полез на https://www.grsecurity.net/ а там скачивать дозволено только авторизованным
> пользователям, и почитал https://ru.wikipedia.org/wiki/Grsecurity и там
> написанно "С 26 апреля 2017 года исходные коды grsecurity и связанных патчей
> больше не доступны для скачивания, а их распространение производится только на
> платной основе"
> Как ты скачиваешь grsecurity-*.patch ? :)Это редкое для СПО явление, пережиток загниваючего капитализма. Тебе надо прочесть GPL-2 чтобы понять!
>> Но если тебе лень читать, то можешь начать с: https://www.grsecurity.net/~paxguy1/pax-linux-4.9.24-test7.p...
> Это последний бесплатный патч от 25-Apr-2017. И ты этим пользуешься?Нет, но если ты не прочел GPL-2 и не понимаешь, что согласно ст.2, пункт Б, GPL-2 все производные от ядра Linux защищенного GPL-2 и все сторонние патчи к нему обязаны распространятся бесплатно, без дополнительных условий, для абсолютно всех и строго только под GPL-2, то тебе рекомендую начать с этого старого патча.
>> Если собрать все с PIE и SSP, использовать ASLR ядро, так же
>> защиту получим от Return-to-libc
> Возможно, не буду спорить.Но надо ВСЕ, а не половину!
>> Давай весь список, можешь статейку о статической линковке здесь выложить.
> Не умею я статейки писать:)Учись. Выкладывают как умеешь.
>> https://www.grsecurity.net/featureset/memory_corruption
> Не открывается ссылкаУ меня работает:
https://www.grsecurity.net/featureset/memory_corruption
>>> https://www.grsecurity.net/featureset/memory_corruption
>> Не открывается ссылка
> У меня работает:
> https://www.grsecurity.net/featureset/memory_corruptionПишет "Циклическое перенаправление на странице" и идет редирект на https://grsecurity.net/setting_the_record_straight_on_oss_v_...
Я не настолько силен в английском, там про что? :)
Highest performance and most secure ROP defense
The result of over four years of research and development, RAP is grsecurity's complete defense against ROP and all other code reuse attacks. No other technology today comes close to its levels of security, performance, and ability to scale to arbitrary codebase sizes, as evidenced by its use in grsecurity kernels and hardened versions of Chromium.Industry-leading ASLR
Grsecurity has led the way over the years in providing a proper ASLR implementation that deals with the many ways in which an attacker can influence ASLR or defeat it through system-provided information leaks and entropy reduction. In addition, the number of bits of entropy applied to randomization of each memory region is significantly higher in grsecurity compared to upstream's weaker ASLR implementation.Bounds checks on kernel copies to/from userland
This feature hardens the functions the Linux kernel uses to copy data to and from user applications. It ensures copies to/from a heap object don't exceed the object's size and that stack copies don't exceed the size of the stack frame. It further prevents modifying or leaking sensitive kernel objects via these functions.Prevents direct userland access by kernel
Through PaX's UDEREF feature, grsecurity forces any userland data access to go through an approved accessor. This prevents exploitation of an entire class of vulnerabilities that includes null pointer dereferences and dereferences of magic values that point into userland (e.g. 0xAAAAAAAA on 32-bit systems). This feature is provided for x86, x64, and ARM, even on systems without SMAP or PAN support.Prevents userland code execution by kernel
PaX's KERNEXEC feature effectively prevents the kernel from executing code in userland through memory corruption. This feature is provided for x86, x64, and ARM, even on processors that don't support SMEP or PXN."Prevents kernel stack overflows on x64
While vulnerabilities arising through the improper use of variable-length-arrays (VLAs) and runtime stack allocation are handled automatically with a GCC plugin, grsecurity also provides a feature to prevent exploitation arising from other sources of kernel stack overflows: deep nesting and recursion. On a mainline Linux kernel, a kernel task is free to overflow its stack into adjacent heap objects in order to escalate privilege. Grsecurity places kernel stacks non-contiguously in a separate memory region on 64-bit architectures to avoid any such abuse.Hardened userland memory permissions
Though mainline Linux now supports NX and a weaker ASLR, by default it does nothing to prevent the introduction of malicious code into a process. While initial control flow hijacking may occur through ROP, the pattern consistently seen on Windows and other OSes is that the majority of the exploit's payload is performed within allocated RWX memory. Grsecurity eliminates this weakness by default, greatly driving up the costs of exploitation and raising the bar above the capabilities of most attackers.Random padding between thread stacks
Linux distros generally do not compile code with the -fstack-check flag to GCC, making it possible to exploit incorrectly-sized calls to alloca(). By taking advantage of pthread's behavior of allocating quickly-created thread stacks adjacent to each other, the stack of another thread can be reliably modified to achieve exploitation. Randomizing the offset between thread stacks removes the reliability of this technique, generally reducing the exploit to a crash.........
Automatically responds to exploit bruteforcing
Even if all system-level infoleak sources and methods of entropy reduction are closed down, there remains the fact that a Linux system is generally unable to prevent bruteforcing of arbitrary network services and suid/sgid binaries. Grsecurity solves this issue by forcing a delay between forks of network services being bruteforced and bans users from executing suid/sgid apps for a period of time if they cause one to crash. Grsecurity takes a similar approach to preventing repeated attempts at exploiting kernel vulnerabilities. After the first detected attempt causing an OOPS message, grsecurity bans that unprivileged user from the system until restart.
Почитал про "Возвратно-ориентированное программирование", статическая сборка наверно усложнит его использование т.к. придется искать ROP-цепочки в каждой программе а не в стандартных библиотеках, хотя...
Спасибо за статью. Но это всетаки рекламная писанина о там какая у них замечетельная grsecurity, которую они продают за деньги.
Чемто можно и так воспользоваться например -fstack-check.
Патч от grsecurity.net к ядру Linux бесплатен на основе ст. 2, пункт Б, лицензии GPL-2.RAP от grsec пока лучший.
> Патч от grsecurity.net к ядру Linux бесплатен на основе ст. 2, пункт
> Б, лицензии GPL-2.Как качать? Требуется логин пароль. Ссылка на патч от 2017 года не в счет
https://grsecurity.net/download
Grsecurity and gradm are licensed under the GNU GPL version 2 only.
Know your rights! As a customer of any product that uses grsecurity in binary form, you are entitled to the complete corresponding source code. Companies who do not ship the complete corresponding source code alongside distributed binaries must provide you with a written offer for the source code transferrable to any other person and valid for three years. Please report any violations of our GPL license to compliance@grsecurity.net. We require that all our customers comply with the GPL.
> https://grsecurity.net/download
> Grsecurity and gradm are licensed under the GNU GPL version 2 only.
> Know your rights! As a customer of any product that uses grsecurity
> in binary form, you are entitled to the complete corresponding source
> code. Companies who do not ship the complete corresponding source code
> alongside distributed binaries must provide you with a written offer for
> the source code transferrable to any other person and valid for
> three years. Please report any violations of our GPL license to
> compliance@grsecurity.net. We require that all our customers comply with the GPL.Реальность такова, что ни один из патчей по ссылке скачать без авторизации невозможно!
Please report any violations of our GPL license to compliance@grsecurity.net. We require that all our customers comply with the GPL.Напиши здесь перевод статьи 2, пункту Б, лицензии GPL-2.
Возник вопрос, как собрать программу с ASLR?
Прочти ответы анонима еще раз.
> Static Linux. Дистрибутив основан на Alpine Linux, используется musl и BusyBox. Ядро
> и корневая файловая система собраны в единый файл для запуска на
> системах с UEFI загрузкой (Secure Boot должна быть отключена). Для установки
> необходимо скачать bootx64.efi (http://static.flibex.ru/counter.php?file=bootx64.efi)
> и разместить его на отформатированный в FAT32 диск в директории X:/efi/boot/bootx64.efi
> Ядро собрано без поддержки подгружаемых модулей, в качестве init и для
> монтирования подключаемых дисков используются shell скрипты. Планируется статически
> слинковать все используемые программы, но на данный момент собран только toolchain
> и несколько основных программ.Мне жаль Ваше здоровье.
Во первых не все пакеты можно собрать статический, просто эта возможность редко используемая и отмерла.
Во вторых я вижу удобность статический сборки только для дистрибутивов без зависимостей в пакетном менеджере. Т. е. только для Slackware. Рабочим примером статической сборки без зависимостей можно считать Minix.Советую не тратить свое время и здоровье, это все уже пробовано. Оказалось проще к Слаквари прикрутить зависимости.
Ктому же, как нам заметил тогда Михаил Шигорин, уязвимость в одной библиотеке требует пересборки всех зависимых пакетов.
> Ктому же, как нам заметил тогда Михаил Шигорин, уязвимость в одной библиотеке
> требует пересборки всех зависимых пакетов.На это можно взглянуть с другой стороны, например, косяк в обновленной библиотеке поломает все зависящие от этой библиотеки программы.
> Во первых не все пакеты можно собрать статический, просто эта возможность редко
> используемая и отмерла.Согласен, статическую сборку ипользуют редко, и наверно не все удасться собрать, но попробую:)
> Во вторых я вижу удобность статический сборки только для дистрибутивов без зависимостей
> в пакетном менеджере. Т. е. только для Slackware. Рабочим примером статической
> сборки без зависимостей можно считать Minix.Тут, вообще никаких проблем, собирать пакеты без зависимостей не проблема:) Использую пакетный менеджер apk из Alpine Linux.
> Советую не тратить свое время и здоровье, это все уже пробовано. Оказалось
> проще к Слаквари прикрутить зависимости.А мне нравиться это занятие:)
Slackware мертв:) к нему уже поздно что-то прикручивать:)