Making an OS Bootstrap [Tutorial]

Posted by gamehawk on Aug. 21, 2006, 3:05 p.m.

Here's a partial of my latest blog entry on making an OS bootstrap. The full version can be found <a href="http://gamehawk.wordpress.com/2006/08/21/os-devloping-tutorial-easy-as-pie/">here</a>, here's the partial:

Easy OS Developing Tutorial

I’ve found some articles on developing a REAL operating system, easier than most. I’ll give you a slight tutorial, but don’t think I know a lot about OS development, beacase I know next to zero. I just give you the steps that worked for me:

1. Download NASM. Extract in folder C:OS and re-name all the NASM-????? funky crap to nasm.

2. Paste this code into Notepad:

[BITS 16] ; 16 bit code generation
[ORG 0×7C00] ; Origin location

; Main program
main: ; Label for the start of the main program

mov ax,0×0000; Setup the Data Segment register
; Location of data is DS:Offset
mov ds,ax; This can not be loaded directly it has to be in two steps.
; ‘mov ds, 0×0000&#8242; will NOT work due to limitations on the CPU

mov si, HelloWorld; Load the string into position for the procedure.
call PutStr; Call/start the procedure
<a href="http://gamehawk.wordpress.com/2006/08/21/os-devloping-tutorial-easy-as-pie/">[MORE]</a>

Please post comments there, you can do it here, but please post on my actual blog if you can.

Cheers,

gamehawk

Comments

Eternal 18 years, 3 months ago

That is very interesting. Do you know of anywhere with more tutorials?

basilamer 18 years, 3 months ago

I want an example of one

gamehawk 18 years, 3 months ago

@Eternal

Well I'm learning ASM here:

<a href="http://www.skynet.ie/~darkstar/assembler/tut5.html">http://www.skynet.ie/~darkstar/assembler/tut5.html</a>

and

<a href="http://www.osdever.net/">http://www.osdever.net/</a>

has some good stuff. Actually, looking at ASM it isn't too hard. The problem is that NASM and A86 (other compilers too) have a few different specifications for rules. Check out those sites, but also prepare for me to write another tutorial.

Also, did you try it out?

@baziiboi

Example? That is an example of a bootloader.

Cheers,

gamehawk [:)]