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
buildfolder. - 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.binintovalhalla.sym, and then stripvalhalla.binof its symbols. - Build
vfs_make. - Build the VFS module using
vfs_makefrom the contents of thevfsfolder. - Assemble a boot disk, then use
grub-mkrescueto 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 9 years ago
- December 14, 2015
License
Other
Links
Synced at
Tue, 25 Nov 2025 14:50:26 GMT
Languages