Win32s
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
Win32s는 윈도우 NT의 초기 버전을 위해 설계된 Win32 윈도우 API의 부분 집합이다. "s"는 subset(하부 집합)을 의미하며, 멀티스레딩, 비동기 I/O, 최신 시리얼 포트 기능, GDI 확장 등 여러 윈도우 NT 기능이 제거되었다. Win32s는 Windows 3.1에서 32비트 응용 프로그램을 실행하기 위한 기술로, 윈도우 95의 등장과 함께 쇠퇴했다. Win32s는 웹 검색을 통해 설치 파일을 구할 수 있으며, 일부 초기 Win32 프로그램에 포함되어 배포되기도 했다.
더 읽어볼만한 페이지
- 마이크로소프트 API - 윈도우 API
윈도우 API는 마이크로소프트 윈도우 운영 체제에서 응용 프로그램이 시스템 기능에 접근하도록 돕는 인터페이스 집합이며, 다양한 버전으로 발전해 왔고, 현재 Win32가 널리 사용되며, 유연성을 제공하지만 복잡하다는 단점을 보완하기 위해 다양한 래퍼 라이브러리가 개발되었다. - 마이크로소프트 API - WinFS
WinFS는 마이크로소프트가 개발한 파일 시스템으로, 검색 기능 내장 및 메타데이터 관리를 통해 데이터 관리 효율성을 높이는 것을 목표로 했으나 별도 제품으로 출시되지는 못하고 핵심 기능들이 윈도우 비스타 이후 기술에 통합되었다.
| Win32s | |
|---|---|
| Win32s 정보 | |
![]() | |
| 개발사 | 마이크로소프트 |
| 운영 체제 | MS-DOS용 윈도우 3.1 |
| 종류 | API 확장 |
| 출시일 | 1992년 10월 (베타) |
| 최신 버전 | 1.1 (1993년 5월) |
| 상세 정보 | |
| 설명 | Win32s는 마이크로소프트에서 개발한 소프트웨어 레이어로, MS-DOS용 윈도우 3.1에서 32비트 애플리케이션을 실행할 수 있게 해준다. |
| 특징 | Win32 API의 서브세트를 구현하여 윈도우 NT 및 윈도우 95와 같은 32비트 윈도우 버전용으로 작성된 애플리케이션을 16비트 윈도우 3.1에서 실행할 수 있게 한다. |
| 버전 | 베타 버전은 1992년 10월에 출시되었다. 1.1 버전은 1993년 5월에 출시되었다. |
2. 개념과 특징
Win32s는 초기 버전의 윈도우 NT에 존재했던 Win32 윈도우 API의 부분 집합으로 설계되었다.[9] Win32s의 "s"는 ''subset''(하부 집합)을 의미하며, 멀티스레딩, 비동기 I/O, 최신 시리얼 포트 기능, 그리고 많은 GDI 확장 등 여러 윈도우 NT 기능이 제거되었다.[4]
Win32s는 Windows 3.1의 공유 주소 공간과 협력적 멀티태스킹 특성을 가졌다. Win32s에서 실행되는 응용 프로그램은 재배치 정보를 포함해야 했다. thunking 기술은 Win32s 뿐만 아니라 윈도우 95, 윈도우 98, 윈도우 ME와 같은 운영 체제에도 적용되었다.[4]
Windows 3.1에서는 원래 16비트 API(Win16)가 사용되었지만, 이후 등장한 Windows NT에서 32비트 API(Win32)가 제공되었다. 윈도우 95로의 버전 업이 다가오면서, 소프트웨어 벤더들이 큰 변경 없이 Windows 95로 이전할 수 있도록 Win32 중에서 Win16과 공통된 부분만을 Win32s로 정리하여, 해당 API와 라이브러리를 무료로 배포했다.
2. 1. 제약 사항
Win32s 응용 프로그램은 윈도우 3.1의 제약을 상속받아, 16MB 이상의 메모리를 사용할 수 없었고 DirectX와 같은 확장 기능을 사용할 수 없었다.[5] 16비트 운영체제에서는 메모리 주소를 64KB(2의 16제곱)까지만 한 번에 표현할 수 있었기 때문에, Windows 3.1에서 Win32s를 사용하는 프로그래머는 그 이상의 메모리를 한 번에 다룰 수 없었고, 처리를 나누어 조금씩 메모리를 사용해야 했다.[4]사용자 레벨 thunking을 허용하면 시스템 전체에서 안정적인 메모리 관리나 메모리 보호를 제공하기 어렵고, 핵심 또는 커널 보안이 복잡해진다. 이 때문에 Win32s 및 윈도우 95, 윈도우 98, 윈도우 ME와 같은 시카고 커널 시스템에서 잘못 작성된 응용 프로그램이 시스템 안정성을 저해할 수 있었다.[4]
2. 2. 호환성
Win32s 호환 응용 프로그램은 마이크로소프트 개발 도구뿐만 아니라, 볼랜드 C++ 4.x 및 심텍 C++ (현재 디지털 마스 C++)를 사용하여 빌드할 수 있었다. 그러나 몇몇 프로그램 컴파일 옵션과 윈도우 NT 3.1에 암묵적으로 포함되어 있던 DLL은 Win32s에서 응용 프로그램에 포함되어야 했다.[10] 마이크로소프트는 1996년 말에 출시된 비주얼 C++ 버전 4.2에서 Win32s에 대한 지원을 중단했다.[10]3. 활용 사례
Win32s는 프리셀 카드 게임의 구현을 예시 응용 프로그램으로 포함했다.[6] 워크래프트 2: 어둠의 물결의 레벨 편집기는 Win32s를 필요로 했는데, 높은 해상도 그래픽 모드가 이미 윈도우에서 처리되었기 때문에 대형 지도를 표시하기 위해 윈도우 GUI를 사용했다. NCSA 모자이크 웹 브라우저 버전 2도 Win32s가 필요했다.[6] C# 응용 프로그램은 CoreRT 컴파일러를 통해 Win32s와 함께 윈도우 3.1에서 실행 가능한 Win32 실행 파일로 컴파일될 수 있었다.[7] 초기 버전의 인터넷 익스플로러(버전 5까지)도 Win32s와 호환되었다.[5]
4. 역사
Win32s는 윈도우 NT 초기 버전에 존재하였으며 Win32 윈도우 API의 일부 기능으로 고안되었다.[9] Win32s의 "s"는 'subset'(하부 집합)의 앞글자를 딴 것이며, 스레드, 비동기 입출력 등 윈도우 NT의 수많은 기능이 제거되었다.[10] 그러나 마이크로소프트 3D 핀볼과 윈도우 95 계산기를 포함한 일부 표준 Win32 프로그램들은 올바르게 동작한다.[11]
윈도우 3.1에서는 원래 16비트 API(Win16)가 사용되었지만, Windows NT에서 32비트 API(Win32)가 제공되면서 Win16과 Win32라는 용어가 구분되어 사용되기 시작했다. 마이크로소프트는 소프트웨어 벤더들이 윈도우 95로 쉽게 전환할 수 있도록 Win32의 부분 집합인 Win32s를 무료로 배포했다.
4. 1. 쇠퇴
윈도우 95의 등장과 함께 32비트 운영 체제의 이점이 부각되면서 Win32s에 대한 관심은 급속도로 사라졌다. 16비트 운영 체제에서는 메모리 주소를 64KB까지밖에 한 번에 표현할 수 없었기 때문에, 윈도우 3.1 당시의 윈도우 프로그래머는 그 이상의 메모리를 "한 번에" 다룰 수 없었고, 처리를 나누어 조금씩 메모리를 사용해야 하는 등의 제약에 묶여 있었다. Win32s는 API가 32비트로 변경되었을 뿐, 윈도우 3.1에서 작동하는 이상 그러한 제약을 안고 있었다. 반면 32비트 운영 체제에서는 이러한 제약 없이 프로그램을 만들 수 있다는 점이 큰 이점이었기 때문에, 윈도우 95의 등장은 프로그래머들에게 매우 환영받았다.[1]실제로 윈도우 95가 보급되면서 Win32s (윈도우 3.1)의 제약을 준수하는 프로그램은 더 이상 만들어지지 않게 되었고, 프로그래머와 소프트웨어 벤더도 95 전용 애플리케이션으로 빠르게 전환해 갔다. 그 결과 윈도우 3.1은 급속히 쇠퇴했고, Win32s도 그 역할을 마쳤다.[2]
5. 설치
Win32s는 웹 검색 엔진을 통해 찾을 수 있으며, PW1118.EXE는 일반적인 설치 파일로 이용된다.[1] Win32s는 일부 초기 Win32 프로그램에도 포함되어 있었다.[1] 개발자는 일관된 클립보드 처리가 필요한 경우 OLE를 설치해야 했다.[2]
참조
[1]
웹사이트
Win32s Beta
https://winworldpc.c[...]
[2]
웹사이트
Win32s 1.1
https://winworldpc.c[...]
[3]
웹사이트
General Overview of Win32s
http://support.micro[...]
Microsoft Corporation
2004-04-12
[4]
웹사이트
General limitations under Win32s
http://support.micro[...]
Microsoft Corporation
2005-11-22
[5]
웹사이트
The Win32s compatibility list
http://stephan.win31[...]
2008-11-30
[6]
서적
World Wide Web Unleashed
Sams Publishing
[7]
웹사이트
1/7 Did you ever need to run a piece of C# code on Windows 3.11? Me neither, but I did it anyway.
https://twitter.com/[...]
2020-01-09
[8]
웹사이트
Win32プログラミング大全 上
http://ascii.asciimw[...]
アスキーインデックス
2011-05-31
[9]
문서
General Overview of Win32s
http://support.micro[...]
[10]
문서
INFO: General limitations under Win32s
http://support.micro[...]
[11]
문서
The Win32s compatibility list
http://stephan.win31[...]
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com
