Limine Bare Bones: Difference between revisions

Jump to navigation Jump to search
no edit summary
[unchecked revision][unchecked revision]
m (Reverted edits by Jaxotac (talk) to last revision by Xenos1)
No edit summary
Line 15:
===Overview===
 
For this example, we will create these 2 files and place them in the same directory:
* src/kernel.c
* linker.ld
 
As one may notice, there is no "entry point" assembly stub, as one is not necessary with the Limine protocol when using a language which can make use of a standard SysV x86 [[Calling Conventions|calling convention]].
 
Furthermore, we will download the header file '''limine.h''' which defines structures and constants that we will use to interact with the bootloader from [https://raw.githubusercontent.com/limine-bootloader/limine/trunk/limine.h here], and place it in '''src'''the same directory as the other files.
 
Obviously, this is just a bare bones example, and one should always refer to the [https://github.com/limine-bootloader/limine/blob/trunk/PROTOCOL.md Limine protocol specification] for more details and information.
 
===src/kernel.c===
 
This is the kernel "main".
Line 213:
 
# Use find to glob all *.c, *.S, and *.asm files in the directory and extract the object names.
override CFILES := $(shell find src. -type f -name '*.c' | grep -v 'limine/')
override ASFILES := $(shell find src. -type f -name '*.S' | grep -v 'limine/')
override NASMFILES := $(shell find src. -type f -name '*.asm' | grep -v 'limine/')
override OBJ := $(CFILES:.c=.o) $(ASFILES:.S=.o) $(NASMFILES:.asm=.o)
override HEADER_DEPS := $(CFILES:.c=.d) $(ASFILES:.S=.d)
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.

Navigation menu