Mailing-List: contact cygwin-developers-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-developers-owner AT cygwin DOT com Delivered-To: mailing list cygwin-developers AT cygwin DOT com Message-ID: <04ce01c1a72e$2c597940$0200a8c0@lifelesswks> From: "Robert Collins" To: Subject: fork() idea Date: Sun, 27 Jan 2002 23:28:48 +1100 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2600.0000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 X-OriginalArrivalTime: 27 Jan 2002 12:28:44.0433 (UTC) FILETIME=[292E7810:01C1A72E] Just running this past for criticism. What if on fork(), we loaded a _trivial_ stub program, what depends on little-or-nothing, and thus takes up almost no memory, has little chance of dll conflicts, address relocation etc. Then allocate memory to look like the parent, load .dll's etc. The point of this being that it allows a neat hack: System shared memory can be made copy on writewith FILE_MAP_COPY. On WinNT, if we load the application image into system mapped memory, we can then duplicate much/most of the address space with _much_ lower overhead. Thoughts? Rob