Live data from Hacker News

Windows 9x Subsystem for Linux

social.hails.org

211–220 of 265 posts

Re: Windows 9x Subsystem for Linux

#213
post #93

Is this person a wizard? To me, this seems an impossible feat. But I wonder how it seems to people who understand how it works? I'm reminded of this joke: Two mathematicians are talking. One says a theorem is trivial. After two hours of explanation, the other agrees that it is indeed trivial.

I believe this wasn't really even a joke, but a real story that got distorted as joke: https://hsm.stackexchange.com/a/8054

I don't think you understand how jokes work. They are mostly "distortions" of real dialog or events to add incongruous or absurdist elements. Here, Hardy's not uncommon momentary doubt about whether a statement really was obvious, while faintly amusing, is made into a joke by turning the momentary doubt into a 15 minute excursion. People then riff on the joke by turning that excursion into a mathematician presenting an elaborate proof that a statement is "obvious", quite contrary to the meaning of "obvious".

Re: Windows 9x Subsystem for Linux

#215
post #93

Is this person a wizard? To me, this seems an impossible feat. But I wonder how it seems to people who understand how it works? I'm reminded of this joke: Two mathematicians are talking. One says a theorem is trivial. After two hours of explanation, the other agrees that it is indeed trivial.

It's mostly explained if you go to the project page. For me, the I would say the hardest thing about something like this is gleaning the Microsoft driver APIs. In the 9x days, Microsoft documentation was not quite thorough and difficult to access. It's still not pleasant.

It’s good use for AI

Have the model spit out example programs to study the API

Re: Windows 9x Subsystem for Linux

#216
post #105

Earlier quoted context omitted.

Try using the Windows busybox port of "Bash": https://frippery.org/busybox/index.html It has a subset of bash implemented on Ash/Dash. Arrays are not supported, but it is quite fast. The forking problem is still present, though.

Cygwin bash isn't slow either. The problem is a typical bash script isn't a series of bash operations, it's a series of command line program executions. For example, someone might do something like this ( completely ignoring the need to quote in the interests of illustrating the actual issue, forking): for x in *; do new_name=$(echo $x | sed 's/old/new/') mv $x $new_name done Instead of something like this: for x in…

You could also use the inbuilt substitution mechanism:

    $ parameter='fisholdbits'
    $ echo ${parameter/old/new}
    fishnewbits

Re: Windows 9x Subsystem for Linux

#217
post #93

Is this person a wizard? To me, this seems an impossible feat. But I wonder how it seems to people who understand how it works? I'm reminded of this joke: Two mathematicians are talking. One says a theorem is trivial. After two hours of explanation, the other agrees that it is indeed trivial.

The primary function of modern operating systems is to allow multiple programs to run, without interfering with each other, even if they try too. This means that each program can only read its own limited amount of memory and only gets to use the processor for a limited time, before another program gets a turn. Windows did not start using those features until Windows NT, which XP is based off of. Through Windows 98,…

This is wildly inaccurate.

Windows 3.11 was a hypervisor running virtual machines. The 16-bit Windows virtual machine (within which everything was cooperatively multitasking), the 32-bit headless VM that ran 32-bit drivers, and any number of V86 DOS virtual machines.

Win9x was similar in the sense that it had the Windows virtual machine running 32-bit and 16-bit Windows software along with V86 DOS VMs. It did some bananas things by having KERNEL, USER, and GDI "thunk" between the environments to not just let 16-bit programs run but let them continue interacting with 32-bit programs. So no, Win9x was in fact 32-bit protected mode with pre-emptive multitasking.

What Win9x prioritized was compatibility. That meant it supported old 16-bit drivers and DOS TSRs among other things. It also did not have any of the modern notions of security or protection. Any program could read any other program's memory or inject code into it. As you might expect a combination of awful DOS drivers and constant 3rd party code injection was not a recipe for stability even absent bad intentions or incompetence.

Windows 2000/XP went further and degraded the original Windows NT design by pulling stuff into kernel mode for performance. GDI and the Window Manager were all kernel mode - see the many many security vulnerabilities resulting from that.

Re: Windows 9x Subsystem for Linux

#218
post #86

Earlier quoted context omitted.

Speaking of vintage IE and Netscape on old Win, it's actually still possible to use them to browse the modern web if you proxy it. I built a Win9x compatibility mode for BrowserBox that does exactly this ( https://github.com/BrowserBox/BrowserBox/blob/main/readme-fi... ). Ur modern server does all the rendering, and it outputs a client link specifically designed for legacy browsers like IE5, IE6, and Netscape running…

There are better ways: - Retrozilla with some about:config flags disabling old SSL cyphers and new keys to enable newer ones - Iron TCL maybe with KernelEx and BFGXP from https://luxferre.top reading gopher and gemini sites such as gemini://gemi.dev proxying all the web bloat and slimming it down like crazy - Same Gemini URL, but thru http://portal.mozz.us/gemini . Double proxy in the end, but it will be readable.

Not sure if I’d call converting modern web to Gemini better. It’s a downgrade. If you want modern fidelity on old systems you need BrowserBox. Or i guess you could fiddle with Retrozilla flags if that works

Re: Windows 9x Subsystem for Linux

#219

Earlier quoted context omitted.

The primary function of modern operating systems is to allow multiple programs to run, without interfering with each other, even if they try too. This means that each program can only read its own limited amount of memory and only gets to use the processor for a limited time, before another program gets a turn. Windows did not start using those features until Windows NT, which XP is based off of. Through Windows 98,…

This is wildly inaccurate. Windows 3.11 was a hypervisor running virtual machines. The 16-bit Windows virtual machine (within which everything was cooperatively multitasking), the 32-bit headless VM that ran 32-bit drivers, and any number of V86 DOS virtual machines. Win9x was similar in the sense that it had the Windows virtual machine running 32-bit and 16-bit Windows software along with V86 DOS VMs. It did some ba…

This is correct. Win9x did have memory protection, it just made an intentional choice to set up wide open mappings for compatibility reasons.

WSL9x uses the same Win9x memory protection APIs to set up the mappings for Linux processes, and the memory protection in this context is solid. The difference is simply that there is no need to subvert it for compatibility.

Post reply on HN