Live data from Hacker News

Windows 9x Subsystem for Linux

social.hails.org

231–240 of 265 posts

Re: Windows 9x Subsystem for Linux

#231
post #10

Before WSL, the best ways to run unmodified Linux binaries inside Windows were CoLinux and flinux. http://www.colinux.org/ https://github.com/wishstudio/flinux flinux essentially had the architecture of WSL1, while CoLinux was more like WSL2 with a Linux kernel side-loaded. Cygwin was technically the correct approach: native POSIX binaries on Windows rather than hacking in some foreign Linux plumbing. Since it was me…

Assuming you were on NT-lineage, rebuilding for SFU (Interix) was the technically correct and nice implementation, though since a lot of Linux programs are non-portable (or have maintainers who mistakenly think they can do better than autotools) it was a pain in practice.

Re: Windows 9x Subsystem for Linux

#232
post #10

Before WSL, the best ways to run unmodified Linux binaries inside Windows were CoLinux and flinux. http://www.colinux.org/ https://github.com/wishstudio/flinux flinux essentially had the architecture of WSL1, while CoLinux was more like WSL2 with a Linux kernel side-loaded. Cygwin was technically the correct approach: native POSIX binaries on Windows rather than hacking in some foreign Linux plumbing. Since it was me…

Technically correct by some estimation, perhaps, but Cygwin is a crazy approach, was slow (contrary to the implication of the "low cruft" claim), was not as compatible as these other approaches, required recompilation, and was widely disliked at most points in its life. There's a lot of crazy voodoo stuff happening in cygwin1.dll to make this work; it totally qualifies as "hacking in some foreign Linux plumbing", it'…

> but Cygwin is a crazy approach, was slow

A lot of this is issues Microsoft could fix if they were sufficiently motivated

e.g. Windows lacks a fork() API so cygwin has to emulate it with all these hacks

Well, technically the NT API does have the equivalent of fork, but the Win32 layer (CSRSS.EXE) gets fatally confused by it. Which again is something Microsoft could potentially fix, but I don’t believe it has ever been a priority for them

Similarly, Windows lacks exec(), as in replace the current process with new executable. Windows only supports creating a brand new process, which means a brand new PID. So Cygwin hacks it by keeping its own PID numbers; exec() changes your Windows PID but not your Cygwin PID. Again, something Microsoft arguably could fix if they were motivated

Re: Windows 9x Subsystem for Linux

#233

Earlier quoted context omitted.

That is pretty cool, man. VM with XP in QEMU sending VNC frames to Guacamole clients on the web. BrowserBox is basically the same pattern as this setup (streaming graphics from some browsing substrate somewhere to web clients) except architecture is different: a modern box on the same private network runs the BrowserBox server, and the win box (QEMUd or otherwise) connects to its http endpoint, using whatever browser…

I should do a blog post and stick it on here, right? > In your case it sounds like you are running the webby servers on the XP box, too, Yeah - it's a web front end to some specialised software written on I guess Microsoft C++ (if I had time, enthusiasm, and a copy of it lying around I suppose I'd wave Ghidra at it and see what happens). I'll look into BrowserBox, that sounds handy. > I like your ffmpeg out setup. Ho…

You should! It would be a good read. And likely help others. Please send me an email when you get to it: cris@dosaygo.com

Re: Windows 9x Subsystem for Linux

#234
post #20
post #10

Before WSL, the best ways to run unmodified Linux binaries inside Windows were CoLinux and flinux. http://www.colinux.org/ https://github.com/wishstudio/flinux flinux essentially had the architecture of WSL1, while CoLinux was more like WSL2 with a Linux kernel side-loaded. Cygwin was technically the correct approach: native POSIX binaries on Windows rather than hacking in some foreign Linux plumbing. Since it was me…

Cygwin is way older than CoLinux. CoLinux is from 2004. Cygwin was first released in 1995. The problem with Cygwin as I remember it was DLL hell. You'd have applications (such as a OpenSSH port for Windows) which would include their own cygwin1.dll and then you'd have issues with different versions of said DLL. Cygwin had less overhead which mattered in a world of limited RAM and heavy, limited swapping (x86-32, limi…

I have used cygwin for 30 years and never had any dll hell issues, because all the programs came from the cygwin installer. Never once needed something outside it.

Re: Windows 9x Subsystem for Linux

#235

This being on the front page the same day as "Show HN submissions tripled and now mostly have the same vibe-coded look" is nice to see. One person spends 6 years understanding Win9x internals to run a modern Linux kernel inside it. The other thread is full of apps that took 20 minutes to prompt into existence. Posts like this make me happy.

(not trying to pick a fight, but...) what difference it makes if an agent spent 100$ to understand and came to the same result, given it is those who use it that will benefit of it, and thus the craze here.

note: i'm not saying author did not improve his skills overall, but also last '6 years' perhaps also means - fair amount of digging the web with search engines, which are... like AI 0.1

Re: Windows 9x Subsystem for Linux

#236
post #235

This being on the front page the same day as "Show HN submissions tripled and now mostly have the same vibe-coded look" is nice to see. One person spends 6 years understanding Win9x internals to run a modern Linux kernel inside it. The other thread is full of apps that took 20 minutes to prompt into existence. Posts like this make me happy.

(not trying to pick a fight, but...) what difference it makes if an agent spent 100$ to understand and came to the same result, given it is those who use it that will benefit of it, and thus the craze here. note: i'm not saying author did not improve his skills overall, but also last '6 years' perhaps also means - fair amount of digging the web with search engines, which are... like AI 0.1

The difference is that despite the fact that I will never use this, I am nonetheless here to celebrate the effort. What difference does it make if someone runs a marathon or takes an uber given they may arrive at the same location?

Re: Windows 9x Subsystem for Linux

#237

Earlier quoted context omitted.

Qt looks nice as a user and gnome gtk isn’t too bad either

Wx isn’t bad either. https://wxwidgets.org/ You don’t get an app that looks the same across platforms. You do get apps that look like they belong on your platform, even though the code is cross-platform. It uses the native toolkit no matter where you run it across Windows, GTK, Qt, Motif, macOS/Carbon, macOS/Cocoa, and X11 with generic widgets. Older platforms are also supported, like OS/2, Irix, and OSF/1. https://w…

The problem is, most of these bindings are out-of-date. Delphi from 2012, Basic from 2002, D from 2016. wxRuby is a dead link. wxAda was already dead in 2009, as the discussion I can google suggests.

So, if you use wxWidgets, you probably have to use either C++ or Python version, others are unlikely to be supported.

Re: Windows 9x Subsystem for Linux

#238

Earlier quoted context omitted.

I should do a blog post and stick it on here, right? > In your case it sounds like you are running the webby servers on the XP box, too, Yeah - it's a web front end to some specialised software written on I guess Microsoft C++ (if I had time, enthusiasm, and a copy of it lying around I suppose I'd wave Ghidra at it and see what happens). I'll look into BrowserBox, that sounds handy. > I like your ffmpeg out setup. Ho…

You should! It would be a good read. And likely help others. Please send me an email when you get to it: cris@dosaygo.com

I will, won't be until maybe after the weekend though.

Re: Windows 9x Subsystem for Linux

#239

Earlier quoted context omitted.

Wx isn’t bad either. https://wxwidgets.org/ You don’t get an app that looks the same across platforms. You do get apps that look like they belong on your platform, even though the code is cross-platform. It uses the native toolkit no matter where you run it across Windows, GTK, Qt, Motif, macOS/Carbon, macOS/Cocoa, and X11 with generic widgets. Older platforms are also supported, like OS/2, Irix, and OSF/1. https://w…

The problem is, most of these bindings are out-of-date. Delphi from 2012, Basic from 2002, D from 2016. wxRuby is a dead link. wxAda was already dead in 2009, as the discussion I can google suggests. So, if you use wxWidgets, you probably have to use either C++ or Python version, others are unlikely to be supported.

wxRuby has been resurrected as wxRuby3, see https://mcorino.github.io/wxRuby3/

Among actively developed bindings, there is also wxRust at https://crates.io/crates/wxdragon

Re: Windows 9x Subsystem for Linux

#240
post #11

So, is it like colinux[0], but for pre-NT windows? Neat! Back when I was still using windows (probably XP era), I used to run colinux, it was kind of amazing, setting up something like LAMP stack on the linux side was a lot easier and then using windows editors for editing made for quite nice local dev env, I think! Could even try some of the X11 servers on windows and use a linux desktop on top of windows. When I no…

Colinux was a tech feat, just not that many people noticed.

Yes (coLinux author).

What I especially like about this Windows 9x Subsystem project, is that it proves that coLinux could have been written way earlier. Now imagine how less dual booting we would have needed in 1996 if that happened, and how it would have affected VMware which only existed since 1998.

Post reply on HN