Что такое редактор связей

Компоновщик

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

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

* Определённые или экспортируемые имена — функции и переменные, определённые в данном модуле и предоставляемые для использования другим модулям;

* Неопределённые или импортируемые имена — функции и переменные, на которые ссылается модуль, но не определяет их внутри себя;

Локальные — могут использоваться внутри объектного файла для упрощения процесса настройки адресов.Для большинства компиляторов, один объектный файл является результатом компиляции одного файла с исходным кодом. Если программа собирается из нескольких объектных файлов, компоновщик собирает эти файлы в единый исполнимый модуль, вычисляя и подставляя адреса вместо символов, в течение времени компоновки (статическая компоновка) или во время исполнения (динамическая компоновка).

Компоновщик может извлекать объектные файлы из специальных коллекций, называемых библиотеками. Если не все символы, на которые ссылаются пользовательские объектные файлы, определены, то компоновщик ищет их определения в библиотеках, которые пользователь подал ему на вход. Обычно, одна или несколько системных библиотек используются компоновщиком по умолчанию. Когда объектный файл, в котором содержится определение какого-либо искомого символа, найден, компоновщик может включить его (файл) в исполнимый модуль (в случае статической компоновки) или отложить это до момента запуска программы (в случае динамической компоновки).

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

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

Источник

Редактор связей

Редактор связей [1] выполняет две функции. Во-первых, как можно заключить по его названию, он комбинирует (компонует, редактирует) различные объектные файлы. Вторая его функция — разрешать адреса вызовов и инструкций загрузки, найденных в редактируемых объектных файлах. Чтобы понять принцип работы редактора связей, рассмотрим подробнее процесс раздельной компиляции.

Раздельная компиляция


Переместимые коды и абсолютные коды


Редактирование связей с оверлеями

Рис.12.1 Программа с оверлеями загруженными в память.

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

Например, если приложение обрабатывает список рассылки, то имеет смысл поместить все подпрограммы сортировки в один оверлей, подпрограммы печати — в другой и т.д.

Как уже было сказано, в современных вычислительных средах оверлеи применяются редко.

Связывание с динамически подсоединяемыми библиотеками (DLL)

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

Стандартная библиотека С не содержится в динамически подсоединяемой библиотеке, но многие другие типы функций там есть. Например, при написании приложений для Windows, в DLL хранится полный набор функций программного интерфейса приложений (API — Application Program Interface). Нужно отметить, что для программы, написанной на языке С, обычно не имеет значения, хранятся ли библиотечные функции в DLL или в обычном файле библиотек.

[4] Редакторы связей обычно располагают широким набором возможностей, и при необходимости пользователь может указать необходимые параметры.

[6] Создание оверлейных программ — стандартная функция для редакторов связей. Кроме того редакторы связей обычно могут создавать даже загрузочные модули, загружаемые «вразброс», т.е. в несмежные участки памяти. Все это имеет огромное значение для систем, в которых отсутствует виртуальная память. Но в системах с виртуальной памятью эти возможности часто выглядят как ненужные излишества.

Источник

Редактор связей

Компоновщик (также реда́ктор свя́зей, линкер — от англ. link editor, linker ) — программа, которая производит компоновку — принимает на вход один или несколько объектных модулей и собирает по ним исполнимый модуль.

Для связывания модулей, компоновщик использует таблицы имён, созданные компилятором в каждом из объектных модулей. Такие имена могут быть двух типов:

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

См. также

Смотреть что такое «Редактор связей» в других словарях:

редактор связей — Программа, предназначенная для создания загрузочных модулей на основании одного или нескольких объектных модулей или загрузочных модулей путем разрешения перекрестных ссылок между модулями и, при необходимости, настройки адресов. [ГОСТ 19781 90]… … Справочник технического переводчика

редактор связей — saitų redaktorius statusas T sritis automatika atitikmenys: angl. binder; linkage editor; linker vok. Binder, m; Binderprogramm, n rus. редактор связей, m pranc. éditeur de liens, m; linker, m … Automatikos terminų žodynas

Редактор связей — 44. Редактор связей Linkage editor Linker Программа, предназначенная для создания загрузочных модулей на основании одного или нескольких объектных модулей или загрузочных модулей путем разрешения перекрестных ссылок между модулями и, при… … Словарь-справочник терминов нормативно-технической документации

редактор — 3.1.3 редактор: Лицо, выполняющее проверку стилистики, языка и оформления документации. Примечание На практике, как правило, эти функции выполняют два физических лица один выполняет проверку стилистики и изложения сведений, второй… … Словарь-справочник терминов нормативно-технической документации

Редактор сообщений Фидонет — Запрос «Фидо» перенаправляется сюда. Cм. также другие значения. Фидонет (коротко Фидо; от англ. Fidonet, /ˈfaɪdəʊnɛt/) международная некоммерческая компьютерная сеть, построенная по технологиям «из точки в точку» и «коммутация с запоминанием»[1] … Википедия

РЕАКЦИИ СВЯЗЕЙ — для связей, осуществляемых с помощью к. н. тел (см. СВЯЗИ МЕХАНИЧЕСКИЕ), силы воздействия этих тел на точки механич. системы. В отличие от активных сил, Р. с. явл. величинами заранее неизвестными; они зависят не только от вида связей, но и от… … Физическая энциклопедия

ГОСТ 19781-90: Обеспечение систем обработки информации программное. Термины и определения — Терминология ГОСТ 19781 90: Обеспечение систем обработки информации программное. Термины и определения оригинал документа: 9. Абсолютная программа Non relocatable program Программа на машинном языке, выполнение которой зависит от ее… … Словарь-справочник терминов нормативно-технической документации

МАТЕМАТИЧЕСКОЕ ОБЕСПЕЧЕНИЕ — ЭВМ, программное обеспечение, совокупность программ и программных комплексов, посредством к рых происходит преобразование алгоритмов программы пользователя, записанных на алгоритмич. языках высокого уровня, в последовательность команд, понимаемых … Математическая энциклопедия

Стандартная библиотека — языка программирования набор модулей, классов, объектов, констант, глобальных переменных, шаблонов, макросов, функций и процедур, доступных для вызова из любой программы, написанной на этом языке и присутствующих во всех реализациях языка.… … Википедия

Clipper — Тип исполнения: компилируемый Появился в: 1985 Автор(ы): Nantucket Corporation Релиз: CA Clipper 5.3b (20.05.1997) Испытал влияние: dBase … Википедия

Источник

Национальная библиотека им. Н. Э. Баумана
Bauman National Library

Персональные инструменты

Linker (Link Editor)

Содержание

Обзор

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

Для большинства компиляторов, один объектный файл является результатом компиляции одного файла с исходным кодом. Если программа собирается из нескольких объектных файлов, компоновщик собирает эти файлы в единый исполнимый модуль, вычисляя и подставляя адреса вместо символов, в течение времени компоновки (статическая компоновка) или во время исполнения (динамическая компоновка). [Источник 1]

Компоновщик может извлекать объектные файлы из специальных коллекций, называемых библиотеками. Если не все символы, на которые ссылаются пользовательские объектные файлы, определены, то компоновщик ищет их определения в библиотеках, которые пользователь подал ему на вход. Обычно, одна или несколько системных библиотек используются компоновщиком по умолчанию. Когда объектный файл, в котором содержится определение какого-либо искомого символа, найден, компоновщик может включить его (файл) в исполнимый модуль (в случае статической компоновки) или отложить это до момента запуска программы (в случае динамической компоновки).

Динамическая компоновка

Многие операционные системы позволяют динамическое связывание, то есть компоновщик собирает файлы в единый исполнимый модуль, вычисляя и подставляя адреса вместо символов во время запуска программы. Это означает, что исполняемый код все еще содержит неопределенные символы, а также список объектов или библиотек, которые будут предоставлять определения для них. Загрузка программы добавит эти объекты / библиотеки и выполнит окончательную компоновку.

Такой подход дает два преимущества:

Статическая компоновка

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

Релокация

После того как линковщик разрешил адресацию всех символов, каждая адресация символа ссылается ровно на одно определение символа. В этот момент линковщик запускает процесс релокации, состоящий из двух шагов:

Загрузчик

Более простая версия, которая записывает свой вывод напрямую в память, называется загрузчиком, хотя загрузка, как правило, рассматривается как отдельный процесс. Загрузчик является частью операционной системы, которая отвечает за загрузку программ и библиотек. Это является одним из существенных этапов в процессе запуска программы, поскольку она помещает программы в память и подготавливает их к исполнению.

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

Microsoft Windows

Редактор связей

В средах мэйнфреймов IBM System / 360, таких как OS / 360, включая z / OS для мейнфреймов z / Architecture, этот тип программы известен как редактор связей. Тем не менее, редактор связей, как следует из названия, имеет дополнительную возможность, позволяющую добавлять, заменять и / или удалять отдельные разделы программы. Операционные системы, такие как OS / 360, имеют разные форматы для исполняемых загрузочных модулей, поскольку они содержат дополнительные данные о компонентах разделов программы, так что отдельный раздел программы может быть заменен, а другие части программы обновлены так, что Перемещаемые адреса и другие подобные ссылки могут быть исправлены редактором связей как часть процесса.

Одним из преимуществ этого является то, что он позволяет поддерживать программу без необходимости хранить все промежуточные объектные файлы или без повторной компиляции разделов программы, которые не были изменены. Он также позволяет распространять обновления программ в виде небольших файлов (изначально предназначенных для карт), содержащих только заменяемый объектный модуль. В таких системах объектный код имеет форму и формат колоды перфокарт, так что обновления могут быть введены в систему с использованием этого носителя. В более поздних выпусках OS / 360 и последующих системах модули загрузки содержат дополнительные данные о версиях модулей компонентов, чтобы создать отслеживаемую запись обновлений.

Приложения

Linker 2.3.1.17

После запуска программы появится русскоязычный интерфейс.

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

Linker «ест» очень мало ресурсов компьютера. Программа так же отслеживает запуск нескольких своих копий, то есть если случайно повторно ее запустить, то на экране появится ранее запущенная копия Linker, а «лишняя» автоматически закроется.

Что такое редактор связей. Смотреть фото Что такое редактор связей. Смотреть картинку Что такое редактор связей. Картинка про Что такое редактор связей. Фото Что такое редактор связей

Что такое редактор связей. Смотреть фото Что такое редактор связей. Смотреть картинку Что такое редактор связей. Картинка про Что такое редактор связей. Фото Что такое редактор связей

Что такое редактор связей. Смотреть фото Что такое редактор связей. Смотреть картинку Что такое редактор связей. Картинка про Что такое редактор связей. Фото Что такое редактор связей

Linker 2.1.2.5

Как результат, сегодня у многих квалифицированных пользователей (а тем более — у IТ-специалистов) имеются свои собственные подборки портативных приложений — тех, которые оказываются им нужны наиболее часто. При необходимости запустить ту или иную программу приходится открывать флешку, искать папку (порой вложенную еще в несколько подкаталогов), в ней искать исполняемый файл и запускать его. Программа Linker сильно упрощает задачу: она позволяет собрать все ссылки на нужные программы, файлы и папки в одном месте. То есть создать каталог всех нужных пользователю данных с непосредственными ссылками на них. В результате вызывать любую программу, добавленную в список, можно всего в один клик, без долгих поисков. Главное преимущество программы Linker — ее универсальность. Пользователь волен самостоятельно создавать собственные разделы, нужные только ему. То есть разработчики не предопределили никаких жестко прописанных разделов. Причем можно добавлять ссылки не только на portable-версии нужных программ, но и на любые другие файлы и даже папки без каких-либо ограничений. Более того, при желании Linker можно использовать на локальном жестком диске в качестве программы для быстрого запуска приложений и документов. Но все же главная задача Linker — «навести порядок» на флешке. Linker имеет весьма простой и скромный интерфейс. Отсутствие готовых предустановленных разделов позволяет настроить все создаваемые разделы под свои нужды. Linker не требует установки, достаточно просто распаковать его в любое место. При первом запуске рядом с исполняемым файлом программы появятся еще два файла, которые не следует удалять: в одном из них хранится информация обо всех добавленных ссылках, а во втором — настройки самого Linker’a. Данные хранятся в формате XML.

При первом запуске пользователь видит только небольшое пустое окошко с четырьмя кнопками вверху. Первая вызывает меню программы, вторая дает возможность добавлять новые записи в список, третья служит для редактирования уже добавленных ссылок, а последняя позволяет удалять их. Итак, начинаем с создания нужных разделов. Жмем кнопку «Добавить» и в появившемся меню выбираем пункт «Добавить группу». Появляется новое окошко, в которое следует ввести название и описание для создаваемой группы (описание не обязательно). Жмем кнопку ОК, и новая группа добавляется в список.

Понятно, что группы предназначены для размещения в них ссылок на программы или файлы. Чтобы поместить ссылку в группу, можно воспользоваться тем же меню «Добавить» (выбрать пункт «Добавить элемент»). Но можно действовать проще и быстрее: просто перетащить нужный файл в окно программы. Linker полностью поддерживает Drag&Drop, так что после перетаскивания нового элемента базовая информация о нем в виде ссылки и иконки будет автоматически добавлена в форму.

После этого пользователю остается только задать название, указать дополнительные параметры запуска новой программы и добавить ей описание. Есть один нюанс — для того, чтобы иметь возможность сворачивать разделы, следует все относящиеся к данному разделу программы просто перетащить на название нужной группы. После этого рядом с названием появится значок «+». Теперь, после нажатия на название группы или на плюсик, список будет раскрываться.

Перед выходом из программы необходимо сохранять изменения. Для этого потребуется зайти в меню «Доп. функции» и выбрать пункт «Сохранить конфигурацию». Поиск по фильтру. Если флешка большого объема и хранит много программ и файлов, их список может оказаться достаточно большим. Для облегчения работы с такими списками в программе присутствует функция фильтрации. Чтобы быстро найти нужный элемент, достаточно начать вводить его название. В ответ Linker выдаст список, в котором присутствуют только те записи, в которых встречается введенная пользователем комбинация символов. Чтобы вернуться к общему списку, достаточно убрать введенные символы клавишей Backspace.

Самый известный платный аналог Linker — это CodySafe ($9.90). Программа CodySafe интегрирована с онлайновой базой portable-софта. У Linker такой интеграции нет, однако пользователь может скачать с официального сайта небольшую подборку полезных утилит, названную «Быстрый старт». Из более-менее заметных преимуществ CodySafe перед Linker можно отметить разве что поддержку скинов.

Источник

Компоновщик

Компоновщик (также реда́ктор свя́зей, линкер — от англ. link editor, linker ) — программа, которая производит компоновку: принимает на вход один или несколько объектных модулей и собирает по ним исполнимый модуль.

Для связывания модулей компоновщик использует таблицы имён, созданные компилятором в каждом из объектных модулей. Такие имена могут быть двух типов:

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

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

См. также

Литература

Что такое редактор связей. Смотреть фото Что такое редактор связей. Смотреть картинку Что такое редактор связей. Картинка про Что такое редактор связей. Фото Что такое редактор связей

Полезное

Смотреть что такое «Компоновщик» в других словарях:

Компоновщик — модуль системы программирования или самостоятельная программа, которая собирает результирующую программу из объектных модулей и стандартных библиотечных модулей. См. также: Инструментальное программное обеспечение Финансовый словарь Финам … Финансовый словарь

компоновщик — синтезатор, формирователь, разработчик, построитель; составитель Словарь русских синонимов. компоновщик сущ., кол во синонимов: 1 • составитель (21) Словарь синони … Словарь синонимов

компоновщик — Программа, создающая загрузочный модуль из объектных модулей. [Е.С.Алексеев, А.А.Мячев. Англо русский толковый словарь по системотехнике ЭВМ. Москва 1993] Тематики информационные технологии в целом EN link editorlinker … Справочник технического переводчика

Компоновщик — I м. Тот, кто занимается компоновкой [компоновка I 1.]. II м. Тот, кто занимается компоновкой [компоновка II 1.]. Толковый словарь Ефремовой. Т. Ф. Ефремова. 2000 … Современный толковый словарь русского языка Ефремовой

компоновщик — компоновщик, компоновщики, компоновщика, компоновщиков, компоновщику, компоновщикам, компоновщика, компоновщиков, компоновщиком, компоновщиками, компоновщике, компоновщиках (Источник: «Полная акцентуированная парадигма по А. А. Зализняку») … Формы слов

компоновщик — компон овщик, а … Русский орфографический словарь

компоновщик — Syn: синтезатор, формирователь, разработчик, построитель … Тезаурус русской деловой лексики

компоновщик — компон/ов/щик/ … Морфемно-орфографический словарь

Компоновщик (шаблон проектирования) — Шаблон проектирования Компоновщик Composite Тип: структурный Описан в Design Patterns Да Компоновщик (англ. Composite pattern) шаблон проектирования, относится к структурным паттернам, объединяет объек … Википедия

Линковка — Компоновщик (также редактор связей, линкер от англ. link editor, linker) программа, которая производит компоновку принимает на вход один или несколько объектных модулей и собирает по ним исполнимый модуль. Для связывания модулей, компоновщик… … Википедия

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *