Добавлен: 29.10.2018
Просмотров: 48035
Скачиваний: 190
Глава 11
.
Изучение конкретных примеров:
Windows 8
Windows — это современная операционная система, которая работает как на персональ-
ных компьютерах, ноутбуках, планшетах и телефонах домашних и бизнес-пользовате-
лей, так и на серверах предприятий. Windows используется в игровой системе Microsoft
Xbox и в инфраструктуре облачного вычисления Azure. Последней версией на момент
написания этой книги является Windows 8.1. В данной главе мы изучим различные
аспекты Windows 8, начиная с краткой истории, а затем перейдем к ее архитектуре.
После этого рассмотрим процессы, управление памятью, кэширование, ввод-вывод,
файловую систему, управление электропитанием и, наконец, безопасность.
11.1. История Windows вплоть до Windows 8.1
Процесс разработки компанией Microsoft операционной системы Windows для пер-
сональных компьютеров и серверов (на основе архитектуры PC) можно разбить на
четыре эпохи: MS-DOS, Windows на базе MS-DOS, Windows на базе NT и современную
Windows. В техническом плане все эти системы существенно отличаются друг от друга.
Каждая из них являлась господствующей в определенный период истории персональ-
ных компьютеров. В табл. 11.1 показаны годы выпуска основных версий операционных
систем компании Microsoft для персональных компьютеров. Далее мы кратко опишем
все упомянутые в таблице эпохи развития.
Таблица 11.1. Основные версии операционных систем компании Microsoft
для настольных компьютеров
Год
MS-DOS
Windows на
базе MS-DOS
Windows
на базе NT
Современ-
ная Windows
Примечания
1981
1.0
Первоначальная версия
для IBM PC
1983
2.0
Добавлена поддержка
PC/XT
1984
3.0
Добавлена поддержка
PC/AT
1990
3.0
За два года продано 10 млн
экземпляров
1991
5.0
Добавлено управление
памятью
1992
3.1
Работает только на процес-
сорах 286 и более новых
932
Глава 11. Изучение конкретных примеров: Windows 8
Год
MS-DOS
Windows на
базе MS-DOS
Windows
на базе NT
Современ-
ная Windows
Примечания
1993
NT 3.1
1995
7.0
95
MS-DOS встроена
в Windows 95
1996
NT 4.0
1998
98
2000
8.0
Me
2000
Windows Me уступала
Windows 98
2001
XP
Заменила Windows 98
2006
Vista
Vista не смогла вытеснить
XP
2009
7
Существенно улучшена по
сравнению с Vista
2012
8
Первая современная вер-
сия
2013
8.1
Microsoft перешла к бы-
стрым выпускам
11.1.1. 80-е годы прошлого века: MS-DOS
В начале 1980-х годов компания IBM (которая на тот момент являлась самой большой
и могущественной компьютерной компанией в мире) разрабатывала персональный
компьютер
на базе микропроцессора Intel 8088. С середины 1970-х годов компания
Microsoft стала лидирующим поставщиком языка программирования BASIC для вось-
мибитных микрокомпьютеров на базе микропроцессоров 8080 и Z-80. Когда компания
IBM обратилась в компанию Microsoft с предложением лицензировать BASIC для но-
вого компьютера IBM PC, компания Microsoft дала свое согласие и предложила, чтобы
IBM связалась с компанией Digital Research для лицензирования ее операционной
системы CP/M (поскольку в то время компания Microsoft операционными системами
не занималась). Компания IBM так и сделала, но Гари Килдал (Gary Kildall), пре-
зидент Digital Research, не нашел времени для встречи с представителями компании
IBM. Это был, наверное, самый досадный просчет во всей истории бизнеса, поскольку,
дай Килдал лицензию на CP/M компании IBM, он стал бы, наверное, самым богатым
человеком на планете. Получив отказ от Килдала, IBM вернулась к Биллу Гейтсу, со-
учредителю Microsoft, и снова обратилась к нему за помощью. Очень скоро компания
Microsoft купила клон операционной системы CP/M у местной компании Seattle
Computer Products, перенесла ее на IBM PC и предоставила компании IBM лицензию
на нее. Затем она была переименована в MS-DOS 1.0 (Microsoft Disk Operating System)
и в 1981 году начала поставляться вместе с первыми IBM PC.
MS-DOS была 16-битной однопользовательской операционной системой с интер-
фейсом командной строки, которая работала в реальном режиме процессора и код
которой занимал в памяти всего 8 Кбайт. В течение следующих 10 лет и персональные
компьютеры, и MS-DOS продолжали развиваться, приобретая все больше функцио-
Таблица 11.1 (продолжение)
11.1. История Windows вплоть до Windows 8.1
933
нальных возможностей. К 1986 году компания IBM создала компьютер PC/AT на базе
процессора Intel 286 и система MS-DOS выросла до 36 Кбайт, однако она продолжала
оставаться однозадачной операционной системой с интерфейсом командной строки.
11.1.2. 90-е годы прошлого столетия: Windows
на базе MS-DOS
Вдохновленная графическим пользовательским интерфейсом системы, разработанной
Дугласом Энгельбартом (Doug Engelbart) из Stanford Research Institute, который позже
был улучшен компанией Xerox PARC, и коммерческими результатами его использова-
ния, а также компьютерами Apple Lisa и Apple Macintosh, компания Microsoft решила
дать системе MS-DOS графический интерфейс пользователя, который она назвала
Windows
. Первые две версии Windows (1985 и 1987 годов) были не очень успешными
(отчасти из-за ограниченных возможностей имевшихся в то время аппаратных средств
персональных компьютеров). В 1990 году компания Microsoft выпустила Windows 3.0
для процессора Intel 386 и за шесть месяцев продала более 1 млн экземпляров этой
операционной системы.
Windows 3.0 не была настоящей операционной системой — это была графическая среда,
работавшая поверх системы MS-DOS, которая по-прежнему управляла компьюте-
ром и файловой системой. Все программы работали в одном адресном пространстве,
и ошибка в любой из них могла привести к остановке всей системы.
В августе 1995 года была выпущена Windows 95. Она имела многие функциональные
возможности полноценной операционной системы, в том числе виртуальную память,
управление процессами, многозадачный режим, а также ввела 32-битные интерфейсы
программирования. Однако ей не хватало безопасности, а также изоляции приложений
друг от друга и от операционной системы. Поэтому проблемы со стабильностью оста-
лись даже после выпуска Windows 98 и Windows Me, в сердце которых по-прежнему
работал 16-битный ассемблерный код операционной системы MS-DOS.
11.1.3. 2000 год: Windows на базе NT
К концу 80-х годов прошлого века компания Microsoft поняла, что продолжать разра-
батывать операционную систему на базе MS-DOS — это не лучший путь. Аппаратные
возможности персональных компьютеров продолжали возрастать, и в конечном итоге
рынок персональных компьютеров должен был столкнуться с рынком рабочих станций
и серверов предприятий, где главенствующей операционной системой была UNIX.
Компанию Microsoft беспокоила также конкурентоспособность микропроцессоров
Intel, поскольку уже появилась архитектура RISC. Для решения этих проблем Microsoft
наняла группу инженеров из компании DEC (Digital Equipment Corporation) во главе
с Дэйвом Катлером (Dave Cutler) — одним из главных разработчиков операционной
системы VMS. Ему было поручено разработать новую 32-битную операционную систе-
му, в которой должен был быть реализован интерфейс прикладного программирования
OS/2 (Microsoft разрабатывала его в это время совместно с компанией IBM). В рабочих
документах команды Катлера эта система первоначально называлась NT OS/2.
Система Катлера была названа NT — от New Technology (новая технология), а также
потому, что изначально она разрабатывалась под новый процессор Intel 860 с кодовым
названием N10. NT проектировалась как система, способная к переносу на разные
934
Глава 11. Изучение конкретных примеров: Windows 8
процессоры. Упор делался на безопасность и надежность, а также совместимость с вер-
сиями Windows на базе MS-DOS. Опыт работы Катлера в компании DEC дает о себе
знать в самых разных аспектах, так что сходство между NT и другими разработанными
Катлером операционными системами (табл. 11.2) не случайно.
Таблица 11.2. Операционные системы компании DEC, разработанные
Дэйвом Катлером
Год
Операционная система
компании DEC
Характеристики
1973
RSX-11M
16-разрядная многопользовательская система реального
времени с механизмом подкачки
1978
VAX/VMS
32-разрядная виртуальная память
1987
VAXELAN
Система реального времени
1988
PRISM/Mica
Разработка прекращена, предпочтение отдано MIPS/
Ultrix
Когда инженеры компании DEC (а затем и ее юристы) увидели, насколько похожа была
NT на VMS (а также на ее никогда не выпускавшегося в свет последователя — MICA),
между компаниями DEC и Microsoft возник спор относительно использования компа-
нией Microsoft интеллектуальной собственности компании DEC. В итоге этот спор был
урегулирован во внесудебном порядке. Кроме того, компания Microsoft согласилась на
некоторое время предоставить поддержку NT для процессора Alpha компании DEC.
Однако все это не помогло компании DEC преодолеть свою неприязнь к персональным
компьютерам, которую очень характерно выразил в 1977 году основатель компании
DEC мистер Кен Олсен. Он сказал буквально следующее: «Нет никаких причин, по
которым кто-то может захотеть иметь дома компьютер». В 1998 году все то, что оста-
лось от DEC, было продано компании Compaq, которая в свою очередь была позже
куплена компанией Hewlett-Packard.
Знакомые с системами UNIX программисты считают, что архитектура NT совершенно
другая. Это не только из-за влияния VMS, но и вследствие имевшихся (на момент
разработки) различий между компьютерными системами. В 1970-х годах UNIX была
первоначально спроектирована для 16-разрядных систем с одним процессором, малым
количеством памяти и механизмом подкачки. В этих системах процесс был единицей
параллелизма и структуры, а fork и exec были малозатратными операциями (поскольку
системы с подкачкой часто копируют процессы на диск). NT была разработана в начале
1990-х годов, когда обычными стали многопроцессорные 32-разрядные компьютерные
системы с большим количеством памяти и виртуальной памятью. В системе NT едини-
цей параллелизма является поток, единицей структуры — динамическая библиотека,
а fork и exec реализованы в виде одной операции (создание нового процесса и выпол-
нение другой программы без предварительного копирования).
Первая версия Windows на базе NT (Windows NT 3.1) была выпущена в 1993 году.
Она получила название 3.1 для того, чтобы соответствовать тогдашней текущей вер-
сии Windows 3.1 для домашних пользователей. Совместный проект с компанией IBM
к этому времени развалился, так что, несмотря на по-прежнему имевшуюся поддержку
интерфейсов OS/2, основными интерфейсами были 32-разрядные расширения ин-
терфейсов прикладного программирования Windows под названием Win32. В период
11.1. История Windows вплоть до Windows 8.1
935
между началом разработки и первым выпуском в свет системы NT была выпущена
Windows 3.0, которая имела исключительный коммерческий успех. Она также могла
выполнять программы Win32, но для этого нужно было использовать библиотеку со-
вместимости Win32s.
Подобно первой версии Windows на базе MS-DOS, Windows на базе NT сначала также
не имела успеха. Для NT требовалось больше памяти, 32-разрядных приложений было
мало, а проблемы совместимости драйверов устройств и приложений привели к тому,
что многие покупатели остались верны Windows на базе MS-DOS (которую компания
Microsoft продолжала совершенствовать, выпустив в 1995 году Windows 95). Как и NT,
Windows 95 предоставила настоящие 32-разрядные интерфейсы программирования, но
она имела лучшую совместимость с уже существовавшим 16-разрядным программным
обеспечением и приложениями. Неудивительно, что сначала NT добилась успеха на
рынке серверов, где она конкурировала с VMS и NetWare.
NT достигла заявленных целей по переносимости — в дополнительных выпусках 1994
и 1995 годов была добавлена поддержка архитектур MIPS и PowerPC. Первым суще-
ственным обновлением NT стала Windows NT 4.0 в 1996 году. Эта система имела мощь,
безопасность и надежность NT и обеспечивала тот же самый интерфейс пользователя,
что и чрезвычайно популярная к тому моменту Windows 95.
На рис. 11.1 показана связь интерфейса прикладного программирования Win32
с Windows. Наличие общего интерфейса прикладного программирования (API)
в Windows на базе MS-DOS и в Windows на базе NT было чрезвычайно важным для
успеха NT.
Windows
3.0/3.1
Windows
95/98/98SE/Me
Windows
NT/2000/Vista/7
Windows
8/8.1
Win32s
Интерфейс прикладного программирования Win32
Приложение Win32
Рис. 11.1. Интерфейс прикладного программирования Win32 позволяет программам
работать почти во всех версиях Windows
Такая совместимость существенно облегчила миграцию пользователей с Windows 95 на
NT — и эта операционная система стала сильным игроком на рынке высокопроизводи-
тельных настольных компьютеров и серверов. Однако другие архитектуры процессоров
покупатели принимали не так охотно, так что из четырех поддерживавшихся Windows
NT 4.0 в 1996 году архитектур (в этом году была добавлена поддержка процессора Alpha
компании DEC) ко времени выпуска следующей версии (Windows 2000) активно под-
держивалась только одна — x86 (то есть семейство Pentium).
Версия Windows 2000 представляла собой существенное развитие системы NT. Добав-
лена была поддержка следующих важных технологий: Plug-and-Play (что избавляло
от необходимости разбираться с перемычками при установке карт расширения PCI),
службы сетевого каталога (для предприятий), улучшенное управление электропита-
нием (для ноутбуков); был улучшен графический интерфейс пользователя.