Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/29: Рейтинг темы: голосов - 29, средняя оценка - 4.86
 Аватар для animator404
99 / 99 / 12
Регистрация: 05.05.2013
Сообщений: 1,208

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

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

Студворк — интернет-сервис помощи студентам
Собственно сабж
Почитал Вики, как-то для новичка не очень много прояснилось
И объясните еще пожалуйста разницу с ехе
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.03.2015, 23:51
Ответы с готовыми решениями:

Что такое compile-time алгоритмы и для чего они нужны?
А есть от них хоть какая-то практическая польза? По-моему нет

Для чего нужны сужающие преобразования как они работают и на сколько они важны?
Я читаю одну книгу и застрял на одной теме "Преобразования", и там есть такой вот код double х {2.7}; int у {х}; // Ошибка : double...

Allocator_traits propagate_on_container_ - для чего они нужны
В std::allocator_traits есть такие определения как propagate_on_container_copy_assignment, propagate_on_container_move_assignment и...

12
529 / 432 / 159
Регистрация: 25.11.2014
Сообщений: 1,662
19.03.2015, 00:33
У elf-файлов нет расширения .elf.
Цитата Сообщение от animator404 Посмотреть сообщение
Собственно сабж
Для чего нужны? Для того же, для чего и exe под виндой - бинарный формат для загрузки в память и запуска.
Цитата Сообщение от animator404 Посмотреть сообщение
И объясните еще пожалуйста разницу с ехе
Форматы и первого и второго описаны и доступны. Разница везде.
0
 Аватар для animator404
99 / 99 / 12
Регистрация: 05.05.2013
Сообщений: 1,208
19.03.2015, 12:27  [ТС]
Цитата Сообщение от Velesthau Посмотреть сообщение
Для чего нужны? Для того же, для чего и exe под виндой - бинарный формат для загрузки в память и запуска.
так в линуксе не нужно .exe а приложение запускается
и я не разу не видел чтобы при дабл клике на elf запускалась программа

можете описать применение такого файла, на примере
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
19.03.2015, 12:48
Цитата Сообщение от animator404 Посмотреть сообщение
так в линуксе
В линуксе бинарные исполняемые файлы (и библиотеки тоже) - elf.
0
 Аватар для animator404
99 / 99 / 12
Регистрация: 05.05.2013
Сообщений: 1,208
19.03.2015, 12:49  [ТС]
Цитата Сообщение от DrOffset Посмотреть сообщение
В линуксе бинарные исполняемые файлы (и библиотеки тоже) - elf.
elf но без .elf в названии исполняемого файла посколку линуксу это не нужно
правильно?
0
529 / 432 / 159
Регистрация: 25.11.2014
Сообщений: 1,662
19.03.2015, 12:56
Цитата Сообщение от animator404 Посмотреть сообщение
так в линуксе не нужно .exe а приложение запускается
Что это за бессмысленная фраза? Да, в линуксе программы запускаются. Сам в шоке.
Цитата Сообщение от animator404 Посмотреть сообщение
и я не разу не видел чтобы при дабл клике на elf запускалась программа
Это зависит от файлового менеджера, а не формата файла.
Цитата Сообщение от animator404 Посмотреть сообщение
можете описать применение такого файла, на примере
Запусти /bin/bash - применение. Запустил командный интерпретатор.

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

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

окю тогда так. я компилирую код с gcc на линуксе
какой у финального файла будет формат?
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
19.03.2015, 13:08
Цитата Сообщение от 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
1
529 / 432 / 159
Регистрация: 25.11.2014
Сообщений: 1,662
19.03.2015, 13:30
Цитата Сообщение от animator404 Посмотреть сообщение
какой у финального файла будет формат?
запусти команду file на результат работы компилятора и она тебе напишет, что за файл.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
19.03.2015, 15:44
Цитата Сообщение от 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 - это формат файла, в который по специальным правилам записаны коды, данные, всякая информация для отладчика или дизассемблера и прочее барахло
2
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
19.03.2015, 17: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) или в другом поле файловой системы - малозначимая деталь реализации.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.03.2015, 17:13
Помогаю со студенческими работами здесь

.clear() и .seekg() Для чего они нужны?
Здравствуйте! Изучал код и увидел 2 интересные строки, начал гуглить, но внятного ответа не нашел, или же просто не могу понять. Объясните...

Перечисления (enum): для чего они нужны? Как, когда и какими перечислениями уместнее пользоваться?
Предположим есть такой код: #include <iostream> #include <iomanip> #include <Windows.h> enum airplanes {SU6, SU29, SU34}; //...

Объясните 35-36 строчки ,что они делают и для чего они ?
//--------------------------------------------------------------------------- #include<iostream.h> #include <vcl.h> #pragma hdrstop ...

Что за драйвера такие, для чего они и нужны ли они вообще?
Что за драйвера такие, для чего они и нужны ли они вообще? 1 Intel SATA Preinstall driver (For AHCI / RAID Mode) Note: Press F6...

Struts для чего они нужны?
Привет всем! Сразу прошу не бить ногами, если кому-то вопрос показался идиотским. Но дело в том, что уже некоторое время пытаюсь...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru