Skip to content

aarvsn/linux-zig

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Linux 0.11 in Zig

A reimplementation of the Linux 0.11 kernel in Zig.

Build

This is a cross-compiled kernel targeting i386-freestanding:

# Check compilation
zig build check --target i386-freestanding

# Build kernel binary
zig build-exe -target i386-freestanding init/main.zig --name system

Building a bootable floppy image

# 1. Build bootsector
as --32 -o build/bootsect.o boot/bootsect.s
ld -m elf_i386 -Ttext 0 -s --oformat binary -o build/bootsect.bin build/bootsect.o

# 2. Build setup
as --32 -o build/setup.o boot/setup.s
ld -m elf_i386 -Ttext 0 -s --oformat binary -o build/setup.bin build/setup.o

# 3. Build kernel
zig build-exe -target x86-freestanding -femit-bin=build/system.bin init/main.zig

# 4. Create floppy image
dd if=/dev/zero of=build/image.img bs=512 count=2880
dd if=build/bootsect.bin of=build/image.img conv=notrunc
dd if=build/setup.bin of=build/image.img bs=512 seek=1 conv=notrunc
dd if=build/system.bin of=build/image.img bs=512 seek=7 conv=notrunc

License

GNU General Public License v2.0. This is a derived work of the original Linux 0.11 kernel by Linus Torvalds, which is also GPLv2.

Releases

Packages

Contributors

Languages