Windows
정의 및 설명[편집]
Windows는 Microsoft가 개발한 컴퓨터 운영체제이다. 명령어 인터페이스(Command Line Interface) 대신, 마우스로 아이콘 및 메뉴 등을 클릭해 명령하는 그래픽 사용자 인터페이스(GUI : Graphic User Interface)를 지원하는 멀티태스킹 능력과 사용자 편의성이 탁월하다. 또한 전 세계 PC 운영체제 시장에서 점유율 90%이상 차지할 정도로 두터워 대부분의 소프트웨어와 호환이 된다는 장점이 있다. 현재 개인용 운영체제뿐만 아니라 다양한 영역으로 범위를 넓혀 가고 있다.
Microsoft는 개인용 운영체제는 MS-DOS기반의 Windows 1.0, 기업용 운영체제는 NT기반의 Windows NT를 시작으로 꾸준한 업데이트를 지속해 오고 다. 현재까지의 Windows의 역사를 나타내면 다음 그림과 같다. 2014년 현재 Windows 8.1 까지 출시되었다.
기술 현황[편집]
Windows 구조에서 Hardware abstraction layer(HAL)는 윈도우에서 제시한 하드웨어 인터페이스 표준으로 하드웨어가 소프트웨어와 원활히 통신할 수 있도록 도와준다. Micro Kernel은 여러 관리자(manager)에게 일을 분담시키고 하드웨어와의 통신만을 제어하는 최소한의 커널이다. 이 Micro Kernel 위에 있는 것이 관리자(Manager)이며, 각 관리자의 역할을 정리하면 다음과 같다.
manager 종류 | 역할 |
---|---|
I/O manager | 시스템의 입출력을 제어
하드웨어와 통신을 가능하게 해줌 |
Object manager | 각 객체의 대한 정보를 제공 |
Security reference monitor | 각 데이터나 시스템 자원의 제어를 허가하거나 거부함으로써 강제적으로 시스템의 보안 설정을 책임짐 |
Process manager | 스레드를 생성하고 요청에 따라서 처리 |
Local Procedure Call | 프로세스간의 통신을 수행 |
Virtual Memory manager | 응용 프로그램의 요청에 따라 RAM의 메모리를 할당해주고, 가상 메모리의 paging을 제어 |
Cache manager | Cache를 관리 |
Plug and Play manager | Plug and Play를 관리 |
그리고 윈도우에서는 커널모드와 유저모드가 있다. HAL, Micro kernel, 그리고 각 Manager가 실행되는 가상적인 공간을 커널 모드라고 한다. 우리가 운영체제를 통하여 사용하는 일반적인 응용 프로그램은 유저 모드에서 동작한다. 유저 모드에는 여러 가지 응용 프로그램이 존재할 수 있으며, 이러한 응용 프로그램을 실행시키기 위한 서브시스템[subsystem]이 있는데, 서브시스템은 윈도우에서 여러 가지 응용 프로그램을 실행시키기 위한 container라고 할 수 있다.
서브시스템이란 윈도우의 사용자 인터페이스를 제공한다. 서브시스템으로는 Win32 서브시스템과 OS/2, POSIX, 보안 서브시스템이 있다.
Windows 운영체제들의 내부구조는 Microsoft의 공식 가이드[1] 나 Microsoft 홈페이지[2]에서 참고할 수 있으며, Windows의 소스코드는 비공개이기 때문에 세세한 분석 기술은 아직 미비한 상황이다.
참고 문헌[편집]
- ↑ 마크 러시노비치, 데이비드 솔로몬, 『windows Internals』, 에이콘출판사, 2010
- ↑ Microsoft 홈페이지: http://www.microsoft.com