2008-04-22

Loading system components (OS)

OS project achievements:
* Working 64bit HD reader procedure
* Paged system information sector
* Paged memory usage array

I am now writting a code which will load system components (they are not present yet), such as scheduler, loader, etc... This is the last OS loading procedure. After this, I will already be able to work in my OS environment.

2008-04-14

RAM scan

As I promised, my OS is now able to gather RAM size all by itself. I have also created a simple check code to dermine whether it is running on Intel (or similar processor) or AMD. In this case (I mean gathering memory size) the main difference is that Intel does not support 64bit pages addressing 64bit memory. Using such pages lead to rather strange effects.

These memory addresses locate the same memory on Intel processors while AMD understands them correctly:

Intel:
0000FFFF00000000h = 0000000000000000h

AMD:
0000FFFF00000000h = 0000FFFF00000000h

At this point I am doing some paging work and very soon the booting process will be finished.

2008-04-08

Operating system becomes long

My operating system is already working fully in long mode (x86-64). The next task will be to scan the actual RAM size and then I will load OS processes into memory. This will be the end of boot procedure and the new OS will alive!..