[lug] SELinux

Zan Lynx zlynx at acm.org
Mon Jan 29 13:54:42 MST 2018


On Mon, Jan 29, 2018 at 09:38:20PM +0100, mad.scientist.at.large at tutanota.com wrote:
> sorry, haven't used the various flavors of java.  If it's compiled,
> then such flaws are a compiler problem or a problem with the java
> engine.  I assume the JVM bytecode is run on an interpreter, similar
> to the way pascal produces code for a hypothetical machine, though
> some pascal compiler do provide target code.

Java is compiled while it is running via the JIT, Just-In-Time compile.

That's why the operating system cannot block writing and executing
machine code and also run Java. Java is writing and executing machine
code all of the time.

This allows it to do very nice tricks such as continuously profiling
code and recompiling it to be faster for the current scenario. It can
inline hot blocks and devirtualize function calls for the most commonly
used object classes.

The client version of the JVM does include a bytecode interpreter. The
theory is that rarely run code does not need to be compiled. However,
hardly anyone I know still runs the client JVM, since it is 32-bit only
and seems to generally be slower, since the 64-bit server JVM compiles
everything.

Systems changed a lot since Java started. What used to be a giant server
with 4 GB of RAM and 8 CPUs is now just a low-end laptop.


More information about the LUG mailing list