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, 10 months ago

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

basilamer 18 years, 10 months ago

I want an example of one

gamehawk 18 years, 10 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 [:)]