Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив WinRAR / лекции / операционные системы.pdf
Скачиваний:
107
Добавлен:
12.02.2015
Размер:
2.27 Mб
Скачать

299

динамическую загрузку и выгрузку модулей ядра;

многопоточность в пределах одного процесса (так называемые LWP (Light Weight Processes – легкие процессы));

псевдофайловую систему /ргос, обеспечивающую контролируемый доступ к адресным пространствам других процессов и структурам данных ядра;

оптимизирующий компилятор ANSI С, по качеству кода не уступающий GNU С.

На всем протяжении 90-х, архитектура ядра не подверглась существенным изменениям. Как и MVS полутора десятилетиями раньше, UNIX достиг совершенства в своем роде и нуждается не в новой архитектуре, а только в оптимизации существующего кода (ядро SVR4 несколько тяжеловато по сравнению с монолитными ядрами BSD и Linux) и развитии отдельных подсистем.

Linux

В 1991 г. Л. Торвальдс, в тот момент – студент университета Хельсинки, приступил к разработке того, что ныне известно как Linux – полноценной операционной системы. В 1992 г. была выпущена первая публичная версия системы. Вышедшее в 1997 г. ядро Linux 2.0 имело вполне приемлемую по стандартам коммерческих ОС надежность и почти все наиболее прогрессивные черты других Unix-систем:

загрузочные модули и разделяемые библиотеки формата ELF; псевдофайловую систему /ргос; динамическое подключение и отключение своп-файлов;

длинные файлы (64-разрядные – длина файла и смещение в нем); многопоточность в пределах одного процесса (POSIX thread library); поддержку симметричной многопроцессорности; динамическую загрузку и выгрузку модулей ядра;

стек TCP/IP, совместимый с BSD 4.4, с поддержкой IPSec, фильтрации пакетов и др.;

SysV IPC;

бинарную совместимость с UNIX System V на процессорах х86 (iBCS – Intel Binary Compatibility Standard) и, позднее, на SPARC и MIPS;

поддержку задач реального времени (класс планирования реального времени в монолитном Linux невозможен; такие задачи загружаются как модули ядра).

Linux и другие подобные ему операционные системы были изначально разработаны для использования несколькими людьми на одной и той же машине, и для защиты этих людей друг от друга. Интерфейс пользователя в Linux отделен от ядра, привилегированной основы операционной системы. И это ядро тщательно защищено от модифицирования обычными программами. Вот почему Linux не имеет вирусов.

Ядро Linux быстро развивается и еще не достигло той степени “зрелости” и стабильности, которая характерна для SVR4 и ветвей BSD. В част-

300

ности, поэтому среднее количество опасных ошибок, обнаруживаемых в системе за фиксированный интервал времени, существенно выше, чем в двух указанных ОС; производительность отдельных подсистем также оставляет желать лучшего. Однако положение довольно быстро улучшается и, по-видимому, в обозримом будущем Linux может стать одним из технологических лидеров отрасли.

Семейство СР/М

Родоначальником семейства является дисковая операционная система СР/М (Control Program/Monitor) фирмы Digital Research. Первая версия системы была разработана в 1974 г. для использования в инструментальных микропроцессорных системах на основе микропроцессоров 18080 и i8085.

СР/М была первой ОС для машин такого рода, обеспечившей возможность использования гибких дисков, поэтому она быстро приобрела огромную популярность и стала стандартом де-факто для микрокомпьютеров. Система была перенесена практически на все 8- и 16-разрядные и многие 32-разрядные микропроцессоры манчестерской архитектуры. Появившиеся в конце 70-х персональные компьютеры обычно также были ориентированы на использование СР/М. В начале 80-х были реализованы многозадачная и сетевая версии СР/М. Появилось также немало клонов системы, программно совместимых с ней и в целом аналогичных по архитектуре.

В 1981 г. фирма IBM анонсировала персональный компьютер IBM PC на основе 16-разрядного процессора i8088. Первоначально предполагалось, что в качестве ОС для этого компьютера будет использоваться СР/М, однако представителям IBM не удалось достичь приемлемых условий соглашения с Digital Research. Фирма Microsoft переделала загрузчик и дисковую подсистему QDOS для работы с IBM PC и использования сервисов ПЗУ этого компьютера (эти сервисы также называются BIOS, хотя имеют довольно мало общего с BIOS СР/М), и предложила результат фирме IBM. К версии 3.30 MS DOS (такое название получила новая система) уже накопила очень много отличий от оригинальной СР/М. В качестве файловой системы была использована изобретенная лично Б. Гейтсом для применения в интерпретаторе BASIC ФС FAT. Со времен DOS 3.30 архитектура системы не подверглась сколько-нибудь заметным изменениям. Так, DOS 7, входящая в состав Windows 98/ME в качестве вторичного загрузчика, отличается от 3.30 только поддержкой файловой системы FAT32.

Ближе к середине 90-х стало очевидно, что дни DOS как платформы сочтены.

301

Windows NT/2000/XP

Наработки Microsoft по OS/2 New Technology были в 1993 г. выпущены на рынок под названием Windows NT. Версии 3.х и 4.0 этой системы обеспечивали совместимость с 16-разрядными приложениями для OS/2 1.х в отдельной подсистеме, без возможности обращаться из 16-разрядных приложений к 32-разрядным DLL и наоборот.

Наиболее важной заимствованной концепцией была журнальная файловая система NTFS, представляющая собой любопытный гибрид HPFS (основной ФС OS/2) и FCS2 (основной ФС VAX/VMS). Это заимствование следует признать довольно удачным.

Гораздо менее удачным было заимствование своеобразной стратегии управления рабочими множествами процессов в ОЗУ, используемой в VMS: разработчики Microsoft устранили из этой стратегии одно из ключевых понятий, квоту размера рабочего множества. В результате получилась система, практически не способная воспользоваться преимуществами страничной подкачки, потому что даже небольшая нехватка оперативной памяти приводит к резкому падению производительности из-за неспособности системы сбалансировать потребности приложений и дискового кэша.

Еще одна ключевая для понимания архитектуры Win32 концепция была введена по настоятельным просьбам разработчиков графических приложе-

ний для Apple Macintosh. Речь идет о системном реестре (system registry),

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

Системный реестр впервые был реализован в Mac OS. Эта система имеет довольно простое ядро и небогатый набор системных настроек, поэтому реестр Mac OS в основном содержит настройки прикладных программ и в такой форме вполне терпим. Напротив, довольно сложная многопользовательская Windows NT, поддерживающая широкий спектр внешних устройств, нуждается в большом объеме конфигурационных данных для самой системы. Характер обращений к разным частям этих данных сильно различается – некоторые, например, нужны только при загрузке системы, а изменению подлежат только при изменении аппаратной конфигурации. Другие же меняются при каждом открытии нового окна пользовательской программой. Относительная ценность этих данных также различается очень резко: искажение некоторых может привести к невозможности загрузить систему или к потере пользователями доступа к ней, некоторые другие можно было бы и не хранить вовсе. В Windows NT этот концептуальный недостаток усугубляется недостатками реализации – реестр не имеет адекватных средств резервного копирования и восстановления (при фатальных повреждениях реестра Microsoft рекомендует переустановку системы) и фактически лишен средств самоконтроля и диагностики.

302

С момента выхода версии 3.51 и до настоящего времени архитектура системы не подвергалась ни пересмотру, ни сколько-нибудь существенному развитию. Наибольшее количество новшеств было введено в Windows 2000, когда в состав системы была включена служба каталогов Active Directory и ряд мелких улучшений. В частности, было исправлено множество мелких, но раздражающих недостатков стека TCP/IP версии 4.0. В Windows XP были введены средства импорта реестра систем линии Windows 95/98/ME, сокеты типа RAW и новая схема защиты от неавторизованного копирования. При слабо изменяющемся ядре, развивался преимущественно пользовательский интерфейс.

Главными недостатками Windows NT в качестве сервера являются неэффективная стратегия управления памятью и беспрецедентное для промышленно эксплуатируемого программного продукта количество проблем с безопасностью. Для сервера, исполняющего стабильную смесь приложений, первый недостаток не очень критичен – многие серверные приложения (особенно серверы СУБД) при старте занимают всю доступную память и практически не запрашивают ее в процессе работы. Благодаря этому система может стабилизировать свой динамический кэш и обеспечивать в стационарном режиме приемлемую производительность.

Второй недостаток является критически важным и одного его – в идеальном мире – было бы достаточно, чтобы Windows NT не использовалась в качестве сервера ни при каких обстоятельствах.

Windows 95/98/МЕ

В первой половине 90-х годов XX столетия практически всем разработчикам и техническим специалистам было очевидно, что MS и DR DOS доживают последние дни: они не удовлетворяли запросам пользователей практически ни по одному из параметров: приложения требовали больших объемов памяти и перехода к 32-разрядной архитектуре, пользователям требовались большая надежность, многозадачность, более развитые сетевые средства. Напротив, преимущества DOS, такие, как небольшая потребность в памяти, становились все менее и менее критичными.

Основным препятствием на пути перехода пользователей на другие платформы было требование совместимости с существующими приложениями и драйверами нестандартных внешних устройств для DOS. Наилучшим образом удовлетворяла этому требованию IBM OS/2, в виртуальной машине которой можно было запустить не только практически любое приложение DOS, но и использовать многие модули ядра DOS, в том числе – загружая в разных виртуальных машинах разные версии ДОС и разные наборы драйверов. Однако высокие требования этой системы к ресурсам и ориентированная на корпоративных пользователей схема лицензирования приводили к тому, что система не получила большого распространения на массовом рынке.

303

В 1992-1993 гг. Microsoft занялась разработкой системы, которая должна была заполнить перспективную рыночную нишу “многозадачной ДОС защищенного режима”.

Новая система, получившая название Windows 95, вышла на рынок в 1995 г. Система с самого начала задумывалась как переходная, предназначенная для облегчения перевода пользовательской базы DOS на Windows NT, однако прошло не менее 4-5 лет, прежде чем совместимость с приложениями DOS перестала быть решающим параметром при выборе ОС для настольного компьютера. За это время успело выйти несколько версий

“переходной” системы (OSR2, 98, 98SE, Millennium Edition) и даже после выхода ХР Microsoft еще не готова объявить о прекращении поддержки этой линии ОС.