Logo GenDocs.ru

Поиск по сайту:  

Загрузка...

Лекции по СПО - файл 1.doc


Лекции по СПО
скачать (151 kb.)

Доступные файлы (1):

1.doc151kb.04.12.2011 09:11скачать

содержание

1.doc


Системное программное обеспечение

Кирьянов Василий Викторович

Литература:

  1. Г. Дейтал. Введение в операционные системы (2 тома)

  2. Х.М. Дейтал. Введение в операционные системы (2 тома), 2006


Системное ПО делиться на 4 категории:

  1. Базовые системы в/в хранящиеся в ПЗУ (ROM-BIOS)

  2. Операционные системы (ОС)

  3. Системы программирования

  4. Сетевое ПО

Базовые системы в/в хранящиеся в ПЗУ (BIOS)

Функции:

  1. Загрузка вычислительной системы

  2. Диагностика и сообщение об ошибках

  3. Поддержка нестандартного аппаратного обеспечения

  4. BIOS Setup

Основные поставщики: AMI, AWARD, PHOENIX и Linux BIOS

Прерывания – это особая ситуация в работе вычислительной системы когда процессор вынужден прервать работу над текущей программой и начать обрабатывать процедуру прерывания.

Виды:

  1. Программные прерывания

  2. Аппаратные прерывания:

а) маскируемые

б) немаскируемые

Программное прерывание возникает при исполнении процессором специальной команды, т.о. вызов программного прерывания полностью находиться под контролем исполняемой программы.

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

Работа BIOS по включению ПК: мы включаем ПК блок питания сначала заряжается достаточным уровнем энергии, а затем блок питания подпет сигнал на материнскую плату (Power Good). Получив сигнал Power Good набор микросхем материнской платы (Chipset) подает на процессор сигнал немаскируемого прерывания, в результате чего ЦП переходит по заранее обусловленному адресу 0xFFFF0. По этому адресу в ПЗУ записывается команда безусловного перехода на адрес процедуры POST (является частью BIOS).

Работа процедуры POST:

  1. Проверяется наличие ОЗУ в первых 64 Кбайтов адресов, если память найдена то POST процедура продолжает работу, а если памяти не оказалась, то подается звуковой сигнал.

  2. Проверяется наличие контроллера дисплея (видеокарта), если она установлена, то весь дальнейший вывод информации система ведет на монитор. Если видеокарта не обнаружена, то BIOS в зависимости от настроек хранящихся в CMOS (при хранении данных она не потребляет энергии, а только при перезаписи) BIOS либо подает звуковой сигнал и останавливает работу, либо продолжает работу без видеоконтроллера (пример: сервер – задают в настройках CMOS памяти о отсутствии видеокарты).

  3. Поиск и инициализация установленной памяти (всей памяти).

Основные диапазоны адресов, по которым в архитектуре IBM PC ОЗУ не будет доступна:

а) последние 64 Кб от 1 МБ

б) последние 512 Мб из 4 Гб адресов

4. Поиск и инициализация устройств расширения подключенных к вычислительной системе.

Кроме перечисленных этапов процедуры POST (перед загрузкой, когда устройства проинициализированы) – процедура POST определяет модулей расширения BIOS

Если в вычислительную систему устанавливается нестандартное устройство (неподдерживаемое стандартом BIOS), которому однако поддержка со стороны BIOS в момент загрузки требуется, то это устройство снабжается модулем расширения BIOS.

модулем расширения BIOS – ПЗУ, в котором прописаны все команды BIOS.

5. Процедура POST определяет устройства доступные для загрузки.

Варианты загрузки:

  1. Загрузка с FDD

  2. Загрузка с HDD

  3. Загрузка с лазерного диска

  4. Загрузка с USB flash устройства

  5. Загрузка по LAN

Среди настроек, хранящихся в CMOS памяти, есть указания на то с каких устройств и в каком порядке можно пытаться загрузить операционную систему.

Загрузка ОС с FDD и HDD: BIOS читает в ОЗУ первый сектор диска, если в последних двух байтах сектора есть специальная метка, то устройство считается имеющим ОС (установленную) и доступным для загрузки. В этом случае управление передается на программу, размещенную в считанном секторе. На этом работа POST процедуры окончена.

^ Загрузка с лазерного диска: POST процедура определяет формат установленного лазерного диска и в зависимости от формата пытается загрузить ОС с тех или иных секторов лазерного диска.

Загрузка с flash памяти: происходит также как загрузка с FDD или HDD. За исключением того, что в момент загрузки BIOS виртуально назначает flash накопитель дополнительным жестким диском.

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

Дополнительной частью BIOS не относящейся к POST процедуре BIOS Setup (процедура настройки). У разных производителей эта процедура графически представлена по разному, но в основном дает доступ к одним и тем же настройкам влияющих на работу POST процедуры. BIOS Setup изменяет настройки в CMOS памяти.
Загрузка операционной системы
Загрузка DOS с жесткого диска: в IBM PC первый сектор HDD обычно содержит таблицу разделов, программу загрузчик, метку системы ( и на все про все у него 512 байтов). Распределение 512 байт:

0




445




510

511










4 x16 байт







  1. байты 511, 510 содержат 16-тиричные значения: 0x55, 0xAA, если это так, то можно грузиться.

  2. 4 x16 байт - записи о разделах жесткого диска (этот блок называется таблицей разделов Partition Table).

  3. 445 байт –последний байт загрузчика.

  4. 0 – 445 байт – содержат программу загрузчик, который передает управление POST процедура (предварительно загрузив в память). Весь сектор называется главная загрузочная запись (MBR).

Процедура загрузчика делает следующие: определяет какой из разделов в Partition Table содержит метку активного раздела. Потом считывает первый сектор этого раздела в ОЗУ и проверяет его на наличие системной метки в первых двух байтах. Первый сектор раздела называется boot sector. Если раздел предназначен для загрузки с него ОС, то

  1. в Partition Table он должен быть помечен как активный (этот раздел)

  2. boot сектор этого раздела должен содержать в себе системную метку (55, АА)

Независимо от того какая ОС используется в ЭВМ и загружается с HDD загрузчик в MBR не меняется, он не зависит от ОС. А загрузчик в Boor sector-е раздела является частью ОС, установленной в разделе и т.о. полностью зависит от него.

Загрузчик, расположенный в boot секторе:

1.убеждается что в первых кластерах данных (кластер-группа секторов раздела, является минимальной единицей распределения дискового пространства в 1 сектора 512 байт) расположен файл с именем io.sys (двоичный файл содержащий программный код). Загружает его в ОЗУ и передает ему управление. Io.sys содержит основную массу процедур, которые в ОС отвечают за ввод и вывод информации.

2. Следующим загружается файл config.sys является текстовым файлом. Содержит в себе настройки ОС и ссылки на дополнительные драйвера, которые должна загрузить ОС.

3. Следом загружается файл msdos.sys в нем содержаться дополнительные функции ms-dos.

4. Файл autoexec.bat – текстовый файл, содержит команды вызова дополнительных программ (н: драйвер клавиатура, Norton commander)

5. Последний загружаемый файл command.com

После загрузки файла command.com операционной системой msdos выдаст приглашение ко вводу команд пользователя и будет ждать команд с клавиатуры.

Получив команду от пользователя с клавиатуры или из командного файла command.com проверяет является ли эта команда внутренней. Если является то command.com выполняет соответствующую команду самостоятельно. А если не является, то пытается найти на диске исполняемый файл с таким именем. Если файл найден, то он запускается на исполнение. Если файл с таким именем не найден, то выдается сообщение файл не найден. Непосредственно исполняемыми для msdos являются файлы со с следующими расширениями .com, .exe, .bat.

Файлы .com являются непосредственно загружаемым и исполнимым образом программы.

Файлы .exe содержат исполняемую программу и дополнительно информацию о способе ее загрузке, кол-ве необходимой памяти и необходимых настройках образа программы перед запуском.

Файлы .bat содержат последовательности команд, которые файл command.com исполняет также как если бы они вводились с клавиатуры.

При загрузке программы файл command.com не остается полностью в памяти. Он освобождает память от большей части своего кода, оставляя в памяти только небольшой кусок кода, который после исполнения вызываемой программы снова загрузит в память файл command.com.все?
Оболочки над DOS

  1. различные NC и его аналоги (volkov commander, pc tools)

+: удобства работы с dos

-: уменьшение объема ОЗУ доступной для запускаемых программ

2. оболочки класса DesqView и его аналоги

+: обладали графическим интерфейсом и легким в обслуживании

-: требовали еще больше памяти и делали работу системы медленной

3. W95,98,ME- класс оболочек над DOS

Новая ОС OS/2 совмещала dos и позволяла многозадачную работу

Развитие Windows
OS/2_1.0


Windows 3.1

Windows 95

OS/2

Windows NT

^ DEC ALPHA

Windows 2k

Windows XP

Windows 98

Windows ME

Windows 98 SE





eComstation


Альтернативные операционные системы

Коммерческие ос: MacOS, Класса Unics – BSD/OS, SunOS, Solaris

Бесплатные ос: семейство ос Linux, BSD (широко используемаяFree BSD).
Системы программирования.

Назначение: создание нового программного обеспечения.

Способ, который создает ПО – это преобразование исходного текста программ в исполняемый код. Преобразование осуществляется 2-мя программами:

  1. компилятор

  2. редактор связей (линкер)

Компилятор преобразует исходный текст программы, в объектный код, обнаруживая ошибки.

Линкер преобразует объектный код в исполняемый файл.

Объектный код – это порожденный компилятором исполняемый код программы не включающий в себя исполняемый код функций

Редактор связей присоединяет к объектному коду программы объектный код функций, вызываемых из неё и записывает результат в виде файла в формате пригодным для загрузке ОС.

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

Иногда при реализации крупного программного проекта бывает недостаточно использования одного ЯП. В таких случаях оказывается выгоднее реализовать разные части проекта на разных ЯП.

Для большей совместимости объектного кода порожденного компиляторами с разных ЯП рекомендуется использовать компиляторы одной и той же фирмы.
Семейство компиляторов для разных систем программирования.

Для Windows

1. Microsoft Visual Basic

2. MS Visual C и C++ (+: большое множество функций)

3. GNU C –компилятор языка С, разработанный проектом GNU (+: переносимость программ)

4. IBM компилятор

5. Watcom компиляторы для языка С

6. Компиляторы языка С фирмы Intel

7. Системы программирования на языке Java

8. Язык Perl – универсальный ЯП, применяется для быстрого написания программ, с наиболее сложными функциями.

9. Язык Tcl – универсальный язык, предназначенный для создания сценариев (работы аппаратных и программных платформ).
Программирование под Web

Программирование бывает двух типов:

  1. программирование сценариев выполняющих на стороне сервера

  2. на стороне клиента

  1. PHP – язык универсальный с основным упором на работу БД, исполняется на стороне сервера, имеется множество специализированных библиотек. Порождаемым в результате исполнения сценариев, он отправляется к клиенту в виде web-страницы.

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

  3. Использование серверных сценариев формата CGI – исполняется на стороне сервера, могут быть написаны на любом языке поддерживаемом сервером. Используется редко.

  4. Среда Clarion – создан т.о., что программы работы с БД написанные в ней могут быть скомпилированы либо как обыкновенное приложение, запускаемое на клиентском ПК, либо как CGI программа, выполняемая на сервере и с клиентом взаимодействующая через браузер.


Технологии фирмы QRACLE.

Основным продуктом линейки является сервер БД рассчитанный на очень большие объемы обрабатываемых данных, дополнительно к нему выпускается множество инструментальных средств и система программирования.

Assembler.

Система программирования, дающая возможность создания программ максимально близких к непосредственным командам процессора, за счет чего обеспечивается максимальная эффективность итоговых программ. Сейчас assembler в основном используется для создания так называемых assembler-ных вставок, которые заменяют собой незначительную часть программы, которая была наиболее медленной. Примеры ПО которые полностью создаются на ЯП assembler: первоначальный загрузчик ОС – это та ее часть, которая читает ядро ОС с носителя информации, размещает его в памяти и передает ядру управление. Поскольку assembler вынуждает программировать в командах ЦП все программа написанные на языке assembler-а получаются машинно-зависимыми, а следовательно непереносимыми на ЭВМ других типов.

Архитектура LLVM.

Низко уровневая виртуальная машина.

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

Инструментарий системного программиста

  1. Операционная система – большая, большая, большая программа!!!

  2. Компиляторы и ассемблеры, и все средства порождающие исполняемый код

  3. Редакторы связей – linker

  4. Библиотеки стандартных функций

  5. Отладчики – бывают двух типов:

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

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

Режимы работы отладчиков:

  1. пошаговый режим (трассировка) – после выполнения каждой команды отлаживаемой программы ее исполнение прерывается, и управление передается отладчику. Отладчик отображает состояние регистров ЦП и переходит к ожиданию команд от пользователя. Режим позволяет глубоко взаимодействовать с программой, но является очень медленным.

  2. режим контрольных точек – пользователь просматривает код программы на некоторое количество команд вперед и одну из команд назначает контрольной точкой. После этого отладчику дается команда на запуск программы, дойдя по коду программы до контрольной точки процессор, прерывает исполнение программы и передает управление отладчику. По ходу выполнения программы, если контрольная точка не достигнута, то выполнение программы для передачи управления отладчику не происходит.

  1. Дизассемблер - программа, преобразующая исполняемый код в ассемблерный код, который после ассемблирования и связывания даст исходный исполняемый.

  2. Системные утилиты – это программы, которые выполняясь либо отображают состояния ОС, либо влияют на него.

Командные языки ОС.

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

Структура программ.

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

Стандартные файлы ввода/вывода.

При запуске программы каждой программе ОС сопоставляет 3 стандартных файла ввода/вывода:

№ 0 – стандартный файл ввода; по умолчанию ОС запускает программу, сопоставляя стандартный файл ввода к клавиатуре пользовательского терминала. В ОС Unix программы не имеют прямого доступа к устройствам. Все устройства доступны программам не напрямую, а через файловые объекты, соответствующие устройствам.

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

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

В реальной работе стандартные файлы ввода/вывода не всегда соответствуют устройствам по умолчанию. В момент запуска программы стандартные файлы могут быть переназначены. Это придает гибкость работе программы.

По умолчанию стандартные файлы ввода программ соответствуют вводу с клавиатуры, а стандартные файлы вывода и стандартные файлы ввода сообщений об ошибках соответствуют выводу информации на экран, но так не всегда назначаются файлы ввода-вывода. Тот кто запускает новый процесс может указать ОС использовать в качестве любого из этих трех файлов, любой другой файл ОС. Такие действия называются переназначением ввода-вывода.
Prog1_i_prog2 – вызывает выполнение программы prog1 с перехватом содержимого и ее стандартного файла вывода и отправка этого содержимого в стандартный файл ввода программы prog2, i – служебный файл переназначения ввода-вывода.


prog_<_textfile.txt – вызывет выполнение пограммы с именем prog, но в качестве стандартного файла ввода для нее будет использоваться не клавиатура, а файл с именем textfile.txt.

prog_>_textfile.txt – запустить prog перехватив ее стандартный файл вывода и всю информацию, выводумую программной в стандартный файл вывода перенаправитв в файл с именем textfile.txt, перезаписав его с нуля.

prog_»_textfile.txt – запустить программу prog. Все что она выводит в свой стандартный файл вывода перехватить и направить в файл с именем textfile.txt дописав новую информацию к прежнему содержимому.

Команда переназначения стандартных файлов ввода и вывода можно компилировать в одной командной строке.

Пример: sort<_unsorted.txt_»_sorted.txt – вызов команды сортировки, вход - unsorted.txt, выход – дописав файл с именем sorted.txt

Is_’pwd’ – (‘ – стандартная одиночная кавычка)вызвать команду Is в качестве параметра командной строки подставим результат работы команды pwd.

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

Программы, рассчитаны на обработку содержимого стандартных файлов ввода и вывода.

Tr – трансляция из одного набора символов в другой. Наборы символов задаются в командной строке, там же указывается операция, которую нужно провести над потоком символов из стандартного файла ввода. Результат операции помещается программной в стандартный файл ввода.

Возможные операции – трансляция набора символов, удаление набора символов, замена нескольких вхождений одного и того же символа подряд на одно.

Программа tr рассматривает содержимое стандартного файла вврда не как набор строк, а как поток символов.

Sed - строковый редактор. Рассматривает файл как последовательность строк обабатывая их в соответствии с командами из своей командной строки.

Awk - рассматривает входной файл как последовательность строк. Обладает собственным языком программирования с развитым набором команд для построчной пословной и посимвольной обработки текста.

В Unix - «Все, что угодно – это файл»
Дополнительные команды для поиска и вывода справки.

Man_<имя команды> - эта команда выдает подсказку по использованию программы

Apropos_<слово> - программа просматривает заголовки системных файлов помощи для всех команд и ищет совпадения со словом, переданным в ее параметрах.

Test - умеет сравнивать строки, числа, чаще всего записывается в виде – test [условие]. Команда test обычно в форме [] применяется в командных файлах ОС Unix для обработки условий внутри команды ветвления.

Во всех ОС программа перед завершением своей работы и передачи управления ОС Unix (DOS, Windows) может установить значения, так называемого кода возврата – это целое число, размерностью 8 или 16 бит значение, которого передает основную информацию о причине завершения работы программы. Ненулевой код возврата программы может свидетельствовать об ошибках, возникших во время ее работы. ОС после возврата ей управления от завершившейся программы доступно значение кода возврата.
Команды ОС для компиляции.

Lex и yacc – предназначены для предварительного преобразования или начального формирования отдельных участков программ. Эти команды работают в соответствии с формальными грамматиками собственных языков программирования, порождая какой-либо текст. Если программный проект состоит из большого количества исходных файлов, то для их компиляции и взаимной компоновки необязательно отдавать все команды компиляции вручную или заключать их в специальный командный файл.

Команда Make позволяет автоматизировать обработку множества файлов (необязательно компиляцию) если создать специальный файл описания проекта так называемый makefile.

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

В ОС класса Unix существует гораздо больше одного интерпретатора команд, для того чтобы командный файл исполнялся под управлением именно того интерпретатора команд для которого текст программы и был создан служит первая строка командного файла, после символов #! указывается необходимый интерпретатор команд (пример #!/bin/sh).
Интерпретирующие языки.

Perl – предназначен для создания текстовых отчетов и является универсальным языком программирования. Существует большой набор библиотечных модулей для языка perl, доступных для бесплатного пользования. Недостаток – несколько меньшая скорость выполнения.

Tcl – обладает строгим и простым синтаксисом. Достоинства: более высокая скорость исполнения; небольшой размер интерпретатора Tcl, что позволяет делать язык доступным на специализированной (маршрутизаторы, телефонные станция – мини АТС, электронные измерительные приборы - весы). Используется и в ПК и во встраиваемой техники, в специализированных вычислительных системах.

Python – занимает промежуточное положение между perl и tcl.
Кодировки национальных символов.

ASCII-7 – американский стандартный код для информационного обмена. Включает в себя символы английского алфавита, цифры, знаки препинания, служенные символы (0…127). Не включает в себя символы национальных алфавитов.

ASCII–8 (0…255). Первые 128 символов сохранилась от ASCII – 7, были символы национальных алфавитов, базирующихся на латинице и символы псевдографики.

KOI–7 (0…127). Недостатки – отсутствие строчных букв. Символы русского языка расположены не по порядку. Достоинства – частичная совместимость с ASCII – 7.

KOI –8 (0…255). № 878. Во второй половине таблицы содержал вместо национальных символов латиницы полный набор символы Кириллицы, а в первой совпадал с ASCII – 7. Недостатки – отсутствие совместимости с KOI -7, символы Кириллицы расположены не в алфавитном порядке, расположение символов псевдографики не совпадающее с ASCII – 8.

GOST (0…255). № 915. Достоинства – русские символы были упорядочены по алфавиту. Недостатки – расположение символов псевдографики не совпадало с ASCII – 8, буква «Ё» стояла отдельно от алфавита.

DOS-ALT (0…255). №866. Достоинства – расположение символов псевдографики совпадает в ASCII-8. Недостатки – буквы кириллицы по возрастанию, но не по порядку.

Win-KYR (0…255). №1251. Которая не совпадала ни с одной из созданных.
Последовательность компиляции

1.Текст программы преобразуется процессором.

На этом этапе обрабатываются все директивы условной компиляции. Вычисляются и постанавливаются константы, при наличии в проекте заголовочных файлов вносится информация из них. На выходе этого этапа текст программы в котором отсутствуют директивы условной компиляции. Вместо константы внесены их значения, вся информация необходимая для компиляции собрана воедино.

^ 2.Обработка программы компилятором.

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

^ 3.Объектный код программы обрабатывается редактором связей (программой-линкером).

При этом объектному коду программы присоединяется объектный код библиотек и результат записывается в формате исполняемого файла системы.
Библиотеки

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

Типы библиотек:

  1. системные

  2. библиотеки компилятора

  3. пользовательские библиотеки

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

Если некоторая библиотека не найдена. основные действия:

  1. проверить все ли необходимые пути к файлам библиотек ыли указаны при запуске редактора связей. Если нет → добавить пути к файлам нужных библиотек.

  2. если библиотека с этой функцией не установлена в этой системе, то можно доустановить требуемые библиотеки.

  3. отказаться от использования данной функции.

  4. самому написать требуемую функцию.


Кросс системы.

Обычно программное обеспечение компилируется на той же самой вычислительной системе для которой оно создается. ^ Кросс компиляции -построение исполняемого кода для одной вычислительной системы при помощи средств компиляции исполняемой на другой вычислительной или операционной системе.

^ Исполняется в случаях:

  1. компиляция на целевой системе технически не возможна.

  2. компиляция на целевой системе технически возможна, но экономически не оправдана.


Необходимые условия для кросс компиляции:

  1. компилятор умеющий порождать код для целевой системы

  2. редактор связей, способный обрабатывать код в формате целевой системы.

  3. набор кросс библиотек (библиотек для целевой системы).


Библиотекари объектного кода

- это программа, предназначенная для создания и управления библиотеками объектного кода.
Позднее и раннее связывание.

Исполняемый файл программы не обязан иметь в своем составе скомпилированный код библиотек. Чтобы программа могла исполняться достаточно:

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

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

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

‘+’ позднего связывания:

  1. программа занимает меньше места и на диске и в памяти при исполнении.

‘+’ раннего связывания:

  1. для возможности запуска программы нет необходимости держать в системе все необходимые ей библиотеки.


CRUNCH

Файловая система позволяет одному и тому же набору данных на диске присвоит более одного имени.

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

Утилита – системная программа которая служит для создания таких файлов называется CRUNCH.
Типы объектов файловой системы.

  1. обычные файлы

  2. каталоги

  3. байт – ориентированные файлы устройств

  4. блок – ориентированные файлы устройств

  5. доменные гнезда UNIX

  6. именованные каналы

  7. жесткие ссылки

  8. мягкие ссылки

Обычные файлы – содержат упорядоченный набор байт, могут содержать информацию любого типа, могут быть прореженными.

Прореженный - файл, у которого под незаписанные данные место на диске не отводилось даже даже если бы в файле после этих данных есть какие либо записанные данные.

Каталоги – содержат имена и др. атрибуты объектов файловой системы. Могут содержать объекты любых типов и в любых сочетаниях.

Особые имена каталогов:

  • означает текущий каталог

  • предыдущий каталог (родительский по отношению к текущему).


Для каждого процесса в системе существуют понятия текущего каталога – это такой каталог в котором ос будет работать с файлами в имени которых нет полного пути к файлу.
Блок --- \ ---

Байт – ориентированные файлы устройств.
Доменные гнезда UNIX – программы могут обмениваться данными. Позволяет одновременно прицепиться к программе кА отдающей так и записывающей.
Именованные каналы – позволяют двум программам обмениваться информацией одновременно считывая ее и записывая, при этом что записывает одна программа, вторая программа может прочитать непосредственно сразу же.
Жесткие ссылки – это дополнительное имя для объекта файловой системы, каждый объект файловой системы существует до тех пор пока на него есть хотя бы одна жесткая ссылка, после удаления последней жесткой ссылки на файловый объект, место, занимаемое им на диске освобождается
Мягкие ссылки – (символические) применяются как и жесткие , имеют следующие отличия:

  1. могут ссылаться на объект в другой файловой системе.

  2. занимают место на диске

  3. наличие мягкой ссылки не защищает объект файловой системы от удаления.


Сетевые объекты системного ПО.

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

ARP SSH FTP DNS

Основным сетевым протоколом является протокол tcp\ip версии 4, постепенно в версию 6.



tcp\ip-это стандарт на семейство протоколов, основными из которых является TCP UDR и ICMP.

Они все являются подпротоколами IP.

ARP – протокол вспомогательный для IP с его помощью выявляются соответствие между физическими адресами сетевых устройств и логическими IP адресами.

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

UDR – протокол отправки данных без установления соединения не гарантирует ни достоверную отправку данных ни порядок получения отправленных данных ни сообщение об ошибки.

ICMP – протокол обмена служебными сообщениями. Для выявления и устранения проблем в работе сети.

Уровни модели TCP\IP.

  1. канальный уровень

  2. сетевой уровень – непосредственно но программами не исполняется, служит основой для выше лежащих протоколов.

  3. транспортный – для для передачи данных между программами.

  4. прикладной – поддерживает те или иные сервисы, предоставляемые по сети.



Скачать файл (151 kb.)

Поиск по сайту:  

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации