Windows NT 3.1

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Microsoft Windows NT 3.1
Изображение логотипа
Рабочий стол Windows NT 3.1
Рабочий стол Windows NT 3.1
Разработчик Microsoft
Семейство ОС Windows NT
Исходный код Закрытый
Первый выпуск 27 июля1993 года[1]
Последняя версия 3.1 (Build 528: Service Pack 3)[1](10 ноября1994 года)
Поддерживаемые платформы IA-32,Alpha,MIPS
Типядра Гибридное
Лицензия Microsoft EULA
Состояние Историческое: Поддержка прекращена31 декабря2001 года[2][3]
Предыдущая Windows 3.1[d]
Следующая Windows NT 3.5

Windows NT 3.1— первая операционная система линейкиMicrosoftWindows NTдля серверов и корпоративных рабочих станций, выпущенная 27 июля 1993 года. Номер версии был выбран таким образом, чтобы соответствовать последней версии оболочкиWindows 3.1,имевшей похожий интерфейс пользователя. Было доступно две редакции NT 3.1: Windows NT 3.1 и Windows NT Advanced Server. Следующей операционной системой в линейке сталаWindows NT 3.5,выпущенная в сентябре 1994 года.

NT 3.1 поддерживала процессоры архитектур Intelx86,DEC AlphaиMIPS R4000.

Основные функции ядра операционной системы, представленные в NT 3.1, используются в 32-битных версиях современных операционных систем семейства Windows, а в расширенном виде присутствуют и в 64-битных версиях. Также в NT 3.1 впервые появилась поддержка файловой системыNTFS.


Разработка Windows NT началась в ноябре 1988 года, после того, как Microsoft наняла коллектив разработчиков изDigital Equipment Corporation(DEC) во главе сДэйвом Катлером.Многие основы дизайна отражали ранние опыты DEC сVMSиRSX-11.Операционная система была предназначена для работы на архитектурах с разнымисистемами команд,а также на различных аппаратных платформах, принадлежащих к каждой из архитектур. Зависящие от оборудования части системы были в основном скрыты от остальной системы модулем режима ядра, получившим названиеHAL.

Windows NT изначально должна была быть выпущена какOS/23.0, третья версия операционной системы, совместно разрабатывавшейся IBM и Microsoft. После выпуска пользовавшейся большим успехом новой версии пользовательской оболочки для MS-DOSWindows 3.0в мае 1990 года Microsoft решила изменить основнойAPIдля ещё не выпущенной NT OS/2: вместо расширенного API OS/2 стал использоваться расширенныйWindows API.Это решение вызвало напряжённость в отношениях между Microsoft и IBM, в результате которой сотрудничество распалось. IBM продолжила разрабатывать OS/2, а Microsoft продолжила работу над Windows NT.

Первая публичная демонстрация Windows NT, тогда называвшейсяWindows Advanced Server for LAN Manager,была представлена на конференции разработчиков в августе 1991 года[4],а формальное объявление продукта состоялось весной 1993 года на выставкеCOMDEXвАтланте,Джорджия.

Интерфейсы программирования приложенийв Windows NT представляют собой подсистемы, работающие поверх недокументированногоNative API;именно это позволило перейти к Windows API на достаточно поздней стадии разработки. Windows NT являлась первой операционной системой Microsoft, внутренние структуры данных которой использовали набор символов UnicodeUCS-2.В Windows NT впервые был представленWin32 API,который был 32-битной версией 16-битного Windows API. Большинство 16-битных приложений могло быть портировано на новую систему с минимальными изменениями путём повторной компиляции. В Win32 появилась поддержка многих новых API, в частности, сетевых операций и многопоточности.

Кодовым названием проекта было «NTOS». Данное обозначение сохранилось в имени файла ядра Windows NT,ntoskrnl.exe.Более официальным названием проекта было «NT OS/2». Это наименование сохраняется до настоящего времени в некоторых файлахкомплекта для разработки драйверовWindows NT.

Поддержка архитектур

[править|править код]

С самого начала NT проектировалась таким образом, чтобы её можно было легко портировать на другие платформы. Весь исходный код ядра и подсистем был написан на языкахCиC++.Любые отличия в архитектуре аппаратного обеспечения, адаптация к которым не могла быть осуществлена простой перекомпиляцией (например, архитектура памяти, поддержка нескольких процессоров), выносились вHAL.

Кроме того, система загрузки NT была во многом заимствована из спецификацииARC,особенно на платформах, отличных от x86.

Изначально NT разрабатывалась для процессораIntel i860(кодовое название N10 — «N-Ten»). Однако, поскольку выпуск i860 задерживался, команде разработчиков NT приходилось использовать эмулятор, прежде чем стали доступны прототипы систем на основе i860. Затем была добавлена поддержка других систем, а версия NT для i860 так и не была выпущена для публики. Причиной, по которой изначально разработчики ориентировались на i860, было стремление облегчить портирование на другие архитектуры и избежать создания системы, ориентированной на процессоры с архитектурой x86[5].

NT 3.1 поддерживала 32-битные процессоры Intel x86 (80386 и более поздние). В сравнении с 16-битной Windows 3.x, количество драйверов устройств для NT было довольно ограниченным. Хотя в Windows 9x могли использоваться драйвера от Windows 3.x, в NT нельзя было использовать ни драйвера для 9x, ни для 3.x. Windows NT 3.1 является единственной версией Windows NT, поддерживающей многопроцессорные компьютеры на основе процессора 80386[6].

Windows NT 3.1 поддерживала процессорMIPS R4000,а также иные системы MIPS, соответствовавшие спецификацииAdvanced RISC Computing(ARC).

Поддержка для процессораDEC Alphaбыла добавлена на стадии разработки бета-версий NT. Однако поскольку выпуск Alpha был отложен, разработчики Microsoft не имели доступа к компьютерам на основе Alpha почти до самого выпуска NT. В результате этого, поддержка Alpha не вошла в комплект поставки: в первые коробки с NT вкладывался купон, который можно было отправить по почте, чтобы получить бесплатный CD с NT 3.1 для процессоров Alpha.

Совместимость с приложениями

[править|править код]

16-битные версии Windows

[править|править код]

NT включала так называемуюNTVDM/WOW(NT Virtual Dos Machine/Windows on Windows), которая представляла собой окружение для запуска 16-битных приложений. Была возможна эмуляция подсистемы операционной оболочки Windows 3.x, работающей в стандартном (286) режиме. Приложения, которые полагались на низкоуровневый доступ к аппаратному обеспечению, не поддерживались. 16-битные приложения также не могли использовать файл подкачки. Microsoft указывала, что NT была совместимой со всеми 16-битными приложениями, которые соответствовали официальным руководствам по созданию программного обеспечения (большинство коммерческих приложений).

В NT 3.1 все 16-битные приложения запускались в рамках одного процесса WOW. Это означало, что одно засбоившее 16-битное приложение могло закрыть всю сессию WOW вместе с остальными 16-битными приложениями. Однако сама операционная система была изолирована от подобных проблем, так что процесс WOW можно было прервать и перезапустить, что являлось значительным шагом вперёд в области обеспечения стабильности Windows.

Командная оболочка DOS в NT была заменена системой командной строки, известной какCMD.EXE.DOS-подсистема допускала запуск любых приложений, не требовавших низкоуровневого доступа к оборудованию (который в тот период использовался часто). Для запуска DOS-приложений, как и в Windows 3.x и 9x использовался режимвиртуального 8086.

Окружение NTVDM/WOW осталось практически неизменным во всех 32-битных версиях Windows NT. В 64-битных версиях оно отсутствует, потому что процессоры архитектуры x64 не поддерживают 16-битные операции или переход в режим виртуального 8086 в «длинном» режиме.

32-битные версии Windows

[править|править код]

В NT впервые появилсяAPI Win32,который представлял собой 32-битную реализацию Windows API, которая позволяла перекомпиляцию старых 16-битных приложений для новой системы с минимальными изменениями. Win32 позволяла растущему сообществу программистов для 16-битных Windows использовать свои навыки при программировании для новой системы. Windows 95 поддерживала API Win32 (несколько видоизменённый), что ещё больше усилило его роль в процессе перевода пользователей систем Microsoft с 16-битных платформ.

Win32 — это полноценный API, предоставляющий доступ к самым различным возможностям ОС, начиная с управлению памятью и заканчивая интерфейсом пользователя. NT не разрешало доступ к оборудованию для приложений уровня пользователя. Это увеличивало надёжность системы за счёт уменьшения производительности. Однако это также означало, что практически все приложения Win32 должны были опираться на API Win32, написанный на C/C++. Положительной стороной этого являлось то, что портирование приложения на другую архитектуру, поддерживаемую NT (например, с x86 на MIPS) обычно не требовало никаких действий, кроме перекомпиляции (некоторые приложения требовали изменений, если они предполагали использование определённогопорядка байтов).

Хотя система, которая изначально должна была называться «NT OS/2» была в итоге выпущена как «Windows NT», она осталась во многом совместимой сOS/2.Так, поддерживалась файловая системаHPFS,а также работавшие в текстовом режиме 16-битные приложения OS/2 (в версии для x86). Многие API OS/2 (в частности сетевые APINetBIOS/LANMan) существовали в 16-битных версиях OS/2 и DOS/Windows практически в идентичной форме, так что они были включены в Win32 API. Большинство 16-битных программ OS/2 могли быть с минимальными изменениями исходного кода перекомпилированы как консольные приложения Win32.

Общей для Windows и OS/2 является концепциядинамических библиотек(DLL). Хотя детали реализации DLL в Windows и OS/2 отличаются, сходство их является достаточно сильным, чтобы даже сложные приложения OS/2 могли быть перенесены на NT без значительных архитектурных изменений.

Кроме того, Microsoft отдельно подставляла дополнительную подсистему Windows NT дляPresentation Manager(Windows NT Add-On Subsystem for Presentation Manager), которая делала возможным запуск графических приложений для OS/2.

Windows NT 3.1 включала подсистему, которая предоставляла минимальную совместимость сPOSIX.Она была добавлена в основном для того, чтобы способствовать заключению контрактов с правительством США, поскольку многие правительственные агентства включали POSIX-совместимость в качестве обязательного условия контракта.

Совместимость с POSIX поддерживалась лишь на уровне API, так что требовалась перекомпиляция исходного кода. Подсистема POSIX в NT 3.1 в основном включала поддержку разрешений доступа к файлам в стиле UNIX, а такжедлинных имён файлов.

Поддержка NT 3.1 впервые появилась вInternet Explorer 2.IE 1.5 поддерживал NT, но эта версия стала доступной лишь после выпуска IE 2.

  • Windows NT
  • Windows NT Advanced Server (добавлена поддержка доменов, RAID-массивов, сетевых клиентов Apple Macintosh; поддерживаются до 4 процессоров вместо 2 в обычной версии).

Поддержка сети

[править|править код]

NT 3.1 включала поддержку для 3сетевых протоколов:NetBIOS Frames (с использованием APINetBEUI),TCP/IPиDLC.

На момент выпуска NT протокол NetBIOS Frames (NBF) чаще всего использовался в сетях на основе MicrosoftLAN Manager/IBMLAN Server.В NT 3.1 этот протокол был единственным, который можно было использовать с уже существующими сетями на основе LAN Manager networks, а также при взаимодействии с системами на основе NT. При использовании NBF NT могла участвовать в общем доступе к файлам и принтерам, а NT Advanced Server могла выступать в роликонтроллера домена(в том числе совместно с серверами OS/2 LAN Manager). NT Advanced Server также могла входить в уже существующий домен, но не могла использоваться как самостоятельный сервер для рабочих групп.

Windows NT 3.1 была первой операционной системой семейства Windows, включавшей поддержку TCP/IP в обычном комплекте поставки. В качестве стека TCP/IP использовался SpiderTCP, разрабатывавшийсяSpider Systems.В NT 3.5 он был заменён на стек собственной разработки[7].

Стек TCP/IP включал поддержкуWinSockиSTREAMS,но не мог использовался для построения сетей, включавших системы Microsoft LAN Manager или NT. Кроме того, не было поддержкиDHCP,так что IP-адреса должны были настраиваться вручную. ПоддержкаNBT,DHCP иWINSбыла добавлена лишь в NT 3.5.

Data Link Control (DLC) — протокол обмена данных с сетевыми принтерами, например, использующими интерфейсHPJetDirect.Он также мог использоватьMicrosoft SNA Serverдля взаимодействия смейнфреймами IBM.

  1. 12Windows NT History — if (ms) blog++; — Site Home — TechNet Blogs.Дата обращения: 28 августа 2011. Архивировано изоригинала19 апреля 2010 года.
  2. Microsoft Product Lifecycle for Windows NT Workstation 3.1.Дата обращения: 28 августа 2011.Архивировано13 июля 2021 года.
  3. [1]Архивная копияот 13 июля 2021 наWayback MachineMicrosoft Product Lifecycle for Windows NT Advanced Server 3.1
  4. Windows Products and Technologies History: Windows Server Products History.Microsoft (30 июня 2003). Дата обращения: 4 сентября 2009.Архивировано6 августа 2012 года.
  5. Mark Lucovsky.Windows A Software Engineering Odyssey.USENIX (9 августа 2000). Дата обращения: 4 сентября 2009.Архивировано4 февраля 2012 года.
  6. STOP screen when installing Windows NT 3.5 on 386 SMP machine.Дата обращения: 4 октября 2009.Архивировано6 августа 2012 года.
  7. Adam Barr.Microsoft, TCP/IP, Open Source, and Licensing.Kuro5hin (19 июня 2001). Дата обращения: 4 сентября 2009.Архивировано6 августа 2012 года.
  • G. Pascal Zachary (1994). «Show Stopper!: The Breakneck Race to Create Windows NT and the Next Generation at Microsoft», Free Press,ISBN 0-02-935671-7