Slashdot Mirror


Will Linux For Windows Change The World?

An anonymous reader writes "A month ago, a trial version of a little-known Linux application called 'CoLinux' was released that is the first working free and open source method for optimally running Linux on Microsoft Windows natively. It's the work of a 21-year-old Israeli computer science student and some Japanese open source programmers; in Israel, analysts are already saying it could help transform the software world." (CoLinux is short for Cooperative Linux; we mentioned this project in January as well.)

6 of 770 comments (clear)

  1. Article Text... by relyter · · Score: 5, Informative

    It's already becoming a bit slow... Looks like the Israel Defence Force may have done it again. Already famous for spawning an entire generation of software geniuses now active in the world of wireless technologies, the IDF has now apparently incubated the technical talent capable of creating a project that could change the world: the ability to run Linux on Windows 2000/XP. 21 year-old Dan Aloni, a graduate of an IDF computer unit, has developed a Linux application - called Cooperative Linux ("CoLinux" for short) - that is a port of the Linux kernel that allows it to run cooperatively alongside another operating system on a single machine. For instance, it allows one to freely run Linux on Windows without using a commercial PC virtualization software such as VMware, in a way which is much more optimal than using any general purpose PC virtualization software. A member of the international open source community, Aloni developed CoLinux along with several Japanese programmers, collaborating over the Net. According to the Web site, they've written special core drivers for the host OS which modify the way the host OS receives notifications from the hardware - thus allowing both OSes to coexist peacefully - and run at a decent speed as well. In Israel, acclaim for a system potentially capable of allowing organizations to run Linux and Windows in parallel on the same computer or server has been immediate. Organizations would make great savings if they didn't any longer have to have separate machines for each OS, says Shahar Shemesh, a member of the Israeli open source forum. And Pini Cohen, a senior informations systems analyst at computer research company Meta Group Israel has called the development "an important stage in breaking Microsoft's monopoly." "As the trend is for Linux to take a more important role in organizations," Shemesh continues, "Aloni's development is extremely interesting. The question is how Microsoft will react and whether it will allow support for Windows systems if they have Linux systems installed on them." According to Haaretz.com that is carrying details of this story, Microsoft has so far made no comment on Aloni's development.

  2. Re:Cygwin, MS Services for Unix? by tmbg37 · · Score: 5, Informative

    The difference would be that you can run already availble Linux binaries under Windows rather than trying to get programs to work and compile for Windows under Cygwin.

    --
    This comment was thought up very late at night and does not necessarily reflect my views at a more reasonable hour.
  3. Link to the colinux project by nsushkin · · Score: 5, Informative
    Colinux Project Screenshots

    - Dunno, seems like the original article missed the actual link.

  4. Re:Cygwin, MS Services for Unix? by Ungrounded+Lightning · · Score: 5, Informative

    You mean the already available binaries bundled with Cygwin? Or coming up with a Win 32 copy of Mozilla? Or GCC? Or even the Gimp? Or do you mean Open GL apps? Or Vim? Emacs? Etc etc etc.

    Nope.

    Any existing linux binary. Any new linux binary.

    Like that internal application that your company wrote whose source got lost.

    Or the complicated one you got debugged and deployed on your department's native Linux platforms and you want to be sure runs EXACTLY THE SAME WAY on the boss' Windows box.

    --
    Bantam Dominique roosters crow a four-note song. Once you've heard it as "Happy BIRTHday" you can't NOT hear it that way
  5. An AutoCAD Clone for Linux by Guru2Newbie · · Score: 5, Informative
    4.) Applications!

    If I could run AutoCAD on Linux, I would use it at work (for something other than a server).

    There is an AutoCAD clone for Linux. Here's a quote from my Linux user group list. (I haven't used it, so YMMV)...

    Date: Tue, 16 Mar 2004 09:41:07 +0100
    From: "BricsCad BackOffice" email-deleted
    Subject: BricsCAD goes Linux

    BricsCad, the market leader in low cost DWG CAD software, today announced the beta release of BricsCad for Linux. The product is based on the IntelliCAD kernel.

    BricCad for Linux is an "almost clone" of AutoCAD(r). BricsCad uses the exact same DWG drawing format as AutoCAD(r). Drawings made by BricsCad can be read by AutoCAD(r) and the other way round.

    BricsCad for Linux addresses the untapped group of individual and corporate professional CAD users in the LINUX community allowing them to use their operating system of choice without being locked out from the professional Engineering world and the DWG standard.

    The full press release can be found on their website(s):

    English version
    French version
    German version

    Interested beta-testers are invited to contact BricsCad at linux@bricscad.com

  6. A Summary Of What's Going On by Effugas · · Score: 5, Informative

    Threw this on MetaFilter a few hours ago; hope this helps clarify what's going on here. Thanks to the good Jason Spence for explaining most of this to me over fine tequila at Defcon a few years back :-)

    ===
    OK, terrible terrible story. Nobody's going to contest that. My immediate reaction: "Yay, another whiz kid story. Kid probably rediscovered prefetching web pages."

    Yeah. Then the CoLinux guy came up.

    People, CoLinux is absurdly brilliant stuff, the kind of hardcore engineers get drunk about and laugh that "some psycho pulled off WHAT?!" regarding. I can say this from personal experience :-)

    To put it simply, most approaches that involve multiple operating systems sharing a processor require a significant degree of subordination. In the Cygwin model, the "Linux/Unix" way of requesting services from the operating system (open this file, give me that network connection) is translated to the Windows way through a library of functions. The mapping is pretty good, but like any translation, it's not perfect. Some actions, like starting new programs, are very very fast under Linux/Unix and are extraordinarily slow under Windows. Cygwin deals with this as best it can, but there's only so much it can do.

    VMWare offers a different approach. Instead of translating Unix to Windows, VMWare creates a "virtual PC", complete with its own processor, motherboard, sound card, network card, and everything else. The child operating system -- Linux, for example -- gets a complete environment to manipulate, and VMWare handles the translation between what the child PC is asking to do and what the parent PC is actually capable of. This interface is much more isolated than what Cygwin offers -- memory, for instance, is not shared between the two environs -- but as such, the child operating system is freed of many of the particular quirks of the parent OS. The child Linux really is Linux, and can do everything Linux can do, because Linux is an environment for controlling a PC.

    The only catch is that it's a virtualized PC, and VMWare needs to do alot of work to keep the two contexts separate -- and to emulate all the hardware resources that are normally "just there", but now need to be simulated. There's a 20-30% speed cut out of this. Also, switching contexts between parent PC and child PC is not a trivial thing to do, meaning it can only be done a certain number of times per second. This causes issues for some real time operations. Specifically, audio in VMWare is a problem.

    CoLinux is something else entirely. x86 CPU's have the concept of Rings -- these are roughly analogous to privelege levels, in which certain classes of commands may be issued to certain components of the architecture. Lowest level code operates in what's referred to as "Ring 0" -- at this level of permissions, one can directly control the raw components of the PC, for better or worse. This is a gross oversimplification, but there's basically two things that live at Ring 0: A kernel, and device drivers (which are not entirely separate from the kernel). Kernels are basically a core set of commands that user software can execute to get things done -- create processes, read files, open network connections, and so on. Here's a list of Linux syscalls, at least from 2.2. Not on this list -- stuff like, "Send this block of memory to this device on the PCI bus, and tell the sound card to start emitting sound from that memory address on its internal buffer." That's what device drivers are for -- they get some kind of interface that userspace can talk to, and they do things with what they're given. Those things can be pretty much anything the underlying hardware can do -- stuff way deeper than "write this file" and "trace this process", and into the nuts and bolts of what the PC is -- a collection of wires and memory addresses. Normally, that's what a device driver does: It implements the requisite hardware calls to let some piece of equipment work.