summaryrefslogtreecommitdiff
path: root/DESIGN
blob: b7ba1e2214472b3626788e3d17367becaf191af6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
design principles
-----------------

Use strict ANSI C99. This means no inline-assembly. This means
we have to write assembly routines if we need things not available
in C (lgdt, in, out, etc.).

Make sure it compiles with every ANSI C99 compiler (gcc, clang, tcc, ...).

Use only very simple makefile rules. Make sure we could also just
use a simple shell script to compile the kernel.

Avoid implementation and using of unsafe C functions. Provide safe
counterparts wherever possible. There are of course exceptions like
scrolling the VGA buffer with a memmove.