Page 1 of 1

I've just made my own OS in NASM. How would I expand it?

Posted: Tue Jan 10, 2017 8:35 am
by andrewthompson555
Hello.

I've just made my own operating system in Assembly using NASM. It prints strings with color, waits for a key, warm boots and cold boots. I've done this using my knowledge. How would I make it a bootable ISO so that I don't need a floppy? I'm not looking for CD emulation. I want something that can load my bootloader with more than 1.44MB space.

I would like both my questions answered please. I don't want answers saying "You could start playing with MINIX 0.01 source code" or "Check out the MikeOS tutorial". I want to actually know what it does.

Please help me out with expanding my OS as well. I want to have filesystem support and learn more about how to load kernels and programs. I want to make a shell with a few basic commands.

Thank you
Andrew.

Re: I've just made my own OS in NASM. How would I expand it?

Posted: Tue Jan 10, 2017 8:52 am
by Octocontrabass
andrewthompson555 wrote:How would I make it a bootable ISO so that I don't need a floppy?
Booting from CD is covered by the El Torito specification.
andrewthompson555 wrote:I want to have filesystem support
This might be a good place to start.
andrewthompson555 wrote:and learn more about how to load kernels and programs.
Programs are typically object files. Your kernel may also be an object file, but the only thing that has to load your kernel is your bootloader, so you may decide to use something else.

Re: I've just made my own OS in NASM. How would I expand it?

Posted: Sat Jan 14, 2017 7:19 am
by TheDev100
You should start by learning INT 13h. That's what I'm trying to do right now. Try learning more about interrupts and filesystem. Which one do you want? FAT12? FAT16? FAT32? To load a program, you need filesystem support. By the way, I don't suggest an ISO unless you want to use it as a setup (installation for your OS). Right now, you need to focus on just booting with a floppy image.

Like Octocontrabass has said, you should look at the guides on the OSDev Wiki.

That's my largest suggestion. I agree with Octocontrabass.