Google 연구원은 Windows NT 커널 디자인이 여전히 Linux를 왜소하게 만든다고 말합니다.

📅 2026-09-27

요약:

4년 동안 Microsoft에서 리버스 엔지니어로 근무했으며 현재 Google에서 근무하고 있는 연구원 Laurie Kirk는 최근 수십 년간 지속된 Windows와 Linux 간의 논쟁에 다시 불을 붙였습니다. 그녀는 Windows NT 커널이 엔지니어링 설계 관점에서 여전히 "엔지니어링의 기적"이며 심지어 여러 측면에서 Linux를 왜소하게 만든다고 공개적으로 밝혔습니다.

그녀는 또한 다소 대담한 대안적 역사적 시나리오를 제시했습니다. 만약 Microsoft가 대기업이 자유롭게 수정하고 파생할 수 있는 "Open NT"를 21세기 초에 출시했다면 오늘날의 서버 및 클라우드 컴퓨팅 생태계는 완전히 다른 환경을 제시할 수 있습니다.

Google-rsearcher-Laurie-Kirk-argues-Windows-NT-kernel-outclasses-Linux.jpg

Kirk는 자신이 존경하는 것은 Windows 11의 시작 메뉴, Copilot 또는 광고가 아니라 Windows의 기본 NT 커널 아키텍처라고 강조했습니다. 그녀는 NT가 처음부터 상대적으로 완전한 개체 모델과 보안 시스템을 구축한 반면, Linux는 전통적인 Unix를 기반으로 점차적으로 기능, 네임스페이스, SELinux와 같은 보안 메커니즘을 추가하여 전체적으로 더 분산된 것처럼 보인다고 믿습니다.

Kirk는 소셜 플랫폼에서 프로그래머의 관점에서 가장 간단하게 설명하면 NT는 "객체 지향" 설계에 더 가깝고 처음부터 매우 강력한 보안 모델을 가지고 있다고 말했습니다. 대조적으로, Linux의 많은 보안 기능은 나중에 점진적으로 추가되었습니다. 그녀는 미래 지향적인 운영 체제 커널이 지금 처음부터 설계된다면 최종 형태는 아마도 Linux처럼 보이지 않을 것이지만 NT에 더 가깝고 일부 BSD 분기와 유사할 수도 있다고 믿습니다.

Windows NT는 실제로 현재의 Windows 11을 포함하여 1993년 이후 모든 주요 Windows 버전의 기술 기반입니다. Microsoft는 이전에 DEC에서 VMS 운영 체제 개발을 담당했던 Dave Cutler를 1988년에 고용했습니다. Microsoft에 따르면 Cutler가 이끄는 전 DEC 엔지니어로 구성된 소규모 팀은 실제로 코드 작성을 시작하기 전에 사양을 개발하는 데 약 6개월을 보냈습니다. 초기 목표에는 이식성, 다중 프로세서 지원, C2 수준 보안 인증이 포함되었습니다.

Windows-NT-Workstation.jpg

은퇴한 Microsoft 엔지니어 Dave Plummer도 토론에 참여했습니다. 그는 Cutler가 처음부터 운영 체제 커널을 설계한 것이 NT가 처음이 아니라고 지적했습니다. 그는 이전에 RSX-11M 및 VMS에 참여했기 때문에 NT는 실제로 Cutler가 처음부터 커널을 구축한 세 번째입니다.

그러나 NT는 단순히 VMS를 Windows 셸로 대체하지 않습니다. 원래는 NT OS/2라고 불리며 이식성을 강조한 운영체제였습니다. 처음에는 Intel i860 프로세서용으로 개발된 후 MIPS 아키텍처로 이동되었습니다. Microsoft는 결국 NT의 주요 제품 방향을 OS/2에서 Win32로 변경했습니다. 중요한 배경은 Windows 3.1이 단 6개월 만에 1,600만 개를 판매했다는 것입니다.

Kirk가 존경하는 핵심 요소 중 하나는 NT의 "오브젝트" 디자인이었습니다. 마이크로소프트 자체 기술 용어로 NT는 전통적인 의미의 C++ 등의 언어로 구현된 '객체 지향 운영 체제'가 아니라 '객체 기반' 아키텍처를 사용한다. 프로세스, 스레드, 파일, 장치, 레지스트리 키, 뮤텍스, 작업 및 액세스 토큰과 같은 리소스는 모두 개체로 관리됩니다.

NT의 내부 개체 관리자는 이러한 개체를 생성 및 삭제하고, 개체 네임스페이스를 유지하고, 각 프로세스가 보유하고 있는 개체를 추적하고, 해당 액세스 권한을 관리하는 일을 담당합니다. 다양한 시스템 구성 요소는 해당 개체가 속한 구성 요소가 제공하는 인터페이스를 통해 이러한 개체를 사용하므로 기본 구성 요소의 내부 구현이 변경되면 다른 구성 요소에 어느 정도 영향을 미치는 것을 피할 수 있습니다.

일반 Windows 프로그래머가 이 디자인을 가장 쉽게 접할 수 있는 곳은 "손잡이"입니다. 응용 프로그램이 파일을 열면 Windows는 단순히 파일 자체를 응용 프로그램에 전달하는 것이 아니라 핸들을 반환하고 핸들에 부여된 권한을 기록합니다. 나중에 프로그램이 파일에 대해 작동할 때 시스템은 이러한 권한을 기반으로 확인합니다. 핸들을 복사하면 해당 권한이 더 줄어들 수 있지만 복사 작업을 통해 갑자기 늘릴 수는 없습니다.

Kirk는 다양한 시스템 리소스에 대한 상대적으로 통합된 관리 방법이 매우 우아하며 NT 아키텍처의 중요한 장점 중 하나라고 믿습니다.

NT의 보안 모델도 리소스, ID 및 권한을 기반으로 합니다. 사용자가 Windows에 로그인하면 시스템은 사용자의 보안 식별자 SID, 해당 사용자가 속한 사용자 그룹 및 관련 시스템 권한을 포함하는 액세스 토큰을 생성합니다. 사용자가 시작한 프로세스는 일반적으로 해당 액세스 토큰을 얻고, 보호할 수 있는 각 개체에는 어떤 SID가 어떤 권한을 얻을 수 있는지 또는 거부해야 하는지를 지정하는 액세스 제어 목록이 포함된 보안 설명자가 있습니다.

프로세스가 객체에 액세스하려고 시도하면 Windows는 액세스 토큰을 객체의 액세스 제어 목록과 일치시키고 적절한 권한이 있는 핸들을 반환합니다. 또한 보안 설명자에는 개체에 대한 성공 또는 실패 액세스를 기록하기 위한 감사 목적의 시스템 액세스 제어 목록이 포함될 수 있습니다.

그러나 이것이 잘 설계된 커널이 자동으로 절대적으로 안전한 운영 체제와 동일하다는 의미는 아닙니다. Windows NT 3.5는 한때 C2 보안 등급을 받았지만 당시 인증 환경은 네트워크 연결이 없는 독립 실행형 컴퓨터였으며 Microsoft는 파일 및 레지스트리에 대한 기본 권한도 강화했습니다. Windows가 인터넷 시대로 접어들면서 수십 년 동안 축적된 드라이버, 기본 구성, 호환성 요구 사항도 시스템 보안에 큰 영향을 미치게 됩니다.

Linux에 대한 Kirk의 주요 비판 중 하나는 Linux가 보안 및 권한 관리를 위해 여러 협력 메커니즘을 사용한다는 것입니다. 그녀가 제기한 질문에는 UID, GID, ACL, cgroups, 다양한 보안 정책, SELinux 및 파일 시스템 권한 등이 포함되었으며 이러한 메커니즘 간에 통합되고 직관적인 권한 관계 다이어그램이 부족하다고 믿었습니다.

Windows-NT-Machine.jpg

그러나 이러한 복잡성은 Linux 설계 방식의 일부이기도 합니다. UID와 GID는 사용자와 사용자 그룹을 식별하는 데 사용되며 파일 권한과 ACL은 파일을 보호하는 데 사용됩니다. 기능은 웹 서버가 전체 루트 권한을 얻지 않고도 포트 80을 바인딩하도록 허용하는 등 기존 루트 계정의 기능을 분리할 수 있습니다. 네임스페이스를 사용하면 프로세스가 독립적인 파일 시스템 마운트, 프로세스 또는 네트워크 환경을 볼 수 있습니다. 컨테이너 기술은 이러한 메커니즘을 기반으로 구축되었습니다. cgroup은 CPU, 메모리 등의 리소스 사용을 제한하는 역할을 담당하며 SELinux 및 기타 Linux 보안 모듈은 이를 기반으로 추가 보안 정책을 부과할 수 있습니다.

Linux의 이러한 메커니즘 중 다수는 커널 개발 과정에서 실제로 점진적으로 추가되었습니다. 예를 들어, SELinux는 원래 2001년 미국 국가안보국(National Security Agency)에서 독립 패치 형태로 제안되었습니다. 이후 Linux는 통합 커널 후크를 통해 다양한 보안 모델에 액세스할 수 있도록 Linux 보안 모듈 프레임워크를 구축했습니다. 오늘날 Linux 커널은 이미 SELinux, AppArmor, Smack, TOMOYO 및 Landlock과 같은 여러 보안 메커니즘을 지원합니다.

따라서 실제로 두 운영 체제의 디자인 철학에는 상당한 차이가 있습니다. NT는 통합된 개체 모델을 중심으로 관리를 중앙 집중화하는 경향이 있는 반면, Linux는 구성 가능성에 더 많은 관심을 기울이고 다양한 메커니즘이 다양한 작업을 수행하도록 하며 배포판, 관리자 및 응용 프로그램 시나리오가 서로 결합될 수 있도록 합니다.

Kirk는 특히 오늘날 인공지능 에이전트의 급속한 발전으로 인해 이러한 차이를 다시 살펴볼 가치가 있다고 믿습니다. 그녀가 제기한 핵심 질문은 "AI 에이전트가 정확히 무엇을 할 수 있도록 허용됩니까?"였습니다.

기존 프로그램은 일반적으로 사용자가 명시적으로 지시한 지침에 따라 하나씩 실행되는 반면, AI 에이전트는 몇 분 안에 수천 가지 작업을 지속적으로 수행하고, 스스로 코드를 생성 및 실행하고, 파일을 읽고, 여러 권한을 연결하여 복잡한 작업을 완료할 수 있습니다. 따라서 운영 체제는 프로그램을 실행하는 "누가"를 결정해야 할 뿐만 아니라 AI 에이전트가 액세스할 수 있는 리소스, 작동 범위 및 이러한 동작을 기록하는 방법을 보다 명확하게 정의해야 합니다.

Kirk는 NT의 개체 모델을 통해 운영 체제가 다양한 리소스에 대해 보다 명확한 권한 관계를 설정하고 AI 에이전트가 통제력을 잃을 때 보다 중앙 집중적이고 명확한 감사 기록을 제공할 수 있다고 믿습니다. 그러나 그녀는 이것이 아직 입증된 결론이라기보다는 건축학적 가설에 불과하다는 점도 인정했다.

사실 Linux는 이 문제를 해결하기 위해 점점 더 많은 도구를 제공하고 있습니다. Linux 5.13에 추가된 Landlock을 사용하면 권한이 없는 프로세스라도 액세스할 수 있는 파일 시스템과 네트워크 리소스를 적극적으로 제한할 수 있습니다. 이러한 제한은 하위 프로세스에 상속될 수 있으며 하위 프로세스에 의해 완화될 수 없고 더 엄격해질 수만 있습니다. seccomp, 네임스페이스, cgroup 및 다양한 LSM 메커니즘과 결합된 Linux는 AI 에이전트를 엄격하게 격리할 수도 있습니다.

Microsoft 자체도 비슷한 방향으로 움직이고 있습니다. Microsoft는 2026 Build 컨퍼런스에서 Microsoft Execution Containers(MXC)를 발표했습니다. 이를 통해 개발자는 AI 에이전트가 액세스할 수 있는 리소스를 선언하고 Windows는 런타임 중에 이러한 제한을 적용할 수 있습니다. MXC는 또한 에이전트를 위한 독립적인 사용자 계정을 생성할 수 있으므로 시스템은 에이전트가 수행하는 각 작업을 특정 ID에 귀속시킬 수 있습니다. Windows 11의 기존 에이전트 작업 영역도 ACL을 사용하여 에이전트 계정의 권한이 사용자의 권한을 초과하지 않도록 제한합니다.

즉, Microsoft는 이제 SID, 액세스 토큰, ACL과 같은 전통적인 NT 메커니즘을 사용하여 AI 에이전트 권한 문제를 해결하고 있습니다. 이것이 바로 Kirk가 NT 아키텍처의 장점을 믿는 지점입니다. 그러나 이것이 Linux가 AI 에이전트를 사용할 수 없다는 것을 Microsoft가 입증했다는 의미는 아닙니다. Microsoft는 AI 운영 체제를 발전시키는 동시에 AI 에이전트가 새로운 맬웨어 및 보안 위험을 초래할 수 있다고 경고했습니다.

Former-Microsoft-reverse-engineer-argues-Windows-NT-kernel-outclasses-Linux.jpg

그런 다음 Kirk는 자신의 가장 흥미로운 대안적 역사적 아이디어를 제안했습니다. 즉, 당시 Microsoft는 실제로 "Open NT"를 출시해야 한다는 것입니다.

그녀가 구상한 Open NT는 반드시 GPL 소프트웨어처럼 완전히 개방적일 필요는 없지만 대기업이 Microsoft에서 설정한 기본 보안 및 호환성 표준을 유지하면서 커널의 특정 구성 요소를 수정할 수 있도록 해줍니다. 예를 들어 Amazon이 초기에 EC2 클라우드 컴퓨팅 플랫폼을 구축할 때 Open NT에서 "AmazonNT"라는 버전을 파생시키고 스케줄러, 네트워크 스택 또는 메모리 할당자를 자체적으로 수정하면서 Microsoft가 정의한 핵심 호환성 및 보안 사양을 계속 준수할 수 있었습니다.

사실 마이크로소프트는 과거에도 어느 정도 유사한 모델을 시도한 적이 있습니다. Microsoft의 공유 소스 프로그램은 약 1,600개의 기업 고객, 대학 및 정부 기관에 Windows 소스 코드에 대한 액세스를 제공했습니다. 2001년에 오스트리아 내무부는 Windows XP 소스 코드를 획득한 최초의 유럽 정부가 되었습니다.

2006년에 Microsoft는 대학 연구원들이 교육 및 연구를 위해 NT의 스케줄러와 메모리 관리자를 수정할 수 있는 Windows Research Kernel도 출시했습니다. 그러나 이러한 프로젝트는 본질적으로 여전히 소스 코드 공유가 제한되어 있으며 Amazon과 같은 회사가 자체 Windows NT 분기를 만들고 상업적으로 배포하는 것을 허용하지 않습니다.

Microsoft가 NT를 더 이상 개방하지 않은 이유에 대해 기사에서는 라이선스 수입, 지적 재산권, 기술 지원 비용 및 Windows 호환성에 대한 Microsoft의 가장 중요한 약속과 관련이 있을 수 있다고 생각합니다. 제3자가 오랫동안 커널을 수정하도록 허용한다는 것은 Microsoft가 서로 다른 버전 간의 많은 호환성 및 보안 문제에 직면해야 함을 의미할 가능성이 높습니다.

Linux 개발자들은 Open NT 비전에 대해 다른 각도에서 의문을 제기해 왔습니다. 오랫동안 Linux 커널 그래픽 하위 시스템 개발에 참여한 David Airlie는 실제 문제는 커널 브랜치를 유지하는 데 드는 장기적인 비용이라고 믿습니다. 소스 코드가 완전히 공개되어 있더라도 기업이 20년 후에도 자체적으로 수정된 메모리 관리자나 스케줄러를 유지해야 한다면 전담 엔지니어링 팀에 계속 투자해야 합니다.

Airlie는 많은 회사가 Linux 버전을 포크하려고 시도했지만 몇 년이 지나면 자체 브랜치를 유지하는 데 드는 비용이 너무 높다는 사실을 깨닫고 궁극적으로 변경 사항을 메인라인에 다시 제출하기로 결정한다는 점을 지적했습니다. Java 생태계에서 다양한 JVM 구현이 오랫동안 존재할 수 있는 이유는 명확한 상용 고객과 수익원이 있기 때문입니다. 내부 기업에만 서비스를 제공하는 NT 지점은 장기적으로 이러한 비용을 감당하기 어려울 수 있습니다.

Amazon이 NT의 스케줄러를 수정하는 경우 Microsoft가 매달 출시하는 보안 수정 사항을 다시 병합하고 테스트하고 검증해야 합니다. 시간이 길어질수록 이 분기는 독립적으로 유지 관리해야 하는 운영 체제 커널 팀에 더 가까워집니다. Linux 모델은 기업에서 요구하는 많은 변경 사항을 최대한 메인라인에 제출하고 전체 커뮤니티가 공동으로 유지 관리하는 것입니다.

NT 자체에도 역사적 수하물이 없는 것은 아닙니다. 일부 엔지니어들은 VMS의 일관된 디자인이 현대 NT로 완전히 옮겨지지 않았다는 점을 지적했습니다. Windows 레지스트리는 오랫동안 엔지니어들 사이에서 가장 논란이 많은 시스템 구성 요소 중 하나였습니다.

Agents-running-in-Linux.jpg

그래픽 시스템에서도 또 다른 논란이 일어납니다. Windows NT 4.0 기간 동안 Microsoft는 그래픽 성능을 향상시키기 위해 Window Manager, GDI 및 그래픽 드라이버를 커널 공간으로 옮겼습니다. 이는 심각한 문제가 있는 그래픽 드라이버로 인해 전체 운영 체제가 충돌할 수 있음을 의미합니다. Windows 2000에는 Windows 드라이버 모델, 플러그 앤 플레이, 전원 관리, WMI 및 작업 개체와 같은 수많은 메커니즘이 추가되었습니다.

따라서 오늘날 Windows 11의 NT 커널은 더 이상 1993년 NT 3.1이 처음 출시되었을 때와 동일한 커널이 아닙니다. Kirk가 정말로 칭찬한 것은 현대 Windows의 모든 디자인이 본질적으로 Linux보다 우수하다고 생각하기보다는 NT가 설립되었을 때의 기본 아키텍처 개념 중 일부였습니다.

역사적 결과로 볼 때 Linux는 결국 NT가 달성하지 못한 서버 및 클라우드 컴퓨팅 분야에서 위치를 달성했습니다. Linux의 공개 라이센스를 사용하면 모든 조직에서 커널을 수정하고 다양한 하드웨어에서 실행하며 개선 사항을 메인라인에 다시 제출할 수 있습니다. 이후 컨테이너, 개발 도구, Android와 같은 거대한 생태계의 등장으로 인해 이러한 개발 모델이 더욱 강화되었습니다.

흥미로운 점은 Microsoft가 최근 몇 년 동안 Windows에서 Linux를 더 잘 실행할 수 있도록 열심히 노력해 왔다는 것입니다. Linux용 Windows 하위 시스템은 계속해서 성능 및 네트워크 개선을 받고 있으며 Microsoft는 사용자가 Windows 환경에서 직접 Linux 컨테이너를 실행할 수 있도록 하는 WSL 컨테이너와 같은 기능도 출시했습니다. Google은 또한 자체 AI 도구에 WSL 지원을 추가하기 시작했습니다.

동시에 Kirk는 BSD에 대해서도 언급했습니다. 그녀는 오늘날 운영 체제 커널이 재설계되면 NT 외에 BSD와 유사한 아키텍처도 나타날 수 있다고 믿습니다. 그녀는 BSD의 전체 구조가 비교적 깔끔하며 초기에는 Jail과 같은 격리 메커니즘을 가지고 있다고 믿습니다.

FreeBSD Jails는 프로세스가 보는 파일 시스템, 사용자 및 네트워크 환경을 제한할 수 있는 반면 Capsicum은 Kirk가 강조한 기능 모델에 더 가깝습니다. 기능 모드에 들어간 후 프로세스는 전역 네임스페이스에 마음대로 액세스할 수 없으며 파일 설명자를 통해 자신에게 명시적으로 부여된 권한만 사용할 수 있습니다. 흥미롭게도 Capsicum 프로젝트는 캠브리지 대학교에서 완료되었으며 Google로부터 연구 자금을 지원 받았습니다.

이러한 관점에서 Kirk가 실제로 논의하고 있는 것은 Windows나 Linux 등 모든 시나리오에서 누가 더 나은가가 아니라, 운영 체제가 "권한"을 어떻게 표현하고 제어해야 하는지에 대한 더 기본적인 문제입니다.

NT의 아이디어는 리소스에 명확한 유형을 부여하고 리소스에 대한 액세스 권한을 부여하며 최대한 운영 체제에서 균일하게 확인하고 기록하는 것입니다. Linux는 보다 유연한 Unix 기반에서 시작하여 결합할 수 있는 여러 메커니즘을 통해 다양한 환경의 요구 사항을 충족합니다. 두 방법 모두만으로는 시스템 보안을 보장할 수 없습니다.

AI 에이전트의 등장으로 인해 이 문제가 더욱 중요해지고 있습니다. 과거에는 운영 체제에 대한 가장 중요한 질문은 "어떤 사용자"가 작업을 수행하는지 확인하는 것이었습니다. 미래에는 AI 에이전트가 누구를 대표할 수 있는지, 액세스할 수 있는 리소스는 무엇인지, 허가 기간은 얼마나 되는지, 수행할 수 있는 작업은 무엇인지, 시스템이 자신이 수행한 작업을 정확하게 증명할 수 있는지 여부에 대해 추가로 답변해야 합니다.

Windows NT는 서버와 클라우드 컴퓨팅 세계에서 지배적인 플레이어가 되지 못했으며, 그 자리는 결국 Linux가 차지했습니다. 그러나 NT 3.1이 나온 지 벌써 30년이 넘었다. Windows는 여전히 개체, 핸들, 액세스 토큰 및 ACL의 원래 디자인 개념을 사용하고 있으며 Microsoft는 이제 AI 에이전트의 권한 격리 문제를 해결하기 위해 이러한 메커니즘을 사용하기 시작했습니다.

따라서 로리 커크(Laurie Kirk)가 상상한 "Open NT"는 영원히 허구의 역사에만 존재할 수도 있지만, 컴퓨터가 인간을 위해 점점 더 많은 작업을 적극적으로 수행하기 시작하면서 모든 운영 체제가 점점 더 현실적인 문제에 직면하고 있습니다. 소프트웨어가 인간을 대신하여 행동하기 시작하면 소프트웨어가 어디까지 허용되어야 할까요?

관련 태그

관련 글

댓글

0/500
Captcha (click to refresh)
댓글 없음