This repository has been archived by the owner. It is now read-only.
valhalla
Valhalla
A basic proof-of-concept kernel written in Crystal.
Prerequisites
In order to build the kernel, a number of prerequisites are required:
- Crystal (0.10.0 onwards): Required to build the majority of the code. The code is largely limited to newer versions of Crystal, so more recent versions are preferred.
- nasm: Required for building the assembly code, where appropriate.
- i686-elf-ld: Required for linking together the resulting object files. As we're cross-compiling, life is much easier with a platform-appropriate linker. Such a linker can be built using the binutils section of the following guide: http://wiki.osdev.org/GCC_Cross-Compiler#The_Build
- grub-mkrescue: Required to build an ISO with GRUB2 pre-installed
- qemu(-system-i386): Optional: used to run the ISO, as through the run script
Building
For now, simply run ./make
after the prerequisites have been installed. This will do a number of things:
- Make a
build
folder. - Build all of the required assembly files.
- Build all of the Crystal files.
- Link together the object files to produce
valhalla.bin
. - Extract the symbols from
valhalla.bin
intovalhalla.sym
, and then stripvalhalla.bin
of its symbols. - Build
vfs_make
. - Build the VFS module using
vfs_make
from the contents of thevfs
folder. - Assemble a boot disk, then use
grub-mkrescue
to create an ISO image with GRUB2 pre-installed.
Running
A ./run
script has been provided for emulation use which assumes qemu-system-i386
is available.
To run the OS for testing, use ./run
. To run the OS for debugging, use ./run debug
, which allows the use of the GDB remote bridge.
Repository
valhalla
Owner
Statistic
- 13
- 0
- 1
- 0
- 0
- over 8 years ago
- December 14, 2015
License
Other
Links
Synced at
Thu, 21 Nov 2024 16:44:46 GMT
Languages