Добавлен: 29.10.2018
Просмотров: 47970
Скачиваний: 190
36
Глава 1. Введение
(Berkeley Software Distribution) Калифорнийского университета Беркли. У них также
были последующие варианты.
Чтобы появилась возможность писать программы, работающие в любой UNIX-системе,
Институт инженеров по электротехнике и электронике (IEEE) разработал стандарт
системы UNIX, названный POSIX, который в настоящее время поддерживается
большинством версий UNIX. Стандарт POSIX определяет минимальный интерфейс
системных вызовов, который должны поддерживать совместимые с ним системы UNIX.
Фактически на данный момент POSIX-интерфейс поддерживается также рядом других
операционных систем.
Между прочим стоит упомянуть, что в 1987 году автор выпустил в образовательных це-
лях небольшой клон системы UNIX, так называемую систему MINIX. Функционально
система MINIX очень похожа на UNIX, включая поддержку стандарта POSIX. С тех
пор исходная версия превратилась в MINIX 3, систему, обладающую высокой модуль-
ностью и ориентированную на достижение очень высокой надежности. Она способна
на лету определять и заменять дефектные и даже поврежденные модули (например,
драйверы устройств ввода-вывода) без перезагрузки и нарушения хода выполнения
запущенных программ. Также доступна книга, в которой описывается ее внутренняя
работа, а в приложении приводится исходный код (Tanenbaum and Woodhull, 2006).
Система MINIX 3 имеется в свободном доступе (включая весь исходный код) в Ин-
тернете по адресу
www.minix3.org
.
Желание получить свободно распространяемую версию MINIX (в отличие от образова-
тельной) привело к тому, что финский студент Линус Торвальдс (Linus Torvalds) создал
систему Linux. Система MINIX стала непосредственным вдохновляющим фактором
и основой для этой разработки, которая первоначально поддерживала различные осо-
бенности MINIX (например, ее файловую систему). С тех пор система Linux во многом
и многими была существенно расширена, но все еще сохраняет исходную структуру,
общую для MINIX и UNIX. Читателям, интересующимся подробной историей разви-
тия Linux и свободного программного обеспечения, можно порекомендовать прочитать
книгу Глина Муди (Moody, 2001).
1.2.4. Четвертое поколение (с 1980 года по наши дни):
персональные компьютеры
Следующий период эволюции операционных систем связан с появлением БИС —
больших интегральных схем (LSI, Large Scale Integration) — кремниевых микросхем,
содержащих тысячи транзисторов на одном квадратном сантиметре. С точки зрения
архитектуры персональные компьютеры (первоначально называемые микрокомпью-
терами
) были во многом похожи на мини-компьютеры класса PDP-11, но, конечно же,
отличались по цене. Если появление мини-компьютеров позволило отделам компаний
и факультетам университетов иметь собственный компьютер, то с появлением микро-
процессоров возможность купить персональный компьютер получил каждый человек.
В 1974 году, когда корпорация Intel выпустила Intel 8080 — первый универсальный
8-разрядный центральный процессор, — для него потребовалась операционная си-
стема, с помощью которой можно было бы протестировать новинку. Корпорация
Intel привлекла к разработкам и написанию нужной операционной системы одного
из своих консультантов Гэри Килдэлла (Gary Kildall). Сначала Килдэлл с другом
1.2. История операционных систем
37
сконструировали контроллер для 8-дюймового гибкого диска, недавно выпущенного
компанией Shugart Associates, и подключили этот диск к процессору Intel 8080. Таким
образом появился первый микрокомпьютер с диском. Затем Килдэлл создал диско-
вую операционную систему, названную CP/M (Control Program for Microcomputers —
управляющая программа для микрокомпьютеров). Когда Килдэлл заявил о своих
правах на CP/M, корпорация Intel удовлетворила его просьбу, поскольку не думала,
что у микрокомпьютеров с диском есть будущее. Позже Килдэлл создал компанию
Digital Research для дальнейшего развития и продажи CP/M.
В 1977 году компания Digital Research переработала CP/M, чтобы сделать ее пригодной
для работы на микрокомпьютерах с процессорами Intel 8080 или Zilog Z80, а также
с другими процессорами. Затем было написано множество прикладных программ,
работающих в CP/M, что позволило этой системе занимать высшую позицию в мире
микрокомпьютеров целых 5 лет.
В начале 1980-х корпорация IBM разработала IBM PC (Personal Computer — персо-
нальный компьютер)
1
и начала искать для него программное обеспечение. Сотрудники
IBM связались с Биллом Гейтсом, чтобы получить лицензию на право использования
его интерпретатора языка Бейсик. Они также поинтересовались, не знает ли он опе-
рационную систему, которая работала бы на IBM PC. Гейтс посоветовал обратиться
к Digital Research, тогда главенствующей компании в области операционных систем.
Но Килдэлл отказался встречаться с IBM, послав вместо себя своего подчиненного.
Что еще хуже, его адвокат даже отказался подписывать соглашение о неразглашении,
касающееся еще не выпущенного IBM PC, чем полностью испортил дело. Корпорация
IBM снова обратилась к Гейтсу с просьбой обеспечить ее операционной системой.
После повторного обращения Гейтс выяснил, что у местного изготовителя компью-
теров, Seattle Computer Products, есть подходящая операционная система DOS (Disk
Operating System — дисковая операционная система). Он направился в эту компанию
с предложением выкупить DOS (предположительно за $50 000), которое компания
Seattle Computer Products с готовностью приняла. Затем Гейтс создал пакет программ
DOS/BASIC, и пакет был куплен IBM. Когда корпорация IBM захотела внести в опе-
рационную систему ряд усовершенствований, Билл Гейтс пригласил для этой работы
Тима Патерсона (Tim Paterson), человека, написавшего DOS и ставшего первым слу-
жащим Microsoft — еще не оперившейся компании Гейтса. Видоизмененная система
была переименована в MS-DOS (MicroSoft Disk Operating System) и быстро заняла до-
минирующее положение на рынке IBM PC. Самым важным оказалось решение Гейтса
(как оказалось, чрезвычайно мудрое) продавать MS-DOS компьютерным компаниям
для установки вместе с их оборудованием в отличие от попыток Килдэлла продавать
CP/M конечным пользователям (по крайней мере, на начальной стадии).
Когда в 1983 году появился компьютер IBM PC/AT (являющийся дальнейшим раз-
витием семейства IBM PC) с центральным процессором Intel 80286, система MS-DOS
уже прочно стояла на ногах, а CP/M доживала последние дни. Позже система MS-DOS
широко использовалась на компьютерах с процессорами 80386 и 80486. Хотя первона-
1
Необходимо отметить, что в данном случае «IBM PC» — это название конкретной модели
компьютера, в то время как просто «PC» можно рассматривать как аббревиатуру от «Personal
Computer» (персональный компьютер, ПК) — обозначения класса компьютера. Укрепив-
шееся же обозначение данной модели просто как «PC» некорректно — одновременно суще-
ствовали и другие персональные компьютеры. — Примеч. ред.
38
Глава 1. Введение
чальная версия MS-DOS была довольно примитивна, последующие версии системы
включали в себя расширенные функции, многие из которых были позаимствованы
у UNIX. (Корпорация Microsoft была хорошо знакома с системой UNIX и в первые
годы своего существования даже продавала ее микрокомпьютерную версию XENIX.)
CP/M, MS-DOS и другие операционные системы для первых микрокомпьютеров
полностью основывались на командах, вводимых пользователем с клавиатуры. Со
временем благодаря исследованиям, проведенным в 1960-е годы Дагом Энгельбартом
(Doug Engelbart) в научно-исследовательском институте Стэнфорда (Stanford Research
Institute), ситуация изменилась. Энгельбарт изобрел графический интерфейс поль-
зователя
(GUI, Graphical User Interface) вкупе с окнами, значками, системами меню
и мышью. Эту идею переняли исследователи из Xerox PARC и воспользовались ею
в создаваемых ими машинах.
Однажды Стив Джобс (Steve Jobs), один из авторов компьютера Apple, созданного
в его гараже, посетил PARC, где увидел GUI и сразу понял уровень заложенного в него
потенциала, недооцененного руководством компании Xerox. Затем Джобс приступил
к созданию компьютера Apple, оснащенного графическим пользовательским интер-
фейсом. Этот проект привел к созданию компьютера Lisa, который оказался слишком
дорогим и не имел коммерческого успеха. Вторая попытка Джобса, компьютер Apple
Macintosh, имел огромный успех не только потому, что был значительно дешевле, чем
Lisa, но и потому, что обладал более дружественным пользовательским интерфейсом,
предназначенным для пользователей, не разбиравшихся в компьютерах и к тому же
совершенно не стремившихся чему-то обучаться. Компьютеры Macintosh нашли ши-
рокое применение у представителей творческих профессий — художников-дизайне-
ров, профессиональных цифровых фотографов и профессиональных производителей
цифровой видеопродукции, которые приняли их с восторгом. В 1999 году компания
Apple позаимствовала ядро, происходящее из микроядра Mach, первоначально раз-
работанного специалистами университета Карнеги — Меллона для замены ядра BSD
UNIX. Поэтому Mac OS X является операционной системой, построенной на основе
UNIX, хотя и с весьма своеобразным интерфейсом.
Когда корпорация Microsoft решила создать преемника MS-DOS, она была под боль-
шим впечатлением от успеха Macintosh. В результате появилась основанная на приме-
нении графического интерфейса пользователя система под названием Windows, перво-
начально являвшаяся надстройкой над MS-DOS (то есть она больше была похожа на
оболочку, чем на настоящую операционную систему). На протяжении примерно 10 лет,
с 1985 по 1995 год, Windows была просто графической оболочкой, работавшей поверх
MS-DOS. Однако в 1995 году была выпущена самостоятельная версия Windows —
Windows 95. Она непосредственно выполняла большинство функций операционной
системы, используя входящую в ее состав систему MS-DOS только для загрузки,
а также для выполнения старых программ, разработанных для MS-DOS. В 1998 году
была выпущена слегка модифицированная версия этой системы, получившая назва-
ние Windows 98. Тем не менее обе эти системы, и Windows 95 и Windows 98, все еще
содержали изрядное количество кода, написанного на ассемблере для 16-разрядных
процессоров Intel.
Другой операционной системой Microsoft была Windows NT (NT означает New
Technology — новая технология), которая на определенном уровне совместима
с Windows 95. Однако она была написана заново и представляла собой полноценную
32-разрядную систему. Ведущим разработчиком Windows NT был Дэвид Катлер (David
1.2. История операционных систем
39
Cutler), который также был одним из разработчиков операционной системы VAX VMS,
поэтому некоторые идеи из VMS присутствуют и в NT (причем столько, что владелец
VMS, компания DEC, предъявила иск корпорации Microsoft. Конфликт был улажен во
внесудебном порядке за приличную сумму). Microsoft ожидала, что первая же версия
вытеснит MS-DOS и все другие версии Windows, поскольку она намного превосхо-
дила их, но надежды не оправдались. Только операционной системе Windows NT 4.0
наконец-то удалось завоевать высокую популярность, особенно в корпоративных сетях.
Пятая версия Windows NT была в начале 1999 года переименована в Windows 2000. Она
предназначалась для замены обеих версий — Windows 98 и Windows NT 4.0.
Но полностью этим планам также не суждено было сбыться, поэтому Microsoft вы-
пустила еще одну версию Windows 98 под названием Windows Me (Millennium
edition
— выпуск тысячелетия). В 2001 году была выпущена слегка обновленная вер-
сия Windows 2000, названная Windows XP. Эта версия выпускалась намного дольше,
по существу заменяя все предыдущие версии Windows.
Тем не менее выпуск новых версий продолжался. После Windows 2000 Microsoft раз-
била семейство Windows на клиентскую и серверную линейки. Клиентская линейка
базировалась на версии XP и ее последователях, а серверная включала Windows Server
2003 и Windows 2008. Чуть позже появилась и третья линейка, предназначенная для
мира встроенных операционных систем. От всех этих версий Windows отделились
вариации в виде сервисных пакетов. Этого хватило, чтобы успокоить некоторых ад-
министраторов (и писателей учебников по операционным системам).
Затем в январе 2007 года Microsoft выпустила окончательную версию преемника
Windows XP под названием Vista. У нее был новый графический интерфейс, усовершен-
ствованная система безопасности и множество новых или обновленных пользователь-
ских программ. Microsoft надеялась, что она полностью заменит Windows XP, но этого так
и не произошло. Вместо этого было получено большое количество критических отзывов
и статей в прессе, главным образом из-за высоких системных требований, ограничитель-
ных условий лицензирования и поддержки технических средств защиты авторских прав
(технологии, затрудняющей пользователям копирование защищенных материалов).
С появлением Windows 7, новой и менее требовательной к ресурсам операционной
системы, многие решили вообще пропустить Vista. В Windows 7 не было представле-
но слишком много новых свойств, но она была относительно небольшой по объему
и довольно стабильной. Менее чем за три недели Windows 7 получила большую долю
рынка, чем Vista за семь месяцев. В 2012 году Microsoft выпустила ее преемника —
Windows 8, операционную систему с совершенно новым внешним видом, предназна-
ченным для сенсорных экранов. Компания надеялась, что новый дизайн сделает эту
операционную систему доминирующей для широкого круга устройств: настольных
компьютеров, ноутбуков, планшетных компьютеров, телефонов и персональных ком-
пьютеров, использующихся в качестве домашних кинотеатров. Но пока проникновение
ее на рынок идет намного медленнее по сравнению с Windows 7.
Другим основным конкурентом в мире персональных компьютеров является опера-
ционная система UNIX (и различные производные от этой системы). UNIX имеет
более сильные позиции на сетевых и промышленных серверах, также она находит все
более широкое распространение и на настольных компьютерах, ноутбуках, планшет-
ных компьютерах и смартфонах. На компьютерах с процессором Pentium популярной
альтернативой Windows для студентов и постоянно растущего числа корпоративных
пользователей становится операционная система Linux.
40
Глава 1. Введение
В данной книге термин x86 будет применяться в отношении всех современных про-
цессоров, основанных на семействе архитектур с набором команд, берущим начало
с процессора 8086, созданного в 1970-х годах. Компаниями AMD и Intel было выпу-
щено множество таких процессоров, которые зачастую имели существенные различия:
процессоры могли быть 32- или 64-разрядными, с небольшим или большим числом
ядер, с конвейерами различной глубины и т. д. Тем не менее для программиста они
весьма похожи друг на друга, и на всех них может запускаться код для процессора 8086,
написанный 35 лет назад. Там, где различия будут играть важную роль, будут делаться
ссылки на конкретные модели, а для индикации 32- и 64-разрядных вариантов будут
использоваться термины x86-32 и x86-64.
Операционная система FreeBSD также является популярной производной от UNIX,
порожденной проектом BSD в Беркли. Все современные компьютеры Macintosh рабо-
тают на модифицированной версии FreeBSD (OS X). UNIX также является стандартом
на рабочих станциях, оснащенных высокопроизводительными RISC-процессорами.
Ее производные нашли широкое применение на мобильных устройствах, которые
работают под управлением iOS 7 или Android.
Хотя многие пользователи UNIX, особенно опытные программисты, отдают пред-
почтение интерфейсу на основе командной строки, практически все UNIX-системы
поддерживают систему управления окнами X Window System (или X11), созданную
в Массачусетском технологическом институте. Эта система выполняет основные опе-
рации по управлению окнами, позволяя пользователям создавать, удалять, перемещать
окна и изменять их размеры, используя мышь. Зачастую в качестве надстройки над X11
можно использовать полноценный графический пользовательский интерфейс, напри-
мер Gnome или KDE, придавая UNIX внешний вид и поведение, чем-то напоминающие
Macintosh или Microsoft Windows.
В середине 1980-х годов начало развиваться интересное явление — рост сетей персо-
нальных компьютеров, работающих под управлением сетевых операционных систем
и распределенных операционных систем (Tanenbaum and Van Steen, 2007). В сетевых
операционных системах пользователи знают о существовании множества компьютеров
и могут войти в систему удаленной машины и скопировать файлы с одной машины на
другую. На каждой машине работает своя локальная операционная система и имеется
собственный локальный пользователь (или пользователи).
Сетевые операционные системы не имеют существенных отличий от однопроцес-
сорных операционных систем. Ясно, что им нужен контроллер сетевого интерфейса
и определенное низкоуровневое программное обеспечение, чтобы управлять этим
контроллером, а также программы для осуществления входа в систему удаленной ма-
шины и для удаленного доступа к файлам, но эти дополнения не изменяют основную
структуру операционной системы.
В отличие от этого распределенная операционная система представляется своим
пользователям как традиционная однопроцессорная система, хотя на самом деле в ее
составе работает множество процессоров. Пользователям совершенно не обязательно
знать, где именно выполняются их программы или где размещены их файлы, — все
это должно автоматически и эффективно управляться самой операционной системой.
Настоящим распределенным операционным системам требуется намного больше из-
менений, не ограничивающихся простым добавлением незначительного объема кода
к однопроцессорной операционной системе, поскольку распределенные и централи-