Show HN: Windows 2000 on Docker
github.com
github.com
I was in elementary school and was obsessed with the 'Log on to' dropdown box on Windows login screens, and how you could use the same credentials on any PC.
Somehow I managed to salvage an old computer and source myself a copy of the ISO and managed to setup an ADDS domain controller and join my mother's laptop to the domain.
I went and asked the IT guy for advice on doing a multi forest configuration and I think it blew his mind. Why did I want multi forest? Guess I was preoccupied with whether or not I could, and didn't stop to think if I should. : )
Same, I remember being so resistant to porting to XP. AND funny enough, when I finally made the shift, it was the first time I ever wiped a hard drive, losing all my precious pirated MP3s.
Good news; you belong on Hacker News:)
One of us, one of us, gabba gabba hey!
The windows domain thing was a bit magical, but in the end an old PC with Red Hat and later Debian became a useful home server and router. I think I was quite lucky that my father had a background in IT so we did some things together in early Linux exploration. He hadn't used it before either but did use Unix in the early days.
Ha. That brings me back as well. I installed (pirated) Windows 2000 Advanced Server onto a Compaq that I won. I ran my own active directory which let me share printers to my mom's laptop (an iBook at the time), and our other PC. It was total overkill, but I deeply enjoyed tinkering with each and every setting to see what it did, discovering the registry and seeing what all of -that- did, breaking things, fixing things... and now here we are. :-)
I miss that feeling. :-)
My mother wasn't very happy with my experiments with group policy, which included adding the secure attention sequence (control alt delete) to her login screen. And various lockdowns of the start menu and Windows Explorer :)
Overkill is an apt description.
God now I am getting nostalgic for the huge network drive shared by the entire school. That shit was wild
Now those friends ask me how to get an IT job by the way :)
But if you had any bugs in your driver, BSOD all the way and there was no recovery. Complete reinstall.
edit: reference https://docs.microsoft.com/en-us/windows/win32/secauth
https://docs.microsoft.com/en-us/windows/win32/secauthn/gina
You can also google “MS GINA windows”
I just realized after writing this comment that if you can rewrite http headers, you can also stop the redirect so perhaps it doesn't matter.
You can see the full HSTS list here I believe: https://source.chromium.org/chromium/chromium/src/+/master:n...
1) It's unlikely to accept any x.509 certificates you can get issued under today's CA/B guidelines; and I'm also not sure how many CAs from then are still valid, either because they had too small of keys or they expired
2) I'm not sure if ie5 supports TLS 1.0 and if it does, it's probably not by default, because that how things were back then.
Given these conditions an https handshake is highly likely to fail, and as the server operator there's no way to provide useful information to the user in that case. If they go to your http site and you redirect them to a handshake error that you know they were going to see... That's not useful. You could be secure and not provide service... but then again, your redirect could be MITMed cause http. Or you could provide a useful service with no security.
This is a choice, not a vulnerability.
This doesn't open up any new way to attack a modern client. Modern clients would have google.com HSTS preloaded and not use http at all. But even if that's not available, a MITM that fiddles with the User-Agent to avoid getting a redirect could have fetched the search results via https and proxied them back via http, as long as the client made an http request.
Edit to add: if you could get a cert IE5 would accept, it likely wouldn't be acceptable by modern clients, so you'd need to distinguish clients from the TLS handshake (although, I guess it really is an SSL handshake for ie5?). There's no client identifier in there, but you can certainly tell the difference between modern and ancient; it gets trickier to tell the difference between ancient and pretty old or pretty old and trying to do a fallback handshake.
i'm a bit of a browser historian, so i regularly browse the web in everything from mosaic, to ie3 and netscape, firefox 3.x, and all the modern-day favorites such as links and w3m.
so i started building my own websites with all the oldies in mind. it takes some tweaking, but not that much, and i enjoy strolling^Wsurfing down memory lane, looking at that gorgeous ie3 menubar, which was replaced with a flat gray in ie4, or writing something in opera 12.x.
I remember a friend used magic jelly bean to pull keys off every pc he came across to stockpile new volume keys he could use after the initial key that went public got banned for windows updates.
I think XP introduced the “switch user” option. But I couldn’t find much in XP to justify the additional drain on memory and CPU. However I might not have needed the same utils you came to prefer (Every user is different).
I thought a Windows 2000 supported RDP? I’ve definitely RDPed onto 2000 servers. Was an RDP server not included in the ‘Professional Edition’? Or maybe I used VNC on those 2000 systems and forgotten it wasn’t RDP?
The firewall appeared in SP2 right? Couldn't do without that today. And easy to set the GUI to classic mode.
Fortunately we had a corporate VLK copy so never had to worry about activation.
I was talking more about when XP was new.
The Command Prompt tweaks were a 2000 improvement IIRC but I do recall Task Manager and Control Panel receiving updates in the first edition of XP.
Not taking anything away from your core point though. There definitely were tweaks in the early releases of XP that many would have liked. It just wasn’t worth the extra CPU and memory footprint for me and by the time SP2 had arrived I’d switched to Linux full time so never bothered to upgrade from 2000.
But if you want to argue: You could say that a 'real OS' must be 'mostly POSIX-compliant' [1]. That way most other OS (Linux, MacOS, iOS) but not Windows would be included in your definition of a 'real OS' ;-)
[1] https://en.wikipedia.org/wiki/POSIX#Mostly_POSIX-compliant
But that way you could pretend to have an objective definition of the term 'real OS' and exclude Windows while including most other major OS.
But even if Windows 2000 would make a come back, I would not switch back to Microsoft because they would probably incorporate their newest tracking methods.
The implementation is nothing short of genius: they use a Windows version of `netcat` (the common UNIX tool, but compiled for Windows from the Windows 2000 Resource Kit), then use `srvany` (also from the Windows 2000 Resource Kit) to start `netcat` as a system service, but with `cmd.exe` piped to its standard in and out.
Kudos on this solution!
The qualification is to prevent random crashes; it's not really needed, but it is hard to impossible to disable last I checked.
You may also find power management drivers don't install.
- If you're considered a "student" by any means, you probably have access to an institutional email address that gives you access to Azure for Students. Through the Azure site, you can download an ISO for any LTSC edition of Windows Server (including Datacenter) and get a valid license key. This is a great way of saving money and avoiding sketchy key resellers.
- Driver support is basic out of the box. The PC I used for Windows Server has an AMD graphics card, which normally comes with GPU drivers as soon as you install a consumer version of Windows. This doesn't happen automatically with Windows Server. When you download the GPU drivers from AMD, the installer will detect that you're running Server and error out, but you can tell Device Manager to install drivers from your C:\AMD folder and it will work fine (minus the fancy GUI control panel, which is arguably bloatware itself). Something similar should work for Nvidia cards.
- Normal Win32 applications work great (I used Chrome, Office, IntelliJ, and a number of other everyday apps and they worked perfectly). However, you don't have access to the Windows Store, so installing UWP applications that aren't part of the base system (i.e., anything other than Settings, pretty much) is a pain.
Another issue I've run into was Server 2016 not having trackpad drivers for a Dell laptop's I2C bus/trackpad.
I suspect power management is also poor.
On which version? I'm running Server 2016 (Datacenter) with an Intel iGPU, and I don't recall having to do anything special to get it working.
I felt vindicated when 98 did the same with billg at COMDEX (or was it CES?).
NT4 had an architectural flaw that was introduced to make some people happier - many device drivers started to run in kernel space and their bugs were able to crash the whole machine, unlike 3.5, where a crashed driver could be reloaded.
But you can't run any game because DirectX. I've copied some files from Windows98 and was manage to use some games in windowed mode.
This was also around the time you could even run bbwin and themes, and tweak it some for fun. Pretty sure cygwin was also around.
>> "Your scientists were so preoccupied with whether or not they could, that they didn't stop to think if they should." - Dr. Ian Malcolm
I like this "Why?" "Why not?" attitude. Surprised though that a whole operating system, kernel and all, is dockerised though, especially that the impression of Docker to me is that it is normally everything but the kernel.
Edit: I didn't read the QEMU in the name. I won't be surprised if this is a full software emulation though (instead of the now-common hardware-assisted virtualisation).
I've done something like this except not with KVM, but with headless Xorg+PulseAudio+Wine to have Hearthstone with sound over RDP.
Did it run? Yes. Did it run like crap? Absolutely!
win2k pro
winamp 2.92 (and all its glorious plugins. still use it today!!!)
jasc paint shop pro 7
jcreator ide
ati TV wonder
firewire ethernet
that network activity icon
amd k-6 processor
384MB ram
a consistent UI
powertoys
gpedit tweaks
ms-word (and yes I rather enjoyed clipit)
Vs today where every piece of modern software fights with you to get work down. There are some exceptions but the list is rather small now.https://github.com/hectorm/docker-qemu-win2000/blob/master/D...
Makes me think this is done as a POC, but definitely fork a local copy as you can just swap that line out with your local copy of a Win2k ISO
Regarding legality, I hope that Microsoft doesn't claim any rights, since the Windows 2000 image has been published in WinWorld for years without issues.
So yes, technically it's backdoored but only for yourself :)
By the way, what is your primary motivation for using illumos? genuinely curious.
I run illumos and *BSD (FreeBSD servers, OpenBSD on SPARC and network appliances) in production mostly because they just work(tm). They are battle tested pieces of wonderful software engineering with great documentation and community support (ymmv) out of the box. SmartOS has replaced most of our linux and vmware based hypervisors at $work and they are just so much nicer to administer in the simplicity and design compared to the others. In addition we have a Triton cluster as our primary on-prem cloud service.
tl;dr They have proven to be a lot nicer to run as well as more dependable than the alternatives.
I'm curious how ReactOS stacks up to Windows 2000.
Otherwise sweet memories. I used Win 2K as a workstation at the time. Loved it.
Arguably, it adds the ability to have a network of them, set to different virtual networks in an easier manner than regular qemu bridging.
At least that was my first thought. Then again a)I'm really bad at qemu so anything that makes things easier is welcome b)I'm even worse at working with Docker.
(Hence "arguably" ;-))
Also, does anyone know which versions of Windows have restrictions on where you can run it? IIRC, recent versions stipulate you can't just run your own copy of it virtualized without an approved hardware vendor? Or maybe I'm crazy. I know with MacOS the EULA states you can't run it on anything but Apple hardware (thanks, Apple).
If only their EULAs weren't so restrictive, it would be easy to spin up a build+test cluster for your apps for all platforms. Sucks that developing cross-platform is now legally/financially more troublesome than it is technically.
Somehow we got into running vmware player with Windows 7 (?) on those diskless systems because of course some customers wanted windows. We PXE booted linux and then ran windows on it through vmware. It was insane and pretty stupid and terribly slow, but I learned a shitload about linux from that job.
However, I'm not using RDP at the moment as there is also VNC-access available as default that Guacamole connects to.
The hardest thing in setting up a local area network at home for me was finding a router (we were poor and I couldn't just buy it). But I did get hold of a crossover cable and was able to set up a LAN running win 2k between two machines.
That made me at least as happy as watching Angelina Jolie play Lara Croft in Tomb Raider.
What would HNers change in Win2k to bring it up-to-date? What's must have features does Windows 11 have that Win2k does not?
I wonder how the Windows 2000 desktop latency was? I remember it felt really snappy.
While I'm at it, I'd be very productive with 2000-era productivity software, such as Microsoft Office 2000 and the Adobe software of that era. Of course, I'd need updated compilers and other developer tools since I'd like to work with modern languages.
Edit: spelling
I would love to see 100 of these a day.