Start of with downloading the latest bochs source from this site.
I have downloaded this snapshot.
Extract to a folder
tar -zxvf bochs-20070421.tar.gz
Change to the bochs extracted folder
cd bochs-20070421
Configure the bochs to be built in Debug mode
./configure --enable-debugger --enable-disasm
Check that debugger flags are enabled config.h
#define BX_DEBUGGER 1
#define BX_DISASM 1
Compile the bochs in debugger mode
gmake
Install the bochs in debugger mode
make install
Bochs is all set to run in the DEBUG Mode :)
What next, I need OS for Boch machine, I have tried Linux, Windows, Mac OS all these are stupid they dint work on my Bochs machine, so I took the simple and the best OS Unix v6 from one of the google code.
Building the Unix v6 OS for Bochs machine
Get the Unix v6 source from this googlecode project
svn checkout http://iitcs450.googlecode.com/svn/lab1/trunk/ lab1
change to the source directory
cd lab1
Build the kernel and the boot images
gmake
Check that boot and kernel images are created ...
[root@localhost lab1]# ls -l obj/boot/boot
-rwxr-xr-x 1 root root 512 Apr 22 21:49 obj/boot/boot
[root@localhost lab1]# ls -l obj/kern/kernel
-rwxr-xr-x 1 root root 69621 Apr 22 21:49 obj/kern/kernel
Check some of the configuration parameter to be set properly
vi ./.bochsrc
ROM images path is correct, have to be changed for Ubuntu.
# filename of ROM images
romimage: file=/usr/share/bochs/BIOS-bochs-latest, address=0xf0000
vgaromimage: file=/usr/share/bochs/VGABIOS-lgpl-latest
Display library is commented out at all places - nothing worked for me term/nogui/textconfig.
#display_library: nogui
Path the kernel image is correct from this line.
ata0-master: type=disk, mode=flat, path="./obj/kern/bochs.img", cylinders=20, heads=16, spt=63
Now you are all set to run bochs command.
bochs
This is show the menu and select menu #6 to start stimulation.
1. Restore factory default configuration
2. Read options from...
3. Edit options
4. Save options to...
5. Restore the Bochs state from...
6. Begin simulation
7. Quit now
NOTE: This did not work for me on 64-bit Ubuntu machine due to some library issues and the instruction set being different bla bla ...