Добавил:
По своей натуре перфекционист. Поэтому люблю все аккуратно оформлять и упорядочивать, складывать по полочкам. Вот, не пропадать же добру, нажитому за четыре кропотливых семестра. Тут я выложил все мои ответы, курсовые, отчеты и некоторые ДЗ. Они могут вам помочь для получения зачета или сдачи экзамена. Если чего-то не нашли в папочках, то попытайте удачу в разделе НЕОТСОРТИРОВАННОЕ на моей страничке, там все 4 семестра разложены по папкам. ГРУППА КТ-43-15. Годы обучения 2015-2019. Коллекция будет пополняться. Что ж, удачки :З Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
112
Добавлен:
25.01.2018
Размер:
2.28 Mб
Скачать

шагом на пути получения признания Unix как стандартизованной среды стала разработка Денисом Ритчи библиотеки ввода-вывода stdio. Благодаря использованию этой библиотеки для компилятора С, программы для

Unix

стали

легко

переносимыми.

 

Широкое распространение Unix породило проблему несовместимости его многочисленных версий. Оче-

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

него

за

долгие

годы

его

существования

много

полезного.

 

Наибольшее влияние на унификацию версий Unix оказали такие стандарты как SVID фирмы AT&T,

POSIX, созданный под эгидой IEEE, и XPG4 консорциума X/Open. В этих стандартах сформулированы требования к интерфейсу между приложениями и ОС, что дает возможность приложениям успешно работать под управлением различных версий Unix.

Концепция разработки системы Unix заключалась в построении операционной системы из элементов, которые позволили бы пользователю создавать небольшие программные модули, выступающие в качестве конструкционных блоков при создании более сложных программ. Одним из таких элементов, с которым часто сталкиваются пользователи при работе с командным процессором shell, является возможность переназначения ввода-вывода. Говоря условно, процессы имеют доступ к трем файлам: они читают из файла стандартного ввода, записывают в файл стандартного вывода и выводят сообщения об ошибках в стандартный файл ошибок. Процессы, запускаемые с терминала, обычно используют терминал вместо всех этих трех файлов, однако каждый файл независимо от других может быть "переназначен".

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

могут

работать

вместе

с

существующими

программами.

 

Независимо от версии, общими для Unix чертами являются:

 

 

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

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

переносимость системы за счет написания ее основной части на языке C; разнообразные средства взаимодействия процессов, в том числе и через сеть; кэширование диска для уменьшения среднего времени доступа к файлам;

Хотя операционная система и большинство команд написаны на Си, система Unix поддерживает ряд других языков, таких как Фортран, Бейсик, Паскаль, Ада, Кобол, Лисп и Пролог. Система Unix может поддерживать любой язык программирования, для которого имеется компилятор или интерпретатор, и обеспечивать системный интерфейс, устанавливающий соответствие между пользовательскими запросами к операционной системе и набором запросов, принятых в Unix.

Практически все протоколы, на которых основан Internet, были разработаны под Unix, в частности стек протоколов TCP/IP придуман в университете Berkeley.

Защищенность Unix при правильном администрировании ни в чем не уступает ни Novell, ни Windows NT. Сервер под Unix хорош для квалифицированного (или желающего стать таковым) администратора, т.к. требует знания принципов функционирования происходящих в нем процессов. Реальная многозадачность и жесткое

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

Важным свойством Unix является его многотерминальность когда много пользователей могут одновременно запускать программы на одной Unix-машине. Своей масштабируемостью Unix из-за его многоплатформенности на порядок превосходит любую другую операционную систему.

Unix состоит из ядра с включенными в него драйверами и из утилит (внешних по отношению к ядру программ). Если надо изменить конфигурацию (добавить устройство, изменить порт или прерывание), то ядро пересобирают (перелинковывают) из обьектных модулей или (напр., во FreeBSD) из исходников. (Некоторые параметры пожно поправить без пересборки. Существуют также loadable kernel modules).

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

Управление выполнением процессов посредством их создания, завершения или приостановки и организации взаимодействия между ними; Планирование очередности предоставления выполняющимся процессам времени центрального процессора

(диспетчеризация). Процессы работают с центральным процессором в режиме разделения времени: центральный процессор выполняет процесс по завершении отсчитываемого ядром кванта времени процесс приостанавливается и ядро активизирует выполнение другого процесса. Позднее ядро запускает приостановленный процесс; Выделение выполняемому процессу оперативной памяти. Ядро операционной системы дает процессам воз-

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

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

дисководы и сетевое оборудование.

Выполнение ядром своих функций довольно очевидно. Например, оно узнает, что данный файл является обычным файлом или устройством, но скрывает это различие от пользовательских процессов. Так же оно, форматируя информацию файла для внутреннего хранения, защищает внутренний формат от пользовательских процессов, возвращая им неотформатированный поток байтов. Наконец, ядро реализует ряд необходимых функций по обеспечению выполнения процессов пользовательского уровня, за исключением функций, которые могут быть реализованы на самом пользовательском уровне. Например, ядро выполняет действия, необходимые shell'y как интерпретатору команд: оно позволяет процессору shell читать вводимые с терминала данные, динамически порождать процессы, синхронизировать выполнение процессов, открывать каналы и переадресовывать ввод-вывод. Пользователи могут разрабатывать свои версии командного процессора shell с тем, чтобы привести рабочую среду в соответствие со своими требованиями, не затрагивая других пользователей. Такие программы пользуются теми же услугами ядра, что и стандартный процессор shell.

Unix является изначально многопользовательской и многозадачной системой . В Unix используется вытесняющая многозадачность.

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

По критериям эффективности, использованным при разработке ОС, Unix относится к многозадачным системам разделения времени (в семействе Unix есть и системы реального времени, например, QNX).

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

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

Системы реального времени применяются для управления различными техническими объектами или технологическими процессами. Критерием эффективности для систем реального времени является их способность выдерживать заранее заданные интервалы времени между запуском программы и получением результата (управляющего воздействия). Это время называется временем реакции системы, а соответствующее свойство системы - реактивностью. Для этих систем мультипрограммная смесь представляет собой фиксированный набор заранее разработанных программ, а выбор программы на выполнение осуществляется исходя из текущего состояния объекта или в соответствии с расписанием плановых работ.

Среда Unix - это сочетание двух важнейших вещей: файлового дерева и интерфейса системных вызовов. Это дерево допускает бесконечное расширение возможностей, позволяя монтировать внешние дисковые области в любой точке файловой системы. Дерево помогает также в сборе логически связанных файлов, что делает систему более организованной. Интерфейс системных вызовов обеспечивает набор инструментов, из которых можно построить большинство других функций. Строгое следование этому стандар27.05.2006 3:08System V.

Файловая система UNIX характеризуется: иерархической структурой; согласованной обработкой массивов данных;

возможностью создания и удаления файлов; динамическим расширением файлов; защитой информации в файлах;

трактовкой периферийных устройств как файлов; Файловая система организована в виде дерева с одной исходной вершиной, которая называется корнем

(записывается: "/"); каждая вершина в древовидной структуре файловой системы, кроме листьев, является каталогом файлов, а файлы, соответствующие дочерним вершинам, являются либо каталогами, либо обычными файлами, либо файлами устройств.

Условно в семействе Unix можно выделить подсемейства System V и Berkeley. System V (читается "System Five") имеет несколько вариантов. Университет Berkeley славен не только разработкой BSD, но и большинства протоколов Internet. Впрочем, многие Unix'ы сочетают свойства обеих систем.

Наиболее распространённые системы семейства Unix:

 

 

 

Система

 

Платформа

 

 

 

SCO Unix (Santa Cruz Operation)

 

i*86

 

 

 

Novell UnixWare (куплена SCO)

 

i*86

 

 

 

Interactive Unix (куплен Sun)

 

i*86

 

 

 

Linux

 

i*86, Motorolla 680*0, DEC Alpha, IBM POWER-PC,

 

Sun Sparc

 

 

 

Семейство BSD: BSDI, FreeBSD, NetBSD, OpenBSD.

 

i*86, Acorn ARM, Sun Sparc

 

 

 

Solaris

 

Sun Sparc, i*86

 

 

 

AIX

 

IBM RS/6000 и AS/400 на POWER-PC

 

 

 

IRIX

 

SGI MIPS

 

 

 

 

 

 

Digital Unix (ранее Unix OSF/1)

 

DEC Alpha

 

 

 

HP-UX

 

Hewlett-Packard PA-RISC

 

 

 

ВРоссии наиболее популярны системы дистрибутивов Linux и FreeBSD. Работа в Linux или FreeBSD для опытного специалиста не представляет труда. Но для новичка Linux проще в освоении и удобнее в эксплуатации.

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

68.Семейство операционных систем Windows.

Microsoft Windows (/ˈwɪndoʊz/) — семейство проприетарных операционных систем компании Майкрософт (Microsoft). Операционные системы Windows работают на платформах x86, x86-64, IA-64, ARM. Существовали также версии для DEC Alpha, MIPS и PowerPC.

Существуют следующие версии Microsoft Windows:

1. Windows 1.0 (1985)

2.Windows 2.0 (1987)

3.Windows 3.0 (1990)

4.Windows 3.1 (1992)

5.Windows For Workgroups 3.1 (1992)

6.Windows NT 3.1 (1993)

7.Windows NT 3.5 (1994)

8.Windows NT 3.51 (1995)

9.Windows 95 (1995)

10.Windows NT 4.0 (1996)

11.Windows 98 (1998)

12.Windows 98 SE (1999)

13.Windows 2000 (2000)

14.Windows Me (2000)

15.Windows XP (2001)

16.Windows XP 64-bit Edition (2003)

17.Windows Server 2003 (2003)

18.Windows Fundamentals for Legacy PCs (2006)

19.Windows Vista (2007)

20.Windows Home Server (2007)

21.Windows Server 2008 (2008)

22.Windows 7 (дата выхода - 22 октября 2009 года)

23.Windows Server 2008 R2 (ранее известна как Windows Server 7)( дата выхода намечена на конец 2009 начала

2010)

24.Windows 8 (дата выхода намечена на 2012 год)

Рассмотрим подробнее каждую из перечисленных ОС.

Windows 1.01, выпущенная 20 ноября 1985 года, была первой попыткой Microsoft реализовать многозадачную операционную среду для IBM PC с графическим интерфейсом.

В отличие от последующих версий, Windows 1.0 предоставляла лишь ограниченную поддержку многозадачности для существующих программ MS-DOS, концентрируясь в основном на создании парадигмы среды для выполнения и взаимодействия приложений, а также стабильного API для будущих Windows-программ. Сегодня, спустя двадцать три года после выхода Windows 1.0, можно не только выполнять многие программы, созданные для этой версии, на современной системе Windows XP, но также и компилировать их исходный код в полнофункциональные «современные» приложения (с небольшими изменениями).

Windows 1.0 часто считают «оболочкой» для операционной системы MS-DOS (это определение часто применяется и к более поздним версиям Windows). На самом деле, Windows 1.0 запускалась из MS-DOS, её программы могли вызывать функции MS-DOS, а программы с графическим интерфейсом запускались из тех же исполняемых EXE-файлов, что и обычные программы MS-DOS. Однако исполняемые файлы Windows имели другой формат (NE — англ. new executable), который мог обрабатываться только Windows и который, например, позволял подгружать код и данные по запросу. Приложения должны были управлять памятью только с помощью собственной системы управления распределением памяти Windows, которая позволяла использовать виртуальную память.

Определение Windows 1.0 как «оболочки для DOS» исходит из того факта, что она была создана лишь как графическая среда для работы приложений, а не как полнофункциональная ОС. Тем не менее Windows 1.0 включала собственные драйверы для видеокарт, мышей, клавиатур, принтеров и последовательных портов. Предполагалось, что приложения будут вызывать лишь API, построенные на основе этих драйверов. Учитывая, что поддержка графики и периферийных устройств в MS-DOS крайне ограничена, приложениям приходилось обращаться непосредственно к аппаратному обеспечению (или, в некоторых случаях, к BIOS), чтобы выполнить необходимые действия. Таким образом, Windows 1.0 была не просто оболочкой для MS-DOS, а дополняла и частично заменяла не представленные в MS-DOS возможности. Уровень замещения MS-DOS повышался в последующих версиях Windows.

Первая выпущенная версия Windows носила номер 1.01. Версия 1.0 не была выпущена из-за серьезной ошибки, которая предотвратила выход этой версии.

Версия 1.02, выпущенная в мае 1986 года, была международной и имела локализации для разных европейских языков.

Версия 1.03, выпущенная в августе 1986 года, предназначалась только для США и содержала улучшения, которые делали её более похожей на международный выпуск. Она включала в себя драйверы для европейских клавиатур и дополнительные драйверы для экрана и принтеров.

Версия 1.04, выпущенная в апреле 1987 года, добавляла поддержку графических адаптеров VGA, появившихся в новых компьютерах серии PS/2 от IBM. В то же самое время Microsoft совместно с IBM анонсировали операционную систему OS/2 с графическим интерфейсом — Presentation Manager, которая, по замыслу компаний, должна была со временем заменить как MS-DOS, так и Windows.

Windows 1.0 была заменена выпущенной в ноябре 1987 года Windows 2.0.

Windows 2.x

Релиз состоялся 1 ноября 1987 года.

Вместо мозаичного размещения окон, который был в в Windows 1.x , в Windows 2.x реализована система перекрывающихся окон. Кроме того, используются достоинства защищенного режима процессора 80286 и более совершенных, что позволяет программам выйти за пределы объема основной памяти DOS - 640 Кбайт. В июне 1988 г. выходит версия 2.1, переименованная в Windows 286. Также 9 декабря 1987 г. выпускается Windows 386 - редакция Windows 2.0, оптимизированная для новейшего ЦП фирмы Intel. Она оказывает некоторое влияние на рынок, но в основном благодаря возможности запускать несколько DOS-программ в <виртуальных машинах> ЦП 386; в ней заложен фундамент большинства будущих функций Windows 3.0.

Windows 3.x

Windows 3.x — общее название семейства операционных систем компании Майкрософт, выпущенных с 1990 по 1994 год. Первой широко распространённой версией Microsoft Windows стала 3.0, позволив Майкрософт соревноваться с Macintosh и Commodore Amiga в области операционных систем с графическим интерфейсом. Windows 3.0 была выпущена 22 мая 1990 года и имела значительно обновлённый пользовательский интерфейс, а также технические усовершенствования, позволявшие использовать возможности процессоров Intel 80286 и 80386 по управлению памятью. Текстовые программы, созданные для MS-DOS, могли быть запущены в окне (эта возможность была ранее доступна в более ограниченном виде в Windows/386 2.1). Это делало систему пригодной к использованию в качестве простой многозадачной базы для старых программ; однако, для домашних компьютеров эта функция не имела большого значения, так как большинство игр и развлекательных приложений по-прежнему требовали непосредственный доступ к DOS.

Средство MS-DOS Executive, использовавшееся ранее для запуска программ и управления файлами, было заменено средствами Диспетчер Программ и Диспетчер Файлов, упростившие эти действия. Тем не менее, MSDOS Executive по-прежнему поставлялась с системой в качестве альтернативного пользовательского интерфейса. Панель Управления, ранее представлявшая из себя обыкновенный апплет, была переделана и стала походить больше на свой аналог в операционной системе Mac OS. В ней были централизованы системные настройки, включая ограниченное управление цветовой схемой интерфейса. В поставку было включено несколько простых приложений, например, текстовый редактор Блокнот и текстовый процессор Write (оба они были унаследованы от предыдущих версий Windows), средство записи макрокоманд (новая возможность Windows 3.0; впоследствии была удалена), и калькулятор (также из предыдущих версий). Более старая игра Реверси была дополнена карточным пасьянсом «Косынка».

Windows 3.0 была последней версией Windows, которая, по заявлениям Microsoft, поддерживала полную совместимость со старыми приложениями Windows.

Расширения для мультимедиа были выпущены осенью 1991 года для поддержки приводов компакт-дисков и звуковых карт, по мере того, как они становились все более распространёнными. Эти расширения были выпущены для OEM-поставщиков, в основном для производителей приводов компакт-дисков и звуковых карт. Они добавляли в систему Windows 3.0 возможность простого ввода-вывода звука и проигрыватель аудио компактдисков. Новые возможности расширений для мультимедиа были недоступны при работе в реальном режиме. Впоследствии, многие функции этих расширений были включены в Windows 3.1.

Windows 3.1 (изначально носившая кодовое имя Janus), выпущенная 18 марта 1992 года, была расширением Windows 3.0. Она включала систему шрифтов TrueType (и предустановленный набор довольно качественных шрифтов), что впервые сделало Windows серьёзной платформой для настольных издательских систем. Аналогичные возможности можно было получить в Windows 3.0 при помощи приложения Adobe Type Manager. Эта версия Windows также включала простую антивирусную программу Microsoft Anti-Virus for Windows, которая позже стала известна тем, что определяла программу установки Windows 95 как содержащую компьютерный вирус. Начиная с этой версии системы Windows поддерживают 32-разрядный доступ к жёсткому диску.

Windows 3.1 была разработана таким образом, чтобы иметь максимальный уровень обратной совместимости с более старыми платформами Windows. Как и версия 3.0, Windows 3.1 имела Диспетчер Файлов и Диспетчер Программ.

Была также выпущена специальная версия, названная Windows 3.1 для Центральной и Восточной Европы, которая поддерживала кириллицу и имела шрифты с диакритическими знаками.

Встроенная поддержка сетей появилась в версии Windows для рабочих групп 3.1 (Windows for Workgroups 3.1), расширенной версии Windows 3.1. Она включала в себя поддержку SMB для общего доступа к файлам по протоколам NetBEUI и/или IPX, а также содержала компьютерную игру «Червы» (Hearts) и VSHARE.386, драйвер

виртуального устройства для программы SHARE.EXE. Windows для рабочих групп 3.11 (Windows for Workgroups 3.11) поддерживала 32-разрядный доступ к файлам, полные 32-разрядные сетевые перенаправители и файловый кэш VCACHE.386. Кроме того, в версии 3.11 была убрана поддержка стандартного режима и игра «Реверси». Поддержка протоколов TCP/IP в Windows 3.x основывалась на отдельных пакетах от третьих сторон (например, Winsock). Дополнение от Microsoft (с кодовым именем Snowball) также предоставляло поддержку TCP/IP в Windows для рабочих групп, но этот пакет не стал широко доступным.

Ограниченная совместимость с новым 32-разрядным API Win32, который использовался в Windows NT, предоставлялась дополнительным пакетом Win32s.

Windows 3.2 была версией только для китайского языка.

Со временем, Windows 3.x была заменена Windows 95, Windows 98 и более поздними версиями, которые интегрировали компоненты MS-DOS и Windows в единый продукт.

В дальнейшем Windows 3.x нашла применение во встроенных системах. 1 ноября 2008 Microsoft прекратила выдачу лицензий на её использование.

Windows NT

Windows NT (в просторечии просто NT) — линейка операционных систем (ОС) производства корпорации Microsoft и название первых версий ОС.

Windows NT была разработана «с нуля», развивалась отдельно от других ОС семейства Windows (Windows 3.x

иWindows 9x) и, в отличие от них, позиционировалась как надёжное решение для рабочих станций (Windows NT Workstation) и серверов (Windows NT Server). Windows NT дала начало семейству операционных систем, в

которое входят Windows 2000, Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008,

Windows 7.

Разработка Windows NT под рабочим названием NT OS/2 была начата в ноябре 1988 года группой специалистов во главе с Дэвидом Катлером (David Cutler), которая перешла в Microsoft из DEC, где они разрабатывали VAX и VMS.[1] Работа шла параллельно с разработкой фирмой IBM собственной ОС, OS/2 2.0, которая окончательно вышла только в апреле 1992 года. Одновременно с этим фирма Microsoft продолжала разрабатывать свои ОС семейства DOS и Windows, отличающиеся меньшими требованиями к ресурсам компьютера, чем IBM OS/2. После того, как в мае 1990 года была выпущена Windows 3.0, Microsoft решила добавить в NT OS/2 программный интерфейс (API), совместимый с Windows API. Это решение вызвало серьёзные трения между фирмами Майкрософт и IBM, которые закончилась разрывом совместной работы. IBM продолжила разработку OS/2 самостоятельно, а Майкрософт стала работать над системой, которая была в итоге выпущена под названием Windows NT. Хотя эта система не принесла немедленной популярности, подобно DOS или Windows, Windows NT оказалась существенно более успешной, чем OS/2.

Нужно отметить, что в качестве программных интерфейсов ОС NT изначально планировались API OS/2 и затем POSIX, поддержка Windows API была добавлена в последнюю очередь. Кроме того, в качестве аппаратной платформы для NT изначально планировались Intel i860 и затем MIPS, поддержка Intel x86 также была добавлена позднее. Затем, в процессе эволюции этой ОС, исчезла поддержка обоих изначально запланированных программных интерфейсов и обеих изначально запланированных аппаратных платформ. Для i860 даже не было ни одной релизной версии этой ОС, хотя именно от кодового названия этого процессора, N10, происходит название самой ОС NT.[2][3] Ныне Microsoft расшифровывает абревиатуру NT как New Technology. А в качестве альтернативы POSIX-подсистеме Microsoft стала предлагать пакет Сервисы Microsoft Windows для UNIX. Переносимость NT была одной из её первоочередных задач. Именно поэтому разработка этой ОС изначально велась для процессора i860, хотя двоичная совместимость с OS/2, бывшая одним из условий проекта NT OS/2, в любом случае потребовала бы создания версии NT для x86, либо включения в неё эмуляции этой платформы. Количество платформ, для которых существовали релизные версии ОС семейства Windows NT, впечатляет:

кроме названных MIPS и Intel x86, сюда входят PowerPC, DEC Alpha, Itanium и AMD x86-64. Независимыми производителями компьютерных систем были также разработаны версии Windows NT для архитектур Clipper (англ.) и SPARC; однако эти версии не были выпущены как самостоятельные программные продукты. В качестве ОС высокой переносимости при разработке NT были взяты за пример ОС Unix и Mach.

Для разработки ОС NT фирма Microsoft пригласила группу специалистов из компании DEC во главе с Дэвидом Катлером (англ.), обладающую опытом создания многозадачных операционных систем, таких как VAX/VMS

иRSX-11 (англ.). Некоторое сходство, отмеченное между внутренними архитектурами Windows NT и ОС семейства VMS, дало основания обвинить вновь принятых сотрудников Microsoft в краже интеллектуальной собственности DEC. Образовавшийся конфликт был разрешён мирным путём: DEC признала собственность Microsoft на технологии, лежащие в основе Windows NT, а Microsoft создавала и поддерживала версию

Windows NT для архитектуры DEC Alpha.

Несмотря на общие корни, совместимость Windows NT и OS/2 уменьшалась с каждым новым выпуском этой ОС. Поддержка API OS/2 2.0, хотя планировалась в NT, так и не была завершена; в Windows NT 4.0 была

удалена поддержка файловой системы HPFS, а в Windows XP была удалена подсистема поддержки программ для OS/2 1.x.

Подсистема пользовательского интерфейса в Windows NT реализует оконный интерфейс, подобный интерфейсу предыдущих версий Windows. Двумя типами объектов этой подсистемы, отсутствовавшими в 16-битных версиях Windows и в Windows 9x, являются оконные станции и рабочие столы. Оконная станция соответствует одному сеансу пользователя Windows NT — например, при подключении через службу удалённого рабочего стола создаётся новая оконная станция. Каждый запущенный процесс принадлежит к одной из оконных станций; службы, кроме помеченных как способные взаимодействовать с рабочим столом, запускаются в отдельных, невидимых оконных станциях.

Каждая оконная станция имеет собственный буфер обмена, набор глобальных атомов (используемых для операций DDE), и набор рабочих столов. Рабочий стол является контекстом всех глобальных операций подсистемы пользовательского интерфейса, таких как установка хуков и широковещательная рассылка сообщений. Каждый запущенный поток принадлежит к одному из рабочих столов — тому, где расположены обслуживаемые им окна; в частности, один поток не может создать несколько окон, принадлежащих к различным рабочим столам. Один из рабочих столов может быть активным (видимым пользователю и способным реагировать на его действия), остальные рабочие столы спрятаны. Возможность создать для одного сеанса работы несколько рабочих столов и переключаться между ними до настоящего времени не предоставлялась стандартными средствами пользовательского интерфейса Windows, хотя существуют сторонние программы, дающие доступ к этой функциональности.

Оконными станциями и рабочими столами исчерпываются объекты подсистемы пользовательского интерфейса Windows NT, которым могут быть назначены права доступа. Оставшиеся типы объектов — окна и меню

— предоставляют полный доступ любому процессу, который находится с ними в одной оконной станции. Поэтому службы Windows NT по умолчанию запускаются в отдельных оконных станциях: они работают с повышенными привилегиями, и возможность процессов пользователя неограниченно манипулировать окнами служб могла бы привести к сбоям и/или проблемам безопасности.

Для прикладных программ системой Windows NT предоставляется несколько наборов API. Самый основной из них — так называемый «родной» API (NT Native API), реализованный в динамически подключаемой библиотеке ntdll и состоящий из двух частей: системные вызовы ядра NT (функции с префиксами Nt и Zw, передающие выполнение функциям ядра ntoskrnl с теми же названиями) и функции, реализованные в пользовательском режиме (с префиксом Rtl). Часть функций второй группы используют внутри себя системные вызовы; остальные целиком состоят из непривилегированного кода, и могут вызываться не только из кода пользовательского режима, но и из драйверов. Кроме функций Native API, в ntdll также включены функции стандартной библиотеки языка Си.

Официальная документация на Native API весьма скудна, но сообществам энтузиастов удалось методом проб и ошибок собрать достаточно обширные сведения об этом интерфейсе. В частности, в феврале 2000 года опубликована книга Гэри Неббета «Справочник по базовым функциям API Windows NT/2000» (ISBN 1-57870-199- 6); в 2002 году она была переведена на русский язык (ISBN 5-8459-0238-X). Источником информации о Native API может служить Windows DDK, где описаны некоторые функции ядра, доступные посредством Native API, а также изучение кода Windows (обратный инжиниринг) — посредством дизассемблирования, либо используя исходные тексты Windows 2000, ставшие доступными в результате утечки, либо используя исходные тексты

Windows 2003, доступные в рамках программы Windows Research Kernel.

Программы, выполняющиеся до загрузки подсистем, обеспечивающих работу остальных API ОС Windows NT, ограничены использованием Native API. Например, программа autochk, проверяющая диски при загрузке ОС после некорректного завершения работы, использует только Native API.

Чаще всего прикладными программами для Windows NT используется Win32 API — интерфейс, созданный на основе API ОС Windows 3.1, и позволяющий перекомпилировать существующие программы для 16-битных версий Windows с минимальными изменениями исходного кода. Совместимость Win32 API и 16-битного Windows API настолько велика, что 32-битные и 16-битные приложения могут свободно обмениваться сообщениями, работать с окнами друг друга и т. д. Кроме поддержки функций существовавшего Windows API, в Win32 API был также добавлен ряд новых возможностей, в том числе поддержка консольных программ, многопоточности, и объектов синхронизации, таких как мутексы и семафоры. Документация на Win32 API входит в состав Microsoft Platform SDK (англ.) и доступна на веб-сайте.[4]

Библиотеки поддержки Win32 API в основном названы так же, как системные библиотеки Windows 3.x, с до-

бавлением суффикса 32: это библиотеки kernel32, advapi32, gdi32, user32, comctl32, comdlg32, shell32 и ряд других. Функции Win32 API могут либо самостоятельно реализовывать требуемую функциональность в пользовательском режиме, либо вызывать описанные выше функции Native API, либо обращаться к подсистеме csrss посредством механизма LPC (англ.), либо осуществлять системный вызов в библиотеку win32k, реализующую необходимую для Win32 API поддержку в режиме ядра. Четыре перечисленных варианта могут также

комбинироваться в любом сочетании: например, функция Win32 API WriteFile обращается к функции Native API NtWriteFile для записи в дисковый файл, и вызывает соответствующую функцию csrss для вывода в консоль.

Поддержка Win32 API включена в семейство ОС Windows 9x; кроме того, она может быть добавлена в Windows 3.1x установкой пакета Win32s. Для облегчения переноса существующих Windows-приложений, использующих для представления строк MBCS-кодировки, все функции Win32 API, принимающие параметрами строки, были созданы в двух версиях: функции с суффиксом A (ANSI) принимают MBCS-строки, а функции с суффиксом W (wide) принимают строки в кодировке Unicode. В Win32s и Windows 9x поддерживаются только A- функции, тогда как в Windows NT, где все строки внутри ОС хранятся исключительно в Юникоде, каждая A- фунция просто преобразует свои строковые параметры в Юникод и вызывает W-версию той же функции. Когда имя функции в исходном тексте программы указано без суффикса, использование A- либо W-версии этой функции определяется опциями компиляции. При этом важно отметить, что большинство новых функций, появившихся в Windows 2000 или более поздних ОС семейства Windows NT, существуют только в Unicode-версии, потому что задача обеспечения совместимости со старыми программами и с ОС Windows 9x уже не стоит так остро, как раньше

Вотличие от большинства «свободных» Unix-подобных ОС, Windows NT сертифицирована институтом NIST на совместимость со стандартом POSIX.1, и даже с более строгим стандартом FIPS 151-2. Библиотекой psxdll экспортируются стандартные функции POSIX, а также некоторые функции Native API, не имеющие аналогов в POSIX — например, для работы с кучей, со структурными исключениями, с кодировкой Unicode. Внутри этих функций используются как Native API, так и LPC-вызовы в подсистему psxss, являющуюся обычным Win32-процессом. Для загрузки этой подсистемы и выполнения POSIX-программы используется консольная программа-оболочка posix. Поддержка POSIX, включённая в Windows NT, не содержит расширений для работы с графикой или многопоточными приложениями.

Для выполнения 16-битных программ, написанных для OS/2 1.x, в состав Windows NT включены две системных библиотеки OS/2 (doscalls и netapi) и консольная программа-эмулятор os2, которая загружает и использует посредством LPC-вызовов подсистемы os2srv и os2ss. Остальные системные библиотеки OS/2, кроме двух названных (kbdcalls, mailslot, moncalls, nampipes, quecalls, viocalls и ещё десяток), не хранятся как отдельные файлы, а эмулируются. Программы, написанные для OS/2 2.0 и выше, а также оконные программы и программы, напрямую работающие с устройствами компьютера, в том числе драйвера, системой Windows NT не поддерживаются.

Обе эти подсистемы, необязательные для работы большинства приложений, были удалены в Windows XP и последующих выпусках Windows. При помощи манипуляций с реестром их можно было отключить и в предыдущих версиях Windows NT, что рекомендовалось специалистами по компьютерной безопасности в целях сокращения поверхности атаки компьютерной системы.

Чтобы обеспечить двоичную совместимость с существующими программами для предыдущих семейств ОС от Microsoft, в Windows NT была добавлена программа-эмулятор ntvdm, реализующая VDM (виртуальную DOSмашину), внутри которой может выполняться программа для DOS. Для каждой выполняемой DOS-программы создаётся собственная VDM, тогда как несколько 16-битных Windows-программ могут выполняться в отдельных потоках внутри одной VDM, которая в этом случае играет роль подсистемы. Для того, чтобы внутри VDM можно было выполнять программы для Windows, в неё сначала должна быть загружена программа wowexec, устанавливающая связь VDM с платформой WOW («Windows on Win32»), позволяющей использовать 16-бит- ные приложения для Windows наравне с 32-битными. Сама программа-эмулятор ntvdm выполняется внутри подсистемы Win32, что позволяет Win32-программам обращаться к окнам DOS-программ как к обычным консольным окнам, а к окнам Win16-программ — как к обычным графическим окнам.

Ещё одна технология обеспечения двоичной совместимости, реализованная в Windows NT — это thunks, которые позволяют 32-битным программам пользоваться 16-битными DLL-библиотеками (для Windows или OS/2), и наоборот. Thunks для Win16 реализованы в библиотеках wow32 (32-битные точки входа) и krnl386 (16-бит- ные точки входа); thunks для OS/2 — в библиотеке doscalls (16-битные точки входа). К 16-битным системным библиотекам, включённым в состав Windows NT для использования технологией WOW, относятся krnl386, gdi, user, commctrl, commdlg, shell и др. Поддержка DOS-программ виртуальной DOS-машиной системы Windows NT не ограничена эмуляцией реального режима процессора x86: поддерживается интерфейс DPMI, позволяющий DOS-программам обращаться к расширенной памяти. Однако поддержка программ для DOS и Win16 в Windows NT ограничена требованиями безопасности: программы, напрямую работающие с устройствами компьютера, в том числе драйвера, не поддерживаются.

Всвязи с аппаратными ограничениями 64-битных платформ, поддержка VDM и WOW была исключена из 64битных версий Windows, и запуск 16-битных программ на них невозможен. Основным API этих версий Windows NT является 64-битная версия Win32 API; для запуска 32-битных программ используется технология WOW64, аналогичная традиционной WOW.

Как уже было отмечено, создание версии NT для x86 требовалось для обеспечения совместимости с OS/2, — однако для того, чтобы убедиться в переносимости создаваемого кода, разработка NT началась с версий для RISC-архитектур, и только потом была добавлена поддержка x86. Изначально разработка x86-версии Windows NT была ориентирована на процессор 80486, но к моменту выпуска Windows NT 3.1 была также добавлена поддержка 80386. Последней версией, поддерживающей i386, была Windows NT 3.51, а начиная с Windows 2000, прекращена также поддержка i486.

Процессор i860, для которого велась начальная разработка ОС NT, не получил ко времени завершения работ над Windows NT той поддержки производителями компьютеров, на которую рассчитывали Intel и Microsoft. В результате тремя платформами, поддержка которых была включена в Windows NT 3.1, стали x86, Alpha и MIPS. В выпусках Windows NT 3.x поддержка этих платформ сохранялась, пополнившись в Windows NT 3.51 также архитектурой PReP (англ.) на основе процессора PowerPC. Однако Windows NT 3.51 не была совместима с компьютерами Macintosh с тем же процессором; фактически, поддерживались только клоны IBM PC с процессором PowerPC вместо x86. Такие компьютеры выпускались в основном фирмами-создателями PowerPC — IBM и Motorola.

Первый выпуск Windows NT 4 поддерживал четыре платформы (x86, Alpha, MIPS и PowerPC), но поддержка менее распространённых платформ сокращалась по мере выхода пакетов обновления: из SP1 была удалена поддержка MIPS, из SP3 — поддержка PowerPC. Последними выпусками Windows NT 4 поддерживались только x86 и Alpha; хотя поддержка Alpha планировалась к включению в Windows 2000, она была исключена из версии RC2.

Windows 95

Windows 95 (кодовое имя Chicago) — гибридная 16- и 32-разрядная графическая операционная система, выпущенная 24 августа 1995 года корпорацией Microsoft. Русская версия поступила в продажу 10 ноября 1995 года. Это первая система семейства Windows, интерфейс которой используется во всех последующих версиях Windows: именно в ней появились такие элементы графического интерфейса, как рабочий стол со значками, панель задач и меню «Пуск».

Windows 95 — результат объединения продуктов MS-DOS и Windows, которые ранее распространялись отдельно. Windows 95 является третьей (после Windows для рабочих групп 3.11 и Windows NT) системой Windows, лишённой поддержки стандартного и реального режимов работы x86-процессоров и требующей процессор уровня Intel 80386 и выше в защищённом режиме. Windows 95 содержит значительные улучшения графического интерфейса и внутреннего устройства системы, включая рабочий стол и меню «Пуск», поддержку длинных (до 256 знаков) имён файлов и систему «plug and play».

Основным нововведением в Windows 95 стала возможность выполнять 32-разрядные приложения на основе API Win32. Впервые эта возможность появилась в Windows NT, однако системы этого семейства имели более высокие требования к аппаратному обеспечению и потому не могли сравниться по популярности с «обычной» серией Windows (которая до выхода Windows 95 была представлена семейством Windows 3.x).

В Windows 95 была реализована лишь часть возможностей Win32, доступных в Windows NT. Однако этого было достаточно для того, чтобы многие приложения, разработанные на основе API Win32, смогли работать как в среде Windows NT (которая позиционировалась как система для деловых применений), так и в среде Windows 95 (ориентированной на потребительский рынок). Это способствовало популярности Windows 95.

Появление 32-разрядного доступа к файлам в Windows для рабочих групп 3.11 означало, что 16-разрядный реальный режим MS-DOS более не использовался для работы с файлами во время выполнения Windows, а внедрение 32-разрядного доступа к диску в Windows 3.1 позволяло избежать использования BIOS для управления жёсткими дисками. В результате, роль MS-DOS фактически свелась к тому, чтобы загружать ядро Windows, работающее в защищённом режиме. DOS могла по-прежнему использоваться для работы старых драйверов устройств в целях совместимости, но Microsoft рекомендовала не использовать их, поскольку это мешало правильной многозадачности и уменьшало стабильность системы. С помощью Панели управления пользователь мог определить, какие компоненты MS-DOS всё ещё использовались в его системе; оптимальная производительность достигалась в том случае, если таковых не было. Ядро Windows по-прежнему использовало старые вызовы «в стиле MS-DOS» в так называемом режиме защиты от сбоев, но этот режим использовался лишь для исправления неполадок при загрузке «родных» драйверов защищённого режима.

32-разрядный доступ к файлам был необходим для длинных имён файлов — функции, доступной в Windows 95 благодаря использованию файловой системы VFAT (варианта FAT16). Эта возможность была доступна как программам Windows, так и программам MS-DOS, запущенным из Windows (их было необходимо немного подправить, так как доступ к файлам по длинным именам требовал использования большего буфера для пути и, как следствие, других системных вызовов). Другие DOS-совместимые операционные системы требовали обновления для того, чтобы пользоваться длинными именами файлов. Использование старых версий утилит DOS для управления файлами могло повредить длинные имена файлов при их копировании и перемещении. В процессе автоматического обновления Windows 3.1 до Windows 95 утилиты DOS и третьих сторон, которые

могли повредить длинные имена файлов, обнаруживались и отключались. Для тех случаев, когда возникала необходимость использовать старые дисковые утилиты, не воспринимавшие длинные имена файлов (например, программу defrag из пакета MS-DOS 6.22), была предоставлена программа LFNBACK для сохранения и восстановления длинных имён. Программа расположена в каталоге \ADMIN\APPTOOLS\LFNBACK компакт-

диска Windows 95.

Графический интерфейс Windows 95 стал значительно более мощным и простым в использовании, в результате чего соперничество на рынке настольных операционных систем завершилось победой Microsoft. Windows 95 стала несомненным успехом на рынке, и в течение года-двух после её выпуска стала самой успешной из всех когда-либо созданных операционных систем. Windows 95 сделала такие функции графического интерфейса, как кнопка «Пуск» и панель задач, доступными массовому потребителю (хотя подобные функции были реализованы и ранее — в операционных системах Arthur и RISC OS — рынок этих систем был крайне ограниченным). Эти функции стали неизменным атрибутом всех последующих версий Windows, и впоследствии копировались в других графических интерфейсах.

Реализованная в Windows 95 система «plug and play» (дословно — «подключил и играй») автоматически устанавливает драйвера устройств, присваивает им номера прерываний и т. д. — раньше это приходилось делать вручную. В свою очередь, появление Windows 95 привело к появлению устройств, специально спроектированных под «plug and play» — например, они неактивны, пока система не присвоит им адреса и прерывания. На ранней стадии внедрения случались многочисленные ошибки распознавания оборудования, поэтому «plug and play» часто в шутку называли «plug and pray» — дословно «подключил и молись».

Выпуск Windows 95 сопровождался масштабной рекламной кампанией (по многим оценкам — крупнейшей в истории ПО), включая рекламный ролик с песней «Start Me Up» (намёк на кнопку «Пуск» — «Start») в исполнении Rolling Stones. Кампания также включала в себя рассказы людей, стоявших у магазинов в очереди, чтобы приобрести копию системы; были даже сказки о том, как люди, не имевшие компьютеров, покупали Windows 95 просто из-за всей этой шумихи, не зная даже, что вообще такое Windows.

Первоначально Windows 95 продавалась на 13 дискетах в специальном формате DMF (Distribution Media Format, ёмкость 1,68 Мб) или на компакт-дисках (CD-версия включала много полезных дополнительных файлов). Некоторые разработки, которые не удалось завершить к моменту официального выхода Windows 95, были потом включены в Microsoft Plus! (например, Internet Explorer).

В первых версиях Windows 95 не было встроенной поддержки работы с Интернетом, но зато на рабочем столе был значок «Microsoft Network» — впоследствии его убрали.

Windows 95 была заменена другими операционными системами линейки Windows 9x — Windows 98, Windows

98 SE и Windows ME. Ядро Windows NT, используемое в Windows 2000, Windows XP и Windows Vista, гораздо более устойчиво и функционально по сравнению со своими предшественниками, использовавшимися в линейке Windows 9x, но плохо поддерживает старые игры и приложения для MS-DOS. К сегодняшнему дню все операционные системы линейки Windows 9x, особенно Windows 95, почти вышли из употребления. 31 декабря

2002 года Microsoft закончила поддержку Windows 95.

Windows 98

Windows 98 (кодовое имя Memphis) — графическая операционная система, выпущенная корпорацией Майкрософт 25 июня 1998 года.

По сути, данная операционная система — это обновлённая версия Windows 95, по-прежнему являющаяся гибридным 16/32-разрядным продуктом, основанном на MS-DOS. Улучшениям подверглась поддержка AGP, доработаны драйверы USB, добавлена поддержка работы с несколькими мониторами и поддержка WebTV. Как и в Windows 95 OSR 2.5, в интерфейс системы интегрирован Internet Explorer 4 (функция Active Desktop).

Внутренний номер «первой редакции» Windows 98 — 4.10.1998, SE - 4.10.2222.

Системные требования для Windows 98: процессор 486DX/66 MHz или лучше, 16 Мб ОЗУ и по крайней мере 195 Мб свободного дискового пространства при стандартной установке.

Windows 98 Second Edition (Windows 98 SE) была выпущена 5 мая 1999 года. Обновлённая версия включает множество исправлений, Internet Explorer 4 заменён на значительно более быстрый и лёгкий Internet Explorer 5, появилась функция Internet Connection Sharing. Также добавлен MS NetMeeting 3 и поддержка проигрывания

DVD.

Системные требования к ОЗУ для Windows 98 SE увеличились до 24 Мб.

Майкрософт планировала прекратить поддержку Windows 98 16 июля 2004 года. Однако, по причине невероятной популярности этой операционной системы, поддержка была продлена до 30 июля 2006 года.

Windows 2000

Windows 2000 (также называемая Win2k, W2k или Windows NT 5.0, кодовое название Cairo) — это операционная система семейства Windows NT компании Microsoft, предназначенная для работы на компьютерах с 32битными процессорами (с архитектурой совместимой с Intel IA-32).