Форум программистов, компьютерный форум CyberForum.ru

C++

Войти
Регистрация
Восстановить пароль
 
animator404
96 / 96 / 3
Регистрация: 05.05.2013
Сообщений: 1,205
#1

.elf и для чего они нужны - C++

18.03.2015, 23:51. Просмотров 714. Ответов 12
Метки нет (Все метки)

Собственно сабж
Почитал Вики, как-то для новичка не очень много прояснилось
И объясните еще пожалуйста разницу с ехе
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Velesthau
523 / 425 / 129
Регистрация: 25.11.2014
Сообщений: 1,662
19.03.2015, 00:33     .elf и для чего они нужны #2
У elf-файлов нет расширения .elf.
Цитата Сообщение от animator404 Посмотреть сообщение
Собственно сабж
Для чего нужны? Для того же, для чего и exe под виндой - бинарный формат для загрузки в память и запуска.
Цитата Сообщение от animator404 Посмотреть сообщение
И объясните еще пожалуйста разницу с ехе
Форматы и первого и второго описаны и доступны. Разница везде.
animator404
96 / 96 / 3
Регистрация: 05.05.2013
Сообщений: 1,205
19.03.2015, 12:27  [ТС]     .elf и для чего они нужны #3
Цитата Сообщение от Velesthau Посмотреть сообщение
Для чего нужны? Для того же, для чего и exe под виндой - бинарный формат для загрузки в память и запуска.
так в линуксе не нужно .exe а приложение запускается
и я не разу не видел чтобы при дабл клике на elf запускалась программа

можете описать применение такого файла, на примере
DrOffset
6851 / 4062 / 927
Регистрация: 30.01.2014
Сообщений: 6,859
19.03.2015, 12:48     .elf и для чего они нужны #4
Цитата Сообщение от animator404 Посмотреть сообщение
так в линуксе
В линуксе бинарные исполняемые файлы (и библиотеки тоже) - elf.
animator404
96 / 96 / 3
Регистрация: 05.05.2013
Сообщений: 1,205
19.03.2015, 12:49  [ТС]     .elf и для чего они нужны #5
Цитата Сообщение от DrOffset Посмотреть сообщение
В линуксе бинарные исполняемые файлы (и библиотеки тоже) - elf.
elf но без .elf в названии исполняемого файла посколку линуксу это не нужно
правильно?
Velesthau
523 / 425 / 129
Регистрация: 25.11.2014
Сообщений: 1,662
19.03.2015, 12:56     .elf и для чего они нужны #6
Цитата Сообщение от animator404 Посмотреть сообщение
так в линуксе не нужно .exe а приложение запускается
Что это за бессмысленная фраза? Да, в линуксе программы запускаются. Сам в шоке.
Цитата Сообщение от animator404 Посмотреть сообщение
и я не разу не видел чтобы при дабл клике на elf запускалась программа
Это зависит от файлового менеджера, а не формата файла.
Цитата Сообщение от animator404 Посмотреть сообщение
можете описать применение такого файла, на примере
Запусти /bin/bash - применение. Запустил командный интерпретатор.

Добавлено через 44 секунды
Цитата Сообщение от animator404 Посмотреть сообщение
elf но без .elf в названии исполняемого файла посколку линуксу это не нужно
правильно?
Не нужно. Можешь .doc поставить. ничего не изменится. Если не считать файловые менеджеров и их особенности.
animator404
96 / 96 / 3
Регистрация: 05.05.2013
Сообщений: 1,205
19.03.2015, 12:57  [ТС]     .elf и для чего они нужны #7
Цитата Сообщение от DrOffset Посмотреть сообщение
В линуксе бинарные исполняемые файлы (и библиотеки тоже) - elf.
elf но без .elf в названии исполняемого файла посколку линуксу это не нужно
правильно?
Цитата Сообщение от Velesthau Посмотреть сообщение
Запусти /bin/bash - применение. Запустил командный интерпретатор.
я вас вообще не понимаю
причем тут скрипты к бинарникам?
Velesthau
523 / 425 / 129
Регистрация: 25.11.2014
Сообщений: 1,662
19.03.2015, 12:57     .elf и для чего они нужны #8
Цитата Сообщение от animator404 Посмотреть сообщение
Почитал Вики
А надо было взять и почитать книгу

Добавлено через 23 секунды
Цитата Сообщение от animator404 Посмотреть сообщение
причем тут скрипты к банарникам?
При том, что /bin/bash - это elf-файл. Скрипты здесь не при чем.
animator404
96 / 96 / 3
Регистрация: 05.05.2013
Сообщений: 1,205
19.03.2015, 12:59  [ТС]     .elf и для чего они нужны #9
Цитата Сообщение от Velesthau Посмотреть сообщение
При том, что /bin/bash - это elf-файл. Скрипты здесь не при чем.
а, понял - сам интерпретатор

окю тогда так. я компилирую код с gcc на линуксе
какой у финального файла будет формат?
DrOffset
6851 / 4062 / 927
Регистрация: 30.01.2014
Сообщений: 6,859
19.03.2015, 13:08     .elf и для чего они нужны #10
Цитата Сообщение от animator404 Посмотреть сообщение
elf но без .elf в названии исполняемого файла посколку линуксу это не нужно
правильно?
Расширение не нужно, потому что исполняемость файла определяется правами в файловой системе.

Цитата Сообщение от animator404 Посмотреть сообщение
какой у финального файла будет формат?
elf будет.

командой
Bash
1
objdump -f имя_твоего_бинарного_файла
можешь удостовериться.

Вот например:
$ objdump -f /usr/bin/bash

/usr/bin/bash: формат файла elf32-i386
архитектура: i386, флаги 0x00000112:
EXEC_P, HAS_SYMS, D_PAGED
начальный адрес 0x08060238
Velesthau
523 / 425 / 129
Регистрация: 25.11.2014
Сообщений: 1,662
19.03.2015, 13:30     .elf и для чего они нужны #11
Цитата Сообщение от animator404 Посмотреть сообщение
какой у финального файла будет формат?
запусти команду file на результат работы компилятора и она тебе напишет, что за файл.
Evg
Эксперт CАвтор FAQ
17378 / 5616 / 350
Регистрация: 30.03.2009
Сообщений: 15,374
Записей в блоге: 26
19.03.2015, 15:44     .elf и для чего они нужны #12
Цитата Сообщение от animator404 Посмотреть сообщение
так в линуксе не нужно .exe а приложение запускается
и я не разу не видел чтобы при дабл клике на elf запускалась программа
Сие есть разный способ работы в операционных системах. О том, допустимо ли исполнять файл, или нет, windows делает вывод на основании расширения файла (.bat, .com, .exe, .msi и т.п. - можно, остальные нельзя). Но вот в linux'е, как и в любом юниксе, информация о том, можно запускать файл или нельзя хранится в атрибутах файла (есть атрибуты для чтения, записи и исполнения), при этом расширение файла не играет никакой роли. Если у файла есть права на исполнение, значит linux подразумевает, что его можно исполнять.

Далее linux читает первые несколько байта этого файла. Если в первых двух байтах записаны #!, то linux предполагает, что файл является скриптом и далее читает путь до интерпретатора, при помощи которого исполняется файл. У скриптов самой первой строкой обычно стоит что-то типа #!/usr/bin/perl, что означает, что при запуске файла под именем a.pl в реальности linux запустит "/usr/bin/perl a.pl". Если в первых байтах написано .ELF (где . - это символ с кодом 127), то linux считает, что мы имеем бинарник в формате elf (который по смыслу совпадает с виндузовым форматом exe) и далее запускает специальный загрузчик, который этот файл загрузит в память и исполнит. Наверное есть ещё куча всяких разных заголовков, которые трактуются специальным образом. Если по первым байтам не удалось выяснить тип файла, то современные linux'ы считают, что это скрипт, который надо исполнять при помощи текущего интерпретатора или что-то типа того, но здесь уже в разных ОС и версиях вполне могут работать разные соглашения

ELF - это формат файла, в который по специальным правилам записаны коды, данные, всякая информация для отладчика или дизассемблера и прочее барахло
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.03.2015, 17:13     .elf и для чего они нужны
Еще ссылки по теме:

Для чего нужны интерфейсы? C++
Try - catch - throw для чего они C++
C++ Для чего нужны битовые операции?
C++ Для чего нужны файлы с расширением .h, .c?
Allocator_traits propagate_on_container_ - для чего они нужны C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
gazlan
3130 / 1905 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
19.03.2015, 17:13     .elf и для чего они нужны #13
Цитата Сообщение от animator404 Посмотреть сообщение
разницу с ехе
Именно для Windows - незначительна, "общий предок" у них - COFF.

EXE - это контейнер, для хранения чего угодно, обрабатываемый загрузчиком OS. За этим расширением может скрываться несколько различных форматов (DOS MZ, Win16 NE, OS2 LE/LX, Win32 PE, Win64 PE+), но все они начинаются с сигнатуры MZ, после которой загрузчик ожидает увидеть стандартный заголовок и набор таблиц - описателей формата.

Win32 PE - это "ELF для бедных", упрощенный вариант под единственную архитектуру.

А где хранится признак "исполняемости" файла - как часть имени (.EXE/.OCX/.SCR/.DLL etc) или в другом поле файловой системы - малозначимая деталь реализации.
Yandex
Объявления
19.03.2015, 17:13     .elf и для чего они нужны
Ответ Создать тему
Опции темы

Текущее время: 09:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru