-
Notifications
You must be signed in to change notification settings - Fork 48
structure
We decided to keep documentation of the project on three separate levels, reflecting their supposed frequency of changes and distance from the actual source code. We also have a separate onboarding note for newcomers (not mentioned here). Programmer's responsibility is to keep all these docs up-to date. We expect that the in-code documentation will be under constant development.
- Infrastructure documentation
- Kernel design documentation
- Implementation documentation
Documents helping project members find their way in the infrastructure. They are stored in a form of informative documents, such as
- project directory structure
- coding and running tests
- test framework note
- build system note
- toolchain note
All these docs are supposed to reside in /wiki/docs
in a form of Markdown
files.
Under "Wiki" tab on project's GitHub page, then you find the document that interests you on sidebar on the right-hand side of the screen in the right section.
To document design of all kernel subsystems, i.e. we register all design decisions and give high-level description of algorithms used by a given subsystem. We also point out if the subsystem implementation is simplified in comparison to the desired one. This is important, since we need to keep track on code that should be rewritten when the system matures. These docs are supplemented by the auxiliary document, explaining how kernel subsystems compose.
A subsystem design documentation describes its key algorithms, data structures, resource management and locking policy.
Kept in a separate Markdown
files meant to reside in wiki/docs
folder.
Under "Wiki" tab on project's GitHub page, then you find the document that interests you on sidebar on the right-hand side of the screen.
- in-code documentation
- subsystems interface documentation
- coding conventions
- tags and code documenting conventions
- project contributing guidelines (using GitHub - create PR, make CR)
To help kernel programmers in crafting coherent readable and clean code that easily integrates with our codebase. That means documenting interfaces, coding conventions, rules to make successful commits and useful code reviews. This includes the lowest level of in-source code documentation.
Either as comments and tags in source files or in folder wiki/docs
as Markdown
files.
Function descriptions are supposed to be found in header
files in /include
folder. Documents can be found under "Wiki"
tab on project's GitHub page, there you will find the document
that interests you on sidebar on the right-hand side of the screen.