LINUX.ORG.RU

Поддержка FatELF в ядре

 , ,


1

0

Райан Гордон в рассылке LKML представил патч, осуществляющий поддержку нового формата исполняемых файлов.

FatELF — это формат компоновки, позволяющий хранить в себе набор ELF бинарников под разные архитектуры, аналог технологии Universal Binary в MacOS X. Этот формат позволяет объединять в себе бинарные файлы, отличающиеся разными OS ABI, порядком байт, размером машинного слова и архитектурой процессора. Этот формат поддерживается преимущественно в среде GNU/Linux, но может быть использован и на других unix-like системах, например на BSD, Solaris и т.д.

Основные достоинства данного формата:

  • Дистрибутивы ОС могут иметь один единственный инсталлятор под все доступные платформы при наличии достаточного дискового пространства.
  • Нет необходимости иметь отдельные каталоги /lib, /lib32, /lib64.
  • Сторонние разработчики могут облегчить себе жизнь, публикуя только один deb/rpm пакет под все архитектуры.
  • Можно будет создавать плагины для браузеров и модули ядра, работающие на всех платформах.
  • Возможность создания приложений, бинарные файлы которых могут работать на Linux и FreeBSD без лишнего слоя совместимости.

Оригинальное письмо в рассылке

>>> Сайт FatELF



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

> На мой взгляд, для всех дистрибутивов Linux на x86 должен быть один формат, на x64 другой, на ARM третий. Дистрибутив сам ставит свой пакет и основные зависимости. А, в итоге, все счастливы.

Это всё тоже лишнее. Достаточно всё собирать из сорцов!

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

> Может найти применения в контексте использования ноутбуков с двумя процессорами Intel + Arm.

Можно развить эту идею дальше -- в fat binary запихивается несколько бинарей одной архитектуры, но собранные с оптимизацией под разные процессоры. Например для Intel Atom, Intel Core и AMD. При инсталляции пакета ненужные архитектуры можно вырезать, таким образом не будет впустую расходоваться место на диске.

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

> Не надо будет иметь две версии одного и того же ПО раскиданного по разным папкам.

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

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

>Что безусловно не способствует беспрепятственному запуску одного и того же бинарника на всем зоопарке имеющихся дистров.

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

>да вот именно логика как раз супер


это какая-то внутрисектантная логика или логика аутистов, по которой даже LSB существовать не должно

frame ★★★
()

Я написал мелкий патч на ядро, делающий тоже самое ещё месяц назад :)

ЗЫ. Народ, а вы сами пробовали собрать что-то под biarch?

mayc
()
Ответ на: комментарий от Relan

> > Пусть виндузятники с таким подходом продолжают сидеть на своей винде. Линукс им не нужен. Впрочем как и они линуксу.
> Элитизм так и прет.


Это только ваше восприятие.

> Видите ли, fat binaries были изначально придуманы Apple.


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

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

это какая-то внутрисектантная логика или логика аутистов, по которой даже LSB существовать не должно

Это реальное положение дел.

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

С достаточных распространением FatELF появляется реальная, а не гипотетическая в каком то своем вакууме, угроза вирусных эпидемий в линуксе. Почему? Если в данный момент это технически довольно трудно... То с FatELF всё будет куда проще.

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

>Это облегчит написание СПО.

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

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

Запоминающие устройства в большинстве своём уже перешагнули тот рубеж, когда объём необходимого ПО был сопоставим с общим объёмом устройства

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

>Почему? Если в данный момент это технически довольно трудно... То с FatELF всё будет куда проще.

А как упростит этот FatELF написание вирусов? То, что одна вредоносная программа будет работать на двух-трёх платформах, вместо одной?

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

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

eugene2k
()

> Пусть виндузятники с таким подходом продолжают сидеть на своей винде. Линукс им не нужен. Впрочем как и они линуксу.

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

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от init_6

Много вирусов есть под макось? Там дистрибутив один, проблем с совместимостью межу версиями и архитектурами нет, количество пользователей раз так в 5 больше чем у линукса...

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

>Но если есть сторонний производитель софта, то он может свой продукт выпустить в этом формате и не делать отдельных версий для x86, x86_64, возможно, скоро и arm. Дело полезное.

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

Зачем в бинарнике балласт?

kraw ★★★★
()
Ответ на: комментарий от rymis
#!/bin/sh

target_sys=`uname -s`
target_machine=`uname -m`
target_os=`uname -o`

target=$target_sys-$target_machine-$target_os

case $target in
Linux-i?86-*) prefix=./linux-x86
;;
....
esac

exec $prefix/install.bin

Cannot find ./linux-x86_128/install.bin

eugene2k
()
Ответ на: комментарий от Ab-1

>>класс. а можно будет при помощи мыши софт слить на флешку и отдать другу?

>Да, даже можно этот софт запускать с флешки.

А он туда поместится?

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

>Как уже говорили, бинарник от дебиана одной версии может сегфолтнуться на дебиане другой версии. Так что никаких эпидемий не будет.

Забавно, но тот же icculus в 2002 году представил UT2003, который динамически линкуется с 40+ библиотеками и до сих пор работает на разных системах

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

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

eugene2k
()

Запрашивает Миша Рыцаревъ: интересно, а не позаимствуют-ли что-нибудь из этого производители винды? А когда это нововведение появится? А будет-ли что из этого в софте под винду и другие ОС? А насколько хуже или лучше все это будет совместимо со старым железом, а также со старым софтом?

ua9oas
()
Ответ на: комментарий от fdd

>Может найти применения в контексте использования ноутбуков с двумя процессорами Intel + Arm.

Или для нетбуков, на которых SSD небольшого объема.

kraw ★★★★
()

1 января 2010 года. Патч внедрен. Пользователи debian по-прежнему ставят deb'ы из репозитория, пользватели fedora ставят rpm'ы из репозитория, пользователи arch по-прежнему ставят tar.gz'ы из репозитория, пользователи gentoo по-прежнему ждут, пользователи slackware по-прежнему собирают гном руками из исходников, и т.д....

Одмины ставят oracle, используя fatelf...

Зачем?

leopold
()
Ответ на: комментарий от kraw

>Или для нетбуков, на которых SSD небольшого объема.

Вы так говорите, будто всех поголовно заставят использовать этот FatELF. Учитывая специализацию иккулуса, он будет это проталкивать для установщиков/бинарей игр

Gary ★★★★★
()

> Fat

самокритично

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

>Видите ли, fat binaries были изначально придуманы Apple. Придуманы они для того, чтобы была только один дистрибутив ОС (а не несколько по количеству архитектур). То есть чтобы пользователь не думал...

Конкретный пример. Возьмем дистрибутив Fedora 11. Он сейчас помещается на 1 dvd. А в жирном эльфе на скольких будет? Или нужно будет многократно уменьшить количество пакетов? А как быть с live-CD и live-DVD?

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

>Запоминающие устройства в большинстве своём уже перешагнули тот рубеж, когда объём необходимого ПО был сопоставим с общим объёмом устройства

А на нетбуках?

kraw ★★★★
()
Ответ на: Выкинуть. от Camel

>Даже проприетарщикам универсальные бинарники не нравятся.

Ведь можно продавать под каждую архитектуру бинарник отдельно да ещё и по разной цене!

Longer
()

А заметьте, кто предложил этот формат (идём оп ссылке): http://icculus.org/fatelf/ - знаменитый переносчик виндовых игр под Линукс. Понятно зачем ему это нужно. Может это и хорошо: больше игр будет и народ перестанет кричать, что под Линукс игр нет.

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

<А он туда поместится?

У меня флешка на 16 гигабайт поместится однозначно.

Ab-1
()
Ответ на: комментарий от init_6

>Это реальное положение дел.

Это не значит, что это хорошо и не стОит ничего менять

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


А как же тогда "более совершенная и продуманная архитектура ядра", "безопасность" и пр., толкаемое фанатами в холиварах? Неужели всё это лишь из-за ничтожной доли на десктопах? Как же нам тогда вендекапец приблизить???! :D

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

> Конкретный пример. Возьмем дистрибутив Fedora 11. Он сейчас помещается на 1 dvd. А в жирном эльфе на скольких будет?

1 DVD. Когда берёте конкректные примеры - не забывайте проверять факты. Fedora 11 не занимает весь DVD. Это не говоря уже про то, что далее в rpm внедрено сжатие lzma.

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

Спокойно, когда толпа лоровцев начинает безапелляционно негодовать - это верный признак того, что идея стоящая и будет внедрена. :)

atrus ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Пользуйтесь нормальными DE и ваши волосы будут мягкими и шелковистыми.

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

>UNIX - есть UNIX. Это торговая марка, чтобы называться UNIX нужно пройти обязательную сертификацию.

Пойди в жопу.

Юникс-подобные - легитимный термин для систем, реализующих posix-стандарт.

jackill ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

> > Пусть виндузятники с таким подходом продолжают сидеть на своей винде. Линукс им не нужен. Впрочем как и они линуксу.
> Кого интересует твое мнение? Начнем с этого.


Начинайте с чего хотите, я вас не ограничиваю.

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


По вашему дурь в голове и попытка притянуть в Linux глупые понятия и концепции способствуют развитию? Боюсь предположить, какое развитие может получиться с таким подходом.

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

>Много вирусов есть под макось? Там дистрибутив один, проблем с совместимостью межу версиями и архитектурами нет, количество пользователей раз так в 5 больше чем у линукса...

Трояны под макось - во весь рост.

jackill ★★★★★
()

> По вашему дурь в голове и попытка притянуть в Linux глупые понятия и концепции способствуют развитию? Боюсь предположить, какое развитие может получиться с таким подходом.

Нет. Не так. Оценки "дурь, глупые" - не объективны. Сейчас, чтобы запустить сторонний исталлятор в 100% случаев требуется менять всяческие флаги. Пользователь, он почитает, мануал, найдет что где и как делать, да еще чтобы именно для его DE. Только вопрос - ради чего? Чтобы почувствовать себя молодцом?

I-Love-Microsoft ★★★★★
()

Ничего плохого в факультативной поддержке ФатЭлфа нету. Не хочете - пользуйте далее деб-пакеты и прочее, никто не заставляет. Реально большой профит будет геймерам (у которых рефлекс пускать слюну и щёлкать мышью - зоопарк пакетов слишком сложно) и геймдевам. В этом смысле я очень даже за.

ubuntulover
()
Ответ на: комментарий от kraw

> Конкретный пример. Возьмем дистрибутив Fedora 11. Он сейчас помещается на 1 dvd. А в жирном эльфе на скольких будет? Или нужно будет многократно уменьшить количество пакетов?

Может быть что и в один влезет. Во-первых, в пакетах не только исполнимые файлы поэтому неизвестно насколько вырастет объем (сейчас i386 DVD -- 3,4 ГБ, то есть свободно около гига), во-вторых в 12-й перейдут на LZMA сжатие, что освободит много места, в-третьих можно опять же сделать как Apple -- использовать DL болванки, в-четвертых можно действительно выкинуть с диска какие-нибудь не очень нужные пакеты вслед за моно.

> А как быть с live-CD и live-DVD?

Это проблема.

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

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

> > Дистрибутивы ОС могут иметь один единственный инсталлятор под все доступные платформы при наличии достаточного дискового пространства.

> Я так понимаю, это имеет смысл только для x86/x86_64. Если напихать туда код для всех поддерживаемых ядром архитектур, то никакого дискового пространства не напасёшься.


[сарказмmode]Нищеброд детектед. Пойди помой окна в школе и купи уже терабайтный диск.[/сарказмmode]

Но если серьёзно, у меня те же опасения.

pv4 ★★
()
#!/bin/sh
SKIP=555
TEMP=${TMPDIR:=/tmp}

target_sys=`uname -s`
target_machine=`uname -m`
target_os=`uname -o`

target=$target_sys-$target_machine-$target_os

case $target in
 Linux-i?86-*)
 exename=superprog-linux-x86
 ;;
 .... 

esac

(cd `pwd`; tail -n +$SKIP $0; ) | gzip -cd | tar xvf - $exename -C $TEMP 2>/dev/null

$TEMP/$exename $@

rm $TEMP/$exename

exit

END_OF_SCRIPT
@!%!%$@@AERGQ@3gr31 <Ну в общем tar.gz-архив с бинарниками под все архитектукы>

Почему производителям не использовать вот такой костыль прямо сейчас? sh, tar и gzip (а последний можно и выкинуть) есть в люблом дистрибутиве. И не надо эту гадость в ядро совать.

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

> > > это облегчит написание проприетарщины
> > Это облегчит написание СПО.

> Точнее, это облегчит написание ПО любыми ISV, работающими по любой модели, в том числе и по свободной.


А ещё точнее - это облегчит _распространение_ ПО.

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

>кроме кина про негра

Это ты так про Нельсона Манделу? :D

А сабж оправдывает своё название - срача уже на полторы сотни постов.

dadmig
()
Ответ на: комментарий от kraw

>Конкретный пример. Возьмем дистрибутив Fedora 11. Он сейчас помещается на 1 dvd. А в жирном эльфе на скольких будет? Или нужно будет многократно уменьшить количество пакетов? А как быть с live-CD и live-DVD?

Рябята, в дистрибутивах оно не нужно!!! Там прекрасно собирают и будут собирать под разные архитектуры. Это нужно разработчикам игр, см. пост выше: http://www.linux.org.ru/jump-message.jsp?msgid=4163097&cid=4163840

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

>Ничего плохого в факультативной поддержке ФатЭлфа нету. Не хочете - пользуйте далее деб-пакеты и прочее, никто не заставляет. Реально большой профит будет геймерам (у которых рефлекс пускать слюну и щёлкать мышью - зоопарк пакетов слишком сложно) и геймдевам. В этом смысле я очень даже за.

Точно! Я о том же говорю.

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