John Mercier

[A software developer interested in java, groovy, and nixos]

Java has an x86 emulator that claims to run linux. After attempting the demo links for other distributions that do not work I decided to try to install gentoo on it myself.

create a disk from the disks menu.

hda 2gb

start jpc

java -jar JPCApplication.jar -boot cdrom -cd
rom gentoo\install-x86-minimal-20141209.iso -hda gentoo\hda.imgj

Note: could not use absolute paths (bad programming for c:)

File -> Start

Error

C:\Users\megan\Dropbox\Software\jcp>java -jar JPCApplication.jar -boot cdrom -cd
rom gentoo\install-x86-minimal-20141209.iso -hda gentoo\hda.img
Jan 31, 2015 10:05:09 PM org.jpc.j2se.JPCApplication main
INFO: Using configuration specified on command line
Jan 31, 2015 10:05:09 PM org.jpc.support.HDBlockDevice <init>
INFO: no geometry information, guessing CHS 1,040:16:63
Jan 31, 2015 10:05:09 PM org.jpc.emulator.memory.codeblock.CodeBlockManager <init>
INFO: JVM allows classloader creation: using advanced compilers.
Jan 31, 2015 10:05:16 PM org.jpc.emulator.motherboard.Bios print
INFO: $Revision: 1.209 $ $Date: 2008/06/02 20:08:10 $
Jan 31, 2015 10:05:16 PM org.jpc.emulator.motherboard.Bios print
INFO: VGABios $Id: vgabios.c,v 1.67 2008/01/27 09:44:12 vruppert Exp $
Jan 31, 2015 10:05:16 PM org.jpc.emulator.motherboard.Bios print
INFO: VBE Bios $Id: vbe.c,v 1.60 2008/03/02 07:47:21 vruppert Exp $
Jan 31, 2015 10:05:16 PM org.jpc.emulator.motherboard.Bios print
INFO: Starting rombios32
Jan 31, 2015 10:05:17 PM org.jpc.emulator.motherboard.Bios print
INFO: ram_size=0x10000000
Jan 31, 2015 10:05:17 PM org.jpc.emulator.motherboard.Bios print
INFO: Found 1 cpu(s)
Jan 31, 2015 10:05:17 PM org.jpc.emulator.motherboard.Bios print
INFO: bios_table_addr: 0x000fb778 end=0x000fcc00
Jan 31, 2015 10:05:17 PM org.jpc.emulator.motherboard.Bios print
INFO: PIIX3 init: elcr=00 0a
Jan 31, 2015 10:05:17 PM org.jpc.emulator.motherboard.Bios print
INFO: PCI: bus=0 devfn=0x00: vendor_id=0x8086 device_id=0x1237
Jan 31, 2015 10:05:17 PM org.jpc.emulator.motherboard.Bios print
INFO: PCI: bus=0 devfn=0x08: vendor_id=0x10ec device_id=0x8029
**

**

Address is c000
Jan 31, 2015 10:05:17 PM org.jpc.emulator.motherboard.Bios print
INFO: region 0: 0x0000c000
Jan 31, 2015 10:05:17 PM org.jpc.emulator.motherboard.Bios print
INFO: PCI: bus=0 devfn=0x10: vendor_id=0x8086 device_id=0x7000
Jan 31, 2015 10:05:17 PM org.jpc.emulator.motherboard.Bios print
INFO: PCI: bus=0 devfn=0x11: vendor_id=0x8086 device_id=0x7010
Jan 31, 2015 10:05:17 PM org.jpc.emulator.motherboard.Bios print
INFO: region 4: 0x0000c100
Jan 31, 2015 10:05:17 PM org.jpc.emulator.motherboard.Bios print
INFO: PCI: bus=0 devfn=0x18: vendor_id=0x1234 device_id=0x1111
Jan 31, 2015 10:05:17 PM org.jpc.emulator.motherboard.Bios print
INFO: region 0: 0xe0000000
Jan 31, 2015 10:05:17 PM org.jpc.emulator.motherboard.Bios print
INFO: MP table addr=0x000fb850 MPC table addr=0x000fb780 size=0xd0
Jan 31, 2015 10:05:17 PM org.jpc.emulator.memory.EPROMMemory writeAttempted
INFO: Write of 4 bytes attempted at address 0x8d3
Jan 31, 2015 10:05:17 PM org.jpc.emulator.memory.EPROMMemory writeAttempted
INFO: Write of 4 bytes attempted at address 0x8e4
Jan 31, 2015 10:05:17 PM org.jpc.emulator.memory.EPROMMemory writeAttempted
INFO: Write of 4 bytes attempted at address 0x8e8
Jan 31, 2015 10:05:17 PM org.jpc.emulator.memory.EPROMMemory writeAttempted
INFO: Write of 4 bytes attempted at address 0x904
Jan 31, 2015 10:05:17 PM org.jpc.emulator.memory.EPROMMemory writeAttempted
INFO: Write of 4 bytes attempted at address 0x92f
Jan 31, 2015 10:05:17 PM org.jpc.emulator.memory.EPROMMemory writeAttempted
INFO: Write of 4 bytes attempted at address 0x933
Jan 31, 2015 10:05:17 PM org.jpc.emulator.memory.EPROMMemory writeAttempted
INFO: Write of 4 bytes attempted at address 0x940
Jan 31, 2015 10:05:17 PM org.jpc.emulator.memory.EPROMMemory writeAttempted
INFO: Write of 4 bytes attempted at address 0x944
Jan 31, 2015 10:05:17 PM org.jpc.emulator.memory.EPROMMemory writeAttempted
INFO: Write of 4 bytes attempted at address 0x878
Jan 31, 2015 10:05:17 PM org.jpc.emulator.motherboard.Bios print
INFO: SMBIOS table addr=0x000fb860
Jan 31, 2015 10:05:17 PM org.jpc.emulator.motherboard.Bios print
INFO: bios_table_cur_addr: 0x000fb964
Jan 31, 2015 10:05:17 PM org.jpc.emulator.motherboard.Bios print
INFO: ata0-0: PCHS=1040/16/63 translation=lba LCHS=1024/16/63
Jan 31, 2015 10:05:17 PM org.jpc.emulator.motherboard.Bios print
INFO: IDE time out
Jan 31, 2015 10:05:17 PM org.jpc.emulator.motherboard.Bios print
INFO: IDE time out
Jan 31, 2015 10:05:19 PM org.jpc.emulator.motherboard.Bios print
INFO: Booting from 0000:7c00
Jan 31, 2015 10:05:19 PM org.jpc.emulator.memory.codeblock.fastcompiler.FASTComp
iler compileRealModeBlock
INFO: java.lang.NullPointerException: unimplemented microcode: PUSHAD_A16
Jan 31, 2015 10:05:20 PM org.jpc.emulator.motherboard.Bios print
INFO: KBD: unsupported int 16h function 03
Jan 31, 2015 10:05:20 PM org.jpc.emulator.motherboard.Bios print
INFO: *** int 15h function AX=e980, BX=0000 not yet supported!

Started damn small linux

java -jar JPCApplication.jar -boot cdrom -cd rom dsl\dsl-4.4.10.iso -hda gentoo\gentoo.img

` Java HotSpot™ 64-Bit Server VM warning: CodeCache is full. Compiler has been disabled. Java HotSpot™ 64-Bit Server VM warning: Try increasing the code cache size us ing -XX:ReservedCodeCacheSize= CodeCache: size=245760Kb used=239785Kb max_used=240710Kb free=5974Kb bounds [0x000000000f010000, 0x000000001e010000, 0x000000001e010000] total_blobs=13616 nmethods=13063 adapters=463 compilation: enabled `

Restarted damn small linux

java -XX:ReservedCodeCacheSize=2048m -jar JPCApplication.jar -boot cdrom -cdrom dsl\dsl-4.4.10.iso -hda gentoo\gentoo.img

This is still not starting correctly. Also noticed uptime was 45 minutes after about 10 minutes.

Switching to System Rescue CD

java -XX:ReservedCodeCacheSize=2048m -jar JPCApplication.jar -boot cdrom -cdrom gentoo\systemrescuecd-x86-4.4.1.iso -hda gentoo\gentoo.img

Not working!

Damn Small Linux in text mode (dsl 2)

Works in run level 2!

After looking into the ethernet setup I found that an internal network can be setup with the -net argument but it only works between two vms on the same computer. It doesn’t actually connect to the internet through the host system.

Since this emulator cannot connect to the internet. I have to rethink the usefulness of jpc. If it is not possible to setup a network how can it be used for any form of processing? It either needs to have networking or access to files on the host system. It needs I/O to the host system other than the keyboard, mouse, and monitor. It may be possible to forward everything from the EthernetHubServer to the host system network card somehow in java but I’m not sure how.

This was a fun experiment but JPC is only useful for playing dos games.

2014 - 2018 | Mixed with Foundation v5.5.1 | Baked with JBake v2.6.1