Welcome to the JSLK kernel documentation. Please note the documentation is a work in progress, so you will find many empty pages and grammar errors.
JSLK is a simple 32-bit hobby kernel designed to run on the x86 architecture (although portability has been taken into consideration). It was started in August 2017 with the objective of learning how a computer operating system works and to improve the coding skills of the main developer. The kernel is mostly written in C with some bits of assembly and has partial compatibility with C++ (a runtime is provided). Some of its features are: extensive HAL API, System V ABI compatibility, memory management, interrupt handling, VGA driver, timers and delays, some synchronization primitives, a growing home-made C library, etc.
JSLK is released under the GNU GPL3 license. The public repo can be found here.
This documentation is intended for students, kernel developers and contributors to use as a programming guide and to learn how the kernel works. Please note that the best way to learn about programming the JSLK kernel is by reading the source code. This documentation works best when used as a guide to understand it.
If you have any contributions you would like to make to this documentation, please send an email to [email protected] with the purposed modifications.