Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Завантажувані модулі COM та EXE – файли




Драйвери верхньої та розширеної пам’яті

Драйвер HIMEM.SYS – призначений для керування розширеною і високою пам’яттю за специфікацією XMS3.0.

Завантажується у систему командою DEVICE=C:\DOS\HIMEM.SYS. Це менеджер розширеної пам’яті (ХММ) – що забезпечує безконфліктне сумісне використання розширеної пам’яті декількома програмами і драйверами так, щоб вони не могли одночасно використати один і той самий блок.

Драйвер ЕММ386.ЕХЕ – призначений для емуляції відображеної за специфікацією EMS4.0) та керування верхньою пам’яттю.

Може виділити одну частину XMS-пам’яті для доступу по EMS, а другу частину – під верхню пам’ять. Сам може виконувати сканування UMA для пошуку “вікон”.

Виконує дві функції. Це одночасно як ЕММ, так і адміністратор верхньої пам’яті. Це так, тому що технічна реалізація підтримки відображеної пам’яті аналогічна підтримці верхньої пам’яті.

Додатково виконує ще три функції:

1) Підтримує співпроцесор з плаваючою комою Weitek.

2) Реалізується стандарт VCPI – (Virtual Control Program Interface) – віртуальний керуючий програмний інтерфейс (розширення специфікації EMS для виключення програмних конфліктів).

3) Забезпечує формування тіньової пам’яті.

Програми, що призначені для виконання в середовищі операційної системи DOS називаються завантажуваними модулями та містяться у файлах, що мають розширення COM або EXE.

Файли COM – програми, що завантажуються безпосередньо. Для них не потрібно фактично ніякої підготовки для запуску їх після завантаження в ОЗП засобами DOS. Проводиться лише формування спеціальної сегмент-приставки, необхідної для всіх програм, що завантажуються ОС, і встановлення регістрів сегментів МП (їм присвоюються стандартні значення), після чого керування передається програмі, що завантажена в ОЗП. Файли типу СОМ завантажуються в ОЗП відразу ж після системної області (в нижню частину доступної пам’яті).

При завантаженні файлів ЕХЕ в ОС, необхідно провести спеціальну підготовку. Основа підготовки – переміщення, яке здійснюється завантажувачем командного процесора і заключається в налагодженні адрес в програмі в залежності від місця її завантаження в ОЗП. Інформація, необхідна для переміщення, зберігається в файлі типу ЕХЕ починаються дво-байтовою міткою (її значення 4D5AH).

Формат програм в файлах типу СОМ компактніший та простіший.

СОМ-файл – вміщує тільки машинні команди та дані, без заголовку, таблиці переадресації або відлагоджувальної інформації. Максимальний розмір файлу – 64 Кбайти.

Завантажувач працює з СОМ-файлом таким чином:

- відводить максимально можливий блок вільної пам’яті, будує префікс програмного сегменту (Program Segment Prefix - PSP) на початку блоку;

- читає СОМ-файл в пам’ять відразу за PSP і передає керування на перший байт програми.

Формат СОМ-файла скопіювали з формату виконуваних модулів ОС СР/М Digital Research для 8080, 880. тому вони незахищені. Можна присвоїти довільному файлу розширення СОМ і з командного рядка завантажити його в DOS.

ЕХЕ-файл – складається з трьох основних компонентів:

- заголовок файлу,

- таблиця переадресацій,

- власне код та дані програми.

Заголовок – містить кілька інформаційних блоків:

- двобайтну сигнатуру MZ (Марк Збиковськи);

- розміри заголовку, таблиці переадресації і файлу в цілому;

- початкові значення CS:IP і SS:SP в момент запуску програми;

- контрольна сума;

- деякі вказівки з розподілу пам’яті для завантажувача DOS.

Максимальний розмір ЕХЕ-файлу не обмежений. До його складу можна включити відлагоджувальну інформацію, дописавши цю інформацію в кінець файлу та залишивши без змін його розмір, вказаний в заголовку. Завантажувач DOS цю інформацію проігнорує.

Головний недолік ЕХЕ-файлів – вони не зберігають інформацію про окремі сегменти програми; коли компоновщик (linker) формує ЕХЕ-файл, він збирає всі заявлені у вихідному тексті сегменти в один величезний об’єм із спільною таблицею переадресації.

Системний завантажувач не в змозі визначити, яка частина програми є кодом, що виконується, яка – статичні дані (рядкові та числові константи), а яка – змінні дані. Тому завантажувач не має можливості відвести для зберігання кожного з цих компонентів окремі блоки пам’яті та незалежно маніпулювати сегментами.

Створюючи Windows, розробники Microsoft зрозуміли, що 640 Кбайтів реального режиму DOS сильно обмежує. Вихід у ретельній сегментації програм. Треба мати можливість залишати у пам’яті тільки ту частину, конкретної програми, яка забезпечує її подальше виконання та заміщувати, або виводити на диск фрагменти, які не використовуються у біжучий момент.

 

 

Було прийнято рішення ввести нову структуру файлів, що виконуються – нові ЕХЕ-файли. Був створений новий завантажувач для таких файлів під систему Windows. Під час роботи Windows він перехоплює звертання прикладних програм до функції DOS EXEC (функція 4Bh переривання 21h) і правильно завантажує як “нові”, так і “старі” ЕХЕ-файли.

Структуру файлу можна розглядати на декількох рівнях абстракції. На найвищому рівні дві частини:

- старий ЕХЕ-файл;

- новий ЕХЕ-файл.

“Стара” частина вміщує повний заголовок старого ЕХЕ-файла, таблицю переадресації і власне програму. Якщо новий ЕХЕ-файл чомусь буде запущений із командного рядка DOS, завантажувач DOS розпізнає заголовок старого ЕХЕ-файла та запустить програму – для WINDOWS – програми це просто повідомлення “This program requires Microsoft Windows” і повертається керування DOS.

Якщо новий ЕХЕ-файл запускається через модуль керування Program Manager або File Manager оболонки Windows, “стара” частина ЕХЕ-файла ігнорується.

“Нова” частина нового ЕХЕ-файла вміщує елементи, які розпадаються на три класи.

1. Заголовок та різні таблиці, які визначають розмір, розташування та характеристики всіх інших частин файла. Вони використовуються системним завантажувачем та “невидимі” для самої програми під час її виконання.

2. Сегменти коду та даних програми, кожна із своєю таблицею переадресації.

3. Ресурс – це статична порція даних. Наприклад: таблиці для побудови графічних елементів керування, символьні рядки для підказок та системи допомоги, курсори, іконки.

Кожний ресурс у файлі розпізнається за іменем та типом. Він завантажується у пам’ять системою за вимогою прикладної програми.

Версії OS/2 та різні розширювачі DOS також користуються форматом нового ЕХЕ-файлу.

 

 




Поделиться с друзьями:


Дата добавления: 2014-01-11; Просмотров: 844; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.