Add multilingual language and systems learning tracks

This commit is contained in:
Admin committed 2026-11-01 15:46:21 +08:00
1 parent 07338189fc
commit d8d1c40118
844 files changed
+6061

No files matched your search

+9
View File
@@ -0,0 +1,9 @@
# Build Open Agila OS · 1
[Agila University track](https://edu.agilaos.com/track.php?track=23&lang=en)
About 15 minutes per lesson. Predict, run, change, explain, then complete the check in University.
- [Lesson 1: Build the public kernel prototype](lesson-1/lesson.html)
- [Lesson 2: Trace initialization honestly](lesson-2/lesson.html)
- [Lesson 3: Model page translation](lesson-3/lesson.html)
+1
View File
@@ -0,0 +1 @@
<!doctype html><html lang="en"><meta charset="utf-8"><title>Build the public kernel prototype</title><h1>Build the public kernel prototype</h1><p>15-minute session: read for 3 minutes, trace for 3, experiment for 7, and complete the check for 2. Spend longer whenever you need.</p><p>The public open_kernel repository uses Ada, kernel.gpr, and a Makefile. make run builds and executes a host program. It is not a bootable bare-metal image. Main calls Kernel.Start. Inspect the current source before changing it; the reference revision is 9af96aa.</p><p><strong>Practice and evidence:</strong> Clone from Forge in your development environment, install GNAT and gprbuild, run make and make run, and record the exact commit and output. The browser lab is single-file; use your own development environment for this multi-file build.</p><h3>Practice and evidence</h3><p>Keep three notes: your prediction, the actual result, and why they match or differ. The completion check grades understanding; the practice task builds skill.</p><p><a href="https://git.agilaos.com/matt/open_kernel">Language reference: git.agilaos.com</a></p><p><a href="https://git.agilaos.com/matt/agila_open_tool">Language reference: git.agilaos.com</a></p></html>
+1
View File
@@ -0,0 +1 @@
<!doctype html><html lang="en"><meta charset="utf-8"><title>Trace initialization honestly</title><h1>Trace initialization honestly</h1><p>15-minute session: read for 3 minutes, trace for 3, experiment for 7, and complete the check for 2. Spend longer whenever you need.</p><p>Kernel.Start calls CPU, Memory, Console, Interrupt, Timer, and Scheduler initialization. Several bodies currently contain null. The subsequent initialized messages do not prove those subsystems exist. Trace each call into its body and classify it as implemented behavior, host-backed behavior, or a stub.</p><p><strong>Practice and evidence:</strong> Create an evidence table with file, procedure, observable behavior, and one test still needed. Console currently uses Ada.Text_IO, which relies on the host runtime.</p><h3>Practice and evidence</h3><p>Keep three notes: your prediction, the actual result, and why they match or differ. The completion check grades understanding; the practice task builds skill.</p><p><a href="https://git.agilaos.com/matt/open_kernel">Language reference: git.agilaos.com</a></p><p><a href="https://git.agilaos.com/matt/agila_open_tool">Language reference: git.agilaos.com</a></p></html>
+6
View File
@@ -0,0 +1,6 @@
<!doctype html><html lang="en"><meta charset="utf-8"><title>Model page translation</title><h1>Model page translation</h1><p>15-minute session: read for 3 minutes, trace for 3, experiment for 7, and complete the check for 2. Spend longer whenever you need.</p><p>A virtual address can be split into page number and offset. This model uses 4096-byte pages and a dictionary from virtual page to physical frame. Real page tables also encode permissions and are managed by architecture-specific hardware and kernel code. This is a model, not access to real physical memory.</p><p><strong>Practice and evidence:</strong> Predict the output, remove mapping 2, and handle the missing page explicitly. Add read/write permissions to your model and a test that denies a write.</p><pre><code class="language-python">page_size=4096
table={2:7}
address=2*page_size+13
page,offset=divmod(address,page_size)
print(table[page]*page_size+offset)
</code></pre><p><strong>Expected result:</strong> <code>28685</code></p><h3>Practice and evidence</h3><p>Keep three notes: your prediction, the actual result, and why they match or differ. The completion check grades understanding; the practice task builds skill.</p><p><a href="https://git.agilaos.com/matt/open_kernel">Language reference: git.agilaos.com</a></p><p><a href="https://git.agilaos.com/matt/agila_open_tool">Language reference: git.agilaos.com</a></p></html>
+5
View File
@@ -0,0 +1,5 @@
page_size=4096
table={2:7}
address=2*page_size+13
page,offset=divmod(address,page_size)
print(table[page]*page_size+offset)