lkml.org 
[lkml]   [1998]   [Apr]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectWLinux -> Subverting Windows by making Linux available to MS users
Date
I really wanted to get this to critical mass before announcing, but of
course I'm swamped for the forseeable future and this is a big job, so
HELP!

Feel free to critique, flame, offer help, create a working example, etc.
Don't bother complaining that it's distasteful: I already feel the
same way to some extent, however I think this is well worth doing.


The WLinux idea (high level):

Create a configuration and distribution of Linux that will run 'under'
Win95 and WinNT using virtual device stubs to access native device
drivers and innovative methods to safely coexist with the 'closed'
operating system. I call this WLinux. (By extension, WLinux95,
WLinuxNT.) (Some consulting company has the name 'Winux' I believe.)

Yes, this sounds crazy and useless at first to many. Also, it's quite
obvious that we'd all like to run Linux natively and virtualize
Win95/NT. (And there are people working on that difficult task.) It
occurred to me that this, opposite, scenario had a lot of interesting
side effects.



Benefits:

A truly portable, shrinkwrap version of Linux that can run on any
Win95/WinNT machine with no regard to native device drivers.
(Assuming a typical application.)

Total availability of Linux to any user.

The ability to say that Linux can run on more machines than any other
OS. (In other words, if Linux can run on any Win95/NT box, then it is
Always a superset of MS OS availability.) In any case, some suitable
statement could be constructed to annoy Gates.

Total availability of Linux to all application developers. This is
probably the most valuable benefit. It provides a large market for
Unix/Linux programs and a possible migration path.

Likely problems in early versions:

Performance. WinNT/WLinux, although harder to implement and a smaller
market, would probably be more efficient than Win95/WLinux due to
async IO in the former.



Details of implementation:

The basic method to make a modifiable OS (Like Linux) run under a
32-bit closed OS is to virtualize the device drivers (easy),
virtualize the file system (easy), and virtualize the memory
management (hard).

The simplest way to do the latter is to create a kernel level device
driver (i.e. VXD in Win95) that can manage the MMU configuration. The
Linux instance runs as a process under Win95. It allocates blocks of
memory from Win95/NT. When ready to access devices or file systems,
it makes standard Win95/WinNT calls through it's virtual drivers.

When it's ready to 'run' kernal/process code, it makes a special call
to the WLinux MMU VXD. This VXD scans the MMU configuration to find
all the blocks associated with the WLinux instance. These then become
the ONLY physical memory that is configured during the WLinux 32bit
Ring0 mode. By using memory in this way, the dormant Win95/NT OS and
applications are protected from any WLinux action.

When the WLinux Kernel invokes a virtual device driver, the reverse MMU
reconfiguration is performed, allowing the WLinux to continue as a
Win32 app to manage 'native' OS interaction.




Alternatives:

Could the same be done in the opposite direction? (Win95 'under'
Linux using this method.) Maybe. Would be much more desirable, but
probably much more difficult.

Convince Insignia or Connectix to port their Virtual PC systems to Linux.

Get Wine/Wabi working better.


Thanks
sdw
--
Stephen D. Williams 25Feb1965 VW,OH (FBI ID) sdw@lig.net http://www.lig.net/sdw
Consultant, Vienna,VA Mar95- 703-724-0118W 43392 Wayside Cir.,Ashburn, VA 20147
AOL; CTO:Netword LLC 703-995-0407Fax OO/Unix/Comm/Video/DBMS
Pres.:Concinnous Consulting,Inc.;SDW Systems;Local Internet Gateway Co.1Mar1998

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu

\
 
 \ /
  Last update: 2005-03-22 13:42    [from the cache]
©2003-2014 Jasper Spaans. Advertise on this site