Linked by Thom Holwerda on Thu 19th Mar 2009 06:44 UTC, submitted by Moulinneuf
Privacy, Security, Encryption As he had already predicted, cracker Charlie Miller has won the PWN2OWN contest by cracking Safari and Mac OS X within seconds of the start of the competition. "It took a couple of seconds. They clicked on the link and I took control of the machine," Miller said after his accomplishment. He took home the USD 10000 prize, as well as the MacBook he performed the exploit on. Internet Explorer 8 fell a while later by cracker Nils, who also cracked Safari and Firefox after being done with IE8.
Thread beginning with comment 353887
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[3]: Sad to say
by google_ninja on Thu 19th Mar 2009 12:16 UTC in reply to "RE[2]: Sad to say"
google_ninja
Member since:
2006-02-05

The problem in the case of .net isn't performance, it is several thousand man years worth of legacy code. Anything new is done in .net.

Anything in the GAC (global assembly cache) only gets loaded once, which includes the core libraries. Also, there is only ever one runtime running (as opposed to java/ruby/python/etc), and individual programs are segregated into "AppDomains" under that single runtime.

Reply Parent Score: 5

RE[4]: Sad to say
by ba1l on Thu 19th Mar 2009 15:39 in reply to "RE[3]: Sad to say"
ba1l Member since:
2007-09-08

Also, there is only ever one runtime running (as opposed to java/ruby/python/etc), and individual programs are segregated into "AppDomains" under that single runtime.


Except when it isn't.

Application domains can be used to host multiple applications inside a single OS process. However, the app domains are implemented as multiple copies of the .NET VM running inside a single process. Even if you have a single process with 10 application domains, you still have multiple VMs, which are deliberately kept isolated from one another. Big deal - pretty much any VM runtime can do that.

That's how the .NET VM is hosted inside SQL Server, how it's used in IIS for ASP.NET websites, and how it's hosted as a COM object inside other applications.

However, that's not how most .NET applications run. If you run a .NET application, a new process will be created, creating a new instance of the .NET VM along with it.

What it can do is pre-compile the assemblies in the GAC to native code. That way, the native code can be shared by any application using it - the runtime just mmaps the code to memory, and the OS just maps the same block of memory into each VM's address space.

That's something that other VMs don't do yet, although I believe Sun were working on some sort of JIT cache for Java that'd perform the same role.

Reply Parent Score: 3

RE[5]: Sad to say
by google_ninja on Thu 19th Mar 2009 15:55 in reply to "RE[4]: Sad to say"
google_ninja Member since:
2006-02-05

However, the app domains are implemented as multiple copies of the .NET VM running inside a single process. Even if you have a single process with 10 application domains, you still have multiple VMs, which are deliberately kept isolated from one another. Big deal - pretty much any VM runtime can do that


You learn something new every day ;)

I was under the impression that while appdomains were heavy, it was less overhead then to run multiple java apps. Guess there isn't all that much of a difference other then the shared memory bit.

Reply Parent Score: 2