Dmitri Medvedjev

Windows NT 3.1 — первая крупная операционная система линейки Microsoft Windows NT для серверов и корпоративных рабочих станций на базе Intel x86, DEC Alpha и MIPS, выпущенная 27 июля 1993 года. Это была первая 32-разрядная операционная система Microsoft, предоставляющая преимущества по сравнению с ограниченной 16-разрядной архитектурой предыдущих версий Windows, которые полагались на DOS, но сохраняющая среду рабочего стол , знакомую пользователям Windows 3.1. Windows NT начиналась как переписанная версия операционной системы OS/2, которую Microsoft совместно разработала с IBM, но не смогла получить большой поддержки против Unix, поскольку поставщик Sun Microsystems доминировал на рынке мощных настольных рабочих станций. По нескольким причинам, включая рыночный успех Windows 3.0 в 1990 году, Microsoft решила продвигать Windows, а не OS/2, и отказалась от своих обязанностей по разработке OS/2. Расширяя бренд Windows и начиная NT с версии 3.1, как и Windows 3.1, которая установила узнаваемость бренда и долю рынка, Microsoft подразумевала, что потребители должны ожидать знакомый пользовательский интерфейс. Название Windows NT («Новая технология») рекламировало, что это была переработанная версия Windows[4].

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

Впервые публично продемонстрированная на Comdex 1991, NT 3.1 была выпущена в 1993 году в двух редакциях: Workstation и Advanced Server. Когда Windows NT дебютировала, ее продажи были ограничены высокими системными требованиями и общим отсутствием 32-разрядных приложений, которые могли бы использовать возможности обработки данных ОС. Было продано около 300 000 копий. Следующей операционной системой в линейке стала Windows NT 3.5, выпущенная в сентябре 1994 года. 31 декабря 2000 года Microsoft объявила Windows NT 3.1 устаревшей и прекратила предоставлять поддержку и обновления для системы[6].

Разработка

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

Графическое представление архитектуры Windows NT 3.1. Показаны следующие компоненты ядра операционной системы: диспетчер ввода-вывода, диспетчер объектов, монитор ссылок безопасности, диспетчер процессов, локальный вызов процедур, диспетчер виртуальной памяти.

Windows NT изначально должна была быть выпущена как OS/2 3.0, третья версия операционной системы, совместно разрабатывавшейся IBM и Microsoft. После выпуска пользовавшейся большим успехом новой версии пользовательской оболочки для MS-DOS Windows 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 года[7], а формальное объявление продукта состоялось весной 1993 года на выставке COMDEX в Атланте, Джорджия.

Интерфейсы программирования приложений в Windows NT представляют собой подсистемы, работающие поверх недокументированного Native API; именно это позволило перейти к Windows API на достаточно поздней стадии разработки. Windows NT являлась первой операционной системой Microsoft, внутренние структуры данных которой использовали набор символов Unicode UCS-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.

i860

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

x86

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[9].

MIPS

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

Alpha

Поддержка для процессора 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 (в частности сетевые API NetBIOS/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.

POSIX

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

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

Internet Explorer

Поддержка 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 (с использованием API NetBEUI), TCP/IP и DLC.

NetBIOS Frames

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

TCP/IP

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

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

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

Восприятие

Windows NT 3.1 реализовала около 300 000 копий в первый год своего существования. В то время системные требования были довольно высокими; рекомендуемым процессором был 486 с 16 мегабайтами оперативной памяти, что значительно превышало средние характеристики компьютеров, что делало работу с операционной системой медленной. 32-разрядных приложений, способных использовать возможности Windows NT 3.1, было недостаточно, и пользователи были вынуждены использовать старые 16-разрядные программы, которые работали медленнее, чем в Windows 3.1. По данным на ноябрь 1993 года, существовало всего 150 приложений для Windows NT. Популярные офисные пакеты не были доступны для данной операционной системы. В ходе разработки API изменились, что сделало невозможным запуск 32-битных приложений, созданных на основе бета-версии Windows NT 3.1 1992 года, на финальной версии. Это затронуло такие программные продукты, как Microsoft Visual C++ 1.0 и Microsoft Fortran PowerStation[11][12][13][14][15].

Системы RISC, использующие Windows NT 3.1, имели еще более серьезные недостатки: хотя они были более мощными, 32-разрядные приложения и драйверы на этих платформах практически отсутствовали. 16-разрядные приложения работали заметно медленнее на системах RISC из-за эмуляции 80286, в отличие от систем x86, которые могли запускать их изначально. Приложения DOS и те, что зависели от вызовов 386, вообще не работали на RISC[16][17].

Тем не менее, не все отзывы были негативными. Многозадачные возможности операционной системы были положительно оценены, особенно в сравнении с Windows 3.1. Установка операционной системы была довольно простой, хотя процесс установки с дискет был трудоемким. Advanced Server, который должен был стать преемником неудачного LAN Manager, значительно превосходил своего предшественника, но не достиг успеха из-за аналогичных проблем, таких как низкая производительность при запуске 16-разрядных приложений. Advanced Server предлагал финансовые преимущества для крупных сетей, поскольку его стоимость не зависела от количества клиентов, в отличие от Novell NetWare[18][19][20][21].

С выходом Windows NT Microsoft смогла войти на рынок, который ранее был доминирован Unix, Novell NetWare и OS/2. Тест, проведенный журналом InfoWorld в ноябре 1993 года, продемонстрировал серьезные недостатки Windows NT 3.1 в межклиентском взаимодействии: она могла подключаться только к своему собственному серверу через NetBEUI, а попытки подключения к Unix, NetWare и OS/2 потерпели неудачу из-за отсутствия соответствующего клиентского ПО. Для Advanced Server только их собственный клиент, а также ограниченно Macintosh и OS/2 могли подключаться к серверу[22][23].

Хотя фактический успех операционной системы был умеренным, ее долгосрочное влияние оказалось значительным. Разработчики производных Unix начали стремиться к стандартизации своих систем, а Novell, обеспокоенная своей долей рынка, приобрела поставщика Unix. Производители микропроцессоров хотели использовать переносимость новой операционной системы для увеличения продаж и анонсировали порты Windows NT для различных платформ, таких как Sun SPARC и Clipper. Признавалось, что Windows NT станет доминирующей на рынке настольных ПК, как только оборудование достигнет необходимой мощности для ее запуска на приемлемой скорости. В итоге, восемь лет спустя Microsoft объединила потребительскую линейку Windows (которая оставалась на базе MS-DOS) с линейкой NT, выпустив в октябре 2001 года Windows XP — первую потребительскую версию Windows на архитектуре NT[24][25][26][27][28].

Примечания

  1. 1 2 Windows 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 Machine Microsoft Product Lifecycle for Windows NT Advanced Server 3.1
  4. Markoff, John (24 мая 1993). "Microsoft Soft-Pedaling Its Latest". The New York Times (англ.). 0362-4331. Дата обращения: 22 февраля 2025.
  5. Sun launches technology to run Windows programs - UPI Archives (англ.). UPI. Дата обращения: 22 февраля 2025.
  6. Microsoft secrets : how the world's most powerful software company creates technology, shapes markets, and manages people | WorldCat.org (англ.). search.worldcat.org. Дата обращения: 22 февраля 2025.
  7. Windows Products and Technologies History: Windows Server Products History. Microsoft (30 июня 2003). Дата обращения: 4 сентября 2009. Архивировано 6 августа 2012 года.
  8. Mark Lucovsky. Windows A Software Engineering Odyssey. USENIX (9 августа 2000). Дата обращения: 4 сентября 2009. Архивировано 4 февраля 2012 года.
  9. STOP screen when installing Windows NT 3.5 on 386 SMP machine. Дата обращения: 4 октября 2009. Архивировано 6 августа 2012 года.
  10. Adam Barr. Microsoft, TCP/IP, Open Source, and Licensing. Kuro5hin (19 июня 2001). Дата обращения: 4 сентября 2009. Архивировано 6 августа 2012 года.
  11. Zehn Jahre Windows NT. c't – Magazin für Computertechnik (27 июля 2003). Дата обращения: 9 июня 2012.
  12. Ошибка в сносках?: Неверный тег <ref>; для сносок ct1994 не указан текст
  13. Strehlo, Kevin; Gallie, Rodney (16 августа 1993). "Windows NT: a robust server but a poor OS". InfoWorld. 15 (33): 1, 100.
  14. Korzeniowski, Paul (15 ноября 1993). "More than just a print and file server". InfoWorld. 15 (46): 84.
  15. Running Visual C++ for Windows with Windows NT. Microsoft Support (1 ноября 2006). Дата обращения: 9 мая 2019. Архивировано 27 февраля 2013 года.
  16. Ошибка в сносках?: Неверный тег <ref>; для сносок PCMag28Sep1993_S211 не указан текст
  17. Ошибка в сносках?: Неверный тег <ref>; для сносок ctrueckblick2 не указан текст
  18. Ошибка в сносках?: Неверный тег <ref>; для сносок ct1993 не указан текст
  19. Howell, Dave (15 ноября 1993). "Diary of an NT install: With a small amount of preparation and the right hardware, installing NT is a no-brainer". InfoWorld. 15 (46): 96–98.
  20. Korzeniowski, Paul (15 ноября 1993). "Windows NT Advanced Server: The new network OS seems to be on a slow climb toward acceptance". InfoWorld. 15 (46): 81.
  21. Ошибка в сносках?: Неверный тег <ref>; для сносок IW15Nov1993_S138 не указан текст
  22. Korzeniowski, Paul; Barney, Doug (15 ноября 1993). "Which Windows when, where and why? Do you need to know the way to Cairo and Chicago? And how long will it take to get there?". InfoWorld. 15 (46): 77 f.
  23. Perele, Nicholas; Durlester, Nancy; Wonnacott, Laura; Sommer, Dan (15 ноября 1993). "The interoperability headache: linking disparate clients and servers: The mission: to give each of eight client operating systems simultaneous access to the leading networks and printers in our testing enterprise". InfoWorld. 15 (46): 124–134.
  24. Ошибка в сносках?: Неверный тег <ref>; для сносок ZacharyShowstopper не указан текст
  25. Johnston, Stuart J.; Wilson, Jayne (12 июля 1993). "Sun, Intergraph to port Windows NT to RISC-based Sparc systems". InfoWorld. 15 (28): 8.
  26. Johnston, Stuart J. (23 ноября 1992). "Intergraph to port its Unix-based engineering apps to Windows NT". InfoWorld. 14 (47): 16.
  27. Kent, Les; Armstrong, James; Nash, Siobhan (22 ноября 1993). "32-bit desktop operating systems: Finding the right operating system to suit your needs". InfoWorld. 15 (47): 66–83.
  28. Windows XP review. CNET (4 сентября 2001). Дата обращения: 24 мая 2013.

Литература

  • 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

Ссылки

No tags for this post.