Needing help with some basic stuff ._.
Posted: Sun Jun 08, 2008 6:09 pm
I've been trying to write my own basic OS, and I've failed horribly.
To begin with, I went through Bran's kernel development tutorial, which was quite helpful.
I then decided to try and write my own.
I'm using GRUB as a bootloader, so I looked up the docs for it and found that I could use Multiboot to boot my OS easily.
I set it up, I've got it working (using the example kernel as a base for multiboot-specific code), except for one thing - all the info in the multiboot_info type seems wrong, other than the flags!
I don't really have much added yet, so I don't know what could be causing it to go wrong - I have console functions, and that's about it. I also implemented variations on a few standard library functions like memset and itoa.
Here is what it outputs:
I'd really appreciate any help with this!
There's probably some really easy solution I'm overlooking, but nothing I can figure out works. I get this exact same output on Bochs, QEMU and Virtual PC 2007.
I can post my code, if needed, but I'm reluctant to due to the messiness of it and such.
Thanks to anyone who can tell me what I'm doing wrong, in advance.
To begin with, I went through Bran's kernel development tutorial, which was quite helpful.
I then decided to try and write my own.
I'm using GRUB as a bootloader, so I looked up the docs for it and found that I could use Multiboot to boot my OS easily.
I set it up, I've got it working (using the example kernel as a base for multiboot-specific code), except for one thing - all the info in the multiboot_info type seems wrong, other than the flags!
I don't really have much added yet, so I don't know what could be causing it to go wrong - I have console functions, and that's about it. I also implemented variations on a few standard library functions like memset and itoa.
Here is what it outputs:
Code: Select all
flags = 0x7E7
mem_lower = 639KB, mem_upper = 639KB
boot_device = 0xFFFFFF
cmd_line = /treekos.bin
elf_sec: num = 18, size = 0x12, addr = 0x12, shndx = 0x12
mmap_addr = 0x54484, mmap_length = 0x54484
size = 0x14, base_addr = 0x1414, length = 0x1414, type = 0x14
size = 0x14, base_addr = 0x1414, length = 0x1414, type = 0x14
size = 0x14, base_addr = 0x1414, length = 0x1414, type = 0x14
size = 0x14, base_addr = 0x1414, length = 0x1414, type = 0x14
size = 0x14, base_addr = 0x1414, length = 0x1414, type = 0x14
size = 0x14, base_addr = 0x1414, length = 0x1414, type = 0x14
There's probably some really easy solution I'm overlooking, but nothing I can figure out works. I get this exact same output on Bochs, QEMU and Virtual PC 2007.
I can post my code, if needed, but I'm reluctant to due to the messiness of it and such.
Thanks to anyone who can tell me what I'm doing wrong, in advance.