Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекція 15_16.doc
Скачиваний:
7
Добавлен:
03.09.2019
Размер:
255 Кб
Скачать
☆

Розширюваність

У той час, як апаратна частина комп'ютера старіє за кілька років, корисне життя операційних систем може вимірюватися десятиліттями. Прикладом може служити ОС UNIX. Операційні системи змінюються еволюційно і ці зміни більш значимі, ніж зміни апаратних засобів. Зміни ОС характеризуються набуттям нею нових властивостей. Наприклад, підтримка нових пристроїв, таких як CD-ROM, можливість зв'язку з мережами нового типу, використання більше одного процесора, підтримка багатообіцяючих технологій. Збереження цілісності коду, які б зміни не вносилися в операційну систему, є головною метою розробки.

Переносимість

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

Більшість переносимих ОС написана мовою С (стандарт ANSI X3.1516-1989). Розроблювачі вибирають С тому, що він стандартизований, і тому, що С-компілятори широко доступні. Ассемблер використовується тільки для тих частин системи, що повинні безпосередньо взаємодіяти з апаратурою (наприклад, оброблювач переривань) чи для частин, що вимагають максимальної швидкості (наприклад, цілочислена арифметика підвищеної точності).

Сумісність

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

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

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

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

Відповідність стандартам POSIX також є засобом забезпечення сумісності програмних і користувальницьких інтерфейсів. В другій половині 80-х урядові агентства США почали розробляти POSIX як стандарти на устаткування, що поставляється, при укладанні урядових контрактів у комп'ютерній області. POSIX - це "інтерфейс переносимої ОС, що базується на UNIX". POSIX - збір міжнародних стандартів інтерфейсів ОС у стилі UNIX. Використання стандарту POSIX (IEEE стандарт 1703.1 - 1988) дозволяє створювати програми у стилі UNIX, що можуть легко переноситися з однієї системи в іншу.