Операційні системи
Оскільки операційні системи, з точки зору процесора, нічим не відрізняються від всіх інших програм, то все повинно бути сумісним з даним процесором. Для цього компілятори і ассемблеры повинні генерувати відповідний набір інструкцій, щоб він виявився виконуваною на обраному процесорі.
Сумісність з 32-х і 64-розрядних операційних систем з 32-х і 64-бітними процесорами
При появі нового, більш досконалого процесора, не просто поліпшеного, а з таким важливим властивістю як чергове подвоєння розрядності, для програмного забезпечення можливі п’ять ситуацій:
- запуск старих програм на новому процесорі;
- емуляція, запуск у середовищі віртуальної машини;
- перекомпіляція виконуваних файлів під новий процесор;
- зміна програмного коду і повторна компіляція;
- написання програмного коду “з нуля”.
Перший випадок вимагає повної зворотної сумісності для нового процесора. Другий вимагає підвищеної продуктивності і пам’яті від нової машини, так як віртуальна машина сама витрачає достатньо ресурсів. Інші випадки вимагають випуску нових версій програмного забезпечення.
Насправді, всі ці ситуації можуть зустрічатися в різних комбінаціях, і тому при використанні вже звичних і улюблених користувачами версій програм можливо все: починаючи від того, що програма працює набагато краще, ніж раніше, до повної неможливості її запустити. Програми рідко складаються тільки з одного виконуваного файлу, часто до них додається безліч динамічних бібліотек (dll-файлів) і додаткових утиліт. Всі вони можуть мати особливості, які завадять роботі програми або обмежать її функціональність.
Програми мають не тільки виконавчий файл, але і файли dll, які можуть перешкодити роботі в певній операційній системі
У таблиці нижче наведено деякі відмінності між поширеними операційними системами використовуються на ПК.
Операційна система | Розрядність, біт | Ядро | Мінімум пам’яті для роботи | Мінімум на жорсткому диску | Частота процесора, мінімум | Кількість завдань | Кількість користувачів | Стан на 2018 рік |
---|---|---|---|---|---|---|---|---|
CP/M | 8 | Монолітне | 16 Кб | 1-5 MHz | 1 | 1 | Історичне | |
86-DOS | 16 | Монолітне | 32 Кб | 4-16 MHz | 1 | 1 | Історичне | |
MS DOS | 16 | Монолітне | 64 Кб | 4 MHz | 1 | 1 | Історичне | |
Windows 3.1 | 16 | MS-DOS 3.1 і вище | 640 Кб | 6.5 Mb | 4 MHz | 1 | 1 | Історичне |
Windows 95 | 16 | Монолітне | 4 Мб | 50 Mb | 16 Мгц | Багатозадачна | 1 | Історичне |
Windows 98 | 32 | Монолітне | 16 Мб | 195 Mb | 66 MHz | Багатозадачна | 1 | Історичне |
Windows ME | 32 | Монолітне | 32 Mb | 200 Mb | 155 MHz | Багатозадачна | 1 | Історичне |
Windows 2000 | 32 | Гібридне | 32 Mb | 2 Gb | 133 MHz | Багатозадачна | 1 | Історичне |
Windows XP | 32, 64 | Гібридне | 64 Mb | 1.5 Gb | 233 MHz | Багатозадачна | 1 | Припинена основна підтримка |
Windows Vista | 32, 64 | Гібридне | 384 Mb | 20 Gb | 800 MHz | Багатозадачна | 1 | Історичне |
Windows 7 | 32, 64 | Гібридне | 1 Gb/2 Gb* | 16 Gb/20 Gb* | 1 GHz | Багатозадачна | 1 | Припинена основна підтримка |
Windows 8 | 32, 64 | Гібридне | 1 Gb/2 Gb* | 16 Gb/20 Gb* | 1 GHz | Багатозадачна | 1 | Не підтримується |
Windows 10 | 32, 64 | Гібридне | 1 Gb/2 Gb* | 16 Gb/20 Gb* | 1 GHz | Багатозадачна | 1 | Підтримується |
На замітку! * – слеш (/) поділяє платформи x86 (32 біт) і x86-64 (64 біт).