summaryrefslogtreecommitdiffhomepage
path: root/doc/drawio
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-12-28 09:23:05 +0100
committerAmlal El Mahrouss <amlal@nekernel.org>2025-12-28 09:24:36 +0100
commit9012c6fb7c040be92aa8f950bad4f49c5be264d8 (patch)
tree581b9aaf6f372bf62c81d9626c63e835ea65736c /doc/drawio
parent42d321d36c8922de043bb65693fd427c51f89f14 (diff)
feat! rename docs to doc.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'doc/drawio')
-rw-r--r--doc/drawio/AHCI_DESIGN.drawio40
-rw-r--r--doc/drawio/LAUNCH_DESIGN.drawio22
-rw-r--r--doc/drawio/MBCI_DESIGN.drawio70
-rw-r--r--doc/drawio/SCHED_DESIGN.drawio34
-rw-r--r--doc/drawio/SOFT_SCHED_DESIGN.drawio25
-rw-r--r--doc/drawio/SYSTEM_DESIGN.drawio46
-rw-r--r--doc/drawio/TIMER_DESIGN.drawio49
-rw-r--r--doc/drawio/ZXD_DESIGN.drawio31
8 files changed, 317 insertions, 0 deletions
diff --git a/doc/drawio/AHCI_DESIGN.drawio b/doc/drawio/AHCI_DESIGN.drawio
new file mode 100644
index 00000000..73029de7
--- /dev/null
+++ b/doc/drawio/AHCI_DESIGN.drawio
@@ -0,0 +1,40 @@
+<mxfile host="65bd71144e">
+ <diagram id="n4yoMa775TB45TuBg3XL" name="Page-1">
+ <mxGraphModel dx="1144" dy="698" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
+ <root>
+ <mxCell id="0"/>
+ <mxCell id="1" parent="0"/>
+ <mxCell id="4" style="edgeStyle=none;html=1;" parent="1" source="2" target="3" edge="1">
+ <mxGeometry relative="1" as="geometry"/>
+ </mxCell>
+ <mxCell id="8" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="2" target="6">
+ <mxGeometry relative="1" as="geometry"/>
+ </mxCell>
+ <mxCell id="2" value="DRIVER I/O" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="490" y="310" width="120" height="170" as="geometry"/>
+ </mxCell>
+ <mxCell id="5" style="edgeStyle=none;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;" parent="1" source="3" target="2" edge="1">
+ <mxGeometry relative="1" as="geometry"/>
+ </mxCell>
+ <mxCell id="3" value="AHCI CTRL" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="170" y="310" width="120" height="170" as="geometry"/>
+ </mxCell>
+ <mxCell id="7" style="edgeStyle=none;html=1;exitX=0;exitY=0.25;exitDx=0;exitDy=0;entryX=1;entryY=0.25;entryDx=0;entryDy=0;" edge="1" parent="1" source="6" target="2">
+ <mxGeometry relative="1" as="geometry"/>
+ </mxCell>
+ <mxCell id="6" value="SK + AHCI FUNCTIONS" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+ <mxGeometry x="630" y="310" width="100" height="170" as="geometry"/>
+ </mxCell>
+ <mxCell id="10" style="edgeStyle=none;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="9" target="2">
+ <mxGeometry relative="1" as="geometry"/>
+ </mxCell>
+ <mxCell id="9" value="MAIN AHCI&lt;br&gt;DRIVER" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+ <mxGeometry x="630" y="490" width="100" height="170" as="geometry"/>
+ </mxCell>
+ <mxCell id="11" style="edgeStyle=none;html=1;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=0.03;entryY=0.841;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="2" target="9">
+ <mxGeometry relative="1" as="geometry"/>
+ </mxCell>
+ </root>
+ </mxGraphModel>
+ </diagram>
+</mxfile> \ No newline at end of file
diff --git a/doc/drawio/LAUNCH_DESIGN.drawio b/doc/drawio/LAUNCH_DESIGN.drawio
new file mode 100644
index 00000000..32fe8eda
--- /dev/null
+++ b/doc/drawio/LAUNCH_DESIGN.drawio
@@ -0,0 +1,22 @@
+<mxfile host="65bd71144e">
+ <diagram id="WN9xM0SvnG1OFdIgUV1P" name="Page-1">
+ <mxGraphModel dx="1149" dy="361" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
+ <root>
+ <mxCell id="0"/>
+ <mxCell id="1" parent="0"/>
+ <mxCell id="2" value="LaunchHelpers" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="250" y="100" width="255" height="60" as="geometry"/>
+ </mxCell>
+ <mxCell id="3" value="ne_launch" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+ <mxGeometry x="250" y="170" width="255" height="60" as="geometry"/>
+ </mxCell>
+ <mxCell id="4" value="ne_kernel" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+ <mxGeometry x="250" y="240" width="540" height="60" as="geometry"/>
+ </mxCell>
+ <mxCell id="5" value="libSystem" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+ <mxGeometry x="520" y="170" width="270" height="60" as="geometry"/>
+ </mxCell>
+ </root>
+ </mxGraphModel>
+ </diagram>
+</mxfile> \ No newline at end of file
diff --git a/doc/drawio/MBCI_DESIGN.drawio b/doc/drawio/MBCI_DESIGN.drawio
new file mode 100644
index 00000000..38aa8b92
--- /dev/null
+++ b/doc/drawio/MBCI_DESIGN.drawio
@@ -0,0 +1,70 @@
+<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36" version="26.0.14">
+ <diagram name="Page-1" id="hkk8yLV24Qf0g4vqRryx">
+ <mxGraphModel dx="1368" dy="751" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
+ <root>
+ <mxCell id="0" />
+ <mxCell id="1" parent="0" />
+ <mxCell id="lO14xRhUFe0yug9pa5VE-3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="lO14xRhUFe0yug9pa5VE-1" target="lO14xRhUFe0yug9pa5VE-2">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="lO14xRhUFe0yug9pa5VE-1" value="Reset" style="whiteSpace=wrap;html=1;" vertex="1" parent="1">
+ <mxGeometry x="120" y="700" width="140" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="lO14xRhUFe0yug9pa5VE-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="lO14xRhUFe0yug9pa5VE-2" target="lO14xRhUFe0yug9pa5VE-4">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="lO14xRhUFe0yug9pa5VE-7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="lO14xRhUFe0yug9pa5VE-2" target="lO14xRhUFe0yug9pa5VE-6">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="lO14xRhUFe0yug9pa5VE-2" value="Start" style="whiteSpace=wrap;html=1;" vertex="1" parent="1">
+ <mxGeometry x="420" y="700" width="120" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="lO14xRhUFe0yug9pa5VE-8" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="lO14xRhUFe0yug9pa5VE-4" target="lO14xRhUFe0yug9pa5VE-1">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="lO14xRhUFe0yug9pa5VE-4" value="Failed" style="whiteSpace=wrap;html=1;" vertex="1" parent="1">
+ <mxGeometry x="420" y="880" width="120" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="lO14xRhUFe0yug9pa5VE-10" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="lO14xRhUFe0yug9pa5VE-6" target="lO14xRhUFe0yug9pa5VE-9">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="lO14xRhUFe0yug9pa5VE-6" value="Success, Wait" style="whiteSpace=wrap;html=1;" vertex="1" parent="1">
+ <mxGeometry x="650" y="700" width="120" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="lO14xRhUFe0yug9pa5VE-12" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="lO14xRhUFe0yug9pa5VE-9" target="lO14xRhUFe0yug9pa5VE-4">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="lO14xRhUFe0yug9pa5VE-14" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="lO14xRhUFe0yug9pa5VE-9" target="lO14xRhUFe0yug9pa5VE-13">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="lO14xRhUFe0yug9pa5VE-9" value="Transfer CMD" style="whiteSpace=wrap;html=1;" vertex="1" parent="1">
+ <mxGeometry x="840" y="700" width="120" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="lO14xRhUFe0yug9pa5VE-16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="lO14xRhUFe0yug9pa5VE-13" target="lO14xRhUFe0yug9pa5VE-15">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="lO14xRhUFe0yug9pa5VE-13" value="Read CMD" style="whiteSpace=wrap;html=1;" vertex="1" parent="1">
+ <mxGeometry x="1070" y="700" width="120" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="lO14xRhUFe0yug9pa5VE-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="lO14xRhUFe0yug9pa5VE-15" target="lO14xRhUFe0yug9pa5VE-4">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="lO14xRhUFe0yug9pa5VE-19" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="lO14xRhUFe0yug9pa5VE-15" target="lO14xRhUFe0yug9pa5VE-18">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="lO14xRhUFe0yug9pa5VE-15" value="Do Op" style="whiteSpace=wrap;html=1;" vertex="1" parent="1">
+ <mxGeometry x="1070" y="980" width="120" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="lO14xRhUFe0yug9pa5VE-20" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.25;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="lO14xRhUFe0yug9pa5VE-18">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="910" y="1150" as="sourcePoint" />
+ <mxPoint x="710" y="760" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="lO14xRhUFe0yug9pa5VE-18" value="Send back and ready" style="whiteSpace=wrap;html=1;" vertex="1" parent="1">
+ <mxGeometry x="1070" y="1120" width="120" height="60" as="geometry" />
+ </mxCell>
+ </root>
+ </mxGraphModel>
+ </diagram>
+</mxfile> \ No newline at end of file
diff --git a/doc/drawio/SCHED_DESIGN.drawio b/doc/drawio/SCHED_DESIGN.drawio
new file mode 100644
index 00000000..ab75d000
--- /dev/null
+++ b/doc/drawio/SCHED_DESIGN.drawio
@@ -0,0 +1,34 @@
+<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36" version="24.7.14">
+ <diagram name="Page-1" id="6QVppPX6dMcFLP7eY7Ap">
+ <mxGraphModel dx="1368" dy="717" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
+ <root>
+ <mxCell id="0" />
+ <mxCell id="1" parent="0" />
+ <mxCell id="V4mTDnC5FWkVb8QuH4lW-3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="V4mTDnC5FWkVb8QuH4lW-1" target="V4mTDnC5FWkVb8QuH4lW-2">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="V4mTDnC5FWkVb8QuH4lW-1" value="ISCHEDOBJECT INTERFACE" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+ <mxGeometry x="90" y="70" width="670" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="V4mTDnC5FWkVb8QuH4lW-11" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="V4mTDnC5FWkVb8QuH4lW-2" target="V4mTDnC5FWkVb8QuH4lW-4">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="V4mTDnC5FWkVb8QuH4lW-2" value="USER SCHEDULER/THREAD SCHEDULER/HW THREAD SCHEDULER" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+ <mxGeometry x="90" y="170" width="670" height="50" as="geometry" />
+ </mxCell>
+ <mxCell id="V4mTDnC5FWkVb8QuH4lW-4" value="ANOTHER SCHEDULER OR DIRECT CALL TO DRIVER/HAL." style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+ <mxGeometry x="90" y="280" width="670" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="V4mTDnC5FWkVb8QuH4lW-12" value="PROCESS BANKS CPU 1..N" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;" vertex="1" parent="1">
+ <mxGeometry x="338" y="450" width="175" height="80" as="geometry" />
+ </mxCell>
+ <mxCell id="V4mTDnC5FWkVb8QuH4lW-13" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="V4mTDnC5FWkVb8QuH4lW-4" target="V4mTDnC5FWkVb8QuH4lW-12">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="V4mTDnC5FWkVb8QuH4lW-15" value="&lt;h1 style=&quot;margin-top: 0px;&quot;&gt;Raise error checks when:&lt;/h1&gt;&lt;p&gt;- Kernel level tasks crashes.&lt;/p&gt;&lt;p&gt;- An assertion fails.&lt;/p&gt;&lt;p&gt;- System Call isn&#39;t returning correctly.&lt;/p&gt;&lt;p&gt;- Driver is at an uncertain state.&lt;/p&gt;" style="text;html=1;whiteSpace=wrap;overflow=hidden;rounded=0;" vertex="1" parent="1">
+ <mxGeometry x="580" y="390" width="180" height="210" as="geometry" />
+ </mxCell>
+ </root>
+ </mxGraphModel>
+ </diagram>
+</mxfile>
diff --git a/doc/drawio/SOFT_SCHED_DESIGN.drawio b/doc/drawio/SOFT_SCHED_DESIGN.drawio
new file mode 100644
index 00000000..27d4e2b0
--- /dev/null
+++ b/doc/drawio/SOFT_SCHED_DESIGN.drawio
@@ -0,0 +1,25 @@
+<mxfile host="65bd71144e">
+ <diagram name="Page-1" id="lDkK2i6CeL2VbSOVDvrP">
+ <mxGraphModel dx="764" dy="289" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
+ <root>
+ <mxCell id="0"/>
+ <mxCell id="1" parent="0"/>
+ <mxCell id="ifhO3zQZNW-sXvZMTmu8-2" value="libsci Dylib inside code (RING 3)" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="235.5" y="340" width="360" height="30" as="geometry"/>
+ </mxCell>
+ <mxCell id="ifhO3zQZNW-sXvZMTmu8-3" value="Running code (RING 3)" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="235.5" y="295" width="360" height="35" as="geometry"/>
+ </mxCell>
+ <mxCell id="ifhO3zQZNW-sXvZMTmu8-8" value="&lt;h1 style=&quot;margin-top: 0px;&quot;&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;NeKernel Scheduler&lt;/span&gt;&lt;/h1&gt;&lt;h1 style=&quot;margin-top: 0px;&quot;&gt;&lt;span style=&quot;font-size: 12px; font-weight: 400; background-color: initial;&quot;&gt;This describes how NeKernel is structued to schedule tasks.&lt;/span&gt;&lt;br&gt;&lt;/h1&gt;&lt;div&gt;A Process may be attached to another one (thread)&lt;/div&gt;&lt;div&gt;Otherwise it's a process within a team.&lt;/div&gt;" style="text;html=1;whiteSpace=wrap;overflow=hidden;rounded=0;" parent="1" vertex="1">
+ <mxGeometry x="620" y="290" width="180" height="200" as="geometry"/>
+ </mxCell>
+ <mxCell id="ifhO3zQZNW-sXvZMTmu8-13" value="Process structure (RING 0)" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="235.5" y="380" width="360" height="60" as="geometry"/>
+ </mxCell>
+ <mxCell id="4" value="HardwareThread, HardwareThreadScheduler and UserProcessScheduler (RING 0)" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+ <mxGeometry x="234" y="450" width="360" height="60" as="geometry"/>
+ </mxCell>
+ </root>
+ </mxGraphModel>
+ </diagram>
+</mxfile> \ No newline at end of file
diff --git a/doc/drawio/SYSTEM_DESIGN.drawio b/doc/drawio/SYSTEM_DESIGN.drawio
new file mode 100644
index 00000000..ffc625d4
--- /dev/null
+++ b/doc/drawio/SYSTEM_DESIGN.drawio
@@ -0,0 +1,46 @@
+<mxfile host="65bd71144e">
+ <diagram name="Page-1" id="lDkK2i6CeL2VbSOVDvrP">
+ <mxGraphModel dx="960" dy="709" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
+ <root>
+ <mxCell id="0"/>
+ <mxCell id="1" parent="0"/>
+ <mxCell id="ifhO3zQZNW-sXvZMTmu8-2" value="&lt;p class=&quot;p1&quot;&gt;&lt;b&gt;System API (libSystem.dll&lt;/b&gt;&lt;b style=&quot;background-color: transparent;&quot;&gt;) – User-Space Interface (Ring 3, EL0)&lt;/b&gt;&lt;/p&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="240" y="340" width="360" height="30" as="geometry"/>
+ </mxCell>
+ <mxCell id="ifhO3zQZNW-sXvZMTmu8-3" value="&lt;p class=&quot;p1&quot;&gt;&lt;b&gt;Applications &amp;amp; Dynamically Linked Libraries (Ring 3, EL0)&lt;/b&gt;&lt;/p&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="240" y="240" width="180" height="35" as="geometry"/>
+ </mxCell>
+ <mxCell id="ifhO3zQZNW-sXvZMTmu8-13" value="&lt;p class=&quot;p1&quot;&gt;&lt;b&gt;NeKernel MP Kernel, DDK, and Drivers (Ring 0, EL1)&lt;/b&gt;&lt;/p&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="240" y="450" width="360" height="60" as="geometry"/>
+ </mxCell>
+ <mxCell id="4" value="&lt;p class=&quot;p1&quot;&gt;&lt;b&gt;SCI and DDK calls (Ring 0 / Ring 2, EL0 to EL1 Transitions)&lt;/b&gt;&lt;/p&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="240" y="380" width="360" height="60" as="geometry"/>
+ </mxCell>
+ <mxCell id="5" value="&lt;p class=&quot;p1&quot;&gt;&lt;b&gt;HAL&lt;/b&gt;&lt;/p&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="404.5" y="525" width="195.5" height="60" as="geometry"/>
+ </mxCell>
+ <mxCell id="6" value="&lt;p class=&quot;p1&quot;&gt;&lt;b&gt;NeKernel&lt;/b&gt;&lt;/p&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="140" y="525" width="250" height="60" as="geometry"/>
+ </mxCell>
+ <mxCell id="7" value="&lt;p class=&quot;p1&quot;&gt;&lt;b&gt;BootZ Bootloader and Handover Protocol&lt;/b&gt;&lt;/p&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="140" y="600" width="460" height="60" as="geometry"/>
+ </mxCell>
+ <mxCell id="9" value="&lt;p class=&quot;p1&quot;&gt;&lt;b&gt;Firmware (EFI, NeKernel.org&#39;s FW)&lt;/b&gt;&lt;/p&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="140" y="670" width="460" height="60" as="geometry"/>
+ </mxCell>
+ <mxCell id="13" value="&lt;p class=&quot;p1&quot;&gt;&lt;b&gt;System SDK Stable API&lt;/b&gt;&lt;/p&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="238.88" y="290" width="360" height="40" as="geometry"/>
+ </mxCell>
+ <mxCell id="15" value="&lt;p class=&quot;p1&quot;&gt;&lt;b&gt;Services (Ring 3, EL0)&lt;/b&gt;&lt;/p&gt;" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+ <mxGeometry x="430" y="240" width="170" height="35" as="geometry"/>
+ </mxCell>
+ <mxCell id="16" value="&lt;p class=&quot;p1&quot;&gt;&lt;b&gt;Hypr86&lt;/b&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot;&gt;&lt;b&gt;Virtual Machine&lt;/b&gt;&lt;/p&gt;" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+ <mxGeometry x="140" y="240" width="90" height="270" as="geometry"/>
+ </mxCell>
+ <mxCell id="19" value="&lt;h1 style=&quot;margin-top: 0px;&quot;&gt;NeKernel&lt;/h1&gt;&lt;p&gt;This shows how NeKernel is&lt;/p&gt;&lt;p&gt;designed, some parts here are&lt;/p&gt;&lt;p&gt;not present yet, such as Hypr86.&lt;/p&gt;&lt;p&gt;This diagram was made for the&lt;/p&gt;&lt;p&gt;developers to understand NeKernel better.&lt;/p&gt;" style="text;html=1;whiteSpace=wrap;overflow=hidden;rounded=0;" vertex="1" parent="1">
+ <mxGeometry x="630" y="240" width="180" height="190" as="geometry"/>
+ </mxCell>
+ </root>
+ </mxGraphModel>
+ </diagram>
+</mxfile> \ No newline at end of file
diff --git a/doc/drawio/TIMER_DESIGN.drawio b/doc/drawio/TIMER_DESIGN.drawio
new file mode 100644
index 00000000..ca081fd3
--- /dev/null
+++ b/doc/drawio/TIMER_DESIGN.drawio
@@ -0,0 +1,49 @@
+<mxfile host="65bd71144e">
+ <diagram name="Page-1" id="SMmOiZGLec9H7ruN5qyQ">
+ <mxGraphModel dx="764" dy="289" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
+ <root>
+ <mxCell id="0"/>
+ <mxCell id="1" parent="0"/>
+ <mxCell id="c-_7pHU60HQ0aR4bwu-4-3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="c-_7pHU60HQ0aR4bwu-4-1" target="c-_7pHU60HQ0aR4bwu-4-2" edge="1">
+ <mxGeometry relative="1" as="geometry"/>
+ </mxCell>
+ <mxCell id="c-_7pHU60HQ0aR4bwu-4-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="c-_7pHU60HQ0aR4bwu-4-1" target="c-_7pHU60HQ0aR4bwu-4-4" edge="1">
+ <mxGeometry relative="1" as="geometry"/>
+ </mxCell>
+ <mxCell id="c-_7pHU60HQ0aR4bwu-4-7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="c-_7pHU60HQ0aR4bwu-4-1" target="c-_7pHU60HQ0aR4bwu-4-6" edge="1">
+ <mxGeometry relative="1" as="geometry"/>
+ </mxCell>
+ <mxCell id="c-_7pHU60HQ0aR4bwu-4-1" value="TIME_INFO" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="340" y="230" width="120" height="60" as="geometry"/>
+ </mxCell>
+ <mxCell id="c-_7pHU60HQ0aR4bwu-4-2" value="APIC/PIC/IOAPIC" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="340" y="400" width="120" height="60" as="geometry"/>
+ </mxCell>
+ <mxCell id="c-_7pHU60HQ0aR4bwu-4-4" value="GT" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="530" y="400" width="120" height="60" as="geometry"/>
+ </mxCell>
+ <mxCell id="c-_7pHU60HQ0aR4bwu-4-6" value="CLINT" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="150" y="400" width="120" height="60" as="geometry"/>
+ </mxCell>
+ <mxCell id="c-_7pHU60HQ0aR4bwu-4-9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="c-_7pHU60HQ0aR4bwu-4-8" target="c-_7pHU60HQ0aR4bwu-4-1" edge="1">
+ <mxGeometry relative="1" as="geometry"/>
+ </mxCell>
+ <mxCell id="c-_7pHU60HQ0aR4bwu-4-8" value="Scheduler context switch (on non MT mode),&lt;br&gt;Also SoftwareTimer gets implemented." style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="130" y="75" width="120" height="90" as="geometry"/>
+ </mxCell>
+ <mxCell id="c-_7pHU60HQ0aR4bwu-4-11" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="c-_7pHU60HQ0aR4bwu-4-10" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="530" y="120" as="sourcePoint"/>
+ <mxPoint x="430" y="230" as="targetPoint"/>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="c-_7pHU60HQ0aR4bwu-4-10" value="Hook 2 system calls for timing purposes.&lt;br&gt;(Wait, WaitUntil)" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="560" y="90" width="120" height="60" as="geometry"/>
+ </mxCell>
+ <mxCell id="2" value="It is either abstracted like this, or has a direct interface to it." style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
+ <mxGeometry x="490" y="235" width="200" height="55" as="geometry"/>
+ </mxCell>
+ </root>
+ </mxGraphModel>
+ </diagram>
+</mxfile> \ No newline at end of file
diff --git a/doc/drawio/ZXD_DESIGN.drawio b/doc/drawio/ZXD_DESIGN.drawio
new file mode 100644
index 00000000..19fadabd
--- /dev/null
+++ b/doc/drawio/ZXD_DESIGN.drawio
@@ -0,0 +1,31 @@
+<mxfile host="65bd71144e">
+ <diagram name="Page-1" id="PApGwmLcT2JRCILoETeI">
+ <mxGraphModel dx="960" dy="709" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
+ <root>
+ <mxCell id="0"/>
+ <mxCell id="1" parent="0"/>
+ <mxCell id="5xbXWvOdvmnQnRAweQaM-1" value="&lt;h1 style=&quot;margin-top: 0px;&quot;&gt;ZXD&lt;/h1&gt;&lt;p&gt;NeKernel eXtended Driver Format.&lt;/p&gt;&lt;p&gt;An Extended PE32+&lt;/p&gt;&lt;p&gt;With additional headers and such.&lt;/p&gt;" style="text;html=1;whiteSpace=wrap;overflow=hidden;rounded=0;" parent="1" vertex="1">
+ <mxGeometry x="40" y="40" width="210" height="130" as="geometry"/>
+ </mxCell>
+ <mxCell id="5xbXWvOdvmnQnRAweQaM-2" value="ZXD HEADER" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="40" y="180" width="310" height="60" as="geometry"/>
+ </mxCell>
+ <mxCell id="5xbXWvOdvmnQnRAweQaM-3" value="PE32+ ZONE" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="40" y="260" width="310" height="60" as="geometry"/>
+ </mxCell>
+ <mxCell id="5xbXWvOdvmnQnRAweQaM-4" value="ZXD STUB [1..N]" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="40" y="340" width="310" height="60" as="geometry"/>
+ </mxCell>
+ <mxCell id="FgewEam9b60nFajCTQDb-1" value="StubHeapSz, StubStackSz, StubPageFlags..." style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+ <mxGeometry x="380" y="355" width="290" height="30" as="geometry"/>
+ </mxCell>
+ <mxCell id="FgewEam9b60nFajCTQDb-2" value="Executable image of type PE32+&amp;nbsp;" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+ <mxGeometry x="380" y="274" width="290" height="30" as="geometry"/>
+ </mxCell>
+ <mxCell id="FgewEam9b60nFajCTQDb-5" value="ZXD header, contains issuer and assignee signature, checked at runtime." style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+ <mxGeometry x="380" y="194" width="290" height="30" as="geometry"/>
+ </mxCell>
+ </root>
+ </mxGraphModel>
+ </diagram>
+</mxfile> \ No newline at end of file