Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SysSoft Lecture 04.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.7 Mб
Скачать

Принцип сумісності

Одним з аспектів сумісності є здатність ОС виконувати програми, написані для інших ОС або для більш ранніх версій даної операційної системи, а також для іншої апаратної платформи.

Необхідно розділяти питання двійкової сумісності і сумісності на рівні початкових текстів додатків. Двійкова сумісність досягається у тому випадку, коли можна узяти виконувану програму і запустити її на виконання на іншій ОС. Для цього необхідні: сумісність на рівні команд процесора, сумісність на рівні системних викликів і навіть на рівні бібліотечних викликів, якщо вони є динамічно зв’язуваними.

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

Одним із засобів забезпечення сумісності програмних і призначених для користувача інтерфейсів є відповідність стандартам POSIX. Використовування стандарту POSIX дозволяє створювати програми в стилі UNIX, які згодом можуть легко переноситися з однієї системи в іншу.

Принцип відкритої і нарощуваної ос

Відкрита ОС доступна для аналізу як користувачам, так і системним фахівцям, що обслуговують обчислювальну систему. Нарощувана (що модифікується, розвивається) ОС дозволяє не тільки використовувати можливості генерації, але і вводити в її склад нові модулі, удосконалювати існуючі і т.д. Іншими словами, необхідно, щоб можна було легко внести доповнення і зміни, якщо це буде потрібно, і не порушити цілісність системи. Прекрасні можливості для розширення надає підхід до структуризації ОС за типом клієнт–сервер з використанням мікроядерної архітектури. Відповідно до цього підходу ОС будується як сукупність привілейованої управляючої програми і набору непривілейованих послуг – «серверів». Основна частина ОС залишається незмінною і в той же час можуть бути додані нові сервери або поліпшені старі.

Цей принцип іноді трактують як розширюваність системи. До відкритих ОС, перш за все, слід віднести UNIX-системи і, природно, ОС Linux.

Принцип мобільності (переносимості)

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

Написання переносимої ОС аналогічно написанню будь-якого переносимого коду – потрібно слідувати деяким правилам. По-перше, велика частина ОС повинна бути написаний на мові, яка є на всіх системах, на які планується надалі її переносити. Це, перш за все, означає, що ОС повинна бути написаний мовою високого рівня, переважно стандартизованою, наприклад, на мові С. Програма, написана на асемблері, не є в загальному випадку переносимою. По-друге, важливо мінімізувати або, якщо можливо, виключити ті частини коду, які безпосередньо взаємодіють з апаратними засобами. Залежність від апаратури може мати багато форм. Деякі очевидні форми залежності включають пряме маніпулювання регістрами і іншими апаратними засобами. Нарешті, якщо апаратно-залежний код не може бути повністю виключений, то він повинен бути ізольований в декількох модулях, що добре локалізуються. Апаратно-залежний код не повинен бути розподілений по всій системі. Наприклад, можна заховати апаратно-залежну структуру в дані абстрактного типу, що програмно задаються. Інші модулі системи працюватимуть з цими даними, а не з апаратурою, використовуючи набір деяких функцій. Коли ОС переноситься, то змінюються тільки ці дані і функції, які ними маніпулюють.

Введення стандартів POSIX переслідувало мету забезпечити переносимість створюваного програмного забезпечення.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]