윈도 95 및 윈도 NT: 개요
마이크로소프트사의 32비트 운영체제에 관한 사항들이 아주 많은 매체에 의해 다루어지면서 때로는 운영체제 자체가 모호해지는 경우도 있다. Win32 운영체 제는 다음과 같은 특징을 가지고 있다.
• 객체지향적 사용자 인터페이스
• 네트워크 및 클라이언트/서버 컴퓨팅과 인터넷 접근을 지원하는 시스템 소 프트웨어가 같이 공급
• 시스템 관리 등과 같은 주요 임무를 담당하는 유틸리티 지원
이와 같은 시스템 기능들은 진정한 의미의 운영체제에게는 필수적인 것이다. 따라서, Win32 운영체제는 UNIX, IBM MVS 등의 다른 운영체제와 기능면에 서는 견줄 수 있게 되었다. 더욱이 이들은 대개의 경우 저가의 PC와 같이 공급되거나 옵션 사양으로 얻을 수 있다.
운영 제제 기본
운영체제가 갖추어야 할 기본 기능은 지난 수십 년을 거쳐오면서 잘 정립이 되었으며,UNIX, MVS, VAX VMS, OS/2, Macintosh 등의 시스템 =1 서 =•업을 한 프로그래머에게는 잘 알려져 있는 사항이다. Win32는 이와 같은 기능들을 노트북 PC에서 기업용 서버에 이르는 광범위한 시스템에서 사용할 수 있도록 하였으며,이 책은 바로 이 Win32 API를 설명하고 있다•
이 책에서는 다음과 같은 운영체제의 핵심 기능들을 강조하여 설명한다•
• 매모리: 운영체제는 크고 일률적인(flat) 가상 메모리에 대한 주소 공간을 관리하며,실제 메모리와 디스크 공간 사이에서 정보를 투명하게 이동시킨 다.
• 파일 시스템: 운영체제는 이름이 부여되는 파일 공간을 관리하며, 디렉터리 및 파일 관리는 물론 직접 및 순차적 접근을 제공한다. 대부분의 시스템은 계층적 이름 체계를 갖고 있다.
• 자원 명명 (naming) 및 위치 지정: 길고 서술적인 파일 이름을 사용할 수 있으며,장치나 프로세스 간 통신 객체와 같은 객체에도 이를 확장할 수 있다. 운영체제는 이름이 부여된 객체의 위치를 지정하고 관리한다.
• 멀티태스킹(multitasking): 운영체제는 프로세스,쓰레드 및 다른 독립적이 고 비동기적인 수행 단위를 관리하여야 한다. 태스크는 선점될 수 있으며 동 적으로 결정되는 우선순위에 따라 스케듈링된다.
• 통신 및 동기화: 운영체제는 단일 시스템 내에서의 태스크 간의 통신과 동 기화는 물론, 인터넷 등의 네트워크로 연결된 시스템들 사이의 통신을 관리 한다.
• 보안(security) 및 보호(protection): 운영체제는 불법 및 우연한 접근과 변질로부터 자원을 융통성 있게 보호하는 기법을 제공한다
Win32는 이들 모든 기능들을 지원하며, 따라서, 윈도우95와 윈도 NT는 일 반적인 운영체제의 요구 사항들을 만족시킨다. 그러나 이것이 전부라면 윈도 그가 특별한 것이 되지 못한다. 즉, 수많은 운영체제들이 이들 기능들을 가지 고 있으며’ UNIXtt 오래전부터 광범위한 시스템에서 사용이 가능하였다.
또 다른 운영체제가 나왔다는 것이 흥미로운 일이 아니라면,왜 윈도우 NT나 윈도 95에 대해서는 이와 같이 관심을 갖는 것일까? 우선,이들은 PC에서 동 작하며, 따라서,개발자들은 크고 자원을 많이 요구하는 응용들을 만들어서 데 스크 탑과 같은 작고 독립적인 시스템에서 동작시킬 수 있게 되었다. 과거에는 이런 응용들은 중형 또는 대형 UNIXD 시스템에서만 수행될 수 있었다.
상업적 및 기술적인 면에서 다음과 같은 부가적인 장점도 있다.
• 윈도우즈는 시장을, 특히, 데스크톱 시장을 점유하고 있다. 따라서,윈도즈 응용은 수백만에 이르는 큰 목표 시장을 갖게 되며,이에 비해 UNIX와 맥킨 토시를 포함한 다른 데스크톱의 시장은 매우 협소하다.
• 윈도우즈 운영체제가 시장을 점유하고 있기 때문에 윈도즈에서는 여러 가 지 응용 및 초프트 웨어 개발 도구들을 싸게 이용할 수 있다. 또,새로운 제 품들은 대개 윈도즈 시스템용으로 먼저 개발된다.
• 윈도우즈 응용은 수백만 사용자에게 친숙한 GUI를 사용할 수 있다.
• 윈도우95에는 해당되지 않지만, 윈도 NT는 인텔의 X86, 펜티움 및 P6-기 반 시스템으로 이식해서 사용할 수 있다. 또,디지털(Digital) 사의 알파 (A lpha) 프로세서 시스템에서도 사용 가능하다. 대칭형 다중 프로세서 (Symmetric multiprocessor* SMP) 시스템도 지원한다. 윈도 NT는 데스 크탑에만 한정되지 않고 중형 및 대형 서버, 고성능 워크스테이션을 지원한다.
• 윈도우NT는 (윈도 95는 해당 없음) NSA (National Security Agency) C2 보안 수준을 인증받고 있다. 이는 표준 UNIX나 다른 운영체제들은 따르지 않고 있는 사항이다.
• UNIX를 제외한 대부분의 운영체제는 특정 시스템 구조 전용이다.
• Win32 API로 개발된 응용 소스 코드는 인텔,알파 및 Win32를 지원하는 다 른 구조사 이 에 서 쉽 게 이 식 이 된 다. 또 다 는 다 6 引 冗 터 구 소 (multiple-architecture) 운영체제인 UNIX에서는 다른 시스템으로 소스 코드를 이식할 때 소프트웨어 버전 사이의 차이 때문에 어려움이 종유 따른다.
• 윈도우즈 운영체제에는 표준 UNIX에는 없는 많은 기능들이 있다. (몇몇
UNIX 구현에서는 제공되기도 한다.) C2-수준 보안과 스레드가 그 예이다.
정리를 해보면, 윈도우즈는 이전에는 UNIX를 사용하는 다중 사용자 또는 대형 시스템에만 한정되어 왔던 대형 옹용을 친숙한 사용자 인터페이스를 이용하면서 값싼 개인용 컴퓨터에서 수행할 수 있도록 해주었다. 더욱이,윈도즈 플랫폼은 데스크톱부터 기업용 서버에 이르기까지 다양하게 적용할 수 있다. 기술적 및 상업적 요구에 의해 Win32 응용을 개발하겠다는 결정이 내려지고 있다.
Win32 시스템과 윈도 95 및 윈도 NT
두 개의 다른 32비트 윈도즈 운영체제가 있다는 점이 혼란스러울 수도 있을 것이다. 실제로 두 동일한 Win32 API를 지원한다. 한 시스템을 위해 개발한 프로그램은 매우 간단한 작업 올 통해 다른 시스템에서도 동작할 수 있다.
몇 가지 차이점은 다음과 같다.
• 윈도 95는 보안 기능이 전혀 없다.
• 윈도우95는 인텔 시스템에서만 동작하며 SMP를 지원하지 않는다.
• 윈도우95는 유니코드(Unicode) 확장(wide) 문자를 지원하지 않지만, NT는 파일 이름을 포함해 모든 곳에서 Unicode를 사용한다.
• Win32 API의 구현과 구조에 많은 차이가 있으며,따라서 성능의 차이가 있다.
• 일반적으로, 윈도 95는 오픈할 수 있는 파일이나 동시에 동작하는 프로세 스와 같은 자원을 많이 사용하는 것을 지원하지 않는다.
• 윈도우95는 비동기 I/O를 디스크 기반의 파일에는 지원하지 않고 직렬 (serial) 장치에 대해서만 지원한다.
• 많은 수의 윈도 95용 Win32 함수들은 제한된 상태로 구현이 되어 있으며, 따라서 일반적인 형태로 사용할 수 없다.
따라서,윈도 95는 저급 데스크톱 플랫폼에서 윈도 3.1 로부터 업그레이드하는 경우에 주로 사용된다고 볼 수 있다. 반대로, 윈도 NT는 매우 많은 사항들을 요구하는 응용들을 수행할 수 있는 고급 클라이언트나 서버 플랫폼에서 사용된 다고 볼 수 있다.
두 운영체제 사이의 다른 중요한 차이는 구현 구조와 관련된 것이기 때문에 프로그래머가 알 필요는 없다고 할 수 있다.
윈도우NT는 서브 시스템(subsystem) 환경을 지원할 수 있으며, 커널은 응용으로 부터 완전히 보호된다. Win32는 여러 서브시스템 환경 중의 하나에 불과하다. OS/2와 POSIX 서브시스템도 사용 가능하나 대개 사용되지 않는다. POSIX 서 브시스템은 네트워킹(소켓) 함수들과 같은 기본 기능이 부족하다. Win32 서브시 스템 안에 16비트 윈도즈와 MS-DOS 환경이 지원된다.
호환 (Compatibility) 라이브러리
호환 라이브러리는 개발자들이 Win32를 사용하는 또 다른 이유이다. (혹자는 호환 라이브러리 때문에 Win32를 이용하지 않고 POSIX 즉, UNIX API를 사용하면서 위에서 언급한 혜택을 얻을 수 있다고 주장하기도 한다.) 두 가지 경우 가 있을 수 있다.
• Win32 호환 라이브러리를 UNIX, 맥킨토시 또는 다른 시스템에 올릴 수 있으며,Win32로부터 소스 코드 호환성을 얻을 수 있다. 마이크로소프트로 부 터 라이선스를 받은 공급자들의 WISE (Window Interface Source Environment) 제품들은 Win32 API를 윈도즈 시스템이 아닌 다른 시스템에서 이용할 수 있도록 해준다.
• POSIX 호환 라이브러리를 Win32 서브시스템 위에 올릴 수도 있다. 이에 해당하는 상용 제품들이 여러 개 있다. 마이크로소프트의 Visual C++ 개발 환경도 제한적이기는 하지만 호환 라이브러리를 포함하고 있다.
정리를 한다면, 하나의 API를 선택해서 응용을 개발하고, 이를 Win32, POSIX 및 맥킨토시 시스템 등으로 코팅하는 것은 가능하다.
'IT & 프로그래밍 > Win32시스템프로그래밍' 카테고리의 다른 글
Win32 파일 시스템과 문자 I/O 사용 (0) | 2022.03.10 |
---|---|
Win32 시스템 프로그래밍 시작하기 (0) | 2022.03.10 |
댓글