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 ()
Ответ на: комментарий от I-Love-Microsoft

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

Уже создали, apt, rpm и portage они называется.

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

Интернет дисками на оленях подвозят?

А потом ещё в ядро внести поддержку реестра, чтоб было где этот авторан отключать, и поддержку специальных файлов DOS, чтобы можно было на флешках юзать /autorun_inf/com3 для защиты от вирусни.

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

Зачем мне на x86_64 туча бинарников под x86_32, арм и чёрт его знает что ещё?

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

a3
()

Интересно, причём тут вирусы. Интересно, каким боком у уважаемых теоретиков появится lib hell, если целевая архитектура у них всё равно одна.

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

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

anotheranonymous
()
Ответ на: комментарий от kot_otbelivatel

пока на линупс не прийдет серьезная проприетарщина, под ним можно как-то жить, а потом уже только в гроб ложи и выноси.

Дело в том, что ты красноглаз, тебе, кроме браузера, плеера, жабера и гцц нихрена не нужно. А мне нужно. И еще очень многим людям нужно.

a3
()

Райан Гордон хочет пустить дистрибутивы по пути Macintosh? Опять огромные приложения под ряд архитектур, на которые пользователю наплевать? А если это тот же x86, то опять отсутствие оптимизаций выше процессора i386?

Взял бы LLVM, и получил бы нормальные кроссплатформенные приложения.

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

>Никто не собирается

С этим вашим линупсом всего можно ожидать. А для остальных тут уже предложили альтернативу — простой шелл-скрипт.

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

Угу. А еще ждем один лайвцд убунту, на который теперь кроме кина про негра точно ничего не влезет. Осталось только кде с гномом в один пакет запихать.

madcore ★★★★★
()

А ведь был же формат EXE-файлов, которые содержали две версии...

...одну для DOS, другую для Windows. Только оно в основном использовалось для того, чтобы под DOS сообщать, что для запуска нужна Windows. Здесь также будет?

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

> В то время как Apple с помпой выкидывает из Universal Binary старую архитектуру

Эпл одновременно выкидывает старую архитектуру из реальности, так что не эквивалент.

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

>Сабж - очень праильна штука, реально упростит жизнь многим.

Остальным сильно усложнит

vada ★★★★★
()

Предлагаю в один файл запихнуть весь Debian под все платформы всех версий. Тогда не будет никаких проблем с зависимостями.

sign
()

Скажите, кому проломать голову, что бы ЭТО не родилось?

vasily_pupkin ★★★★★
()

>Нет необходимости иметь отдельные каталоги /lib, /lib32, /lib64.

Тут ответ на ваше пуканье, какие дистрибутивы? Вы чё? Это сделано не для дистрибутивов, а для проприетарщины, флешек, компьютеров без интернета. Когда-же вы на свой виндус 7 свали с лора?. И ещё много звёздные...

Ab-1
()

> chmod +x

Умница. А теперь скажи - какая домохозяйка или школьник полезут делать chmod +x? Представь, что инсталлятор ты скачал с официального сайта, а у скачанных с инета файлов как известно флаг x снят.

С одной стороны - эта защита при помощи x флага все равно не спасет от вируса или трояна - если уж кто-то решил вообще запустить тот или иной софт. А с другой - это неудобно...

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

> А будет один.

┌─[~/]
└─[rastafarra@avalon]: apt-cache pkgnames | wc -l
37749

блин, а... действительно косяк какой-то.

Rastafarra ★★★★
()

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

Ага, без неё нет конкуренции, с ней она появится. Так что нужна она.

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

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

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

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

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

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

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

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

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

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

frame да вот именно логика как раз супер. Начиная с того что библиотеки именуются иногда по разному... и заканчивая тем что средства и системы защиты в дистрах (AppArmor, Selinux...) они как бы в разных дистрах разные... Что безусловно не способствует беспрепятственному запуску одного и того же бинарника на всем зоопарке имеющихся дистров.

init_6 ★★★★★
()

Какой бред ... imho пора бежать с этой осины... пока всё совсем печально не стало.

P.S.: Проприетарщикам профит.

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

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

Ну расход места на харде увеличится. Удалите с диска один порно-фильм и расходы станут незаметны.
А нагрузка на проц не возрастет, потребление памяти не увеличится.

andreyu ★★★★★
()

Дайте ка я ссылочку подкину. http://www.mega-nerd.com/erikd/Blog/CodeHacking/osx_ub.html

А главное, кто же будет тестировать бинарники под все архитектуры. Собственно, если сечас надо собрать и протестировать бинарник под N архитектур, то с толстым эльфом надо будет собрать и протестировать бинарник под N архитектур и завернуть в FatELF.

Shimuuar
()

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

В Gnome например так и делается, правый клик, вкладка, галочка. Но черт возьми, почему мне все говорят "твой линупс говно потому что даже просто запустить программу - это гемор и поиск галочек и команд". Мне обидно это слышать а самое смешное что это можно исправить. Но боюсь многие упертые не дадут мне включить эту возможность ни в один дистр.

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

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

Ты когда-нибудь видел символ, названный "запятой"?

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

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

Очевидно, не во всех.

httpd размер 689411 исполняемый код 328556 (.text)
libclntsh 18774535/11947260
php 4254266/2642284

И еще, сомневаюсь что bss/data могут в общем случае использоваться совместно.

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

>А теперь скажи - какая домохозяйка или школьник полезут делать chmod +x?

школьнику - учиться! домохозяйке - ... А ей то не нужно. По моим наблюдениям (экспериментировал на жене и сестре), переход на линукс - это всего лишь изменение окошек, с возможностью использовать, прикольные программы для фоток (например digikam) и торрентов (например qbittorrent). А вся эта виндовая шняжка - им не нужна. Для всего остального есть муж и брат.

leopold
()

Толстый эльф. :)

Отличное название.

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

> интересно, а на сколько бинарь распухает? (по ссылке не ходил)

В зависимости от кол-ва поддерживаемых платформ.

andreyu ★★★★★
()

>Этот формат поддерживается преимущественно
>в среде GNU/Linux, но может быть использован
>и на других unix-like системах, например на BSD, Solaris и т.д.
>

1. BSD - есть BSD (это программные дистрибутивы университета Беркли), а не unix-like
2. Solaris - является UNIX, а не unix-like
3. Такого термина, как "unix-like" нет. Это тоже самое, что называть подгузники Huggies, как "памперсы Huggies", или "джип BMW X5". Вам самим не смешно, какую вы тупость морозите уважаемый?

UNIX - есть UNIX. Это торговая марка, чтобы называться UNIX нужно пройти обязательную сертификацию. И никаких подобий не может быть. Читайте www.unix.org/tmug2.pdf

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

Fredhopper, IBM Websphere, Oracle DB, Siebel - недостаточно серьёзны.

Скажи честно, ты обучался в спецшколе для альтернативно-одаренных?

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

> Но черт возьми, почему мне все говорят "твой линупс говно потому что даже просто запустить программу - это гемор и поиск галочек и команд". Мне обидно это слышать а самое смешное что это можно исправить. Но боюсь многие упертые не дадут мне включить эту возможность ни в один дистр.

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

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

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

Нет конечно, где Вы видели конфигурируемые перед сборкой ядра?

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

>И еще, сомневаюсь что bss/data могут в общем случае использоваться совместно.

дай ему помечтать. abi везде разные, выравнивание, little/bit endian, битовые поля...

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

>unix-like — это то, что квакает как unix, но не unix
>Shimuuar (*) (23.10.2009 13:33:59)
>

в таком случае ты не человек, а человеко-подобная обезьяна раз так считаешь ;)

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

>некий Райан Гордон

Этот "некий" Райан Гордон есть тот самый icculus, ответственный за портирование огромного количества софта на линукс

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

А по моему очень даже православная идея.

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

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

fdd
()

Мда. И чего только люди не придумывают чтобы не использовать managed платформы. :)

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

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

Элитизм так и прет.

Видите ли, fat binaries были изначально придуманы Apple. Придуманы они для того, чтобы была только один дистрибутив ОС (а не несколько по количеству архитектур). То есть чтобы пользователь не думал, какой дистрибутив ему нужен, просто вставил диск -- и всё работает. Загрузчик сам выберет подходящую под железо архитектуру. То же самое и с приложениями -- если это universal binary, то оно будет работать на любом Маке, выпущенном в текущем веке.

Тот факт, что очень многие пользователи не могут разобраться а архитектурах, подтверждается опытом M$ (только ленивый не пнул их за обилие "редакций") и постоянными вопросами на ЛОРе типа "ставить 32 или 64?".

Relan ★★★★★
()

Хрена ль толку от FatELF, когда даже x86 бинарь от дебиана одной версии сегфолтится в дебиане другой версии, не говоря уже об отсутсвии бинарной совместимости между дистрами лялиха.

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