Windows NT/2000/XP
Наработки Microsoft no OS/2 New Technology были в 1993 г. выпущены на рынок под названием Windows NT. Версии 3.x и 4.0 этой системы обеспечивали совместимость с 16-разрядными приложениями для OS/2 1.x в отдельной подсистеме, без возможности обращаться из 16-разрядных приложений к 32-разрядным DLL и наоборот. В описываемый период из DEC в Microsoft в полном составе перешла команда разработчиков ядра VMS под управлением Д. Катера. Microsoft широко рекламировал этот факт и утверждал, что Windows NT находится с VMS в гораздо более близком родстве, чем с OS/2 1.x. Из табл. П.1 видно, что это утверждение не очень-то согласуется с действительностью.
Таблица П.1. Сравнение OS/2 1.2, Windows NT и VMS.
OS/2 1.x | Windows NT 3.x | VMS | |
---|---|---|---|
Mногозадачность | Вытесняющая | Вытесняющая | Вытесняющая |
Ядро | Монолитное | Монолитное | Монолитное |
Ввод-вывод | Асинхронный | Асинхронный – | Асинхронный |
Защита памяти | Сегментная | Страничная | Страничная |
Трехуровневая | Двухуровневая | Трехуровневая | |
Сборка при загрузке | Динамическая | Динамическая | Статическая |
Подкачка | Задачная | Страничная | Страничная |
Поиск жертвы | FIFO | FIFO | |
Файловая система | Без транзакций | Журнальная | Журнальная |
Программный RAID | RAID I | RAIDO I 5 | RAIDO 1 |
Длина имени файла | 256 | 256 | 32+16 |
Версии файлов | Нет | Нет | Да |
Форматы файлов | Потоковый | Потоковый | Блочный |
Относительный | |||
Индексно – последовательный | |||
Командный процессор | cmd.exe | cmd.exe | DCL |
Граф, подсистема | РМ | Win32 | X Window |
Ид. пользователя | Вся система | Задача | Задача |
БД учетных записей | Распределенная | Распределенная | Локальная |
Сетевой протокол | NETBIOS/SMB | NETBIOS/SMB | DECNet |
Наиболее важные заимствования из VMS – страничная подкачка и идентификация пользователя на уровне процессов – являлись ответом на насущные требования развития системы и могли быть заимствованы из любой ОС, адекватной времени. В остальном, табл. П.1 показывает, что OS/2 1.x, безусловно, приходится Windows NT гораздо более близкой родней, чем VMS.
Наиболее важной заимствованной концепцией была журнальная файловая система NTFS, представляющая собой любопытный гибрид HPFS (основной ФС OS/2) и FCS2 (основной ФС VAX/VMS). Это заимствование следует признать довольно удачным. Гораздо менее удачным было заимствование своеобразной стратегии управления рабочими множествами процессов в ОЗУ, используемой в VMS: разработчики Microsoft устранили из этой стратегии одно из ключевых понятий, квоту размера рабочего множества.
В результате получилась система, практически не способная воспользоваться преимуществами страничной подкачки, потому что даже небольшая нехватка оперативной памяти приводит к резкому падению производительности из-за неспособности системы сбалансировать потребности приложений и дискового кэша. Еще одна ключевая для понимания архитектуры Win32 концепция была позаимствована вовсе не из VMS и даже не из OS/2 1.x, а была, скорее всего, введена по настоятельным просьбам разработчиков графических приложений для Apple Macintosh. Речь идет о системном реестре (system registry), централизованной базе данных, в которой все модули системы, стандартные утилиты и прикладные программы хранят все, что считают нужным сохранить.