Live data from Hacker News

Show HN: Windows 98 in browser

copy.sh

21–30 of 171 posts

Re: Show HN: Windows 98 in browser

#21
post #3

That's amazing - do you have any info on the underlying implementation?

It's a fully emulated PC: CPU, memory, hard drive, … The CPU especially took me very long to get right with all the details to run Windows 98. The code is here: https://github.com/copy/v86

Incredibly impressive. Greetings and high fives from the intertubes.

Re: Show HN: Windows 98 in browser

#22
post #20
post #14

Where does one start with such thing? I mean, where do I read how to emulate CPU (or at least how CPU works, so I would be able to come up with how to emulate it by myself), how does PS/2 work, how to boot an image from BIOS?

University courses? I'm pretty sure CPUs were a huge part of my first year of CS.

Me too, but there's a huge gap between the often simplified CPUs they teach you on at Uni' and programming for the querks in x86, or any of the buses/peripherals/interfaces.

I didn't learn much more than assembly 101. I doubt I could emulate much real hardware. Certainly not a PC of all things... A gameboy looks more accessible...

Re: Show HN: Windows 98 in browser

#23
post #20
post #14

Where does one start with such thing? I mean, where do I read how to emulate CPU (or at least how CPU works, so I would be able to come up with how to emulate it by myself), how does PS/2 work, how to boot an image from BIOS?

University courses? I'm pretty sure CPUs were a huge part of my first year of CS.

Wow, advocating higher education on HN. Feeling bold today?

Re: Show HN: Windows 98 in browser

#24
post #3

That's amazing - do you have any info on the underlying implementation?

It's a fully emulated PC: CPU, memory, hard drive, … The CPU especially took me very long to get right with all the details to run Windows 98. The code is here: https://github.com/copy/v86

Do you worry that Microsoft might threaten you for the Windows 98 image? I don't think they make a cent from it anymore, but big companies and common sense aren't common bedmates.

Re: Show HN: Windows 98 in browser

#25
post #20
post #14

Where does one start with such thing? I mean, where do I read how to emulate CPU (or at least how CPU works, so I would be able to come up with how to emulate it by myself), how does PS/2 work, how to boot an image from BIOS?

University courses? I'm pretty sure CPUs were a huge part of my first year of CS.

Learning about CPU internals was a huge part of your first year in CS? Where did you go to school?

At my school and every other school I'm remotely familiar with, the knowledge needed to emulate a CPU would be covered in upper division computer engineering courses, and not covered by CS undergrads at all, certainly not in their first year.

Re: Show HN: Windows 98 in browser

#27
post #20
post #14

Where does one start with such thing? I mean, where do I read how to emulate CPU (or at least how CPU works, so I would be able to come up with how to emulate it by myself), how does PS/2 work, how to boot an image from BIOS?

University courses? I'm pretty sure CPUs were a huge part of my first year of CS.

0xffff2 - I can't reply directly to you for some reason but I went to UC Berkeley many years ago and the third undergrad course, CS 61C, laid the basic groundwork for beginning to understand CPUs. Here's the syllabus from the most recent semester. http://www-inst.eecs.berkeley.edu/~cs61c/sp16/

Re: Show HN: Windows 98 in browser

#28

How would v86 compare to jslinux speedwise? http://bellard.org/jslinux/ ELKS in javascript would be nice as well, you would get the ultimate speedy portable unix ecosystem in the browser. https://github.com/jbruchon/elks

Poorly, see https://github.com/s-macke/jor1k/wiki/Benchmark-with-other-e...

Primarily due to the use of asm.js. I intend to implement a JIT similar to QEMU's tcg as soon as Web Assembly supports it: https://github.com/WebAssembly/design/blob/master/FutureFeat...

Re: Show HN: Windows 98 in browser

#29
post #14

Where does one start with such thing? I mean, where do I read how to emulate CPU (or at least how CPU works, so I would be able to come up with how to emulate it by myself), how does PS/2 work, how to boot an image from BIOS?

First you write a disassembler, then an interpreter for 16 bit mode. At that point you can already almost run FreeDOS.

Here are some resources:

http://css.csail.mit.edu/6.858/2014/readings/i386/toc.htm

The official intel manuals

http://sandpile.org/

http://ref.x86asm.net/geek.html

http://stanislavs.org/helppc/idx_hardware.html

http://www.ctyme.com/intr/int.htm

http://wiki.osdev.org/Main_Page

Re: Show HN: Windows 98 in browser

#30
post #16

oh the irony, Win98 was the MS "internet as desktop" release. Least favorite OS ever Awesome project though!

Windows ME was my most disliked OS (too buggy, even after service packs). I think the level of complexity finally hit the wall given the 9x series lack of good memory/file protections.

My favorite 9x OS is 98 SE (which was a stand-alone release, not a service pack). But 98 "first edition" did add substantial features to 95: IE 4, multi-monitor support, sfc was added (which was useful because 9x got corrupted a LOT), ACPI support, better plug and play, and better hardware support overall.

98 SE just added USB support out of the box (which was a big deal for those of us trying to use USB mice), IE 5, WebDAV, Windows Explorer improvements, ICS, improved WMP, and all of 98 "first editions" hotfixes and updates. You could make 98 "first edition" into 98 SE more or less, but 98 SE was a nice thing to "just install" and have everything work.

My 1990s/early 2000s OSs looked like this: 3.1, 95, 98, 98 SE, ME, back to 98 SE, and then 2000, XP SP1, and beyond. Skipped XP pre-SP1 as it was a pretty shoddy release compared to 2000 at the time, and ran away from ME screaming.

Post reply on HN