diff options
| author | Amlal EL Mahrouss <amlalelmahrouss@icloud.com> | 2024-07-30 18:06:17 +0200 |
|---|---|---|
| committer | Amlal EL Mahrouss <amlalelmahrouss@icloud.com> | 2024-07-30 18:06:17 +0200 |
| commit | 01fb3ca21dd5846ecd7e4e94571ede5a5264d9a6 (patch) | |
| tree | 60201d088bb2c1cc12777611b15c2708bf71787b /Meta | |
| parent | 579d076015eece5961b1034979ade2be09c6bfcd (diff) | |
[SMP] WiP impelementation of SMP inside the HAL.
- Doing R&D on SMP on AMD64,
- Working on a first application.
Signed-off-by: Amlal EL Mahrouss <amlalelmahrouss@icloud.com>
Diffstat (limited to 'Meta')
| -rw-r--r-- | Meta/OS-Design.drawio | 42 | ||||
| -rw-r--r-- | Meta/OS-Timer-Architecture.drawio | 92 |
2 files changed, 58 insertions, 76 deletions
diff --git a/Meta/OS-Design.drawio b/Meta/OS-Design.drawio index 539e0bf9..46863670 100644 --- a/Meta/OS-Design.drawio +++ b/Meta/OS-Design.drawio @@ -1,47 +1,29 @@ <mxfile host="65bd71144e"> <diagram name="Page-1" id="lDkK2i6CeL2VbSOVDvrP"> - <mxGraphModel dx="746" dy="307" 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"> + <mxGraphModel dx="1356" dy="558" 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-1" value="DDK Hooks (KCI and SCI routes.)" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxCell id="ifhO3zQZNW-sXvZMTmu8-1" value="DDKit Hooks" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="234" y="450" width="360" height="60" as="geometry"/> </mxCell> - <mxCell id="ifhO3zQZNW-sXvZMTmu8-2" value="SCI" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> - <mxGeometry x="234" y="410" width="360" height="30" as="geometry"/> + <mxCell id="ifhO3zQZNW-sXvZMTmu8-2" value="SCIKit and SCM" 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="libCoreGraphics/libCoreFoundation" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> - <mxGeometry x="234" y="370" width="360" height="30" as="geometry"/> - </mxCell> - <mxCell id="ifhO3zQZNW-sXvZMTmu8-4" value="libCoreApplication" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> - <mxGeometry x="241" y="330" width="136" height="30" as="geometry"/> - </mxCell> - <mxCell id="ifhO3zQZNW-sXvZMTmu8-5" value="libCoreMT" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> - <mxGeometry x="387" y="330" width="200" height="30" as="geometry"/> + <mxCell id="ifhO3zQZNW-sXvZMTmu8-3" value="FoundationKit, AnimationKit, GraphicsKit" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="235.5" y="295" width="360" height="30" as="geometry"/> </mxCell> <mxCell id="ifhO3zQZNW-sXvZMTmu8-8" value="<h1 style="margin-top: 0px;">System layer.</h1><p>This layer describes the kernel and it's API, which makes the Zeta OS.</p>" style="text;html=1;whiteSpace=wrap;overflow=hidden;rounded=0;" parent="1" vertex="1"> - <mxGeometry x="620" y="325" width="180" height="120" as="geometry"/> - </mxCell> - <mxCell id="ifhO3zQZNW-sXvZMTmu8-9" value="libCoreHTML" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> - <mxGeometry x="241" y="200" width="136" height="100" as="geometry"/> - </mxCell> - <mxCell id="ifhO3zQZNW-sXvZMTmu8-10" value="libCoreAsync" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> - <mxGeometry x="387" y="200" width="203" height="100" as="geometry"/> - </mxCell> - <mxCell id="ifhO3zQZNW-sXvZMTmu8-11" value="<h1 style="margin-top: 0px;">High level layer.</h1><p>This contains the launcher, some</p><p>APIs (here CoreHTML and CoreAsync.) and apps.</p>" style="text;html=1;whiteSpace=wrap;overflow=hidden;rounded=0;" parent="1" vertex="1"> - <mxGeometry x="620" y="140" width="180" height="140" as="geometry"/> - </mxCell> - <mxCell id="ifhO3zQZNW-sXvZMTmu8-12" value="UI" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> - <mxGeometry x="241" y="130" width="349" height="60" as="geometry"/> + <mxGeometry x="610" y="440" width="180" height="120" as="geometry"/> </mxCell> - <mxCell id="ifhO3zQZNW-sXvZMTmu8-13" value="Kernel" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxCell id="ifhO3zQZNW-sXvZMTmu8-13" value="NewOS MP Kernel" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="235.5" y="520" width="360" height="60" as="geometry"/> </mxCell> - <mxCell id="ifhO3zQZNW-sXvZMTmu8-14" value="New OS" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1"> - <mxGeometry x="241" y="70" width="60" height="30" as="geometry"/> + <mxCell id="2" value="<h1 style="margin-top: 0px;">User layer</h1><div>This layer is located on user space, it is containing all of the users frameworks, SCI and SCM objects.</div>" style="text;html=1;whiteSpace=wrap;overflow=hidden;rounded=0;" vertex="1" parent="1"> + <mxGeometry x="610" y="290" width="180" height="120" as="geometry"/> </mxCell> - <mxCell id="ifhO3zQZNW-sXvZMTmu8-15" value="<h1 style="margin-top: 0px;"><span style="background-color: initial;">Application</span></h1><div>Each app is organized so:</div><div><br></div><div>/*.exe</div><div>/NewOS/</div><div>/NewOS/Libraries/lib*</div><div>/NewOS/Manifests/*.alist</div><div><br></div><div>*.exe must match the MLExecutable field, and be a PEF executable.</div><div><br></div><div>App.alist is mandatory on apps.</div><div><br></div><div>An New OS is simply a directory</div><div>with the .app extension.</div>" style="text;html=1;whiteSpace=wrap;overflow=hidden;rounded=0;" parent="1" vertex="1"> - <mxGeometry x="10" y="130" width="180" height="240" as="geometry"/> + <mxCell id="3" value="<h1 style="margin-top: 0px;">NewOS</h1><div>NewOS is an interesting piece</div><div>of engineering, designed to be mutli-user and multi tasked, it perfectly suits that need. And gives a neat API to work on.</div>" style="text;html=1;whiteSpace=wrap;overflow=hidden;rounded=0;" vertex="1" parent="1"> + <mxGeometry x="90" y="80" width="180" height="130" as="geometry"/> </mxCell> </root> </mxGraphModel> diff --git a/Meta/OS-Timer-Architecture.drawio b/Meta/OS-Timer-Architecture.drawio index 9b5a9a88..2fdeded6 100644 --- a/Meta/OS-Timer-Architecture.drawio +++ b/Meta/OS-Timer-Architecture.drawio @@ -1,46 +1,46 @@ -<mxfile host="app.diagrams.net" modified="2024-07-07T08:32:41.621Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36" etag="UqJl_3VXuitRxImxFo5W" version="24.6.2" type="device"> - <diagram name="Page-1" id="SMmOiZGLec9H7ruN5qyQ"> - <mxGraphModel dx="1400" dy="743" 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;" edge="1" parent="1" source="c-_7pHU60HQ0aR4bwu-4-1" target="c-_7pHU60HQ0aR4bwu-4-2"> - <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;" edge="1" parent="1" source="c-_7pHU60HQ0aR4bwu-4-1" target="c-_7pHU60HQ0aR4bwu-4-4"> - <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;" edge="1" parent="1" source="c-_7pHU60HQ0aR4bwu-4-1" target="c-_7pHU60HQ0aR4bwu-4-6"> - <mxGeometry relative="1" as="geometry" /> - </mxCell> - <mxCell id="c-_7pHU60HQ0aR4bwu-4-1" value="TimeInfoStruct" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="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;" vertex="1" parent="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;" vertex="1" parent="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;" vertex="1" parent="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;" edge="1" parent="1" source="c-_7pHU60HQ0aR4bwu-4-8" target="c-_7pHU60HQ0aR4bwu-4-1"> - <mxGeometry relative="1" as="geometry" /> - </mxCell> - <mxCell id="c-_7pHU60HQ0aR4bwu-4-8" value="Scheduler context switch (on non MT mode),<br>Also HardwareTimer gets implemented." style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> - <mxGeometry x="160" y="60" 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;" edge="1" parent="1" source="c-_7pHU60HQ0aR4bwu-4-10"> - <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.<br>(Wait, WaitUntil)" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> - <mxGeometry x="560" y="90" width="120" height="60" as="geometry" /> - </mxCell> - </root> - </mxGraphModel> - </diagram> -</mxfile> +<mxfile host="65bd71144e"> + <diagram name="Page-1" id="SMmOiZGLec9H7ruN5qyQ"> + <mxGraphModel dx="746" dy="307" 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),<br>Also HardwareTimer gets implemented." style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="160" y="60" 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.<br>(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> + </root> + </mxGraphModel> + </diagram> +</mxfile>
\ No newline at end of file |
