Оригинал | Перевод |
Tue, 27-Sep-83 12:35:59 EST Free Unix! Starting this Thanksgiving I am going to write a complete Unix-compatible software system called GNU (for Gnu's Not Unix), and give it away free(1) to everyone who can use it. Contributions of time, money, programs and equipment are greatly needed. To begin with, GNU will be a kernel plus all the utilities needed to write and run C programs: editor, shell, C compiler, linker, assembler, and a few other things. After this we will add a text formatter, a YACC, an Empire game, a spreadsheet, and hundreds of other things. We hope to supply, eventually, everything useful that normally comes with a Unix system, and anything else useful, including on-line and hardcopy documentation. GNU will be able to run Unix programs, but will not be identical to Unix. We will make all improvements that are convenient, based on our experience with other operating systems. [...]. | Четверг, 27 сентября 1983 г., 12:35:59 EST Свободный Unix! После Дня Благодарения я начинаю писать Unix-совместимую программную систему GNU (Gnu's Not Unix), которую буду предоставлять свободно(1) всем, кто может ее использовать. Нужна помощь в виде времени, денег, программ и оборудования. GNU будет содержать ядро плюс все утилиты, необходимые для того, чтобы писать и запускать программы на C: редактор, оболочку, компилятор C, линкер, ассемблер и еще несколько вещей. После этого будут добавлены программа форматирования текста, YACC, игра Empire, электронная таблица и сотни других вещей. Мы надеемся включить все, что обычно поставляется с Unix-системами, и все, что еще может оказаться полезным, в том числе онлайновую и печатную документацию. GNU будет способна запускать программы Unix, но не будет идентична Unix. Мы будем вносить в систему улучшения, основываясь на нашем опыте работы с другими операционными системами... |
Полный текст этого объявления вы можете найти по следующей ссылке: http://www.gnu.org/gnu/initial-announcement.html
Как писал позже сам Столлман: "Аббревиатура GNU расшифровывается как "GNU - это не UNIX" (GNU - Not UNIX). Основная идея, заложенная в процесс разработки системы GNU - это ее полное отличие от UNIX. UNIX всегда была и остается несвободным ПО, то есть она лишает своих пользователей свободы сотрудничества, а также контроля над своими компьютерами. Для того, чтобы стать сообществом, свободно пользующимся своими компьютерами, нам нужна была свободная операционная система. У нас не было достаточной суммы, чтобы выкупить и сделать свободной какую-либо из существовавших систем, но у нас было достаточно знаний и умений, чтобы создать новую. Создание GNU было грандиозной работой. Мы сделали ее во имя нашей свободы, и вашей тоже."
Чтобы МТИ не мог предъявить права собственности на результаты работы и навязать свои условия распространения разработанного ПО, Столлман в январе 1984 года ушел из МТИ и полностью посвятил себя проекту GNU. На первом этапе он поставил перед собой задачу создания многоязыкового, многоплатформенного компилятора. Но, чтобы написать любую программу, надо как минимум иметь текстовый редактор. Поэтому первой программой, созданной в рамках проекта GNU, стал текстовый редактор Emacs. Столлман начал работать над GNU Emacs в сентябре 1984 года, а в начале 1985-го уже имел работоспособную версию. Редактором Emacs заинтересовались другие программисты и это дало Столлману возможность получения небольшого заработка: он стал за 150 долл. отсылать по почте ленту с Emacs любому, кто захотел ее иметь.
В 1985 году Р.Столлман написал свой знаменитый Манифест GNU (он был опубликован в мартовском номере журнала "Dr. Dobb's Journal" за 1985 год) и основал Free Software Foundation (FSF) - благотворительный фонд для разработки свободно распространяемого ПО. Фонд взял на себя распространение лент с Emacs; позже он стал поставлять и другие свободно распространяемые программы (созданные как в рамках Проекта GNU, так и вне его), а также продавать руководства к ним. Это давало средства для разработки проекта GNU. FSF принимал пожертвования, но большая часть доходов всегда поступала от продаж копий свободно распространяемого ПО и связанных с ним услуг.
Разработка свободно распространяемого ПО была очень важным шагом, но еще большей заслугой Р.Столлмана следует признать создание Стандартной Общественной Лицензии GNU (GNU General Public License, или GPL). На русский язык это название разные авторы переводят по разному - Универсальная общественная лицензия, Обобщенная Публичная Лицензия и т.п. Но считается, что юридическую силу имеет только английский вариант этой лицензии. Основная идея GPL состоит в том, что пользователь должен обладать следующими четырьмя правами (или четырьмя свободами):
- Правом запускать программу для любых целей (свобода 0)
- Правом изучать устройство программы и приспосабливать ее к своим потребностям (свобода 1), что предполагает доступ к исходному коду программы.
- Правом распространять программу, имея возможность помочь другим (свобода 2).
- Правом улучшать программу и публиковать улучшения, в пользу всего сообщества (свобода 3), что тоже предполагает доступ к исходному коду программы.
Программное обеспечение, распространяемое под этой лицензией, можно как угодно использовать, копировать, дорабатывать, модифицировать, передавать или продавать модифицированные (или немодифицированные) версии другим лицам при условии, что результат такой переработки тоже будет распространяться под лицензией GPL. Последнее условие — самое важное и определяющее в этой лицензии. Оно гарантирует, что результаты усилий разработчиков свободного ПО останутся открытыми и не станут частью какого-либо лицензированного обычным способом продукта. Оно также отличает свободное ПО от ПО, распространяемого бесплатно. Одно из требований этой лицензии состоит в том, что продавая ПО под лицензией GPL, вы должны предоставить исходные коды этого ПО каждому, кто захочет получить к ним доступ. Говоря словами создателей FSF, лицензия GPL "делает ПО свободным и гарантирует, что оно останется свободным".
Первая версия GPL датирована февралем 1989 г. Вторая вышла в июне 1991-го, в настоящее время идет работа над 3-ей версий.
Все программное обеспечение GNU выпускается под этой лицензией или менее ограничивающим ее вариантом, LGPL. Для документации проекта GNU была разработана специальная "Лицензия GNU на свободную документацию". Поскольку лицензированные традиционным способом программы часто обозначали значком авторского права "copyright", программы, выпущенные под лицензией GPL, стали обозначать как "copyleft".
Главная цель, которую преследует GPL, - защитить свободное программное обеспечение от "приватизации". Но нужно заметить, что она сконструирована таким образом, чтобы разрешить все "честные" способы заработка денег на свободных программах, Это очень существенный момент, на который необходимо обратить особое внимание. При первом знакомстве с GPL может сложиться ошибочное представление о том, что эта лицензия вообще запрещает какие-либо способы заработать на программном обеспечении или его разработке. На самом деле GPL в частности и FSF вообще прямо поощряют бизнес, связанный с оказанием сопутствующих услуг, - обучение, консультации, и коммерческое тиражирование ПО. Это позволяет привлечь к сотрудничеству и корпорации и людей, для которых материальный интерес важнее моральных стимулов.
Важной особенностью GPL является то, что использование GPL не требует согласия с идеологией Столлмана (она довольно радикальна - по-видимому, Столлмен не приемлет любой софтверный бизнес, основанный на эксплуатации ограничений, предоставляемых авторским правом). На практике ее находят удобным инструментом для достижения своих целей и большинство программистов, не разделяющих достаточно радикальную позицию FSF, и даже многие коммерческие предприятия. C другой стороны, GPL обычно считают приемлемым инструментом и те, кто не хотел бы, чтобы на их вкладе "делали деньги". Это не случайная особенность. GPL намеренно составлена так, чтобы быть приемлемой для максимально широкого круга людей.
К 1990 году в рамках проекта GNU было создано большинство компонент, необходимых для функционирования свободной операционной системы. Помимо текстового редактора Emacs, Столлман создал компилятор gcc (GNU C Compiler) и отладчик gdb. Будучи выдающимся программистом, Ричард Столлман в одиночку сумел создать эффективный и надежный компилятор, который превосходит по своим качествам продукты коммерческих поставщиков, создаваемые целыми группами программистов. Поскольку изначально при его создании ставилась задача обеспечения переносимости, сегодня существуют версии этого компилятора практически для всех операционных систем. Позже были созданы компиляторы для других языков программирования, включая C++, Pascal и Fortran. Поэтому сейчас аббревиатура GCC расшифровывается как GNU Compiler Collection.
Сотрудники Free Software Foundation разработали множество других программных пакетов. Из них стоит особо отметить два: библиотеку Си и оболочку shell. Библиотека функций языка Си была разработана сотрудником FSF Роландом Макграсом. Оболочка BASH (Bourne Again Shell), обеспечивающая взаимодействие пользователя с операционной системой, создана еще одним сотрудником FSF Брайаном Фоксом.
Как пишет Р.Столлман "К 1990 году система GNU была практически закончена; не хватало только одного из базовых компонентов - ядра." Ожидалось, что ядро (оно получило название HURD) будет реализовано как набор серверных процессов, работающих на Mach - микроядре, создаваемом в университете Карнеги-Меллона, а затем в университете штата Юта. Начало разработки откладывалось в ожидании выпуска Mach, которое, как было обещано, будет выпущено в виде свободно распространяемого программного обеспечения. Но его появление все откладывалось, и тут появилось ядро, разработанное финским студентом Линусом Торвальдсом, и получившее название Linux.
С технической точки зрения Linux представляет собой только ядро Unix-подобной операционной системы, отвечающее за взаимодействие с аппаратной частью компьютера и выполнение таких задач, как распределение памяти, выделение процессорного времени различным программам и так далее. Кроме ядра операционная система включает в себя множество различных утилит, которые служат для организации взаимодействия пользователя с системой. Одна из важнейших утилит такого рода в Unix-системах - оболочка или shell. Кроме оболочки пользователю нужны утилиты, позволяющие управлять файловой системой (просматривать файлы и каталоги, создавать новые файлы, удалять ненужные), нужны утилиты, позволяющие работать с текстом (в том числе с текстами программ) и многое другое. В Unix при создании таких утилит применялся принцип минимальной достаточности: каждая утилита должна была уметь выполнять только одну маленькую задачу, но зато выполнять ее хорошо. А для решения более сложных задач применялся принцип конвейера: выход, полученный от одной утилиты, направлялся на вход другой. В результате можно было реализовать сложные процедуры обработки данных. Такой подход позволял уменьшить число ошибок в коде и обеспечить высокую стабильность системы при сохранении относительной простоты ее поддержки.
Успех Linux как операционной системы во многом обусловлен тем, что к 1991 году в рамках проекта GNU уже было разработано множество утилит, свободно распространяемых в Интернет. Проекту GNU не хватало ядра, а ядро, скорее всего, осталось бы невостребованным, если бы отсутствовали необходимые для работы утилиты. Линус Торвальдс оказался со своей разработкой в нужном месте в нужное время. И Ричард Столлман прав, когда настаивает на том, что операционную систему следует называть не Linux, а GNU/Linux. Но название Linux исторически уже закрепилось за этой ОС, поэтому мы тоже будем называть ее просто Linux (не забывая о заслугах Р.Сталлмана и его сподвижников).
IBM PC и Microsoft
Все события, о которых шла речь выше, происходили, если можно так выразиться, на "больших компьютерах". А между тем в начале 1980-х годов появились так называемые персональные компьютеры. Но приверженцы Unix вначале не обращали на них внимания, считая их слишком "слабыми" для серьезной работы. И рынок операционных систем для персоналок был захвачен компанией Microsoft.
Рис. 4. Пол Аллен и Билл Гейтс. |
Компания Microsoft была основана в июле 1975 года в городке Альбукерке (шт. Нью-Мексико) двумя друзьями - 20-летним Биллом Гейтсом и 22-летним Полом Алленом. Их дружба началась еще в школе Лейксайд в Сиэтле на основе фанатичной увлеченности программированием. Ученикам школы Лейксайд в Сиэтле повезло. Это учебное заведение одним из первых ввело в программу компьютерный курс. Восьмиклассник Гейтс погрузился в изучение возможностей PDP-10, вскоре стал настоящим асом и написал прекрасную программу для автоматизации процесса составления школьного расписания. Пол Аллен был его постоянным компаньоном.
В 1974 году на компьютерном рынке появилось нечто до тех пор небывалое - маленькая компания MITS из Альбукерке выпустила персональный микрокомпьютер Altair на базе Intel 8080. Altair с большой натяжкой можно было назвать компьютером - MITS предлагала изделие типа "сделай сам", комплект, из которого терпеливый пользователь с помощью паяльника в конце концов мог получить довольно сложное в эксплуатации устройство. Однако, желающих заполучить собственный компьютер за вполне доступную (400 долл.) цену оказалось предостаточно.
Аллен, первым узнавший об Altair, убедил Гейтса в необходимости начать работу над языком программирования для этого микрокомпьютера. Компаньоны позвонили главе MITS Эду Робертсу и сообщили, что уже имеют Бейсик, адаптированный для Altair. При этом о существовании языка было заявлено фактически до начала разработки. У Аллена и Гейтса даже не было ни самого микрокомпьютера, ни микропроцессора Intel 8080, они эмулировали его на PDP-10.
Зимой 1975 года состоялась личная встреча Эда Робертса и Пола Аллена в Альбукерке. Аллен привез готовый Бейсик для машины, которую сам еще в глаза не видел. Разработка Гейтса и Аллена, к удивлению их самих, прошла все испытания. Робертс более не колебался - он был готов незамедлительно подписать договор.
Успех Бейсика для Altair помог Гейтсу принять окончательное решение: теперь его будущее было связано только с компьютерами. Он оставил Гарвардский университет, в котором учился на юриста, и полностью отдался развитию собственной компании - Microsoft.
Первые шаги Microsoft связаны с совершенствованием и пропагандой Бейсика. В 1976 году, когда было решено снабдить Altair дисководом, Гейтс в кратчайший срок написал вариант языка со средствами управления файлами на дискетах, DiskBASIC. Несмотря на дороговизну первых дисководов, оснащение ими микрокомпьютера Altair и появление DiskBASIC открывало путь к превращению машины из игрушки для любителей повозиться с новой техникой в полезный инструмент автоматизации труда специалистов разного профиля. DiskBASIC давал возможность создавать полезные прикладные пакеты - финансовые, бухгалтерские, игровые, наконец.
К 1980 году Microsoft cтала абсолютным монополистом на рынке языков программирования для микрокомпьютеров, годовой объем продаж компании в 1979 году составил 2,5 млн. долл., объем сбыта удваивался ежегодно. Естественно, разработки уже не могли вестись только усилиями Гейтса и Аллена, и компания набрала значительный штат программистов, а со временем пригласила и специалистов, на которых были возложены административные обязанности и решение финансовых вопросов. Кроме того, Microsoft переехала из жаркого Альбукерке в родной для ее основателей Сиэтл.
А на рынке операционных систем для микропроцессоров в это время господствовала фирма Digital Research. В 1974 году, когда фирма Intel выпустила первый 8-битовый микропроцессор общего назначения 8080, ей потребовалась операционная система, которая могла бы работать с этим процессором, хотя бы для того, чтобы можно было тестировать процессор. Intel обратилась к одному из своих консультантов, Гэри Килдаллу (Gary Kildall), с просьбой написать такую систему. Килдалл написал операционную систему, которая размещалась на 8-дюймовых гибких дисках фирмы Shugart Associates (драйвер дисковода был тоже разработан Килдаллом). Система получила название CP/M (Control Program for Microcomputers). Поскольку в Intel полагали, что микрокомпьютеры с дисковыми накопителями не имеют большого будущего, фирма согласилась на просьбу Килдалла уступить ему права на операционную систему CP/M. Килдалл создал компанию Digital Research, с целью дальнейшего развития и продажи CP/M.
В 1977 голу Digital Research переписала CP/M заново, чтобы сделать ее пригодной для запуска на разных микрокомпьютерах на основе ЦП Intel 8080, Zilog Z80 и других. Для CP/M было написано множество приложений, что обеспечило этой ОС господство на микрокомпьютерах в течение 5 лет.
В 1980 году патриарх компьютерной индустрии, фирма IBM, выпускавшая до тех пор только мэйнфреймы, приняла историческое решение выйти на рынок микрокомпьютеров. IBM поставила задачу за год создать и выпустить на рынок машину нового типа, для чего компании необходимо было изменить принятые принципы ведения работ. Решение задачи собственными силами вылилось бы в обычный для корпорации четырехлетний цикл выпуска, что было совершенно недопустимо в условиях взрывного роста микрокомпьютерного рынка. Поэтому решено было строить компьютер на базе стандартного микропроцессора Intel и в сотрудничестве с внешним разработчиком программного обеспечения. Проведенный анализ показал, что на всех машинах, выпускаемых лидерами рынка персональных компьютеров, используются программные продукты фирмы Microsoft. Джек Сэмс, возглавивший в IBM проект по созданию персонального компьютера, предложил Биллу Гейтсу разработать Бейсик для 8-разрядного компьютера, спецификации которого предоставит IBM. Гейтс, со своей стороны, рискнул обратить внимание на перспективы нового, 16-разрядного процессора Intel 8086 и порекомендовал строить машину именно на его основе. В конечном итоге в IBM признали правоту 25-летнего президента Microsoft, хотя был выбран не 8086, а аналогичный, но несколько более медленный процессор 8088.
Затем встал вопрос об операционной системе для новой машины. Гейтс предложил обратиться к Digital Research, ведущему производителю операционных систем для микрокомпьютеров. Но Килдалл отказался от встречи с IBM, послав вместо себя подчиненного. Хуже того, адвокат Килдалла отказался подписать соглашение о неразглашении данных о еще не выпущенном к тому времени персональном компьютере IBM PC. Digital Research упустила свой шанс. IBM снова обратилась к Гейтсу, на этот раз предложив ему разработать операционную систему для IBM PC.
Историческая сделка между Microsoft и IBM о создании операционной системы для IBM PC была заключена в 1981 году. Поскольку разработать в заданные сроки полностью новую ОС не представлялось возможным, Microsoft решила адаптировать уже существующую программу. Гейтс купил у фирмы Seattle Computer Products систему QDOS (Quick and Dirty Operating System), которая являлась клоном системы CP/M и была разработана таким образом, что под ее управлением могло работать все программное обеспечение для CP/M. Автором QDOS был один из программистов фирмы Seattle Computer Products, Тим Пэтерсон (Tim Paterson). Покупка обошлась Microsoft в 50 000 долларов. Паттерсон тоже вскоре перешел на работу в Microsоft. Переработанная ОС получила название MS-DOS (MicroSoft Disk Operating System).
Рис. 5. Первый персональный компьютер от IBM. |
В середине 1981 года работа над MS-DOS была завершена. Помимо операционной системы в Microsoft разработали для нового компьютера IBM языки Бейсик, Паскаль и Ассемблер 8088, а затем компиляторы с Фортрана и Кобола. 12 августа 1981 года IBM официально объявила о выпуске IBM PC. Это была машина с процессором Intel 8088 (тактовая частота 4,77 МГц), дисководом для 5-дюймовых гибких дисков и 64 Кбайт оперативной памяти, не имевшая жесткого диска.
Операционная система от Microsoft не сразу заняла господствующее положение на IBM PC. Вскоре Digital Research выпустила 16-разрядную версию СР/М-86. В IBM согласились продавать ее вместе со своим персональным компьютером. На первых порах шансы обеих ОС в конкурентной борьбе казались равными. Уже завоевавшая широкую популярность у пользователей СР/М вполне могла рассчитывать на успех, ее поддерживали многие. Однако СР/М была почти в четыре раза дороже MS-DOS, кроме того, IBM оказала неявную поддержку разработке Microsoft, переименовав систему, которая поставлялась вместе с IBM PC, в PC DOS. К тому же Гейтс принял очень мудрое (как показали последующие события) решение продавать MS-DOS производителям компьютеров для того, чтобы они поставляли ее вместе со своим оборудованием. Килдалл же, наоборот, продавал свою систему только конечным пользователям (по крайней мере, вначале). Тем не менее, Microsoft понадобилось около трех лет, чтобы одержать окончательную победу над конкурентом.
К тому времени, когда IBM в 1983 году выпустила PC/AT на основе процессора Intel 80286, MS-DOS уже заняла лидирующие позиции, а CP/M доживала последние дни. Хотя первые версии MS-DOS были довольно примитивными, впоследствии в нее были добавлены многие дополнительные свойства и возможности, часто заимствованные из UNIX (Microsoft была хорошо знакома с Unix и даже некоторое время продавала свою версию Unix для микрокомпьютеров, под названием XENIX). На 80386 и 80486 использовалась уже в основном MS-DOS.
Следующее десятилетие ознаменовано постепенным захватом фирмой Microsoft всего рынка программного обеспечения для персональных компьютеров. Билл Гейтс сумел убедить IBM позволить продавать операционную систему отдельно от компьютера. Затем Microsoft выпустила текстовый процессор Word и электронную таблицу Excel. В ноябре 1983-го в Нью-Йорке Microsoft официально объявила о создании графического пользовательского интерфейса для DOS - Microsoft Windows. Однако реально он появился на свет лишь к ноябрю 1985 года.
MS-DOS, как и другие операционные системы для компьютеров того времени (в том числе CP/M и все ранние Unix-ы), были основаны на вводе пользователем команд с помощью клавиатуры. Между тем уже достаточно давно существовал графический интерфейс пользователя (Graphical User Interface - GUI), изобретенный еще в начале 1960-х годов Дугом Энгельбартом (Doug Engelbart) из Стенфордского исследовательского института (Stanford Research Institute). Этот интерфейс основан на использовании окон, меню, значков-иконок и мыши. Идеи Энгельбарта были реализованы в начале 1970-х годов в компьютерах Alto фирмы Xerox. Это была первая система, включавшая все основные элементы графического интерфейса: 3-кнопочную мышь, дисплей с возможностью управления отдельными пикселами, использование графических окон и возможность соединения с сетью Ethernet. Однако сотрудники Xerox не придавали GUI должного значения и этот способ общения пользователя с компьютером вначале не получил сколь-нибудь широкого распространения. Первым, кто осознал его потенциальные возможности, был Стив Джобс (Steve Jobs), один из основателей фирмы Apple. Во время визита в Xerox он увидел GUI и решил применить его в новом компьютере от Apple. Проект получил название Lisa, однако коммерческого успеха не имел, потому что компьютер получился очень дорогим. Однако следующая разработка Джобса, Apple Macintosh, имела колоссальный успех, и не только потому, что была много дешевле чем Lisa, но и потому, что была "дружественной к пользователю", то есть ориентирована на людей, которые не только ничего не знали о компьютере, но даже не имели намерения учиться чему-либо подобному.
Рис. 6. "window system X" от MIT |
В Интернет существует очень интересный ресурс, посвященный истории развития графического интерфейса пользователя. На этом сайте приведены изображения, иллюстрирующие все основные этапы развития GUI. Я не буду воспроизводить здесь все эти изображения, приведу только один рисунок (см. рис. 6), на котором изображен вид экрана системы "window system X", разработанной в MIT. Версии 1-6 этой системы были монохромными, запускались на дисплеях DEC VS100, соединенных с компьютерами VAX и VAXstations 1 and 2. Версия 11, выпущенная в июне 1984 года (именно она изображена на рис. 6) обладала более высокой производительностью и улучшенными графическими возможностями.
Хотя многие давние приверженцы UNIX, особенно опытные системные администраторы и программисты предпочитают использовать интерфейс командной строки (который часто называют консольным режимом), почти все версии Unix поддерживают графический интерфейс, который строится на основе стандарта X Window System (в просторечии — "иксы"), первоначальный вариант которого был разработан в 1987 году в Массачусетском технологическом институте. Начиная со второй версии этот стандарт поддерживался консорциумом X, созданным в январе 1988 г. с целью унификации графического интерфейса для ОС Unix. В настоящее время действует версия 11 выпуск 6 стандарта на графическую подсистему для UNIX-систем, которая кратко обозначается как X11R6. В 1997 году консорциум X преобразован в X Open Group. Впрочем, об X Window мы поговорим чуть позже, а пока вернемся к истории операционных систем фирмы Microsoft.
Большой коммерческий успех компьютеров Macintosh заставил Microsoft задуматься о возможности использования графического интерфейса в своих системах. В 1984 было объявлено о выходе программы Windows, однако ее первая версия появилась лишь в августе 1985 года, причем большого успеха не имела. Первая версия графического интерфейса от Microsoft, получившая широкое распространения, появилась только в 1990 году в виде Windows 3.0. Причем все эти версии Windows запускались "поверх" MS-DOS, то есть представляли собой только графическую оболочку для MS-DOS. И только в 1993 году появилась ОС Windows NT (где NT означало New Technology, то есть "новая технология"), которая была написана полностью заново.
Это была полностью 32-разрядная система. Ведущим разработчиком Windows NT был Дэвид Катлер (David Cutler), который до этого участвовал в разработке операционной системы VAX VMS, откуда он позаимствовал некоторые идеи при создании Windows NT. Microsoft ожидала, что уже первая версия Windows NT (ей сразу был присвоен номер 3.1) сможет полностью вытеснить MS-DOS и все другие версии Windows, поскольку по своим качествам эта система существенно превосходила своих предшественников, однако эти ожидания не оправдались. И только с появлением в 1995 году Windows 95, а в 1996 году Windows NT 4.0 Microsoft удалось занять господствующие позиции на персональных компьютерах и начать проникновение на рынок серверов в корпоративных сетях.
На замену Windows 95 на персональных компьютерах пришли Windows 98 и Windows ME (Millennium Edition), а место Windows NT 4.0 должна была занять версия 5 Windows NT, которая в 1999 году была переименована в Windows 2000. Предполагалось, что эта версия заменит все ранее выпускавшиеся версии Windows и будет использоваться как на персоналках, так и на серверах.
25 октября 2001 года Microsoft выпустила Windows XP (или Windows NT 5.1). После установки этой операционной системы, ее необходимо "активировать", для чего разработана довольно сложная процедура, в процессе которой необходимо сообщить фирме Microsoft о том, что ее ОС устанавливается на компьютер, и получить необходимые коды активации. Эта процедура прямо связывает возможность установки ОС Windows XP с существованием фирмы Microsoft.
В течение всей своей истории Microsoft придерживалась рыночной стратегии, прямо противоположной той, что проповедовали сторонники открытого кода. Все ее продукты были закрыты, исходные коды являлись секретом фирмы, конкурирующие продукты всеми возможными способами вытеснялись с рынка. В конце концов эта стратегия привела к тому, что Microsoft стала фактически монополистом если не на всем рынке программного обеспечения для персональных компьютеров, то, по крайней мере на рынке операционных систем для таких компьютеров и в области офисных приложений. У пользователей PC практически не осталось выбора. Компьютеры Mac от Apple были лучше, чем IBM PC, но имели такие цены, которые немногие могли себе позволить, а поэтому оставались недоступны для миллионов.