Win32s
Win32sとは、16ビットOSのWindows 3.1上で、Windows NTのようなWin32ベースに作成された32ビットアプリケーションを動作させるよう拡張するシステムのことである。
Windows 3.1は、Win32の実行ファイル形式であるPE形式を理解するように設計されている。Win32の32ビットコードから、Windows 3.1の16ビットコードを呼び出せるように、あるいは、逆に16ビットから32ビットへサンクの仕組みを構築して実現している。
Win32sは、Windows NTを必要とする32ビットアプリケーションの開発と流通の促進を図るため投入されたとされる。ちなみに、Win32sの末尾のsはsubset(部分集合)の頭文字である。
API: | TWAIN Win16 Win32 Win32s Windows Telephony API WinG XMLHttpRequest |
Win32s
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/11/29 07:33 UTC 版)
Win32sとは、マイクロソフトが開発及び配布した、32ビット版Windows用APIである「Win32」のうち、Windows 3.1で使用されるAPIである「Win16」と共用できるものを抜き出してサブセットとしたものである。32ビットCPUが要求され、Windows 3.1未満では使用できない。
これを用いることにより、一部のWin32対応アプリケーションをWindows 3.1でも動作させることが可能となる。ただし動くのはWindows 3.1の制約を意識して作られたプログラム(おおむねWindows 3.1が主流の頃に作られたもの)にほぼ限られ、Windows 95の登場以降はWindows 3.1でそのまま動く32ビットアプリケーションは次第に見られなくなっていった。
概要
Windows 3.1ではもともと16ビットのAPIが使われていたが、やがて登場したWindows NTで32ビットのAPIが備えられ、「Win32」と呼ばれた。これを受け、従来の16ビットAPIは「Win16」と呼ばれるようになった。
その後Windows 3.1から32ビットアプリケーションが中心となるWindows 95へのバージョンアップが迫る中で、ソフトウェアベンダーが大きな変更なしにWindows 95への移行を行えるよう、Win32の中でWin16と共通した部分のみがWin32sとしてまとめられ、そのAPIとライブラリが無料配布された。Windows 95では互換性を保持するためWin16ベースのアプリケーションも動作は可能であったが、制約が大きくOSをフリーズさせやすくする恐れがあったため、マイクロソフトはアプリケーションの32ビット化を推奨した。
衰退
16ビットOSではメモリアドレスが64KB(2の16乗)までしか一回で表現できないことから、Windows 3.1当時のWindowsプログラマはそれ以上のメモリを「一度には」扱うことができず、処理を分けて少しずつメモリを使わなくてはならないなどの制限に縛られていた。Win32sはAPIが32ビット化しただけであり、Windows 3.1上で動く以上はそうした制限を引きずっていた。一方で32ビットOSではこのような制限を気にせずプログラムが組めることが大きな利点だったことから、Windows 95の登場はプログラマにとってたいへん歓迎され、95登場後はWin32sへの関心は急速に失われていった[1]。
実際にWindows 95が普及すると、Win32s (Windows 3.1) の制限を順守するようなプログラムは作られなくなり、プログラマやソフトウエアベンダも95専用アプリケーションに急速にシフトしていった。その結果Windows 3.1は急速に衰退し、Win32sもその役割を終えた。
付録
Win32sインストール後の動作確認用アプリケーションとして、32ビット版フリーセルが付属していた。(インストールは任意)
脚注・出典
- ^ “Win32プログラミング大全 上”. アスキーインデックス. 2011年5月31日閲覧。[リンク切れ](立ち読み用PDF「第一章 Windowsの概念の紹介」[リンク切れ])
関連項目
外部リンク
Win32s
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/03/07 20:30 UTC 版)
「Windows API」の記事における「Win32s」の解説
Windows 3.1用の実装。's'は「subset」(サブセット)の頭文字である。Windows 3.1には搭載されておらず、別途入手・インストールする必要がある。
※この「Win32s」の解説は、「Windows API」の解説の一部です。
「Win32s」を含む「Windows API」の記事については、「Windows API」の概要を参照ください。
固有名詞の分類
- Win32sのページへのリンク