Started a DEVELOPERS file
This commit is contained in:
26
DEVELOPERS.md
Normal file
26
DEVELOPERS.md
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
Notice: The kernel is still in early development. Some information in this file
|
||||||
|
may be inaccurate. Please create an issue if this is the case.
|
||||||
|
|
||||||
|
# Porting
|
||||||
|
|
||||||
|
The kernel should be portable to most systems, provided they support paging
|
||||||
|
and have sufficient memory. All platform-specific code belongs in an appropriately-named
|
||||||
|
subdirectory inside src/. It must provide a linker script, startup code, and
|
||||||
|
implement a set of functions required by the kernel.
|
||||||
|
|
||||||
|
The linker script must define the following symbols:
|
||||||
|
- _pageMapLocation The location of the bitmap to be used by the page allocator.
|
||||||
|
- _heapLocation The location of the kernel's heap.
|
||||||
|
- _heapSize The size in bytes of the kernel's heap.
|
||||||
|
- _kernelStart The linear address of the start of the kernel image.
|
||||||
|
- _kernelEnd The first linear address after the end of the kernel image.
|
||||||
|
|
||||||
|
The startup code is required to enable paging and relocate the kernel if necessary. It also
|
||||||
|
needs to provide a memory map to the kernel in the form of an array of MemoryMap::Region
|
||||||
|
structures. It should then call main() with a pointer to the kernel command line as an argument.
|
||||||
|
|
||||||
|
In addition, the contents of mmap.hpp and interrupts.hpp must be implemented.
|
||||||
|
|
||||||
|
# Files
|
||||||
|
|
||||||
|
[TODO]
|
||||||
Reference in New Issue
Block a user