bochsrc /* configuration of bochs */
boot /* booter,loader... */
docs /* documents */
include /* struct, macro, declearation... */
kernel /* kernel */
lib /* common function like disp_str()... */
Makefile
README
All operations below are tested in Lubuntu 13.04, I suppose it also works at Ubuntu.
bochs is a x86 PC emulator, it can run our kernel demo. In order to enable debugger, you should download source and compile it.
For example, download file "bochs-2.6.1.tar.gz", and extract it.
$ tar -zxvf bochs-2.6.1.tar.gz
Before generating Makefile, maybe some librarys are needed.
$ sudo apt-get install gcc build-essential xorg-dev libgtk2.0-dev
Then, enter the source directory
$ cd bochs-2.6.1
There is a mistake to generate Makefile, we should fix it.
$ vim Makefile.in
At line 190 of Makefile.in, add "-lpthread"
Then, generate Makefile, compile, link, and install
$ ./configure --enable-debugger --enable-disasm
$ make
$ sudo make install
At the root directory of our repository,
$ mkdir image
$ mkdir build
$ mkdir obj
$ cd /mnt;sudo mkdir floppy;cd -
Create [fd] image file "my_os.img"
$ cd image
$ bximage
Make filesystem
$ mkfs.msdos my_os.img
$ cd ..
We need nasm
$ sudo apt-get install nasm
$ make all
$ make install
The configure file "bochsrc" is in repository now, so just type 'bochs', OS's kernel placed at address 0x30400, you can make breakpoint at that address.