Interested Article - Windows NT 3.1
- 2020-09-15
- 1
Windows NT 3.1 — первая операционная система линейки Microsoft Windows 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 поддерживала процессоры архитектур Intel x86 , 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/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 года , а формальное объявление продукта состоялось весной 1993 года на выставке в Атланте , Джорджия .
Интерфейсы программирования приложений в 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 .
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 .
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) обычно не требовало никаких действий, кроме перекомпиляции (некоторые приложения требовали изменений, если они предполагали использование определённого порядка байтов ).
OS/2
Хотя система, которая изначально должна была называться «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 для ( 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 . В 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, разрабатывавшийся . В NT 3.5 он был заменён на стек собственной разработки .
Стек TCP/IP включал поддержку WinSock и STREAMS , но не мог использовался для построения сетей, включавших системы Microsoft LAN Manager или NT. Кроме того, не было поддержки DHCP , так что IP-адреса должны были настраиваться вручную. Поддержка NBT , DHCP и WINS была добавлена лишь в NT 3.5.
Data Link Control
Data Link Control (DLC) — протокол обмена данных с сетевыми принтерами, например, использующими интерфейс HP JetDirect . Он также мог использовать для взаимодействия с .
Примечания
- ↑ . Дата обращения: 28 августа 2011. Архивировано из 19 апреля 2010 года.
- . Дата обращения: 28 августа 2011. 13 июля 2021 года.
- от 13 июля 2021 на Wayback Machine Microsoft Product Lifecycle for Windows NT Advanced Server 3.1
- . Microsoft (30 июня 2003). Дата обращения: 4 сентября 2009. 6 августа 2012 года.
- Mark Lucovsky. . USENIX (9 августа 2000). Дата обращения: 4 сентября 2009. 4 февраля 2012 года.
- . Дата обращения: 4 октября 2009. 6 августа 2012 года.
- Adam Barr. . 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
Ссылки
- .
- 2020-09-15
- 1