TotallyGamerJet / limine-barebones-golang

BSD Zero Clause License
7 stars 1 forks source link

Limine Go Bare Bones

This repository will show you how to set up a simple 64-bit x86_64 Long Mode higher half Go kernel using Limine.

This project can be built using the normal Go compiler (>1.20) and the host linker on most Linux distros on x86_64, but it's recommended you set up an x86_64-elf cross compiler.

Where to go from here

You may be asking yourself: "what now?". So here's a list of things you may want to do to get started working on your new kernel:

At this point you should have decided what kind of interface your OS is going to provide to programs running on it, a common design that a lot of hobby operating systems use is POSIX (which derives from the UNIX design), which has both pros and cons:

Pros:

Cons:

Another point to consider is that a lot of software tends to depend on Linux or glibc specific features, but a portable C library like mlibc can be used instead of implementing your own, as it provides good compatibility with POSIX/Linux software.

Other options, instead of implementing POSIX in your kernel, is to add a POSIX compatibility layer on top of your native design (with the large downside of complicating the design of your OS).