[English][Japanese]

The PEACE Project

since Feb. 2000

What's New?


What is PEACE?

PEACEは、NetBSD/i386でWin32アプリケーションを動かすためのプログラム群です。平たく言えば、「エミュレートを行なわずにWindowsプログラムをNetBSDで実行可能にするためのDLL群」です。i386以外のアーキテクチャでの動作も予定しています。が、i386共々挫折するかも知れません(笑)。

What is the difference from other Win32 emulators?

PEACEはWineやWABIとは異なり、「エミュレータの実行ファイル」を持ちません。shやcshなどから直接EXEファイルを実行します。実のところ、エミュレータという表現はあまり正しくありません。Win32カーネル互換パッケージといったほうが近いでしょう。

More information

PEACEの構成要素は次の3つです。

  1. EXE実行をサポートしたカーネル
  2. DLLとのリンクをサポートしたダイナミックリンカ
  3. Win32 APIを実装したDLL群

カーネルは通常のNetBSDの実行形式(NetBSD-current/i386ではELF)の他に、Win32で採用されているPE(Portable Executable)形式のファイルをexecve(2)できるように機能追加しています。

ダイナミックリンカはDLLの形式をとり、EXEファイルとともにexecve(2)時にカーネルによってプロセス空間に配置され、EXEの実行前に必要なDLLの配置とアドレス解決を行ないます。

Win32 APIを実装したDLL群は、EXEが呼び出すさまざまなWin32 API関数を、NetBSDのlibcやその他のライブラリを使用して実現します。

How many Win32 API functions are implemented?

カーネルとダイナミックリンカは、主要な機能を実装済みです。DLLによって定義されるWin32 APIがどれだけの数実装され、それらがどの程度仕様に沿っているかによって、アプリケーションの動作が左右されます。現在、EXEファイルから呼び出すことのできる(つまり、ダイナミックリンクに成功する)APIの数は次のとおりです(2001年1月9日現在)。

     200 advapi32
      16 avifil32
      54 comctl32
      19 comdlg32
       1 ddraw
       1 dinput
       3 dsound
     296 gdi32
      31 imm32
     556 kernel32
      11 lz32
      14 msacm32
       4 msvfw32
      33 ole32
      41 shell32
     531 user32
      10 version
     126 winmm
      59 wsock32
    2006 total

しかし、これら2000の関数はまだほとんど実装されてないに等しい状況です。

Developers

PEACE の CVS レポジトリに書き込み権限を持っているひとたち:

Copyright notice

カーネル差分とダイナミックリンカのコードの一部は、NetBSDのソースコードから流用しています。 libc.dllとpthreadとX11関連DLL以外のDLLは、上記開発者によって記述されています。 The PEACE Project はいまだ団体としての体裁を整えるに至っていないため、 著作権表示は上記開発者個人のものとなっています。

/*
 * Copyright 2000 Masaru OKI
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. The name of the author may not be used to endorse or promote products
 *    derived from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

$Id: index.html,v 1.19 2006/07/04 06:57:49 tkent Exp $
[SourceForge Logo]