Machine code depends on hardware or OS on that hardware? There is one computer. Initially it has Win Xp installed in it. The user wanted to run a java program so he downloaded JRE for Win Xp. Now the user changes the operating system to Win 7 ( but The hardware & the ROM chipset, motherboard etc are all same only the OS is different ) Now he needs to download JRE for Win 7 to run that java program.... WHY?? Does it mean machine code depends on OS? I'hv recently learnt that conversion from bytecode to machine code is done by reading the contents of ROM by the JVM. So if the m/c code is generated by seeing ROM,, Why there is different JRE for different OS for the same computer? Pls help..