From 66cf91d3a5ed4b8c1a4b53c75a42568347f9856f Mon Sep 17 00:00:00 2001 From: Nathan Giddings Date: Sat, 1 Aug 2020 23:01:55 -0500 Subject: [PATCH] Started a DEVELOPERS file --- DEVELOPERS.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 DEVELOPERS.md diff --git a/DEVELOPERS.md b/DEVELOPERS.md new file mode 100644 index 0000000..14db3e1 --- /dev/null +++ b/DEVELOPERS.md @@ -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] \ No newline at end of file