Skip to content

Latest commit

 

History

History
7 lines (4 loc) · 959 Bytes

README.md

File metadata and controls

7 lines (4 loc) · 959 Bytes

Kernel

The kernel is the interface between the computer hardware and the userspace. It handles everything from file and process management to resource allocation, computer interfaces like keyboards/mice and networking features. This interface is mainly established using syscalls (features/syscall.c).

While the main goal of Melvix is definitely not the security aspect, the kernel should be fairly secure. It implements memory protecting features like paging and address validation, SMEP/SMAP, ASLR, ring 3 processes, protected memory sharing, process based syscall validation (abstraction to default, super and kernel processes) and much more.

The directory structure consists of drivers/, the home of all hardware-interacting device drivers, and features/, the home of interfaces that are not directly tied to the hardware but rather to other features of the kernel or userspace. The inc/ directory is the location of all kernel header files.