[HN Gopher] Linux as co-operative Windows process (2017)
       ___________________________________________________________________
        
       Linux as co-operative Windows process (2017)
        
       Author : begoon
       Score  : 91 points
       Date   : 2025-02-09 11:07 UTC (11 hours ago)
        
 (HTM) web link (www.colinux.org)
 (TXT) w3m dump (www.colinux.org)
        
       | sushidev wrote:
       | Seems interesting but also dead for 10 years?
        
       | hassleblad23 wrote:
       | This seems outdated.
        
       | caminanteblanco wrote:
       | Last release is from April 9th, 2011:
       | http://www.colinux.org/?section=status
        
       | stuaxo wrote:
       | This got stalled needing the 64 bit support to be completed.
       | 
       | It worked pretty decently at the time.
        
       | c0deR3D wrote:
       | Reminds me of User Mode Linux, which AFAIK, runs only on Linux,
       | maybe *nix.
        
         | nolist_policy wrote:
         | UML runs only on Linux and only on x86, amd64 and powerpc.
         | Which is a real shame, otherwise you could run a full Linux
         | kernel on all these arm Android devices.
        
           | WesolyKubeczek wrote:
           | A shame, true, imagine having a whole Linux kernel as a macOS
           | binary, running Linux containers with as little overhead as
           | possible.
        
             | bigbones wrote:
             | UML and "as little overhead as possible" probably shouldn't
             | appear in the same train of thought. I remember it from the
             | very earliest Linux VPS providers, IIRC it only got semi-
             | usable with some custom work (google "skas3 patch"), prior
             | to which it depended on a single process calling ptrace()
             | on all the usermode processes to implement the
             | containerization. And there's another keyword that should
             | never appear alongside low overhead in the same train of
             | thought
        
       | maep wrote:
       | I used this back in the Vista times and it worked very well. Very
       | similar to how people use WSL these days.
        
         | riedel wrote:
         | WSL1 is actually quite similar afaik. Unfortunately also
         | development stalled here in favour of WSL2. I remember Co-Linux
         | to be a a thing around 2005, but it never stuck with me as I
         | was mostly happy with Cygwin until all the libuv and go (now
         | rust) stuff popped up.
        
           | p_ing wrote:
           | I don't think WSL1 development stalled in as much as
           | Microsoft made the determination that it wasn't a viable path
           | forward. I/O was piss slow and chasing syscalls <-> NT API
           | calls probably wasn't very fun.
           | 
           | Microsoft already knew Hyper-V quite well so a VM made sense,
           | they just had to put some automagic management around it.
        
             | caspper69 wrote:
             | If anything, WSL1 showed me that MS still has some
             | programming chops lurking around (I mean, obviously, I know
             | they have some truly amazing developers and their research
             | talent is top notch), but that project was technically
             | pretty cool with the pico-processes and syscall translation
             | layer.
             | 
             | But the one thing they would never be able to overcome was
             | CUDA and kernel modules. If you show people "Linux" and
             | they can't build their software, then it might as well be
             | hot garbage.
             | 
             | I use WSL2 daily and far more often than my actual Linux
             | VMs. It's not the fastest, but it did solve a huge chunk of
             | the problems with WSL1. No, it's not native, but I already
             | have 3 monitors, a huge tower, and a Mac Mini M1 on my
             | desk. I didn't need a native box at my fingertips (those go
             | on a rack in the basement, lol).
        
             | venusenvy47 wrote:
             | Isn't WSL2 still slower than WSL1 for accessing Windows
             | drives and networks? I use WSL1 because I don't have HyperV
             | available on my work PC, but it's also convenient because I
             | perform most of my work on Windows.
        
       | souenzzo wrote:
       | This is kind of reverse wine?
        
         | ygra wrote:
         | Just in kernel mode, so maybe comparable to WSL1.
        
       | coliveira wrote:
       | This was an interesting project, I remember using it on a Windows
       | machine and worked just fine. Unfortunately with added security
       | on Windows it makes it harder to support such a project without
       | help from Microsoft.
        
       | hyperman1 wrote:
       | I rand andlinux, a colinux based distro, on a work laptop for a
       | while. Worked quite well and gave me linux in a windows-only
       | environment.
       | 
       | https://andlinux.sourceforge.io/
        
       | haddr wrote:
       | It's a pity that this project died. I used it and it was really
       | awesome.
        
       | umvi wrote:
       | Wsl2 is a pretty excellent modern alternative imo. I was even
       | able to get nvcc/cuda working in wsl
        
         | whatever1 wrote:
         | What do you mean you were even able to make it work? It works
         | out of the box with no configuration.
        
           | caspper69 wrote:
           | Can't speak for CUDA specifically, because I don't do
           | anything with LLMs or ML locally, but I did have to rebuild
           | ffmpeg with some some bits built with nvcc (and maybe an
           | nvidia provided library- sorry it's been a while) to get GPU
           | accelerated transcoding going.
           | 
           | But yes, the GPU passthrough layer in WSL2 (or however it's
           | actually implemented) is present by default.
        
           | umvi wrote:
           | I meant compared to other Linux/Windows coexistence tools
           | I've used in the past where GPU passthrough was a huge
           | challenge
        
       | pmontra wrote:
       | I've been using this for years until early 2009, when I formatted
       | my laptop with Ubuntu 8.04 and started running Windows in a VM.
       | IE was still important back then and I needed to check web sites
       | with it.
       | 
       | I was running Rails and other web frameworks inside colinux. I
       | switched after I made sure that everything I was running in
       | Windows for my work did run well in Linux. I remember that those
       | very same programs run faster in Ubuntu than in Windows. The most
       | notable improvement was GIMP's starting time: many times faster.
        
         | selfhoster wrote:
         | I would run Ubuntu 2006 in a VMware Workstation VM then after a
         | few months, wiped the system, installed Ubuntu 2006 then
         | Windows in a VM (I think VMware Workstation was available on
         | Linux Desktop then, otherwise I don't recall what I ran Windows
         | in but it was in a VM), so very similar to your case.
        
       | xena wrote:
       | This was one of the coolest things ever back in the day. It made
       | Windows tolerable for me.
        
       | aninteger wrote:
       | I wonder if something like this might make a comeback for workers
       | that are blocked from using wsl/hyperv on their corporate
       | laptops. For me I've been using msys2 as an "alternative" since
       | I'm unable to use wsl. It's not the same but it's all I got.
        
         | p_ing wrote:
         | As a non-admin, you cannot access kernel mode in Windows, which
         | this requires. If WSL/HV isn't appealing, this would be even
         | less so.
         | 
         | https://colinux.fandom.com/wiki/FAQ#Q0._Do_I_need_Administra...
         | ?
        
         | selfhoster wrote:
         | At work when I work on Windows (currently stuck using Mac for
         | the first time in my career at work), but on Windows I would
         | use https://gitforwindows.org/ which also uses msys2 and that
         | is a very popularly supported free product using msys2 on
         | Windows. If you ever forget the URL, search for "git bash for
         | windows".
        
         | venusenvy47 wrote:
         | I use WSL1 on my work PC everyday, because I can't run HyperV.
         | I don't have a GUI, but a coworker said he was able to get VNC
         | running on WSL1 and was able to VNC into it from his Windows
         | environment.
        
       | wslh wrote:
       | coLinux was my go-to option back in the day, somewhere between my
       | use of virtual machines. While not exactly the same, WSL
       | eventually replaced it with a similar use case when I wanted to
       | avoid VMs again.
        
       | remram wrote:
       | > Unlike in other Linux virtualization solutions such as User
       | Mode, special driver software on the host operating system is
       | used to execute the coLinux kernel in a privileged mode
       | 
       | That's unfortunate, is there a version of this that runs
       | unprivileged like user mode Linux?
        
         | p_ing wrote:
         | You're not going to take over NT's control of the MMU et. al.
         | without elevated privileges. To run as a non-admin, you either
         | need a VM that leverages NT's built-in virtualization
         | capabilities (requires admin to enable), a separate personality
         | (requires admin to install), or a Win32 application a la
         | cygwin, which isn't very good.
        
           | treyd wrote:
           | You could do a _very slow_ x86 interpreter.
        
             | password4321 wrote:
             | https://www.qemu.org/download/#windows
        
           | quotemstr wrote:
           | The site is down, so I can't see what they're doing with the
           | MMU: that said, most virtual memory management works just
           | fine from normal boring userspace. If wine can do it for
           | running win32 on Linux, this thing can do it for running
           | Linux stuff on win32, which isn't less powerful when it comes
           | to virtual memory management.
        
             | badc0ffee wrote:
             | It's been years since I used Wine, but I think it just runs
             | each Windows process in its own Linux process. There's no
             | Wine "kernel" that needs to manage virtual memory or
             | isolate multiple processes.
        
             | p_ing wrote:
             | The VMM is part of the kernel (or executive), not
             | userspace. App requests memory, VMM assigns pages from RAM,
             | page file, or backing store.
             | 
             | If you wanted to segment yourself and take over anything
             | 'below' the kernel like the MMU, you'd need elevated
             | rights. But that'd be some interesting programming.
             | 
             | https://en.wikipedia.org/wiki/Architecture_of_Windows_NT#/m
             | e...
        
               | quotemstr wrote:
               | Huh? What are you talking about? I can manipulate page
               | tables just fine from userspace through the magic of
               | MapViewOfFile.
        
           | anybody8824 wrote:
           | You could try to use the Win32 debug API in the same way like
           | Linux UML by using ptrace. But it would probably still be
           | much slower because of missing things like PTRACE_SYSCALL.
           | 
           | More performant would be a noMMU variant of UML for Windows,
           | supporting only PIE executables, similar to nabla-linux [1].
           | This is also quite similar to how mssql for Linux works NT
           | kernel+Win32 in a single usermode process (single address
           | space) [2]. Interestingly, mssql also uses memory protection
           | keys to recover a bit of fault tolerance but last time I
           | checked Win32 does not have an API for MPKs.
           | 
           | [1] https://github.com/nabla-containers/nabla-linux
           | 
           | [2] https://threedots.ovh/slides/Drawbridge.pdf
        
             | p_ing wrote:
             | SeDebugPrivilege requires local admin, which would be
             | required to debug a process the user doesn't own. This
             | privilege level is just about the highest one you can
             | obtain in NT.
        
       | selfhoster wrote:
       | I think it's great that tools like colinux exist but when if ever
       | will IT departments (System Administrators) figure out how to
       | support Linux Desktop users on our machines instead of forcing
       | Windows or Mac on us. Mac is a terrible OS for Java software
       | development.
        
         | okanat wrote:
         | If they are not willing to give complete power to the user, it
         | will not happen, ever. Linux isn't designed for granular
         | permission management like Windows is. A Linux desktop
         | administrator has to choose between all or never. Moreover
         | there is no equivalent of Active Directory or Group Policies.
        
       | haunter wrote:
       | Wonder if this still works with x86 Windows 10
        
       | 0xbadcafebee wrote:
       | This was how I used Linux+Windows for years growing up with
       | Windows 2000. Thanks very much to the authors, you helped a young
       | nerd learn a lot and get a lot done.
        
       | aequitas wrote:
       | I remember using this decades ago. The user friendliness of Linux
       | combined with the stability of windows. It did beat dual booting
       | though. Worked like a charm.
        
         | karlzt wrote:
         | >>The user friendliness of Linux combined with the stability of
         | windows.
         | 
         | I think you meant: "The user friendliness of _Windows_ combined
         | with the stability of _Linux_. ".
        
           | nurumaik wrote:
           | My use case for WSL is really what original comment says: I
           | need stability of windows so my graphics drivers won't stop
           | working randomly and user friendliness of linux command line
           | as a developer
        
             | madspindel wrote:
             | Have you tried nushell (https://www.nushell.sh/)? It embeds
             | GNU coreutils written in Rust, so it feels like Linux even
             | on a Windows machine.
        
           | skavi wrote:
           | Given their next sentence is concessive (ends with "though"),
           | I don't think that was an error.
        
           | itsmartapuntocm wrote:
           | Pretty sure it was tongue in cheek.
        
           | fransje26 wrote:
           | > "The user friendliness of Windows combined with the
           | stability of Linux."
           | 
           | I think you meant: "The user friendliness of _Linux_ combined
           | with the stability of _Linux_. "
           | 
           | You know, like when you're not forced to link your system to
           | a Microsoft account. Or when you cannot reboot because a 30
           | minute update is pushed down your throat. Or when you cannot
           | start working because an other 30 minute update is pushed
           | down your throat at startup. Or when you have a 2 minute
           | warning before a forced 1h update is pushed down your.. ..you
           | get the picture. And the long, long list goes on.
        
             | kroltan wrote:
             | If the time comes to discuss operating systems, I always
             | suggest an exercise of downloading a Windows 11 Home ISO
             | and installing it into a virtual machine, look at how much
             | of it is installing an OS versus upselling into services
             | using every dark pattern in the book. (With such hits as
             | "the No button is hidden under a link-button called Learn
             | More and only appears if you choose an advanced
             | installation")
             | 
             | Once you're using it for >month, it's easy to see the BS as
             | just an occasional inconvenience because saying yes is so
             | much easier.
        
       | rcarmo wrote:
       | I moved from Cygwin to this back in the day, and it was great. Of
       | course, these were the times when Windows was still "NT" in
       | flavor and the UX hadn't gone fully Vista...
        
       | metadat wrote:
       | What a cool and novel concept! Bummed and a little surprised it's
       | the first time I've heard of it. I wish there were a browsable
       | directory index of cool projects such as CoLinux.
       | 
       | Reading the description definitely set of bells in my head
       | reminding me of the venerable Cygwin, though CoLinux could
       | comparatively have _potentially_ more capabilities and upsides
       | since there is a fully resident kernel running.
       | 
       | CoLinux hasn't pushed a new release since 2011 and no commits
       | since 2012. Was the project death a byproduct of WSL [1], or what
       | happened?
       | 
       | [1] https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux
        
         | layer8 wrote:
         | > what happened?
         | 
         | Probably the fact that it lacked 64-bit support:
         | https://colinux.fandom.com/wiki/FAQ#Q27._Does_coLinux_work_u...
        
       ___________________________________________________________________
       (page generated 2025-02-09 23:01 UTC)