The Bochs emulation window on the upper left shows TOS just after it has halted.
You will notice in the Enhanced Debugger window that the eax register contains the hex 0xDEADBEEF,
which is the value I return from KMain(). I wasn't very fond of Netbeans as an IDE, but I had learned how to use it out of necessity while going to college. After I disabled all of the plug ins that I didn't need, I have fallen in love with Netbeans
and its ability to help me without getting in my way. The built in subversion,diff utilities and handling of custom Makefiles stand out as awesome features in my book.
Friday, January 28, 2011
Catching up...
All this extra time I cost myself was well used in contemplation over the period of a week or so. Armed with the freshly built Bochs in debugger mode, it was a bit easier to find the problems in my previous code for TOS. My Global Descriptor Table entries were being corrupted by my kernel heap memory management code. Also, apparently I had corrupted my Interrupt Descriptor Table entries as well. I decided to redo them with more Assembly code and less C++. The C++ I did write I marked it as extern "C" so that it would be called with C style conventions. While debugging this new code to make sure it works, I was gladly presented text output showing that not only did it work, but the Interrupt Service Request Routines were firing off continually. Awesome. Back to the drawing board for the Kernel Heap memory management system.
Frustration...
Well, I became completely frustrated with Windows 7 Pro 64 Bit and it's completely horrible resource usage. Quad core processor at 2.8 GHz per processor, 8 Gigs of ram, Raid-0 System Drive and a 1 Gig NVidia Graphics card and it scores 5.x something on windows performance scale. Uselessly slow system. I replaced the operating system with Ubuntu 10.10 64-bit desktop and I have not regretted it.
Even though it made getting back to working on my OS take longer, in the end this is better. I completely rebuilt my tool set for cross compilation and rebuilt Bochs so that it included all the debugger support I need.
Even though it made getting back to working on my OS take longer, in the end this is better. I completely rebuilt my tool set for cross compilation and rebuilt Bochs so that it included all the debugger support I need.
Saturday, January 22, 2011
Hobby Projects…
So Greg and I got with a few artists and another developer and started working on making an XNA 4.0 Based game. I had to push my hobby OS into the background for a bit now. Finally though, I have a working setup to allow me to do both easier. My windows development machine was moved in to my bedroom with my Mac. I moved the Linux Development machine into my home office. I installed Xming and VMware Player on my windows development machine to allow me to test OS development stuff. So I can do all the XNA game development on this machine while keeping the OS development completely separate on virtual machine and dedicated box in home office. Xming is performing awesomely over gigabit Ethernet as well.
Friday, January 14, 2011
So I am using a Linux box for dev now...
Monday, January 10, 2011
Awesomeness knows no bounds...
Today, I come home from work and help Julia go get a dresser from craigslist. We come home, get the dresser setup and settle the boys into bed. I am all ready to work on the Interrupt Descriptor Table stuff in my kernel. My Power Mac is off, I turn it on; nothing. AWESOMENESS, turns out the power supply is fried and it costs as much to replace the power supply as it did to purchase the machine from craigslist. This blows, I have had that machine 10 days...
Tuesday, January 4, 2011
Cheating at cross compiler setup...
So after much failure at setting up the latest GCC / GMP/ MPFR/ MPC/Bin utilities in Mac OS X 10.5.8 via manual configuration and compilation; I gave up and found an easier setup.
Mac Ports 1.9.2, with it comes a whole host of software at the simple command of the port utility.
Setting up the cross compilers for i386 elf was as simple as typing
sudo port install i386-elf-gcc
and then for nasm as well
sudo port install nasm
So from now on, my cross compilers are located in /opt/local/bin on my Mac dev box.
That was a lot easier than trying to battle with Mac OS X's semi-crippled GCC implementation.
Sunday, January 2, 2011
Bochs on Mac OS X 10.4.11 or 10.5.8
Downloaded latest bochs-2.4.5.bar.gz and attempted to get it working correctly with OS X.
Tips for compiling Bochs from sources on OS X:
./configure \
--enable-smp \
--enable-disam \
--enable-debugger \
--enable-all-optimizations \
--disable-reset-on-triple-fault \
--disable-readline \
--with-nogui \
--with-carbon \
--with-x
This configuration worked well, now onto getting it to boot the OS Image for me.
Maybe Later I will work on getting BFE2 debugger working with Bochs as well.
Tips for compiling Bochs from sources on OS X:
./configure \
--enable-smp \
--enable-disam \
--enable-debugger \
--enable-all-optimizations \
--disable-reset-on-triple-fault \
--disable-readline \
--with-nogui \
--with-carbon \
--with-x
make all
sudo make install
This configuration worked well, now onto getting it to boot the OS Image for me.
Maybe Later I will work on getting BFE2 debugger working with Bochs as well.
Saturday, January 1, 2011
Cross Compiler setup on Ubuntu 10.10 PowerPC64
Well I have been reading a lot on Operating System Development at osdev.org and a few weeks ago decided to work on my own operating system.
Here is how I build the cross compilers for development:
gnu.org is where I got the dev tools from
After I installed the requirements ( GMP, MPFR, MPC ) I followed the rest of the cross-compiler setup guide.
The following were the commands as I modified them ( not much ):
Here is how I build the cross compilers for development:
gnu.org is where I got the dev tools from
- Downloaded binutils-2.21.tar.bz2
- Downloaded gcc-core-4.5.2.tar.bz2
- Downloaded gcc-g++-4.5.2.tar.bz2
After I installed the requirements ( GMP, MPFR, MPC ) I followed the rest of the cross-compiler setup guide.
The following were the commands as I modified them ( not much ):
- cd ~/Downloads/binutils*
- export PREFIX=/usr/local/cross
- export TARGET=i586-elf
- ./configure --target=$TARGET --prefix=$PREFIX --disable-nls
- make all
- sudo make install
- cd ~/Downloads/gcc*
- export PATH=$PATH:$PREFIX/bin
- ./configure --target=$TARGET --prefix=$PREFIX --disable-nls --without-headers --enable-languages=c,c++
- make all-gcc
- sudo make install-gcc
Power Mac G5 Dual Core
Well, I now have Mac Pro Dual Core G5. I have wanted one of these since the first time I saw it in the Apple Store. I plan on turning it into my Operating System Development Machine. I am still unsure if I will load Mac OS 10.4 and use that or Ubuntu 10.10.
Subscribe to:
Posts (Atom)