Greg,

Yes, I'd love to see these ideas you have.  Send them
on this list, since others will likely want to see them too.

Note at the moment we are focusing on running OSes
unmodified.  I do support the idea of (in the future)
feeding back enhancements such that guests can run
more efficiently.

Don't post the code here though.  Too big for email.
My, bochs has been used for some interesting things. :^)

-Kevin


Greg Johnson wrote:
> 
> Hi,
> 
>   I love what you guys are doing.  The world *REALLY* needs
> a virtual machine capability in the open source operating
> system arena.
> 
>   A friend of mine and I were trying for a while to start a
> company to develop and sell virtual machine technology based
> on FreeBSD Unix.  However, we missed the bubble and it didn't
> happen.
> 
>   What I'd like to do is offer the work I did and the ideas
> I had to FreeMWare.
> 
>   I think the nicest idea I had was one that permits the
> efficient implementation of what ends up looking like an
> execute bit in the page tables of an x86.  (The actual
> x86 hardware does not have a separate execute bit on the
> page tables.)
> 
>   The advantage of having an execute bit is that you can
> turn it off, and get a catchable fault if a process tries
> to branch to and start executing on a page where you are not
> prepared to have execution take place.
> 
>   So, you essentially end up with three bits per page:
> a read bit, a write bit, and an execute bit.  You can
> have a page enabled for reading and writing, but not for
> executing.  So, it is possible to smooth the transition
> between having a page contain writable "data" and having
> it contain executable code.  (When an operating system
> starts a process or does paging, this is exactly what
> happens:  it writes bits to a page, and later fetches
> are performed on the page to execute the bits as instructions.)
> 
>   My approach entails operating system kernel modifications;
> it is not solely an application-level technique.
> 
>   Would people be interested in my sending the description
> of this idea to the FreeVMWare mailing list?  Or perhaps to
> some specific individual?
> 
>   The other thing I spent a fair amount of time on was
> modifying a (paid-for) copy of Bochs so that instead of
> interpreting instructions it would use system calls to
> modify the address space of another process and create
> directly executable basic blocks.  So, you ended up with
> a sort of hybrid interpretation-based x86 instruction
> emulator and virtual machine.  when a given basic block
> could be safely, provably translated into directly executable
> machine code it would be so translated.  Subsequent
> executions of that basic block would happen in the
> other process at full machine-execution speeds.
> 
>   Would people be interested in my sending that (now
> rather old) source code?
> 
> Thanks and keep up the great work,
> 
> Greg Johnson
> [EMAIL PROTECTED]

Reply via email to