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