The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

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

06.03.2019 19:04

Линус Торвальдс согласился с предложением по удалению из ядра поддержки устаревшего формата исполняемых файлов 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 файлов может вполне быть реализован целиком в пространстве пользователя.

  1. Главная ссылка к новости (https://lkml.org/lkml/2019/3/5...)
  2. OpenNews: В ядре Linux 4.17 ожидается удаление 8 процессорных архитектур
  3. OpenNews: Из ядра Linux намерены удалить драйвер файловой системы ext3
  4. OpenNews: В ядре Linux прекращена поддержка процессоров 386
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/50263-linux
Ключевые слова: linux, kernel, a.out
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (38) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.4, Аноним (4), 19:47, 06/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –11 +/
    gcc без -o генерирует эти ваши a.out
     
     
  • 2.6, Аноним (6), 19:52, 06/03/2019 [^] [^^] [^^^] [ответить]  
  • +24 +/
    Там от a.out одно название.
     
     
  • 3.8, Аноним (8), 20:01, 06/03/2019 [^] [^^] [^^^] [ответить]  
  • –5 +/
    и в чем тогда прикол?
     
     
  • 4.25, asdasd (?), 00:03, 07/03/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Сказано же в названии. Исторически так сложилось.
     
  • 3.38, fi2fi (?), 14:21, 07/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    боле правильное название старого a.out есть COFF
     
  • 2.7, Аноним (7), 19:55, 06/03/2019 [^] [^^] [^^^] [ответить]  
  • +9 +/
    Посмотрите file a.out и удивитесь, увидев, что это ELF.
     
     
  • 3.9, Аноним (4), 20:08, 06/03/2019 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Я в курсе, но название смущает. GCC явно делали школьники в самом начале.
     
     
  • 4.10, Аноним (10), 20:11, 06/03/2019 [^] [^^] [^^^] [ответить]  
  • +17 +/
    Это ещё что! GCC в самом начале был на диалекте Паскаля.

    А если серьёзно, исполняемые файлы формирует не компилятор, а компоновщик. Это к вопросу о школьниках.

     
     
  • 5.14, Пиони (?), 20:28, 06/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Кстати, GCC и gcc, это тоже немного разные вещи. И gcc это не компилятор, а драйвер, который интерпретирует аргументы командной строки, вызывает компилятор, и уже выход передаёт дальше ассемблеру и компоновщику
     
     
  • 6.16, Аноним (10), 20:37, 06/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    И так как это драйвер, он тем более ничего не генерирует и о форматах исполняемых файлов ничего не знает. Формат целевого файла определяется именно для компилятора, ассемблера и компоновщика на этапе их собственной сборки.
     
  • 5.24, irinat (ok), 23:53, 06/03/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Объектные файлы у GCC — тоже ELF.
     
     
  • 6.28, ГабенВульвович (?), 02:57, 07/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Правда школьники об этом тож не знают, пытаясь соревноваться друг с другом в остроумии и знании тулчейна.
     
     
  • 7.29, Аноним (29), 04:51, 07/03/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Школьники имеют на это право, потому что знают о том, что объектные файлы формирует не gcc, а ассемблер, не имеющий к компилятору отношения.
     
     
  • 8.35, анон (?), 07:56, 07/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    т е в твоему в огороде курицы вытираются, а в киеве газетами ... текст свёрнут, показать
     
  • 8.43, irinat (ok), 00:06, 08/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Лёгким движением руки меняем gcc на clang, и вот уже нет вызова ассемблера ... текст свёрнут, показать
     
  • 4.41, Совершенно другой аноним (?), 15:20, 07/03/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Я в курсе, но название смущает. GCC явно делали школьники в самом начале.

    ну, тогда уже не GCC, а Unix-ы, а точнее первый компилятор с языка C (возможно даже pcc) - оно оттуда пошло.

     
  • 2.11, Пиони (?), 20:17, 06/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Наверняка для обратной совместимости так оставили
     
  • 2.12, Дуплик (ok), 20:19, 06/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это не a.out, а ELF-файл. От a.out там лишь одно название в целях совместимости со всякими там древними скриптами.
     
     
  • 3.17, Аноним (10), 20:39, 06/03/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > в целях совместимости со всякими там древними скриптами

    Во-первых, это краси^W POSIX: https://pubs.opengroup.org/onlinepubs/9699919799/utilities/c99.html

     
     
  • 4.23, Crazy Alex (ok), 22:49, 06/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Тебе и сказали "для совместимости с древними скриптами"
     

  • 1.13, supercyberhawk (?), 20:28, 06/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –7 +/
    розрабы гнома теперь линукс разрабатывают?
     
     
  • 2.15, Аноним (10), 20:32, 06/03/2019 [^] [^^] [^^^] [ответить]  
  • +17 +/
    Вы можете отличить инженеров, удаляющих мёртвый код для упрощения поддержки живого, от хипстеров, удаляющих живой код, потому что «пользователю сложно»?

    Вероятность того, что вы в своей жизни ещё столкнётесь с a.out, исчезающе мала. По крайней мере, на Linux. Насколько я помню, gcc для PDP-11 до сих пор поддерживает только a.out, но вероятность того, что вы в своей жизни столкнётесь с PDP-11, тоже исчезающе мала, да и Linux на них не работает.

     
     
  • 3.20, Annoynymous (ok), 21:31, 06/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > но вероятность того, что вы в своей жизни столкнётесь с PDP-11, тоже исчезающе мала

    (Внезапный приступ ностальгии) а жаль!

     
     
  • 4.31, Аноним (29), 05:45, 07/03/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Кому жаль, те пишут их для FPGA и играются дома в своё удовольствие.
     

  • 1.21, Аноним (21), 22:16, 06/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    ВОТ могла бы быть хорошая причина увеличить номер мажорной версии, а не то, что Линус только до 20 считать умеет.
     
     
  • 2.27, DiabloPC (ok), 01:46, 07/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Тоже мне причину нашёл.
    Толковая причина для этого - существенные нововведения, а удаление мёртвого кода даже не повод х.х.У менять
     
     
  • 3.30, Аноним (30), 04:51, 07/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Метрвый код - это когда он не исполняется во время работы. Тут же идет речь, о потенцпильной обратной несовместимости: вроде как клиентов этого кода нет можно удалить? Но у обратной совместимости нет понятние "может", поэтому это semver major.
     
     
  • 4.34, Ключевский (?), 07:20, 07/03/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Нет давно тех кто использует a.out. Плюс к тому код не выкидывают прямо ща, а объявляют deprecated в 5.1. Он в таком статусе еще несколько лет может болтаться, плюс к тому сколько еще лет пройдет пока ядро в котором его окончательно удалят попадет в дистрибутивы. Если вдруг найдется тот кто реально использует a.out, то у него есть лет 5-7 с сегодняшнего дня до возникновения проблем в свежих дистрибутивах.
     
  • 3.39, 0x0 (?), 14:54, 07/03/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >существенные нововведения

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

     
  • 3.40, 0x0 (?), 15:12, 07/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Существенной вехой можно было считать появление заплаток Spectre/Meltdown. Когда даже процессор стал не такой, как вчера :)
     
  • 2.36, Аноним (36), 11:37, 07/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Если принимать во внимание только LTS ветки, именно так и сделали. В 4.19 a.out поддерживается, а в 5.4 (или какая станет LTS), скорее всего, нет.
     
  • 2.37, JavaC (?), 13:39, 07/03/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Правильно ли я понял, что линуксу жить только до 20й мажорной версии? Или потом появиться более мажорная версия и так до 20 точек в номере версии?
     
     
  • 3.42, Аноним (7), 18:37, 07/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Дальше буквы пойдут, греческие.
     
  • 3.45, 0x0 (?), 00:50, 08/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это, наверное, как с проблемами 20хх годов. На момент возникновения все думают, что к тому времени будет уже что-то другое.
    Хотя, скорее, уже вообще ничего не будет. По крайней мере, из сферы человеческого осязания (в теперешнем ещё не на все 100% виртуально-реалном положении))
     

  • 1.46, Sneer (?), 07:59, 08/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Слабаки. На IBM AIX взлетает софт 27 летней давности и это бывает жизненно необходимо в продакшене. На HP-UX, кстати, ситуация аналогичная. Там даже эмулятор процессора работает прозрачно (что бы на IA-64 запускать софт от s800 какой-нибудь).
     
     
  • 2.47, Север (?), 13:53, 08/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Проприетарщики должны страдать.
     
     
  • 3.49, Аноним (49), 12:46, 10/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >>> Проприетарщики должны страдать.

    Про них как не спросишь, так у них всё работает. В отличии от опенсорса.

    Впрочем: свобода = сложности.

     
     
  • 4.50, J.L. (?), 15:23, 11/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >>>> Проприетарщики должны страдать.
    > Про них как не спросишь, так у них всё работает. В отличии от опенсорса.

    "у нас всё работает, проблема на вашей стороне!"
    - ей, митрич, у нас чо, если строчка в лог длиннее 255 байт то лог перестаёт писаться???

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру