Главная » Просмотр файлов » А. Робачевский - Операционная система UNIX

А. Робачевский - Операционная система UNIX (1114671), страница 22

Файл №1114671 А. Робачевский - Операционная система UNIX (А. Робачевский - Операционная система UNIX) 22 страницаА. Робачевский - Операционная система UNIX (1114671) страница 222019-05-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 22)

В статическом, наиболее традиционном режиме связываются всеобъектные модули и статические библиотеки (их имена имеют суффикспроизводится разрешение всех внешних ссылок модулей и создаетсяединый исполняемый файл, содержащий весь необходимый для выполне!ния код. Во втором случае, редактор связей по возможности подключаетразделяемые библиотеки (имена этих библиотек имеют суффиксВрезультате создается исполняемый файл, к которому в процессе запуска навыполнение будут подключены все разделяемые объекты. В обоих случаяхпо умолчанию создается исполняемый файл с именемДля достаточно простых задач все фазы автоматически выполняются вызо!вом команды:$ make progили эквивалентной ей$!о progкоторые создают исполняемый файл с именем prog.

В этом случае умалчи!ваемое имя исполняемого файлаизменено на prog с помощью оп!ции !о.Впрочем, указанные стадии можно выполнять и раздельно, с использова!нием командиЗаметим, что на самом деле командаявля!ется программной оболочкой и компилятора и редактора связей, которуюи рекомендуется использовать при создании программ.Проиллюстрируем процесс создания более сложной программы с помо!щью конкретных вызовов команд.$$%с fс f ile2 . с%о prog filel.oСоздадим промежуточные объектныефайлыи file2.oСоздадим исполняемый файл с именемprog, используя промежуточные объ%ектные файлы и библиотекуилиwww.books-shop.comпрограммы/07Форматы исполняемых файловВиртуальная память процесса состоит из нескольких сегментов или облас!тей памяти.

Размер, содержимое и расположение сегментов в памяти оп!ределяется как самой программой, например, использованием библиотек,размером кода и данных, так и форматом исполняемого файла этой про!граммы. В большинстве современных операционных систем UNIX исполь!зуются два стандартных формата исполняемых файлов — COFF (CommonObject File Format) и ELF (Executable and Linking Format).Описание форматов исполняемых файлов может показаться лишним, одна!ко представление о них необходимо для описания базовой функционально!сти ядра операционной системы. В частности, информация, хранящаяся висполняемых файлах форматов COFF и ELF позволяет ответить на ряд во!просов весьма важных для работы приложения и системы в целом:Какие части программы необходимо загрузить в память?Как создается область для неинициализированных данных?ПКакие части процесса должны быть сохранены в дисковой областисвопинга (специальной области дискового пространства, предназна!ченной для временного хранения фрагментов адресного пространст!ва процесса), например, при замещении страниц, а какие могут бытьпри необходимости считаны из файла, и таким образом не требуютсохранения?ПГде в памяти располагаются инструкции и данные программы?ПКакие библиотеки необходимы для выполнения программы?П Как связаны исполняемый файл на диске, образ программы в памя!ти и дисковая область свопинга?На рис.

2.3 приведена базовая структура памяти для процессов, загружен!ных из исполняемых файлов форматов COFF и ELF, соответственно. Хотярасположение сегментов различается для этих двух форматов, основныекомпоненты одни и те же. Оба процесса имеют сегменты кода (text), дан!ных (data), стека (stack). Как видно из рисунка, размер сегментов данных истека может изменяться, а направление этого изменения определяетсяформатом исполняемого файла. Размер стека автоматически изменяетсяоперационной системой, в то время как управление размером сегментаданных производится самим приложением. Эти вопросы мы подробно об!судим в разделе "Выделение памяти" далее в этой главе.Сегмент данных включает инициализированные данные, копируемые впамять из соответствующих разделов исполняемого файла, и неинициали!зированные данные, которые заполняются нулями перед началом выпол!нения процесса.

Неинициализированные данные часто называют сегмен!том BSS.www.books-shop.com108Глава 2.программирования UNIXРис. 2.3. Исполняемые образы программ форматов COFF и ELFФормат ELFФормат ELF имеет файлы нескольких типов, которые до сих пор мы на!зывали по!разному, например, исполняемый файл или объектный файл.Тем не менее стандарт ELF различает следующие типы:1. Перемещаемый файл (relocatableхранящий инструкции и данные,которые могут быть связаны с другими объектными файлами. Резуль!татом такого связывания может быть исполняемый файл или разде!ляемый объектный файл.2.

Разделяемый объектный файл (shared object file) также содержит инст!рукции и данные, но может быть использован двумя способами. Впервом случае, он может быть связан с другими перемещаемыми фай!лами и разделяемыми объектными файлами, в результатебудетсоздан новый объектный файл. Во втором случае, при запуске про!граммы на выполнение операционная система может динамическисвязать его с исполняемым файлом программы, в результате чего будетсоздан исполняемый образ программы. В последнем случае речь идето разделяемых библиотеках.Исполняемый файл хранит полное описание, позволяющее системе соз!дать образ процесса.

Он содержит инструкции, данные, описание не!обходимых разделяемых объектных файлов, а также необходимуюсимвольную и отладочную информацию.www.books-shop.comпрограммыНа рис. 2.4 приведена структура исполняемого файла, с помощью кото!рого операционная система может создать образ программы и запуститьпрограмму на выполнение.Заголовок имеет фиксированное расположение в файле. Остальные ком!поненты размещаются в соответствии с информацией, хранящейся в заго!ловке. Таким образом заголовок содержит общее описание структуры фай!ла, расположение отдельных компонентов и их размеры.2.4. Структура исполняемого файла в формате ELFПоскольку заголовок ELF!файла определяет его структуру, рассмотрим егоболее подробно (табл. 2.4).Таблица 2.3.

Поля заголовка ELF%файлаПолеОписание[]e_typeМассив байт, каждый из которых определяет некоторую общую харак%теристику файла: формат файланомер версии, архитектурусистемы (32%разрядная или 64%разрядная) и т. д.Тип файла, поскольку формат ELF поддерживает несколько типовȾɚɧɧɚɹɜɟɪɫɢɹɤɧɢɝɢɜɵɩɭɳɟɧɚɷɥɟɤɬɪɨɧɧɵɦɢɡɞɚɬɟɥɶɫɬɜɨɦ%RRNVVKRSɊɚɫɩɪɨɫɬɪɚɧɟɧɢɟɩɪɨɞɚɠɚɩɟɪɟɡɚɩɢɫɶɞɚɧɧɨɣɤɧɢɝɢɢɥɢɟɟɱɚɫɬɟɣɁȺɉɊȿɓȿɇɕɈɜɫɟɯɧɚɪɭɲɟɧɢɹɯɩɪɨɫɶɛɚɫɨɨɛɳɚɬɶɩɨɚɞɪɟɫɭpiracy@books-shop.comГлава 2. Среда программирования UNIXТаблица 2.3 (продолжение)Полеe_phoffе shoffеe_phnume_shentsizeеОписаниеАрхитектура аппаратной платформы, для которой создан данныйфайл. В табл.

2.4 приведены возможные значения этого поляНомер версии ELF%формата. Обычно определяется как EV_CURRENC(текущая), что означает последнюю версиюВиртуальный адрес, по которому системой будет передано управле%ние после загрузки программы (точка входа)Расположение (смещение от начала файла) таблицы заголовковпрограммыРасположение таблицы заголовков секцийРазмер заголовкаРазмер каждого заголовка программыЧисло заголовков программыРазмер каждого заголовка сегмента (секции)Число заголовков сегментов (секций)Расположение сегмента, содержащего таблицу строкТаблица 2.4. Значения поля e_machine заголовка ELF%файлаЗначениеАппаратная платформаЕМЕМ 88КSun SPARCIntel 80386Motorola 68000Motorola 88000ЕМ 486Intel 80486ЕМ 860Intel i860MIPS RS3000 Big%EndianMIPS RS3000RS6000PA%RISCnCUBEFujitsu VPP500Sun SPARC 32+ЕМЕМ 386ЕМ 68КЕМ MIPSEM MIPS RS3 LEEM R S 6 0 0 0EM PA RISCEMEM V P P 5 0 0EM SPARC32PLUSИнформация, содержащаяся в таблице заголовков программы, указываетядру, как создать образ процесса из сегментов.

Большинство сегментовwww.books-shop.comпрограммыкопируются (отображаются) в память и представляют собой соответствую!щие сегменты процесса при его выполнении, например, сегменты кодаили данных.Каждый заголовок сегмента программы описывает один сегмент и содер!жит следующую информацию:Тип сегмента и действия операционной системы с данным сегментомРасположение сегмента в файлеСтартовый адрес сегмента в виртуальной памяти процессаРазмер сегмента в файлеП Размер сегмента в памятиФлаги доступа к сегменту (запись, чтение, выполнение)Часть сегментов имеет тип LOAD, предписывающий ядру при запускепрограммы на выполнение создать соответствующие этим сегментамструктуры данных, называемые областями, определяющие непрерывныеучастки виртуальной памяти процесса и связанные с ними атрибуты.

Сег!мент, расположение которого в ELF!файле указано в соответствующемзаголовке программы, будет отображен в созданную область, виртуальныйадрес начала которой также указан в заголовке программы. К сегментамтакого типа относятся, например, сегменты, содержащие инструкции про!граммы (код) и ее данные. Если размер сегмента меньше размера области,неиспользованное пространство может быть заполнено нулями. Такой ме!ханизм, в частности используется при создании неинициализированныхданных процесса (BSS). Подробнее об областях мы поговорим в главе 3.В сегменте типа INTERP хранится программный интерпретатор. Данныйтип сегмента используется для программ, которым необходимо динамиче!ское связывание.

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

Характеристики

Тип файла
PDF-файл
Размер
8,11 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6458
Авторов
на СтудИзбе
304
Средний доход
с одного платного файла
Обучение Подробнее