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 ()

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

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

Cancellor ★★★★☆
()

А с другой стороны, это облегчит написание проприетарщины, что не особо здорово.

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

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

Aceler ★★★★★
()

А это одного меня терзают смутные сомнения по поводу того что с активным продвижением сабжа в массы эпидемии вирусных «друзей» появятся и в линуксах?

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

Больше вирусов, хороших и разных. И под GPL.

shutty
() автор топика

хм. назвали бы FatTROLL в честь Линуса )

k0l0b0k ★★
()

Чтобы программа заработала и в Линуксе, и в БСД, надо чтобы и библиотеки на обеих системах были нужной версии.

roy ★★★★★
()

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

--- Песочник

anonymous
()

Не хочу.

Эта штука нужна прежде всего для гнилой проприетарщины, так что Линус, скорее всего, включит её в ядро.

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

> А это одного меня терзают смутные сомнения по поводу того что с активным продвижением сабжа в массы эпидемии вирусных "друзей" появятся и в линуксах?

Дык линукс же безопасен не потому что не распространен, а потому что линукс? Или толпы линуксоидов не правы?

I_am_milk
()

Благими намерениями вымощена дорога.... Если бинарники делать ДЕЙСТВИТЕЛЬНО подо все архитектуры, то то, чем так гордились линуксоиды ("у нас нет ничего лишнего!"), оказывается в ж...пе. А если дать возможность дистрибьюторам и компоновщикам пакетов выбирать что туда засунуть, то может получится каша с депенсами покруче нынешней! У одного пакета библиотека под одну архитектуру, у другой под другую, а по зависимостям им надо совместно работать, ибо альтернативы нет, а пакет который требует их обеих, напротив, есть? Так что ли?

k0valenk0_igor ★★★
()

Потом, с названием предстоят долгие суды с M$

vada ★★★★★
()

Не нужно. Даже вредно.

Deleted
()

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

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

Дык линукс же безопасен не потому что не распространен, а потому что линукс? Или толпы линуксоидов не правы?

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

init_6 ★★★★★
()

В то время как Apple с помпой выкидывает из Universal Binary старую архитектуру, некий Райан Гордон заново изобретает универсальные бинарники.

Davidov ★★★★
()

Ненужно. Все равно что соединить трактор и автобус в одно целое. В итоге получится монструозное поделие.

aldayneko
()

А еще очевидно же что сабж спонсируют производители железа (процов, рамы и хардов) Вот именно им от сабжа будет самый огромный профит.

init_6 ★★★★★
()

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

CryAngel
()
Ответ на: комментарий от Davidov

Выкинуть.

>В то время как Apple с помпой выкидывает из Universal Binary старую архитектуру, некий Райан Гордон заново изобретает универсальные бинарники.

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

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

> К примеру вот оно вошло в обиход. Убунты/федоры/суси и прочие мандривы применили это в своих дистрах

слаководам пох =) Патрик знает что делает, и мы в него верим.

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

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

согласен. заодно, в дистрах сделать каталоги типа /bin-$arch$ /lib-$arch$ и т.д. и сделать в управлениями пакетами возможность выбора архитектуры установки (обновления). по умолчанию система пакетов работает для текущей архитектуры, либо, для всех сразу.

scaldov ★★
()

Не будьте такими пессимистами! Как минимум это позволит создать универсальные инсталляторы софта, в том числе и свободного. Не уверен что в таком формате можно делать софт, а инсталлер в самый раз: вставил диск, а там отработал авторан и под любой ОС поднялся ^_^

Когда-нибудь вы это оцените...

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

>А с другой стороны, это облегчит написание проприетарщины, что не особо здорово.

Почему? У проприетарщиков будет одним поводом меньше отказываться от поддержки Linux.

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

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

Логика супер. Давайте вообще шифровать бинари неким ID уникальным для каждого дистрибутива/версии, чтобы они гарантированно не запускались на других, чтоб уже наверняка.

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

>Не будьте такими пессимистами! Как минимум это позволит создать универсальные инсталляторы софта, в том числе и свободного
Универсальный инсталлер, который запустится на любой архитектуре? Да, это хорошо. Но зачем мне на моей x86 в каждом бинарнике ещё и поддержка x86_64, arm, power, freebsd (тоже все архитектуры?), solaris итд? И во сколько раз больше будет такой бинарь? А вместо универсального инсталлера можно записать на диск или в архив инсталлеры для нужных архитектур и юзер выберет тот, который нужен именно ему (места занимать будет столько же).

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

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

Anounax
()
Ответ на: комментарий от Davidov

В Apple UB был нужен для безболезненной миграции с ppc на интель. Они растянули её на несколько лет, и сейчас, что естественно, убирают ppc-код из бинарей и перестают вообще поддерживать ppc (или уже перестали).

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

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

>Не будьте такими пессимистами! Как минимум это позволит создать универсальные инсталляторы софта, в том числе и свободного. Не уверен что в таком формате можно делать софт, а инсталлер в самый раз: вставил диск, а там отработал авторан и под любой ОС поднялся ^_^

Даешь универсальный ботнет каждому линуксоиду.

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

Универсальный установщик сделать намного проще:

#!/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

Места на диске не занимает, при загрузке mmap адресное пространство не расходует, ...

rymis ★★
()
Ответ на: Не хочу. от Camel

>Эта штука нужна прежде всего для гнилой проприетарщины, так что Линус, скорее всего, включит её в ядро.

ты ведь можешь просто не поставить галочку в make menuconfig или написать blacklist fatelf

так что аргументы подобные этому - фейл

swar0g ★★★★
()

Вот и люди с безграничными интернетами, RAM и объёмами HDD подтянулись. Надеюсь, оно так и останется просто отдельным патчем и никто его не включит, ибо маразм. Зачем мне на x86_64 туча бинарников под x86_32, арм и чёрт его знает что ещё?

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

> Не будьте такими пессимистами! Как минимум это позволит создать универсальные инсталляторы софта, в том числе и свободного. Не уверен что в таком формате можно делать софт, а инсталлер в самый раз: вставил диск, а там отработал авторан и под любой ОС поднялся ^_^

Не хорошо людей так разводить на срач, ай-ай-ай.

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

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

>>согласен. заодно, в дистрах сделать каталоги типа /bin-$arch$ /lib-$arch$ и т.д. и сделать в управлениями пакетами возможность выбора архитектуры установки (обновления). по умолчанию система пакетов работает для текущей архитектуры, либо, для всех сразу.

В точку! +100 Сам об этом думал. Добавлю еще от себя предложение: детектить циклические зависимости пакетов и не допускать этого непотребства.

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

Аргументы подобные этому — фейл.

>>Эта штука нужна прежде всего для гнилой проприетарщины, так что Линус, скорее всего, включит её в ядро.

>ты ведь можешь просто не поставить галочку в make menuconfig или написать blacklist fatelf


>так что аргументы подобные этому - фейл


Я-то могу. А NVIDIA(HP/Broadcom/вставить нужное) может продолжать выпускать своё ПО в не-fatELF'ах?

Camel ★★★★★
()

недостатком скоростей интернетов, мест на винтах не страдаю, но это маразм

PS: предлагаю делать так же, только для каждой архитектуры линковать все либы статически, даёшь треш в массы!

PayableOnDeath
()

Универсальный установщик сделать намного проще: #!/bin/sh target_sys=`uname -s` target_machine=`uname -m` target_os=`uname -o`

И ведь... абсолютно верно! Только вот позавчера качал игру "Cube что-то там такое" - и там именно так и сделана поддержка Linux 32/64 одновременно - т.е. скриптом ^_^

Единственное, что осталось тогда сделать, это включение такого расширения файлов, которое всегда будет запускать программу. А то вот вчера некоторые виндузятники меня тыкали мордой что дескать чтобы запустить инсталлер Qt SDK в Linux-е надо там какие-то флаги выставлять... Я думаю что дурака все равно от вирусов не убережет, а остальным удобнее будет... Надо вот разве что это доделать... За честь ОС обидно...

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

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

chmod +x

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

> И во сколько раз больше будет такой бинарь?

Внезапно: основное место в программе занимают ресурсы, а не исполняемый код.

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

> Как распрастранение бинарных сборок может помочь в написании СПО?

Зайди на сайт зимбры, подивись, сколько там пакетов под разные архитектуры и дистрибутивы. А будет один.

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