LINUX.ORG.RU
ФорумTalks

Прекращение поддержки формата исполняемых файлов a.out в ядре Linux

 ,


0

1

Линус Торвальдс согласился с предложением по удалению из ядра поддержки устаревшего формата исполняемых файлов a.out и принял в состав находящейся в разработке ветки 5.1 изменения, одно из которых переводит a.out в разряд устаревших технологии (deprecated), а другое удаляет код формирования core-файлов в этом формате.

Ядро Linux поддерживает формат ELF уже около 25 лет, и у a.out на машинах под управлением Linux давно не осталось применений, о которых было бы известно разработчикам ядра. Как следствие, в текущем виде код формирования core-файлов в a.out находится в заброшенном состоянии и требует дополнительных ресурсов для приведения его в порядок. Так как формат a.out давно вышел из обихода и генерация файлов a.out уже не поддерживается современными инструментальными средствами в конфигурациях для Linux по умолчанию, оказалось более целесообразным удалить поддержку core-файлов в формате a.out и объявить сам формат a.out устаревшим.

Код для поддержки a.out планируют удалить из ядра в одном из следующих выпусков, если не будут представлены доводы по сохранению его поддержки и не найдётся желающий взять на себя работу по его сопровождению в составе ядра. Удалению поддержки a.out из ядра также способствует то, что загрузчик для a.out файлов может вполне быть реализован целиком в пространстве пользователя.

Обязательно кто-то расчехлит лопату, когда окончательно выкинут (нет, не откапывать это, а закапывать ядро целиком).

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

Он ядро стал пилить? Вроде же Магейю пилил.

sqq
()

У a.out применений ещё в прошлом тысячелетии не оставалось. Даже все BSD, дожившие до сегодняшнего дня, перешли на ELF до 2001 года.

kirk_johnson ★☆
()
Последнее исправление: kirk_johnson (всего исправлений: 1)
Ответ на: комментарий от kirk_johnson

У a.out применений ещё в прошлом тысячелетии не оставалось.

Да здрастье, я когда свою ос писал в глубоком детстве, вроде загрузчик переносил как cat a.out > /dev/fd0 :)))

a.out - это же аналог .com файла в DOS'е :)

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

У a.out есть свой заголовок, различные секции, в том числе и релоки. Какой же это аналог .com-файла?

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

Я не понимаю, как это связано с тем, что на elf все перешли еще в прошлом тысячелетии?

Ты написал, что применений не осталось, я тебе написал, что для меня осталось! что не так ?

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

У a.out есть свой заголовок, различные секции, в том числе и релоки. Какой же это аналог .com-файла?

Вот реально не помню, но вроде я так делал... Возможно зависит от опций компилятора, ну хз.. Это было лет 20 назад :)))

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

Ты написал, что применений не осталось, я тебе написал, что для меня осталось! что не так ?

Для тебя тоже не осталось, ты просто не знаешь об этом.

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

Для тебя тоже не осталось, ты просто не знаешь об этом.

А я и не спорю в данный момент времени :) Раньше вроде оно мне было надо, но я уже лет 20 назад забросил осестроительство... Теперь мне вообще похрен исполняемый формат файлов в Linux :))

vasya_pupkin ★★★★★
() автор топика

Ну и правильно. Зачем оно? Даже название по умолчанию в компиляторах осталось просто истории ради, сам файлы с a.out в имени уже давно эльфы.

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

закапывать ядро целиком

Я уже давно стою на изготовке, даже могилку предусмотрительно выкопал.

mord0d ★★★★★
()

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

А в других операционках, где они генерируются и работают, их поддержка должна оставаться.

saahriktu ★★★★★
()
Последнее исправление: saahriktu (всего исправлений: 1)
Ответ на: комментарий от snizovtsev

Угу.

$ grep -he AOUT /boot/config-* | sort -u
# CONFIG_HAVE_AOUT is not set
# CONFIG_IA32_AOUT is not set

Mirage1_
()
Ответ на: комментарий от next_time

нет, не написал

ну сейчас действительно не осталось. я просто помню из детства, a.out я как-то просто загрузчиком в своей мега супер ОС грузил и исполнял, но за давностью лет не помню, могу путать...

Воспоминание из детства, что a.out - типа досовского .com файла, но меня уже вроде как опровергли выше...

vasya_pupkin ★★★★★
() автор топика
Последнее исправление: vasya_pupkin (всего исправлений: 1)

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

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

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

Да, та же хрень :(

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

Он настолько говно, что ткущие версии компиляторов его не собирают? Или просто это не ваш говнокод, а ваши говноблобы?

Nastishka ★★★★★
()

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

ZenitharChampion ★★★★★
()

В опеньке его 5 лет назад выкинули. Если не ошибаюсь с 5.4

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

Это очередная костыль-подпорка мира Unix/Linux. Когда название файла не соответствует действительности. Если посмотреть внимательнее, то a.out это просто обычный ELF, а название у него такое видимо чтобы со всякой там Bash-лапшой из 80-ых совместимость была сохранена.

На самом деле с действительным a.out, как и с coff, ты 100% вообще скорее всего никогда не сталкивался в Linux. Поэтому фраза:

Эх, придется на старых ядрах сидеть, а то как иначе мне свой говнокод на си запускать…

Вызывает удивление.

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 2)

Jetty, EXL,
Действительно, преждевременная паника.

$ file ./a.out
./a.out: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, not stripped

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