Վինդոուզ ԷնԹի 3.1

Windows NT 3.1-ը Մայքրոսոֆթի Windows NT սերվերի և բիզնեսի օպերատիվ համակարգի առաջին արտադրությունն է և արդյունաբերության մեջ սկսել է շրջանառվել 1993 թվականի հուլիսի 27-ին։ Այս տարբերակի համարն այնպես է ընտրվել, որ համապատասխանի Windows 3.1-ի համարին, իսկ հետո համապատասխանի Մայքրոսոֆթի վերջին օպերատիվ շրջանին, որի պատճառը օգտագործման էկրանի միևնույն տեսքն էր։ NT 3.1-ի երկու հրապարակումները՝ Windows NT 3.1-ը և Windows NT Advanced Server-ը մատչելի դարձան։ Վերջինիս հաջորդեց Windows NT 3.5-ը 1994 թվականի սեպտեմբերին։
Այն կարող էր աշխատել նաև Intel x86-ով, DEC Alpha-ով, և MIPS R4000 CPUs-ով։


== Զարգացում ==
Կաղապար:Տեսնել նաև
Windows NT-ն սկսեց զարգանալ 1988 թ-ի նոյեմբերին, երբ Մայքրոսոֆթը վարձեց մի խումբ ծրագրավորողների Թվայնացված սարքավորումների ընկերությունից, որի ղեկավարը Դեյվ Քաթլերն էր։ Այս դիզայնի շատ տարրեր արտացոլում են VMS-ի և RSX-11-ի հետ աշխատանքի արդյունքում ընկերության ավելի վաղ ձեռք բերած փորձը։ Այս օպերատիվ համակարգը այնպես էր նախագծված, որ աշխատի բազմաթիվ ցուցումներով սարքի կառուցվածքում և յուրաքանչյուր կառուցվածքում բազմաթիվ ծրագրերի պլատֆորմներում։ Պլատֆորմի կախվածությունը համակարգի մնացած մասից զգալի չափով թաքցված է միջուկային եղանակով, որը կոչվում է HAL.
Ի սկզբանե Windows NT-ն նախատեսված էր լինել OS/2 3.0՝ օպերատիվ համակարգի 3-րդ տարբերակը, որը զարգացել էր Microsoft-ի և IBM-ի հետ համատեղ։ Երբ 1990 թ-ի մայիսին Windows 3.0-ն սկսեց օգտագործվել, այն այնքան մեծ հաջողություն ունեցավ, որ Մայքրոսոֆթը որոշեց փոխել դեռևս չօգտագործվող NT OS/2 (ինչպես այն հայտնի էր այն ժամանակ) և OS/2 API-ից դարձել Windows API։ Այս որոշումը լարվածություն առաջացրեց Մայքրոսոֆթի և 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-ի կողմից ստեղծած 1-ին օպերատիվ համակարգն էր, որի ներսում օգտագործվում էր ծածկագրային աղյուսակ` Յունիկոդ։ Windows NT-ն ներմուծեց Win32 API-ը, որը 16 բիթ Windows API-ի 32 բիթ սարքն էր։ Շատ 16 բիթ Windows սարքեր կարող էին տեղափոխվել նոր համակարգեր չնչին փոփոխություններով և նորից հավաքվելու չնչին անհրաժեշտությամբ։ Win32-ը նաև ապահովեց բուն API-ին այնպիսի նոր հնարավորություններով, ինչպիսիք են համակարգչային կապը և միաժամանակ տարբեր ֆունկցիաներ կատարելու ունակությունները։
Այս նախագիծը ուներ ծածկագրային անուն, որն էր "NTOS", որը պահպանվել է Windows NT-ի միջուկային թղթապանակի անվան մեջ ntoskrnl.exe.
Քանի որ այն նախատեսված էր, որ այն դառնալու է OS/2-ի հաջորդ տարբերակը, նախագծի ավելի պաշտոնական անվանումը դարձավ "NT OS/2"-ը։ Այս անվանումը մինչ օրս պահպանվել է Windows NT-ի ծրագրի զարգացման հավաքածուի մի քանի թղթապանակներում։


== Համակարգային ապահովում ==
Ի սկզբանե NT-ն նախագծվել էր այնպես, որ հնարավոր լիներ այն տեղափոխել այլ պլատֆորմներ։ Ամբողջ միջուկային և ենթահամակարգային ծածկագիրը գրված է C և C++ ծրագրերով։ Միջուկային ծրագրի կառուցվածքում ցանկացած տարբերություններ, որոնք հնարավոր չեն լուծել սարքը նորից հավաքելու դեպքում (օր.` հիշողության կառուցվածքում մեկ կամ բազմակի պրոցեսների ապահովություն) ներառվում են HAL-ի մեջ։
Նաև  NT-ի բեռնման կառուցվածքը փոխառվել է մեծ մասամբ ARC-ի նախաձեռնությունից, մասնավորապես non-x86 պլատֆորմի վերաբերյալ։


=== i860 ===
Ի սկզբանե NT-ն փորձում էր ազդել Intel i860 CPU-ի վրա, որի ծածկագրային անունն էր  N10:
Այնուամենայնիվ i860-ը  "սարսափելի հետ էր մնում ծրագրից", այդ պատճառով NT-ի թիմի անդամները օգտագործեցին այլ ծրագիր նախքան i860-ի նախատիպի համակարգերը, որոնք նախագծվել էին ընկերության ներսում, մատչելի դարձան։ Մյուս պլատֆորմներին աջակցելը հետևեց ավելի ուշ և NT-ն հրապարակայնորեն չներկայացրեց i860-ը։ i860-ին հակառակվելու տրամաբանական հիմնավորումն էր կատարելագործել դյուրատարությունը և խուսափել x86 դիզայնի արտադրությունից։


=== x86 ===
NT 3.1 աջակցեց Intel x86 32 բիթ հավաքածուին (80386 and later)։ Համեմատելով 16 բիթ Windows 3.x-ի հետ՝ NT համակարգային ծրագրի օժանդակությունը սահմանապակ էր։ Windows NT 3.1-ը Windows NT-ի միակ տարբերակն է, որ օժանդակում է բազմաթիվ պրոցեսներից կազմված 386 մեխանիզմին։


=== MIPS ===
Windows NT-ն օժանդակում է նաև MIPS R4000պրոցեսորին, հատկապես MIPS համակարգին, որոնց հաջորդեց կատարելագործված Advanced RISC Computing համակարգիչների դասակարգումը։


=== Alpha ===
Վաղ NT beta-ի շրջանում համագործակցություն եղավ նաև DEC Alpha պրոցեսորի հետ։ Այնուամենայնիվ Alpha-ի երկարաձգման պատճառով Microsoft-ի ծրագրավորողները հնարավորություն չունեին արտադրել Alpha մեխանիզմներ մինչև որ շուտով NT-ն ուղարկվեց։ Հետևաբար սկզբնական շրջանում NT-ն չընդգրկեց նորեկ Alpha-ին։ NT-ի փաթեթը ընդգրկեց պարգևատրման կտրոն՝ NT 3.1-ի ազատ CD-ով Alpha համագործակցություն ստանալու համար։


== Համատեղելիության դիմում ==


=== 16 բիթ Windows ===
Windows NT-ն մատակարարում է 16 բիթ համատեղելի ենթահամակարգին, որը կոչվում է "Windows on Windows" (WOW), որը թույլ է տվել Windows 3.x-ի շատ սարքերի առանց  փոփոխության աշխատել NT-ում։ Մեխանիզմները, որոնք ուղիղ մուտք էին կատարում ապարատի վրա կամ կախված էին DOS մակարդակի ծրագրերից, չօժանդակվեցին։
NT 3.1-ում բոլոր 16 բիթ սարքերը աշխատում էին միակ WOW պրոցեսի ընթացքում։ Սա նշանակում էր, որ նույնիսկ վատ աշխատող մեկ 16 բիթ ծրագիրը կարող էր անջատել WOW սեսիան (և ցանկացած այլ 16 բիթ աշխատող ծրագիր)։ Այնուամենայնիվ օպերատիվ համակարգը ինքն իրեն անջատվում էր, այսպիսով WOW-ի ընթացքը կարելի էր պարզապես անջատել և նորից սկսել, ինչը կարևոր քայլ էր Windows-ի կայունության համար։


=== 32 բիթ Windows ===
NT-ն նաև ներմուծեց Win32-ը, որը Windows API-ի 32 բիթ սարք է։ Սա թույլ տվեց, որ շատ 16 բիթ Windows ծրագրեր հավաքվեն համակարգում չնչին փոփոխություններով։ Win32-ը նաև թույլ տվեց 16 բիթ Windows-ի ծրագրավորողների զարգացող խմբերին ավելացնեն նոր համակարգի մասին իրենց հմտությունները։ Win32 API-ը  պահպանեց (մի քանի փոփոխություններով) Windows 95-ը՝ հետագայում ամրապնդելով իր դերը, քանի որ Microsoft-ը 16 բիթ պլատֆորմից խլեց օգտագործողներին։
Win32-ը բազմակողմանի API է, որը իր ծառայություններն է առաջարկում OS-ին՝ սկսած հիշողության կառավարումից մինչև UI-ի մուտքը։ NT-ն կանխում է օգտագործողի մակարդակի սարքերին ուղիղ մուտք կատարելու ծրագրի հնարավորությունից։ Արագագործության հաշվին սա ավելացնում է համակարգի հուսալիությունը։ Այնուամենայնիվ սա նաև նշանակում է, որ բոլոր Win32 ծրագրերը բացառապես վստահում էին C/C++ Win32 API-ին; արդյունքն այն է, որ այսպիսի ծրագրի տեղափոխումը մեկ այլ NT միասնական համակարգի կառուցվածք (օր. տեղափոխությունը x86-ից MIPS NT) սովորաբար պահանջում է վերահավաքում (որոշ ծրագրեր կարող են պահանջել քիչ հարմարեցումներ, ինչպես օր.` եթե ենթադրությունները ծածկագրում արվել են endianness-ի մասին)։


=== OS/2 ===
Չնայած "NT OS/2" վերջապես բաց թողնվեց որպես "Windows NT", այն զգալիորեն համատեղելի էր HPFS դիսկի ծավալների հետ և x86 տարբերակը աջակցում էր տեքստային ռեժիմ ունեցող 16 բիթ OS/2 սարքերին։ OS/2 API-ից շատերը արդեն գոյություն ունեին համարյա նմանատիպ տեսքով և 16 բիթ OS/2-ում և DOS/Windows-ում, այդ պատճառով սրանք միացվեցին Win32 API-ին։ Շատ 16 բիթ OS/2 ծրագրերի համար ծածկագրի չնչին փոփոխություններն անհրաժեշտ էին դրանք որպես NT տեքստային ծրագրեր հավաքելու համար։
OS/2-ը և Windows-ը կիսում էին իրար հետ դինամիկ կերպով միացվող գրադարան (DLLs) հասկացությունը։ Չնայած Windows-ի և OS/2 DLLs-ի իրագործումը ինչ-որ ձևով տարբերվում էր, այլ լրացուցիչ նմանությունը նշանակում էր, որ նույնիսկ բարդ OS/2 ծրագրերը կարող էին փոխակերպվել NT-ի ամբողջ դիզայնի փոփոխություններով։


=== POSIX ===
Windows NT 3.1-ը ընդգրկեց մի ենթահամակարգ, որը շատ քիչ համատեղելի էր POSIX-ին։ Սա հիմնականում ավելացվեց, որպեսզի խթանի Միացյալ նահանգների կառավարական համաձայնագրերի վաճառքը, քանի որ շատ կառավարական գործունեություններ POSIX-ի համատեղելիությունը մանդատի տակ էին դնում քննարկման համար։
Ուշադրություն դարձրեք, որ POSIX-ի համատեղելիությունը API մակարդակի պահանջ է։ Այսինքն, մեկ POSIX օպերատիվ համակարգը պարտադիր չէ, որ կարողանա ձևակերպել կրկնակի փաստաթղթերը, որոնք հավաքված են մեկ ուրիշ համակարգի համար, նույնիսկ եթե երկուսն էլ POSIX-ի կատարողներն են։ POSIX-ը պարզապես նշում է, որ գլխավոր ծածկագիրը պետք է ճիշտ հավաքվի յուրաքանչյուր համակարգի համար։
POSIX ենթահամակարգը հիմնականում օժանդակում է UNIX ոճի փաստաթղթային համակարգի թույլատրելուն և երկար փաստաթղթային անվանումներին (ներառյալ այնպիսի փաստաթղթային անվանումներ թույլատրելը, որոնք օրինական չեն Windows-ի փաստաթղթերի համար կամ հերքել այնպիսի փաստաթղթային անվանումներ, որոնք սովորաբար օրինական են)։


=== Internet Explorer ===
Microsoft-ը առաջարկեց Internet Explorer-ը՝ սկսելով IE2-ից և արտադրեց Internet Explorer 5.0-ը Windows NT 3.x-ի համար։ Նաև IE 1.5-ը օժանդակեց NT-ին, բայց այս մասը իրականում բաց թողնվեց IE2-ի երևան գալուց հետո։


== Խմբագրումներ ==
Windows NT
Windows NT Advanced Server


== Ցանց ==
NT 3.1-ը ներառում է երեք ցանցային արձանագրությունների աջակցություն՝ NBF (օգտագործելով NetBEUI API), TCP/IP և DLC:


=== Ցանցային-բազային համակարգի արձանագրություն ===
NT-ի երևան գալուց հետո ցանցային-բազային համակարգի արձանագրությունը ամենասովորականն էր Microsoft LAN Manager-ի IBM LAN Server-ի ցանցում։ NT 3.1-ում դա միակ օժանդակող արձանագրությունն է գործող LAN Manager ցանցի հետ կապվելու համար, ինչպես նաև NT այլ համակարգերի հետ։ Օգտագործելով NBF՝ NT-ն կարող էր մասնակցել փաստաթղթերի պրինտի բաժանմանը և NT զարգացած սերվերը կարող էր գործել որպես էլեկտրական հոսանքը կարգավորող սարք (նույնիսկ եթե կիսվում են DC-ի պարտականությունները OS/2 LAN Manager սերվերի հետ)։


=== TCP/IP ===
Windows NT 3.1-ը Windows-ի առաջին օպերատիվ համակարգն էր, որ ընդգրկեց TCP/IP օժանդակությունը որպես չափորոշիչ։ Օգտագործված TCP/IP փաթեթը SpiderTCP-ն էր, որը զարգացել էր Spider Systems-ի կողմից։ NT 3.5-ում այն փոխարինվեց տվյալ կազմակերպությունում զարգացած նոր փաթեթով։
TCP/IP փաթեթը ընդգրկեց WinSock-ի և STREAMS-ի օժանդակությունը, բայց այն օժանդակվեց ոչ Microsoft LAN Manager-ի կամ NT համակարգերի մեջ կապ հաստատելու համար։ DHCP-ն նույնպես մատչելի չէր, այդ պատճառով IP հասցեները ուրվագծվում էին ձեռքով։ NT 3.5-ին ավելացվեց NBT-ի, DHCP-ի և WINS-ի օժանդակությունը։


=== Տվյալների փոխանցման օղակի ղեկավարում ===
Տվյալների փոխանցման օղակի ղեկավարումը (DLC) օժանդակվեց որպես փոխադրման արձանագրություն ցանցային պրինտերների հետ հաղորդակցվելու նպատակով, այնպիսիների հետ, որոնք օգտագործում էին HP JetDirect ծրագիրը։ Այն կարող էր օգտագործվել նաև Microsoft SNA Server-ի կողմից IBM mainframe համակարգերի հետ հաղորդակցվելու համար։


== Հետագա ընթերցում ==
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


== Հղումներ ==


== Արտաքին հղումներ ==
Guidebook: Windows NT 3.1 Gallery - A website dedicated to preserving and showcasing Graphical User Interfaces