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, 04 Nov 2025 09:30:26 GMT
Languages