summaryrefslogtreecommitdiffhomepage
path: root/docs
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-08-25 10:28:07 +0200
committerGitHub <noreply@github.com>2025-08-25 10:28:07 +0200
commit1057fd299e17fcc04f6b3a1aa3ace1026f8652a0 (patch)
treea663c7dcd26779295ce0d9681418964f802f2d14 /docs
parent1a32b9307357ac0fc9095e853b2b6d94f9fe62bb (diff)
parent328b34360ab8b2462ea5858441693277b3d23f08 (diff)
Merge pull request #56 from nekernel-org/dev
Errata: v0.0.4
Diffstat (limited to 'docs')
-rw-r--r--docs/tex/NOTICE.md7
-rw-r--r--docs/tex/binary_mutex.tex2
-rw-r--r--docs/tex/core_process_scheduler.tex4
-rw-r--r--docs/tex/nefs.tex4
-rw-r--r--docs/tex/nekernel_smp_subsystem.tex32
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}