Gnutella Forums  

Go Back   Gnutella Forums > Current Gnutella Client Forums > LimeWire+WireShare (Cross-platform) > New Feature Requests
Register FAQ The Twelve Commandments Members List Calendar Arcade Find the Best VPN Today's Posts

New Feature Requests Your idea for a cool new feature. Or, a LimeWire annoyance that has to get changed.


 
 
LinkBack Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #5 (permalink)  
Old August 1st, 2005
verdyp's Avatar
LimeWire is International
 
Join Date: January 13th, 2002
Location: Nantes, FR; Rennes, FR
Posts: 306
verdyp is flying high
Default

The case of the new NX bit in AMD64 processors (and more recently in new Pentiums) was an issue, not in LimeWire itself, but in the JVM that internally generates and uses self-modifying code (in the JIT compiler that compiles the Java Bytecode into native assembly, and then immediately starts running it). Support for it has been patched by Sun (there were tricky cases where a page of memory could be allocated to store the generated assembly, where the page was R/W data and initially not intended to be executable; the CPU driver for Windows is in charge of loading shared program pages in read-only executable mode, and this part of the code is where the Kernel memory mamager collaborates with a CPU-specific driver)

Initially there's a compatibility mode where all pages are executable, but the interest of the NX bit comes only when the OS candetermine which page is effectively data, and which page contains valid code. A basic implementation can assume that writable pages are not executable because they are normally not shareable without synchronization across processes; and the OS program loader normally loads pages of program code sections in read-only executable memory. (In rtecent kernels of Windows, these pages are, as much as possible supported by memory-mapped file fragments (unless the file's code need to be patched b the program loader, for example if a DLL is compiled with a base address which conflicts with pages of other DLLs).

For the case of JIT in Java, the program loader does not offer help, because the code is not backed by a file (this uses traditional Virtual memory allocator). Don't forget that JIT needs to collaborate with the Java garbage collector, so pages of memory may need to change of status. For security in recent versions of the JVM, there are now different pools of memory pages to avoid sollicitating the OS VM manager which is in charge of setting the NX bit and other access restrictions (including process isolation) within page descriptors that can be used natively by the processor's builtin descriptors cache.
__________________
LimeWire is international. Help translate LimeWire to your own language.
Visit: http://www.limewire.org/translate.shtml
Reply With Quote
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Dual Boxing Stevesy General Windows Support 2 December 20th, 2006 08:27 PM
Failure to remember screen position when using dual spanning monitors Kimpatsu Hekigan Mac OSX 0 December 14th, 2005 11:08 AM
can you get dual layer dvd- ???? timski General Mac OSX Support 0 March 16th, 2005 02:56 PM
Limewire Closes when moving from one screen to another on dual monitors The Jesus General Linux Support 1 November 10th, 2002 07:41 PM
Can I Install on dual boot if purchased? Unregistered Windows 0 February 8th, 2002 05:21 AM


All times are GMT -7. The time now is 10:59 AM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
SEO by vBSEO 3.6.0 ©2011, Crawlability, Inc.

Copyright © 2020 Gnutella Forums.
All Rights Reserved.