This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
progress [2017/03/27 08:47] admin |
progress [2017/03/30 08:48] (current) admin |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| =====Progress===== | =====Progress===== | ||
| ===At first=== | ===At first=== | ||
| - | To start off my project I started searching for information I might need. I found some references to similar projects, but found them difficult to implement. Mostly because they did not do a good job of documenting what, why and how.\\ | + | To start off my project I started searching for information I might need. I found some references to similar projects, but found them difficult to implement. Mostly because they did not do a good job of documenting what, why and how. You will also find it quite common that these so-called walk-throughs leave out things that can be located elsewhere, making progress painfully slow as you need to find all that missing information.\\ |
| My breakthrough came when I found [[http://wiki.osdev.org|OSDev.org]]. There you will find a lot of useful information on topics you need to know, and enough code examples to get you going. However, OSDev.org do suffer quite a bit from having been written by programmers and as such it does leave quite a few holes in its "how-to" explanations. | My breakthrough came when I found [[http://wiki.osdev.org|OSDev.org]]. There you will find a lot of useful information on topics you need to know, and enough code examples to get you going. However, OSDev.org do suffer quite a bit from having been written by programmers and as such it does leave quite a few holes in its "how-to" explanations. | ||
| Line 30: | Line 30: | ||
| At this point you'll need to decide what parts should do what. My MBR simply copies itself to a different location, and then loads a somewhat bigger piece of code and executes it.\\ | At this point you'll need to decide what parts should do what. My MBR simply copies itself to a different location, and then loads a somewhat bigger piece of code and executes it.\\ | ||
| This next piece of code will do a little more work. First it sets the CPU in protected [[http://wiki.osdev.org/X86-64|64-bit long mode]] which will also be our final working mode. Interrupts are set up, and the next chunk of code will be read and executed.\\ | This next piece of code will do a little more work. First it sets the CPU in protected [[http://wiki.osdev.org/X86-64|64-bit long mode]] which will also be our final working mode. Interrupts are set up, and the next chunk of code will be read and executed.\\ | ||
| - | This final piece of code will be from C source, and thus generated by our cross compiler. Because of that, this stage of the code also requires an ELF loader. | + | This final piece of code will be from C source, and thus generated by our cross compiler. Because of that, this stage of the code also requires an [[ELF loader]]. |