• TwitterFacebookGoogle PlusLinkedInRSS FeedEmail

Bochs Install Windows Xp

21.08.2019 
Bochs Install Windows Xp 3,5/5 4232 votes
  1. Install Windows Xp Free Download

Join GitHub today

GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.

Configuring the Emulated Machine. You'll see the “Bochs Start Menu.” Edit “Disk & Boot.” Switch to the “ATA Channel 0” tab. Next switch to the “First HD/CD on Channel 0” sub-tab. Click to “Enable This Device.” The “Type of ATA Device” should be “disk.” Point the “path” to the disk image you just created. If you don't have a jailbroken iPhone 7, you can sideload it using XCode or Cydia Impactor. For Cydia Impactor to work you will need an IPA file of Bochs emulator. If you have a jailbroken iPhone 7, you can simply install the IPA file from Filza with. Windows XP running in Bochs. There are few tips to make OS under Bochs to unstall smoothly: Disable as much as possible devices during installation. Install using VBE (not Cirrus), without networking or sound. All these devices could be always re-enabled and installed after your have working OS image.

Sign up New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Comments

commented Feb 29, 2016

Windows XP and OS/2 don't boot because of an unhandled double fault exception.

At the page fault handler, I tried doing this:

but then there were more #GP exceptions and it would have triple-faulted anyways.

It would be really cool to see Windows or OS/2 booting.

commented Feb 29, 2016

Windows XP and OS/2 don't boot because of an unhandled double fault exception.

It's not the double fault exception that causes this. The double fault shouldn't happen in the first place. If you want to see how far Windows XP gets, set ENABLE_ACPI to true here. It's experimental and will cause some other OSes to stop working. After that Windows XP gets stuck on a black screen. The APIC needs some more work.

What version of OS/2 are you testing? If possible, can you upload a disk image?

I have managed to get Windows NT 4.0 to start properly in copy.sh if you want to see a Windows NT-based operating system working in it, you can use NT 4.0. Just letting you know!

That's very cool, I'm also testing a (probably different) version of Windows NT and it doesn't work for me. Did you apply some fixes? Can you upload a disk image somewhere?

commented Mar 1, 2016

I'm guessing that the ACPI interpreter is failing (it's very strict, according to what I heard).
According to osdev.org, the ACPI tables seem to be very complex.
Couldn't we just copy the tables from an emulator like Bochs and insert it into the memory? Something like this:
if(ENABLE_ACPI){ cpu.memory.u8.set([ 1, 2, 3, 4, cpu.something someValue, ...], 0x1234567]); }
These are tables, after all. How hard could it be to copy tables?

BTW I am using OS/2 Warp 4.52 (I think). I created the disk image in QEMU and I'll try to upload it somewhere. There used to be a 16-bit iret problem but now it's gone, thanks to a recent commit. :)

commented Mar 1, 2016

I think I figured out why some OSes don't work when ACPI is enabled. It's not the emulator's fault (although it might be -- you never know). Early OSes have no support for ACPI at all (see https://en.wikipedia.org/wiki/Advanced_Configuration_and_Power_Interface#Operating_systems). When an OS, such as DOS sees random AML bytecode in spots where x86 code is supposed to be, then things go south....

commented Mar 1, 2016

These are tables, after all. How hard could it be to copy tables?

This isn't necessary, the bios sets up ACPI tables: https://github.com/KevinOConnor/seabios/blob/master/src/fw/acpi.c

Early OSes have no support for ACPI at all

That's good to know, this will need to be a runtime option then.

commented Mar 3, 2016

Then what's the problem? Is there an I/O port that's mis-reading/writing?

And BTW, how do you debug things like this?

commented Mar 3, 2016

Then what's the problem? Is there an I/O port that's mis-reading/writing?

The APIC implementation is quite incomplete, so there are just many parts missing (or wrong).

And BTW, how do you debug things like this?

Run the emulator in debug.html. You'll see a rather verbose log in the JavaScript console, XP produces this: https://gist.github.com/copy/c4de5225317922d035d3

You can see what is being used. There are some unimplemented IO ports. Then Windows goes to sleep waiting for something to happen, probably an interrupt. Could also be related to that RTC register.

commented Mar 3, 2016

Is it ACPI or APIC?

In the code, I saw 'APIC' in acpi.js.

commented Mar 4, 2016

Is it ACPI or APIC?

ACPI needs to be enabled for it to work at all. APIC implementation is incomplete.

In the code, I saw 'APIC' in acpi.js.

Do you have the latest version?

commented Mar 5, 2016

I have one from a while ago -- it still has traces of the dynamic translator in it.

So, let me get these things straight:
Windows XP doesn't boot because of incomplete ACPI ports and an incomplete APIC implementation.
OS/2 Warp 4.52 doesn't boot because of... I don't know. I'm uploading to Dropbox right now.

commented Mar 5, 2016

That's the file (I made it in QEMU)

commented Mar 5, 2016

Thanks for the disk image. After a bit of fixing small things, I found that OS/2 uses far call gates, which aren't implemented yet.

Windows XP doesn't boot because of incomplete ACPI ports and an incomplete APIC implementation.

Probably the latter, yes.

commented Mar 5, 2016

So Win XP doesn't boot because of APIC problems and OS/2 doesn't boot because of far call gates.

commented Mar 5, 2016

Sounds fun!

commented Mar 12, 2016

I did some research yesterday and I discovered this:
http://lifehacker.com/5827222/jpc-2-lets-your-run-windows-xp-and-ubuntu-in-your-web-browser

I just thought it was interesting.
Unfortunately, it's not up anymore :(

commented Mar 12, 2016

Actually, from what I saw, it worked more like the Windows 98 demo: http://copy.sh/v86?profile=windows98

I looked a bit more and apparently, it emulates the code, but loads the hard disk over the Internet.
It would have been really neat to see it in action and see the source code, but it's down now -- and all traces of the jar file are gone!

commented Mar 13, 2016

I dug some more and it's by a company named 'eMediaTrack' in Great Britan (because they say 'optimised' instead of 'optimized'). I went to eMediaTrack.net and saw their demos -- it's called 'Proteus' or something. Then, I looked up 'Proteus' online and came up with proteuscc.sourceforge.net. I found out that they compiled Bochs to Java. Somehow.

Then, I went back to archive.org and looked at the page source. The main class is com.emt.proteus.vmimpl.?. I decompiled the demos and found out that there was no 'vmimpl' class there...

Finally, I looked backwards in time and found something new! Apparently, they compiled Bochs to Java with their 'Proteus-S' product.

The company got liquidated in October 2015. I saw this in the British 'Companies' House' web site. They owed a bunch of money to other companies. Maybe the file is owned by one of them now..?

commented Mar 13, 2016

Oh, BTW a site called ww45.jpc2.com was up in 2014 but now it's down.

commented Apr 9, 2016

Just discovered this (http://sandpile.org/x86/cpuid.htm#level_0000_0001h)

The (fixed) default APIC ID is encoded in bits 31...24.

Maybe the lack of this is causing the double faults.

commented Jun 9, 2016

jsbochs is Bochs compiled to JavaScript via Emscripten.
JPC-2 is basically JPC but with more features (according to their web site).

In unrelated news, Windows XP launched for retail sale on October 25, 2001. It would be cool to have it work in the browser as a '15th anniversary' thing.

Free

commented Jun 11, 2016
edited

There's a difference between regular Windows XP and the 'small variants'. For example, I tried a PEBuilder ISO and it faults with a BSOD (after taking like 50 minutes to boot). However, Windows XP SP3 (It's a 1.5 GB image, so I can't post it online like my OS/2 one) just stops in the middle[1]. The IPS counter just goes down to 0. That's because a 'double fault' exception is being thrown (AKA no ACPI/APIC support).

[1] It's been a while since I checked, so who knows? :D

I could probably implement ACPI in a few days, but I'm busy at the moment (and I don't know a lot about hardware stuff)

commented Jun 11, 2016

I had an interesting idea: I saved an instance of Windows XP on Bochs when I had a little too much free time on my hands. So, it would be relatively easy to convert the Bochs format (which is like JSON but with equal signs) into the v86 format, because I believe that ACPI tables are only parsed on startup and aren't used unless you want to shut down the computer or mess around with the power options.

On the other hand, implementing ACPI/APIC can make some more operating systems work and I personally think that this is a bit like cheating.

commented Jun 11, 2016

That's true...
Anyways, it is possible to install Win XP without ACPI and APIC. But it takes XP a LOOOOOOOOOOOONG time to install (3 hrs. for me in QEMU).
Anyways, I'll try to implement ACPI/APIC soon.
Speed is not an issue. Windows XP can run on 8 MHz, and I'm sure the speed here is more than 10 MHz... I hope.

commented Jun 13, 2016

Imagine Vista at 8 MHz! >:-)
Sometimes, the computer gets the clock speed wrong.

XP said the computer was a 5 MHz Pentium IV. I can't see the entire IPS counter in the UI, though. But that's pretty fast compared to a Pentium 60 (but people say the Pentium IV was slow, though...)

By the way, did anybody have any success implementing ACPI yet?

commented Jun 13, 2016

I'm not actually sure if the copy.sh CPU is at 8 MHz, but I checked four different operating systems

They're just measuring the TSC, which runs at a constant speed, defined here.

By the way, did anybody have any success implementing ACPI yet?

There's not much to do as far as I know, most work is done by the bios: https://github.com/coreboot/seabios/blob/master/src/fw/acpi.c

commented Jun 14, 2016
edited

Install Windows Xp Free Download

Oops I meant APIC.

commented Jun 14, 2016
edited

I think the original Windows XP should work, since it booted in safe mode in JDosbox[1]. When I tried SP3 on it, it double faulted. A closer inspection of the project revealed that there was no ACPI or APIC. A forum thread[2] didn't say anything about ACPI or APIC.

But, I can't find any original (non 'service pack'ed) ISOs out there.

[1] http://jdosbox.sourceforge.net/
[2] http://www.vogons.org/viewtopic.php?t=27467

PS: There is a cool OS on the last page that you should try: http://ftp.unixdev.net/pub/iso/QNX/qnxnc621.iso
But its 237 MB.

commented Jun 14, 2016

Sure! That would be great! Can you post it online somewhere so that I can test it/install it?
I think the disk is about 200 MB, won't take me that long to download.
But it installs to a 1 GB hard disk.
Which leads me to wonder: how does it make 5 times more data than there was on the CD-ROM itself?

There's a way to disable APIC during install, but I couldn't find it. And people are typing in ACPI instead of APIC and vice versa. Driving me crazy.

added a commit that referenced this issue Oct 15, 2016

commented Nov 16, 2016

Well, after all that, what is the status of Windows XP support ?

commented Nov 21, 2016

@socketpair I'd suggest to clone the repository and try running it yourself. Currently there's some missing code here. After that it tries to use the APIC and fails. You can change log levels here and don't forget to use debug.html (it has assertions and logging enabled and you don't need to compile).

commented Mar 31, 2017

Status update: I've implemented all APIC features that are required by Windows XP and fixed a few small bugs. It's more-or-less usable now.

I'll need to do some more testing before pushing the code.

added a commit that referenced this issue Apr 29, 2017
added a commit that referenced this issue Jun 1, 2017
IDE: Use same PCI device id as qemu, required for Windows installatio…
added a commit that referenced this issue Jun 1, 2017

commented Jun 1, 2017

I have now pushed the remaining pieces to run Windows XP in v86. You can clone the repository, set ENABLE_ACPI = truehere and try it out locally. I recommend installing XP in QEMU with the default disk configuration (otherwise you'll likely get INACCESSIBLE_BOOT_DEVICE).

In order to make a release on the website, a few pieces are still missing:

  1. Speed is too slow to really do anything, we're working on this (see #122)
  2. The legality isn't certain, at least WinWorld doesn't consider XP abandonware: https://winworldpc.com/winboards/viewtopic.php?f=1&t=6612
  3. ENABLE_ACPI must become a runtime option since it breaks some other OSes
added a commit that referenced this issue Jun 5, 2017

commented Jun 7, 2017

What is the status of ACPI enabled with the Linux kernel booting? I compiled a test script and ran Linux 4.11.x kernel and received a kernel panic indicating to run as 'noacpid.' I know it might not be necessary for Linux but I was just playing around. Is there any logs I can gather to help out to make this more stable of a feature? I have yet to test Windows XP which I plan to this week.

commented Jun 7, 2017

What is the status of ACPI enabled with the Linux kernel booting? I compiled a test script and ran Linux 4.11.x kernel and received a kernel panic indicating to run as 'noacpid.' I know it might not be necessary for Linux but I was just playing around. Is there any logs I can gather to help out to make this more stable of a feature? I have yet to test Windows XP which I plan to this week.

I can boot it (4.11.2-1). Are you on latest master?

There are still a few problems with ACPI. Logs probably won't help me diagnose the problem, I'd need more details on the VM image.

commented Jun 8, 2017

I'll check my image. I have been creating my images with Buildroot targeting the i586 platform. Maybe I have a configuration problem within the defconfig. The Linux kernel is Linux 4.11.3 # 1 SMP i686 GNU/Linux.

commented Jun 8, 2017

I'll check my image. I have been creating my images with Buildroot targeting the i586 platform. Maybe I have a configuration problem within the defconfig. The Linux kernel is Linux 4.11.3 # 1 SMP i686 GNU/Linux.

In that case, if the image is small and the problem still persists, could you upload the image somewhere so I can have a look?

added a commit that referenced this issue Jun 11, 2017

commented Jun 14, 2017

@copy APIC and ACPI aren't really required for XP to work AT ALL. 86Box runs it and it emulates neither.

commented Jun 15, 2017

@copy APIC and ACPI aren't really required for XP to work AT ALL. 86Box runs it and it emulates neither.

That may be the case, but I couldn't make it run without an APIC. Maybe this was due to a newer service pack or something hard-coded during installation. Either way, Windows XP works now.

added a commit to AmaanC/v86 that referenced this issue Jun 16, 2017

commented Oct 17, 2017

Is anyone else having issues with Windows XP now? I can't get it to work

commented Oct 17, 2017

Is anyone else having issues with Windows XP now? I can't get it to work

Can you describe your problem with more detail?

pushed a commit to AmaanC/v86 that referenced this issue Dec 13, 2017

commented Feb 5, 2018

Is anyone else having issues with Windows XP now?

I just tried a Windows XP SP2 image in v86 with ACPI enabled, and I got a BSOD screen similar to @BenNottelling's:

The hda image was created using:

where winxp.iso is from an install disk.

I did some logging and naive googling, and I think I found something interesting. Apparently, the stop code 0x7E is SYSTEM_THREAD_EXCEPTION_NOT_HANDLED, and I think the exception code (param 1) 0xC000001D represents illegal instruction. I ran v86 in debug mode, and it encountered a failed assert for unimplemented SSE (t[0x2B]), and if we skip over the failed assert, the BSOD gets drawn almost immediately after that.

Could the BSOD be because of unimplemented SSE instructions?

commented Feb 5, 2018

Could the BSOD be because of unimplemented SSE instructions?

That's certainly possible. If you run in debug mode you should see this assertion failing. You can also disable the four relevant bits in cpuid (this line), then Windows should stop using SSE instructions

commented Feb 5, 2018

Thanks! Clearing the cpuid SSE bits did the trick. @BenNottelling, this probably helps you too.

commented Feb 5, 2018

I'll make sure to try it tonight

commented Sep 17, 2018

Free windows xp installBochs Install Windows Xp

@copy XP without ACPI should work if select 'Standard PC' HAL when hit F5 on install screen

commented Sep 17, 2018

What @vitalyster suggested does indeed work, awesome.
On the topic of ACPI though:
Old spec: http://uefi.org/sites/default/files/resources/ACPI_5_Errata_A.pdf
Current spec: http://www.uefi.org/sites/default/files/resources/ACPI%206_2_A_Sept29.pdf

Open

commented Mar 23, 2019


just something really cool, windows 10 boots to a recovery screen, but at least it boots

commented Mar 23, 2019

Unfortunately v86 is far from emulating windows 10, so it won't work as we just don't have every cpu instruction needed to run it

commented Mar 24, 2019
edited

Also, i got a diagnostic windows pe modified portable version (basically windows xp) working. It runs after like booting for 8 min.
its called bartpe

commented Aug 25, 2019

I got Windows XP Fully working! No mods!

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment
Posted by3 years ago
Archived

TYou might remember my post 'Reminding me of the past'. In it, some people requested how to run Windows XP. So, here it is:

  1. Open Cydia, tap on sources, and is they are refreshing, tap Cancel.

  2. Tap on edit, then on add, and delete the text shown. Write in http://hackingjules.yourepo.com .

  3. After the repos refresh, tap on Return to Cydia. Or, if you have Flame, wait for the sources screen to show up.

  4. Tap on Search, and search Bochs (pronounced 'box'). Tap on it, and tap install. Then, tap on Confirm Queuing. Then, search iFile Documentation (en), and install it. You'll see that Cydia installs Bochs, iFile Documentation, and iFile itself all at the same time.

  5. After completion, click the home button, and tap on iFile. Tap on the button in the top right hand corner until it disappears. Now, scroll down, tap on Users, tap on Library, and then tap edit. Then, tap on the + button. Name the folder this exact name: Bochs. Then, tap on done.

  6. Now, click the home button, and open Safari. Tap here. When the download is finished, a screen will pop up. Tap on Open In..., and tap on iFile. You will be presented with options. Tap on unarchiver. Then, tap on the done button, scroll up, and then tap the Edit button. Select Edit, and then tap on the WinXP folder. Tap on the clipboard, and tap on Cut. Navigate back to the Bochs folder we made earlier. There, tap edit again, tap the clipboard, and tap paste.

  7. Open Bochs, and tap on WinXP. After a minute, you should see a screen that says 'Loading Windows XPE [The Horse Power]'. After a few seconds, it should disappear. In another minute, you'll see a screen that says Windows XP, has the Windows logo, and a loading bar. After about two minutes, you'll see a cool blue background. After 30-40 seconds, a tab will appear, and say Windows XPE Preinstallation Environment. It will take over 20 minutes to boot. Then, you should have icons, and you're free to explore Windows XPE!

Disclaimer (Added 9:40 PM on 4/15/2016): You'll need to buy a separate keyboard that has up, down, left, and right buttons to be able to type and move around better

Update: Some people on 64-Bit iOS devices have reported Bpchs crashing. This means that Bochs probably doesn't support 64-Bit devices.

Update: Here's some video footage from my iPhone: https://vimeo.com/163089311 . It's super slow, because there's a screen recorder using up RAM and CPU

159 comments