Questions tagged [multiboot]

GNU Multiboot is a specification of the interactions between bootloaders and kernels. It is designed to ease the writing of kernels and to create a richer interface for a just booted kernel than the raw BIOS interfaces.

GNU Multiboot is a specification of the interactions between bootloaders and kernels. it is designed to ease the writing of kernels and to create a richer interface for a just booted kernel then the raw BIOS interfaces. It is used by a number of kernels, including:

  • L4
  • Xen
  • GNU Hurd
  • ESXi
  • Linux
  • BSD

The main bootloader that implements it is GNU GRUB, which is also the reference implementation.

66 questions
14
votes
2 answers

How to tell / force GNU ld to put a section/symbol in a specific part of the output ELF file?

That's going to be a long one, so grab some coffee / tea / yerba. Summary How to tell / force GNU ld to put a section/symbol in a specific part of the output ELF file? Specifically, I'm not asking about the physical/load address of the symbol but…
erszcz
  • 1,630
  • 10
  • 16
7
votes
1 answer

How do I build a kernel image using Visual Studio?

I'd like to build an embedded kernel for an x86 machine using Visual C++. I have some C and assembly code files to compile and I'd like to link them all together in a way that is compatible with a Multiboot bootloader like GRUB.
Frank Miller
  • 499
  • 1
  • 7
  • 19
6
votes
1 answer

x86 ASM: DD Being Used as an "Instruction"?

In the following x86 assembly code: dd 0x1BADB002 dd 0x00 dd - (0x1BADB002+0x00) The values don't seem to be assigned to any variables. So what does this snippet of code do? I've heard something about it being stored in memory, but where exactly?
user5718553
5
votes
3 answers

Shared Apache / MySQL / PHP setup on multiboot

In short: I have a multiboot machine with Win XP, Windows 7 and Ubuntu, and I would like my localhost web projects to be shared by all three OSes. Details: I finally want to get rid of Windows XP for my web development work, but my local Apache +…
donquixote
  • 4,877
  • 3
  • 31
  • 54
5
votes
1 answer

Grub 2 not detecting Multiboot header in kernel

I'm having an issue with Grub 2 (and QEMU's -kernel) not detecting the Multiboot v1 header in my kernel. I have the header in a separate section before .text. linker.ld: SECTIONS { . = 1M; .multiboot ALIGN(4K) : { *(.multiboot) …
Sam Kingston
  • 111
  • 2
  • 7
4
votes
1 answer

Keyboard interrupt in x86 protected mode causes processor error

I'm working on a simple kernel and I've been trying to implement a keyboard interrupt handler to get rid of port polling. I've been using QEMU in -kernel mode (to reduce compile time, because generating the iso using grub-mkrescue takes quite some…
natiiix
  • 1,005
  • 1
  • 13
  • 21
3
votes
1 answer

grub doesn't seem to load my kernel correctly

I use grub to load my kernel. Although I specified .=0x100 0000 in the linker script, I can only find a valid MultiBoot2 header at 0x10 0000. After comparing them one by one, I found that it is not my kernel. And use gdb to debug Found that qemu's…
AlanCui
  • 137
  • 9
3
votes
0 answers

Grub not loading my operating system correctly

I've just created a basic operating system that prints text onto the screen, based on this youtube tutorial. The method used in the tutorial is fairly convoluted (I assume) because it uses C++ instead of C. Upon selecting the OS in the Grub menu,…
v1n
  • 31
  • 3
3
votes
1 answer

QEMU doesn't reboot my OS after resetting via the 8042 PS/2 controller

@MichaelPetch has rewritten the entire question to reduce it to a specific problem that should be easily reproduced. The original question focussed on a problem encountered doing OS development in 64-bit long mode. The code was attempting to use…
alberinfo
  • 33
  • 4
3
votes
1 answer

What is the purpose of the checksum in the multboot header?

What is the purpose of ‘checksum’? The field ‘checksum’ is a 32-bit unsigned value which, when added to the other magic fields (i.e. ‘magic’ and ‘flags’), must have a 32-bit unsigned sum of zero. dd 0x100000000 - (0xe85250d6 + 0 + (header_end -…
3
votes
1 answer

Simplest chainloading a boot manager

In order to boot from flash memory drive we load disks using the BIOS interrupt 13h in real mode with specifying the disk 0x80. Another disks should be accessed by 0x81, 0x82... as mentioned over this link I am trying to make my simple GRUB. My very…
user7688222
3
votes
1 answer

Using both multiboot and floppy with QEMU

I am trying to develop an operating system. I have finished the Barebones tutorial from OSDev but still have some issues with multiboot. As I understand, when I create a multiboot image following the tutorial, I have an ELF format binary file. This…
Çağrı Uslu
  • 77
  • 1
  • 6
3
votes
1 answer

error: no multiboot header found

This day found something that caught my attention. is build a simple bare OS i read how to make multiboot compliant, I'm using NASM and GCC, i need make a loader that has the multiboot header and call the main point of my system for that i have two…
rkmax
  • 17,633
  • 23
  • 91
  • 176
2
votes
1 answer

Why doesn't this simple Forth write to the VGA text buffer?

I'm trying to write a baremetal Forth for x86-64, booting with Multiboot but without ELF. To check my progress, I tried to get it writing an 'A' character to the VGA text output, using the words I've defined. Here's the NASM assembly: [BITS…
dizzyliam
  • 41
  • 2
2
votes
0 answers

Data segment of ELF binary not loaded by GRUB with Multiboot

I'm creating my own OS just for fun. My kernel is a 64-bits ELF binary with the multiboot header. I use grub-mkrescue to build an .iso file to boot on my kernel and I test it with qemu + tianocore (UEFI). My kernel is composed of a simple main…
JackPots
  • 43
  • 1
  • 8
1
2 3 4 5