diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2025-08-25 10:28:07 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-08-25 10:28:07 +0200 |
| commit | 1057fd299e17fcc04f6b3a1aa3ace1026f8652a0 (patch) | |
| tree | a663c7dcd26779295ce0d9681418964f802f2d14 /docs | |
| parent | 1a32b9307357ac0fc9095e853b2b6d94f9fe62bb (diff) | |
| parent | 328b34360ab8b2462ea5858441693277b3d23f08 (diff) | |
Merge pull request #56 from nekernel-org/dev
Errata: v0.0.4
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/tex/NOTICE.md | 7 | ||||
| -rw-r--r-- | docs/tex/binary_mutex.tex | 2 | ||||
| -rw-r--r-- | docs/tex/core_process_scheduler.tex | 4 | ||||
| -rw-r--r-- | docs/tex/nefs.tex | 4 | ||||
| -rw-r--r-- | docs/tex/nekernel_smp_subsystem.tex | 32 |
5 files changed, 41 insertions, 8 deletions
diff --git a/docs/tex/NOTICE.md b/docs/tex/NOTICE.md index 5d6eb03f..c4015afd 100644 --- a/docs/tex/NOTICE.md +++ b/docs/tex/NOTICE.md @@ -1,5 +1,6 @@ -# Notice for LaTeX documents. +# Notice -## Recommended Tool +## Recommended: -`pdflatex` is recommended for this matter, although you are free to use other tools. +- `pdflatex` is recommended for this matter. +- You can use `overleaf` to edit the LaTeX files too.
\ No newline at end of file diff --git a/docs/tex/binary_mutex.tex b/docs/tex/binary_mutex.tex index 9b8a1c40..1b5a59c2 100644 --- a/docs/tex/binary_mutex.tex +++ b/docs/tex/binary_mutex.tex @@ -51,7 +51,7 @@ class BinaryMutex final { public: bool Lock(USER_PROCESS* process); - bool LockOrWait(USER_PROCESS* process, TimerInterface* timer); + bool LockAndWait(USER_PROCESS* process, TimerInterface* timer); public: NE_COPY_DEFAULT(BinaryMutex) diff --git a/docs/tex/core_process_scheduler.tex b/docs/tex/core_process_scheduler.tex index b99232bb..ab5636f6 100644 --- a/docs/tex/core_process_scheduler.tex +++ b/docs/tex/core_process_scheduler.tex @@ -77,8 +77,8 @@ class UserProcessTeam final { {The following sample is a C++ container used to hold process data and metadata.} {This is part of the NeKernel source tree.} \begin{verbatim} -struct PROCESS_IMAGE final { - explicit PROCESS_IMAGE() = default; +struct ProcessImage final { + explicit ProcessImage() = default; private: friend USER_PROCESS; diff --git a/docs/tex/nefs.tex b/docs/tex/nefs.tex index 7f2fdd84..37e43d13 100644 --- a/docs/tex/nefs.tex +++ b/docs/tex/nefs.tex @@ -21,9 +21,9 @@ showstringspaces=false } -\title{NeFS: New Extended File System} +\title{NeFS: New Extended File System Specification} \author{Amlal El Mahrouss} -\date{\today} +\date{2025} \begin{document} diff --git a/docs/tex/nekernel_smp_subsystem.tex b/docs/tex/nekernel_smp_subsystem.tex new file mode 100644 index 00000000..cb30f3cb --- /dev/null +++ b/docs/tex/nekernel_smp_subsystem.tex @@ -0,0 +1,32 @@ +\documentclass{article} +\usepackage{graphicx} + +\title{NeKernel: The SMP Subsystem} +\author{Amlal El Mahrouss} +\date{\today} + +\begin{document} + + \maketitle + + \section{Abstract} + + {NeKernel is a hybrid based operating system kernel written in modern C++ (C++17/C++20). It features a bootloader, kernel, tools, libraries, and frameworks. This document is about the SMP subsystem of the kernel.} + + \section{Design Overview} + + {NeKernel is designed with SMP by default. Although it may fallback under classic preemptive round-robin scheduling when unavailable - NeKernel runs best on a SMP based machine. The subsystem goes from the HardwareThreadScheduler to the Hardware Abstraction Layer's Application Processor API.} + + \section{The SMP Subsystem} + + {The SMP subsystem consist of the HTS (HardwareThreadScheduler) and AP (Application Processor) APIs. Those systems are made to handle SMP tasks inside NeKernel.} + + \subsection{Higher Level: HardwareThreadScheduler (HTS)} + + {HTS's main purpose is to make cores all busy with a StackFrame object. That object contains program registers such as the stack pointer and instruction pointer. Each task is fairly assigned to then be run by the AP's mp\_register\_task function.} + + \subsection{Lower Level: Application Processor (AP) API} + + {Application Processors (now referred as AP) is the API taking care of multi-core scheduling, very platform dependent (thus its presence on the HAL) it is designed to run tasks passed from the HTS.} + +\end{document} |
