Windows NT 3.1

перша операційна системи від Microsoft сімейства Windows NT

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

Windows NT 3.1
Робочий стіл Windows NT 3.1.png
Робочий стіл 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
https://microsoft.com
Статус підтримки
Підтримка припинена 31 грудня 2001 року [2][3]

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 з 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 року[4], а формальне оголошення продукту відбулося навесні 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[5].

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

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 вперше з'явився Win32 API, який являв собою 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 для 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 він був замінений на стек власної розробки[7].

Стек 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. Він також міг використовувати Microsoft SNA Server для взаємодії з мейнфреймами IBM.

ЛітератураРедагувати

  • 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

ПриміткиРедагувати

  1. а б Windows NT History - if (ms) blog++; - Site Home - TechNet Blogs. Архів оригіналу за 19 квітня 2010. Процитовано 5 жовтня 2014. 
  2. Microsoft Product Lifecycle for Windows NT Workstation 3.1. Архів оригіналу за 13 липня 2021. Процитовано 5 жовтня 2014. 
  3. [1] [Архівовано 13 липня 2021 у Wayback Machine.] Microsoft Product Lifecycle for Windows NT Advanced Server 3.1
  4. Windows Products and Technologies History: Windows Server Products History. Microsoft. 30 червня 2003. Архів оригіналу за 6 серпня 2012. Процитовано 4 вересня 2009. 
  5. Mark Lucovsky (9 серпня 2000). A Windows Software Engineering Odyssey. USENIX. Архів оригіналу за 4 лютого 2012. Процитовано 4 вересня 2009. 
  6. STOP screen when installing Windows NT 3.5 on 386 SMP machine. Архів оригіналу за 6 серпня 2012. Процитовано 4 жовтня 2009. 
  7. Adam Barr (19 червня 2001). Microsoft, TCP/IP, Open Source, and Licensing. Kuro5hin. Архів оригіналу за 6 серпня 2012. Процитовано 4 вересня 2009. 

ПосиланняРедагувати