윈도우 NT

윈도우 NT()는 마이크로소프트가 윈도우 제품군의 일부로 제작한 독점 그래픽 사용자 인터페이스 운영체제로, 첫 번째 버전인 윈도우 NT 3.1은 1993년 7월 27일에 출시되었다. 원래 워크스테이션, 사무용 및 서버 시장을 위해 만들어졌으나, 2001년 윈도우 XP 출시와 함께 일반 소비자들도 윈도우 NT 제품군을 사용할 수 있게 되었다. 윈도우 NT의 근간 기술은 점진적인 변화와 개선을 거쳐 오늘날까지 이어지고 있으며, 윈도우 NT를 기반으로 한 최신 버전의 윈도우는 2024년에 발표된 윈도우 서버 2025이다.

"Windows NT"라는 이름은 원래 윈도우 3.1과 같은 이전 윈도우 출시 버전의 16비트 메모리 액세스 제한을 제거하는 등 윈도우 제품군에 도입된 주요 기술적 발전을 의미했다. 이 기술을 기반으로 구축된 각 윈도우 릴리스는 1996년 윈도우 NT 4.0 이후 다른 윈도우 릴리스에서 윈도우 NT라는 이름 자체를 사용하지 않았음에도 불구하고, 윈도우 NT의 개정판이 아니더라도 이를 기반으로 하는 것으로 간주된다.

윈도우 NT는 다른 윈도우 릴리스보다 훨씬 더 많은 기능을 제공하는데, 그중에는 다중 처리, 다중 사용자 시스템, 32비트 메모리 주소 지정이 가능한 "순수" 32비트 커널, x86 이외의 명령어 집합 지원, 액티브 디렉터리와 같은 다양한 시스템 서비스 등이 있다. 최신 버전의 윈도우 NT는 64비트 커널과 64비트 메모리 주소 지정을 통해 64비트 컴퓨팅을 지원한다.

 제품군 

윈도우 NT는 윈도우가 하나의 그룹 또는 제품군인 것처럼, 제품들의 그룹 또는 제품군이다. 윈도우 NT는 윈도우의 하위 그룹이다.

윈도우 NT의 첫 번째 버전인 3.1은 워크스테이션 및 서버 컴퓨터용으로 제작되었다. 이는 상업적인 목적에 집중했으며, MS-DOS 기반의 소비자용 윈도우 버전(윈도우 1.0부터 윈도우 3.1x 포함)을 보완하기 위해 의도되었다. 1996년에는 윈도우 95의 새로운 셸을 포함한 윈도우 NT 4.0이 출시되었다.

결국 마이크로소프트는 윈도우 NT 기술을 개인용 컴퓨터를 위한 윈도우 제품군에 통합하고 윈도우 9x 제품군을 단종시켰다. 윈도우 2000을 시작으로, 제품 이름에서 "NT"가 제거되었으나, 시스템의 여러 저수준 영역에는 여전히 남아 있으며 한동안 제품 버전의 일부로 사용되기도 했다.

 설치 
윈도우 NT 버전은 윈도우 설치 프로그램을 사용하여 설치되며, 윈도우 비스타부터는 운영 체제 배포를 위해 만들어진 가벼운 버전의 윈도우 NT인 윈도우 사전 설치 환경을 사용한다.

윈도우 비스타 이후로 윈도우 설치 파일과 설치에 사용되는 사전 설치 환경은 윈도우 이미징 포맷으로 저장된다. 배포 이미지 서비스 및 관리(DISM) 도구를 사용하여 명령줄에서 윈도우를 설치하고 GUI 설치 프로그램을 건너뛸 수 있다.

 명칭 
데이비드 커틀러가 VMS를 장난스럽게 비튼 것으로 "WNT"라는 약자를 의도했다는 주장이 제기되었는데, 이는 각 글자를 하나씩 뒤로 미룬 것이다. 그러나 이 프로젝트는 원래 OS/2의 후속작으로 의도되었으며 윈도우 브랜드가 붙기 전에는 "NT OS/2"라고 불렸다. 원래 NT 개발자 중 두 명인 마크 루코브스키와 데이브 플러머는 이 이름이 원래 목표 프로세서인 코드명 N10 ("N-Ten")이었던 인텔 i860에서 따온 것이라고 밝혔다. 빌 게이츠와 마이크로소프트 제품이 등장하는 1991년 영상에서는 명시적으로 "Windows NT는 'New Technology'(새로운 기술)의 약자"라고 말한다. 7년 후인 1998년 질의응답(Q&A) 세션에서 그는 이 글자들이 이전에 그렇게 역두문자어로 풀이되었으나 더 이상 특정한 의미를 지니지 않는다고 밝혔다. 윈도우 2000 이후 출시 버전의 이름에서 NT라는 글자는 빠졌으나, 마이크로소프트는 해당 제품이 "NT 기술을 기반으로 구축됨"(Built on NT Technology)이라고 설명했다.

"NT"는 노던 텔레콤(나중에 노텔)의 상표였으며, 마이크로소프트는 제품 포장에 이를 명시해야 했다.

 주요 기능 
NT의 주요 목적 중 하나는 하드웨어 및 소프트웨어 이식성이다. NT 제품군 운영 체제의 다양한 버전이 다양한 프로세서 아키텍처용으로 출시되었는데, 처음에는 IA-32, MIPS, DEC 알파였으며 이후 출시 버전에서는 파워PC, 아이테니엄, x86-64 및 ARM이 지원되었다. 초기 아이디어는 각 플랫폼에 맞는 맞춤형 하드웨어 추상화 계층(HAL)과 공통 코드 베이스를 갖는 것이었다. 그러나 MIPS, 알파 및 파워PC에 대한 지원은 나중에 윈도우 2000에서 중단되었다. 광범위한 소프트웨어 호환성은 초기에는 윈도우 API, POSIX, OS/2 API를 포함한 여러 API "성격"을 지원함으로써 달성되었으나, 후자 두 개는 윈도우 XP부터 단계적으로 폐지되었다. 부분적인 MS-DOS 및 윈도우 16비트 호환성은 IA-32에서 통합된 DOS 가상 머신을 통해 달성되지만, 이 기능은 다른 아키텍처에서는 사용할 수 없다.

NT는 개체별(파일, 기능 및 역할) 액세스 제어 목록을 지원하여 시스템 및 서비스에 풍부한 보안 권한 세트를 적용할 수 있게 해왔다. NT는 또한 이전 OS/2 LAN 매니저 네트워킹을 계승한 윈도우 네트워크 프로토콜뿐만 아니라 TCP/IP 네트워킹도 지원했다(마이크로소프트는 처음에 Spider Systems의 STREAMS 기반 스택에서 파생된 TCP/IP 스택을 구현한 후 나중에 자체적으로 다시 작성했다).

윈도우 NT 3.1은 32비트 프로세서에서 32비트 플랫 가상 메모리 주소 지정을 사용한 첫 번째 윈도우 버전이다. 동반 제품인 윈도우 3.1은 세그먼트 주소 지정을 사용했으며 페이지 단위로 16비트에서 32비트 주소 지정으로 전환했다.

윈도우 NT 3.1은 슈퍼바이저 모드(x86의 링 0, 모든 플랫폼의 윈도우 NT에서는 "커널 모드"라고 함)에서 실행되는 시스템 API를 제공하는 핵심 커널과, 새로운 Win32 환경, OS/2 1.3 텍스트 모드 환경 및 POSIX 환경을 포함하는 자체 API를 갖춘 일련의 사용자 공간 환경을 특징으로 했다. 완전한 선점형 다중 작업 커널은 윈도우 3.1 윈도우 응용 프로그램처럼 사용자 프로그램이 CPU 제어권을 자발적으로 포기하는 데 의존하지 않고, 다른 작업을 스케줄링하기 위해 실행 중인 작업을 중단할 수 있었다(단, MS-DOS 응용 프로그램은 Windows/386부터 윈도우에서 선점형 다중 작업이 가능했다).

특히 윈도우 NT 3.x에서는 비디오 및 인쇄와 같은 여러 I/O 드라이버 하위 시스템이 사용자 공간 모드 하위 시스템이었다. 윈도우 NT 4.0에서는 비디오, 서버 및 프린터 스풀러 하위 시스템이 커널 모드로 이동되었다. 윈도우 NT의 첫 번째 GUI는 윈도우 3.1의 영향을 강하게 받았으며(프로그램적으로 호환됨), 윈도우 NT 4.0의 인터페이스는 완전히 새로운 윈도우 95의 인터페이스와 일치하도록 재설계되어 프로그램 관리자에서 윈도우 셸 디자인으로 이동했다.

저널링되는 보안 파일 시스템인 NTFS는 NT의 주요 기능이다. 윈도우 NT는 다른 설치 가능한 파일 시스템도 허용하며, FAT 파일 시스템에도 설치될 수 있고, 버전 3.1, 3.5, 3.51은 HPFS 파일 시스템에도 설치될 수 있었다.

윈도우 NT는 자체 드라이버 모델인 윈도우 NT 드라이버 모델을 도입했으며 이전 드라이버 프레임워크와는 호환되지 않는다. 윈도우 2000에서는 윈도우 NT 드라이버 모델이 개선되어 윈도우 드라이버 모델이 되었는데, 이는 윈도우 98에서 처음 도입되었으나 NT 드라이버 모델을 기반으로 한 것이었다. 윈도우 비스타는 윈도우 드라이버 파운데이션에 대한 기본 지원을 추가했으며, 이는 윈도우 XP, 윈도우 서버 2003 및 어느 정도는 윈도우 2000에서도 사용할 수 있다.

 개발 
섬네일|버전 4.0용 윈도우 NT 워드마크

마이크로소프트는 1988년 10월에 OS/2 및 POSIX와 호환되고 다중 처리를 지원하는 이식 가능한 운영 체제를 만들기로 결정했다. 1989년 11월 개발이 시작되었을 때 윈도우 NT는 마이크로소프트와 IBM이 공동 개발한 운영 체제의 세 번째 버전인 OS/2 3.0으로 알려질 예정이었다. 이식성을 보장하기 위해 초기 개발은 인텔 i860XR RISC 프로세서를 목표로 했으나, 1989년 말에 MIPS R3000으로, 1990년에는 인텔 80386으로 전환되었다. 마이크로소프트는 또한 DOS 기반이면서 자원을 덜 소모하는 윈도우 환경의 병행 개발을 계속하여 1990년 5월 윈도우 3.0을 출시했다.

윈도우 3.0이 결국 큰 성공을 거두자 마이크로소프트는 아직 출시되지 않은 NT OS/2(당시 명칭)의 주요 애플리케이션 프로그래밍 인터페이스를 확장된 OS/2 API에서 확장된 윈도우 API로 변경하기로 결정했다. 이 결정은 마이크로소프트와 IBM 사이의 긴장을 유발했고 결국 협력 관계는 결렬되었다.

IBM은 독자적으로 OS/2 개발을 계속했고, 마이크로소프트는 새로 이름이 바뀐 윈도우 NT 작업을 계속했다. 두 운영 체제 모두 마이크로소프트의 MS-DOS나 윈도우 제품만큼 즉각적인 인기를 얻지는 못했지만, 결과적으로 윈도우 NT는 OS/2보다 훨씬 더 큰 성공을 거두게 되었다.

마이크로소프트는 윈도우 NT를 구축하기 위해 데이비드 커틀러가 이끄는 디지털 이큅먼트 코퍼레이션(DEC) 출신 개발자 그룹을 고용했으며, 디자인의 많은 요소는 커틀러의 VMS, VAXELN 및 RSX-11에 대한 이전 DEC에서의 경험을 반영하고 있으며, 커틀러가 디지털에서 개발했던 코드명 MICA라는 출시되지 않은 객체 기반 운영 체제의 요소도 포함되어 있다. 이 팀에는 모쉐 더니를 포함하여 해산된 OS/2 팀에서 선발된 인원들도 합류했다.

섬네일|윈도우 2000 아키텍처

NT가 커틀러의 이전 운영 체제들을 그대로 복제한 것은 아니었지만, DEC 엔지니어들은 내부적인 유사성을 거의 즉시 알아차렸다. Digital Press에서 발행한 VAX/VMS 내부 구조 및 데이터 구조의 일부는 VMS 용어를 사용하여 윈도우 NT의 내부 구조를 정확하게 설명하고 있다. 또한 NT 코드베이스의 디렉터리 구조와 파일 이름 중 일부는 MICA 코드베이스의 것과 일치했다. 소송 대신 마이크로소프트는 DEC에 6,500만~1억 달러를 지불하고, VMS 마케팅을 지원하며, 디지털 직원들에게 윈도우 NT 교육을 제공하고, DEC 알파용 윈도우 NT 지원을 계속하기로 합의했다.

윈도우 NT와 VMS의 메모리 관리, 프로세스, 스케줄링은 매우 유사하다. 윈도우 NT의 프로세스 관리는 DEC가 1995년 VMS 7.0이 되어서야 구현했던 스레딩을 구현했다는 점에서 차이가 있다.

VMS와 마찬가지로, 윈도우 NT의 커널 모드 코드는 프로세서 및 아키텍처 의존적인 기능을 구현하는 것이 주요 목적인 "커널"과 "익제큐티브"(executive)를 구분한다. 이는 카네기 멜런 대학교의 리처드 라시드가 개발한 Mach 마이크로커널의 영향을 받아 수정된 마이크로커널로 설계되었으나, 순수 마이크로커널의 모든 기준을 충족하지는 않는다. 커널과 익제큐티브는 모두 단일 로드 모듈인 Ntoskrnl.exe로 링크되어 있으며, 이 모듈 외부에서는 커널과 익제큐티브 사이의 구분이 거의 없다. 커널 모드 장치 드라이버 등에서와 같이 각각의 루틴에 직접 액세스할 수 있다.

윈도우 NT 제품군의 API 세트는 공개적으로 문서화되지 않은 네이티브 API 위에 하위 시스템으로 구현되어 있으며, 이를 통해 (Win32 하위 시스템으로의) 윈도우 API를 나중에 채택할 수 있었다. 윈도우 NT는 내부적으로 UCS-2와 UTF-16을 사용한 초기 운영 체제 중 하나였다.

 아키텍처 

윈도우 NT는 사용자 모드와 커널 모드라는 두 가지 주요 구성 요소로 이루어진 계층형 아키텍처를 사용한다. 사용자 모드의 프로그램과 하위 시스템은 액세스할 수 있는 시스템 자원이 제한되는 반면, 커널 모드는 시스템 메모리와 외부 장치에 무제한으로 액세스할 수 있다. 윈도우 NT의 커널 모드는 컴퓨터의 하드웨어와 시스템 자원에 대한 전체 액세스 권한을 가진다. 윈도우 NT 커널은 하이브리드 커널이며, 아키텍처는 단순한 커널, 하드웨어 추상화 계층(HAL), 드라이버 및 일련의 서비스(통칭 익제큐티브)로 구성되며 이들은 모두 커널 모드에 존재한다.

윈도우 NT 시작 프로세스는 비스타 이전 버전에서는 NTLDR로, 비스타 이후 버전에서는 윈도우 부팅 관리자로 시작된다. 부트 로더는 부팅 드라이브의 파일 시스템에 액세스하고, 커널을 시작하며, 부팅 시 장치 드라이버를 메모리에 로드하는 역할을 한다. 모든 부팅 및 시스템 드라이버가 로드되면 커널은 세션 관리자 하위 시스템을 시작한다. 이 프로세스는 사용자가 로그인할 수 있도록 윈로그온을 실행한다. 사용자가 로그인하면 파일 탐색기가 실행되어 윈도우 NT의 그래픽 사용자 인터페이스를 로드한다.

 프로그래밍 언어 
윈도우 NT는 C와 C++로 작성되었으며, 아주 적은 양이 어셈블리어로 작성되었다. C는 주로 커널 코드에 사용되는 반면 C++는 주로 사용자 모드 코드에 사용된다. 어셈블리어는 소프트웨어 이식성을 저해할 수 있으므로 가능한 한 사용을 피했다.

 버전 기록 

다음은 윈도우 NT 기술을 기반으로 한 윈도우 출시 버전들이다.

윈도우 NT 3.1부터 3.51까지는 윈도우 3.1 시리즈의 프로그램 관리자와 윈도우 파일 관리자를 포함했다. 윈도우 NT 4.0부터는 이러한 프로그램들이 원래 윈도우 95에서 선보였던 작업 표시줄과 시작 메뉴를 포함한 파일 탐색기로 대체되었다.

첫 번째 릴리스에는 당시의 16비트 윈도우와 맞추기 위해 버전 번호 3.1이 부여되었다. 당시의 잡지들은 버전 번호가 ".0" 릴리스보다 더 신뢰할 수 있게 보이도록 하기 위해 사용되었다고 주장하기도 했다. 또한 노벨 IPX 프로토콜은 윈도우 소프트웨어의 3.1 버전에만 라이선스가 부여된 것으로 알려졌다.

NT 버전 번호는 현재 일반적으로 마케팅 목적으로는 사용되지 않지만, 여전히 내부적으로 사용되며 운영 체제 핵심의 변경 정도를 반영한다고 한다. 그러나 마이크로소프트는 응용 프로그램 호환성 문제로 인해 비스타 이후 버전에서도 주 버전 번호를 6으로 유지하다가, 나중에 윈도우 10에서 10으로 변경했다. 빌드 번호는 마이크로소프트의 개발자와 베타 테스터들이 사용하는 내부 식별자이다.

윈도우 8.1부터 마이크로소프트는 버전 API 헬퍼 함수의 동작을 변경했다. 응용 프로그램이 윈도우 8.1 이상을 지원한다고 명시(manifest)되지 않은 경우, API는 항상 윈도우 8의 버전 번호인 6.2를 반환한다. 이는 GetVersion 및 관련 함수를 대체하기 위해 윈도우 8.1에서 매니페스트 기능이 도입되었기 때문이다.

 지원되는 플랫폼 
 32비트 플랫폼 
개발자들이 x86 칩에서 개발하는 것에 익숙해져 있어 인텔 x86 전용 코드가 운영 체제에 들어가는 것을 방지하기 위해, 윈도우 NT 3.1은 처음에 x86 이외의 개발 시스템을 사용하여 개발된 후 x86 아키텍처로 이식되었다. 이 작업은 처음에 인텔 i860 기반의 Dazzle 시스템과 나중에 MIPS R4000 기반의 Jazz 플랫폼을 기반으로 했다. 두 시스템 모두 마이크로소프트 내부에서 설계되었다.

윈도우 NT 3.1은 인텔 x86 PC 호환기 및 PC-98 플랫폼용으로, 그리고 DEC 알파 및 ARC 호환 MIPS 플랫폼용으로 출시되었다. 윈도우 NT 3.51은 1995년에 파워PC 프로세서 지원을 추가했는데, 특히 IBM ThinkPad Power Series 노트북 및 모토로라 PowerStack 시리즈와 같은 PReP 호환 시스템을 지원했다. 그러나 마이클 스핀들러와 빌 게이츠 간의 회의에도 불구하고, PReP 호환 파워 맥 프로젝트가 출시되지 못하면서 파워 맥 버전은 나오지 않았다.

Intergraph Corporation은 윈도우 NT를 자사의 클리퍼 아키텍처로 이식했으며, 이후 1995년에 UltraSPARC 모델 도입 계획과 함께 윈도우 NT 3.51을 썬 마이크로시스템즈의 SPARC 아키텍처로 이식할 의사를 발표했으나, 두 버전 모두 일반 대중에게 소매 제품으로 판매되지는 않았다.

윈도우 NT 4.0 변종 중 오직 두 개(IA-32 및 알파)만이 전체 서비스 팩 세트를 사용할 수 있다. 제3자(모토로라, Intergraph 등)가 수행한 다른 모든 이식 버전은 공개적으로 사용 가능한 업데이트가 거의 없거나 전혀 없다.

윈도우 NT 4.0은 알파, MIPS 또는 파워PC를 지원하는 마지막 주요 릴리스였다. 비록 알파용 윈도우 2000 개발은 1999년 8월 컴팩이 해당 아키텍처에 대한 윈도우 NT 지원을 중단할 때까지 계속되었고, 3일 후 마이크로소프트 또한 알파 NT 5(윈도우 2000) 릴리스가 RC1 상태에 도달했음에도 불구하고 알파 NT 프로그램을 취소했다.

2011년 1월 5일, 마이크로소프트는 윈도우 NT 제품군의 다음 주요 버전이 ARM 아키텍처 지원을 포함할 것이라고 발표했다. 마이크로소프트는 2011 Consumer Electronics Show에서 ARM 기반 컴퓨터에서 실행되는 윈도우 초기 버전(버전 6.2.7867)을 시연했다. 이는 결국 2012년 10월 26일 윈도우 8에서 파생된 윈도우 RT의 상업적 출시와, 윈도우 폰 8에서 윈도우 CE 대신 윈도우 NT를 사용하는 결과로 이어졌다.

원조 엑스박스와 엑스박스 360은 윈도우 2000의 대폭 수정된 버전을 기반으로 한 맞춤형 운영체제를 실행하는데, 마이크로소프트 엔지니어 돈 박스는 이 방식을 "분기 후 실행"(fork and run)이라고 불렀다. 이는 Direct3D와 같이 마이크로소프트 윈도우에서 볼 수 있는 것과 유사한 API를 제공한다. 엑스박스 원과 엑스박스 시리즈 X/S 콘솔은 윈도우 운영 체제의 간소화된 버전을 사용한다.

윈도우 11은 32비트 플랫폼을 지원하지 않는 최초의 비 서버용 윈도우 NT 버전이다.

 64비트 플랫폼 
윈도우 NT의 64비트 버전은 원래 아이테니엄 및 DEC 알파에서 실행되도록 의도되었으며, 후자는 64비트 윈도우의 초기 개발 과정에서 마이크로소프트 내부에서 사용되었다. 마이크로소프트가 알파용 64비트 윈도우 출시 계획을 취소한다고 공식 발표한 후에도 한동안 개발이 계속되었다. 이 때문에 알파용 윈도우 NT 버전은 32비트 전용이다.

윈도우 2000은 인텔 IA-32(32비트)만 지원하는 반면, 윈도우 XP, 서버 2003, 서버 2008 및 서버 2008 R2는 각각 아이테니엄 기반 시스템을 위한 에디션을 하나씩 가지고 있다. 아이테니엄에 비해 마이크로소프트는 x64를 더 큰 규모로 채택했는데, 윈도우 XP(전용 x64 에디션이 있음) 이후의 모든 윈도우 버전은 x64 에디션을 가지고 있다.

퀄컴 프로세서가 탑재된 ARM64 장치를 지원하는 윈도우 NT의 첫 번째 버전은 윈도우 10 버전 1709였다. 이는 축소된 윈도우 RT가 아닌 완전한 버전의 윈도우이다.

 하드웨어 요구 사항 
윈도우 NT의 워크스테이션 버전을 실행하는 데 필요한 최소 하드웨어 사양은 6.0(비스타) 이전까지는 상당히 완만하게 변화했다. 비스타는 이전 버전에 비해 10배나 많은 최소 15GB의 가용 디스크 공간을 요구하며, 2021년의 10.0(11) 버전은 2018년 이전에 제작된 대부분의 시스템을 제외한다.

 같이 보기 
 마이크로소프트 윈도우
 NTFS
 리엑트OS
 F6 디스크
 윈도우 NT 시작 프로세스
 윈도우 사전 설치 환경

 각주 

 내용주

 외부 링크 
 공식

 
분류:마이크로소프트 윈도우
분류:1993년 소프트웨어