Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 31 Aug 2003 08:14:58 +1000
From:      Peter Jeremy <PeterJeremy@optushome.com.au>
To:        "Pedro F. Giffuni" <giffunip@yahoo.com>
Cc:        kientzle@acm.org
Subject:   Re: Non-executable mappings now in NetBSD too
Message-ID:  <20030830221458.GC85746@cirb503493.alcatel.com.au>
In-Reply-To: <20030830205901.61109.qmail@web13403.mail.yahoo.com>
References:  <3F510CFD.1070400@acm.org> <20030830205901.61109.qmail@web13403.mail.yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Aug 30, 2003 at 09:59:01PM +0100, Pedro F. Giffuni wrote:
> --- Tim Kientzle <kientzle@acm.org> wrote: 
>...
>> 
>> The OpenBSD work on tightening up read/write/exec memory permissions
>> looks interesting, but I wonder what impact it has on
>> JIT technologies; do the current Java VMs or other incremental
>> compilation engines require write+exec?
>
>I haven't ever seen the source code for Java but I wouldn't think there is any
>problem. Bytecode is not really executable, and the java program doesn't need
>to modify itself either.

JIT is on-the-fly compilation to native code.  Whilst the Java
bytecode is not natively executable, a JIT JVM needs to be able to
write and immediately execute native code.  The OpenBSD W^X approach
would require system calls between the compilation and execution
steps.  My understanding of current JIT is that the compilation is
done is very small pieces and adding the overhead of a pair of system
calls would basically kill it.

>The OpenBSD people reported only Emacs got broken due to things they shouldn't
>do, and they found a workaround anyways.

Does OpenBSD support any JIT JVM?

> If perl didn't break, I think Java will survive too.

Emacs and perl both use traditional bytecode interpreters, as does the
Classic JVM.  I agree they will be unaffected.  This change will only
impact JIT JVMs.

Peter



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030830221458.GC85746>