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 · 2
[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: A scheduler with observable order](lesson-1/lesson.html)
- [Lesson 2: Interrupts and driver boundaries](lesson-2/lesson.html)
- [Lesson 3: From host prototype toward a bootable system](lesson-3/lesson.html)
+9
View File
@@ -0,0 +1,9 @@
<!doctype html><html lang="en"><meta charset="utf-8"><title>A scheduler with observable order</title><h1>A scheduler with observable order</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 scheduler chooses which runnable task receives a turn. Model round-robin with a queue. Each task consumes one unit before returning to the queue if work remains. This deterministic model omits interrupts, context switching, and true parallel execution.</p><p><strong>Practice and evidence:</strong> Trace A=2 and B=1, then add an empty task and document whether it should enter the runnable queue. Test fairness by checking the execution order.</p><pre><code class="language-python">from collections import deque
ready=deque([(&quot;A&quot;,2),(&quot;B&quot;,1)])
order=[]
while ready:
name,left=ready.popleft()
order.append(name)
if left&gt;1: ready.append((name,left-1))
print(&quot; &quot;.join(order))
</code></pre><p><strong>Expected result:</strong> <code>A B A</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>
+8
View File
@@ -0,0 +1,8 @@
from collections import deque
ready=deque([("A",2),("B",1)])
order=[]
while ready:
name,left=ready.popleft()
order.append(name)
if left>1: ready.append((name,left-1))
print(" ".join(order))
+1
View File
@@ -0,0 +1 @@
<!doctype html><html lang="en"><meta charset="utf-8"><title>Interrupts and driver boundaries</title><h1>Interrupts and driver boundaries</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 hardware interrupt transfers control through architecture-specific entry code. A host callback is not a hardware interrupt. A driver validates device state, manages buffers, and observes ordering rules. Begin with a fake device so you can test invalid lengths and timeouts without writing to arbitrary hardware addresses.</p><p><strong>Practice and evidence:</strong> Design a read(buffer,length) contract with success, invalid argument, and timeout outcomes. Write one test per outcome before choosing an emulator and documented device.</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>From host prototype toward a bootable system</title><h1>From host prototype toward a bootable system</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 bootable kernel needs a chosen target, boot protocol, linker layout, freestanding runtime, exception entry, memory management, and drivers. The current repository does not supply all of these. Choose one small contribution: replace a stub with a tested host model, add a boundary test, or document an interface. Later milestones must boot in an emulator and prove each subsystem through observations.</p><p><strong>Practice and evidence:</strong> Create a Forge branch, commit the change and test evidence, and open a pull request. Your report must distinguish a host test from a boot test. A track certificate records these lesson checks; it is not a claim that a production OS is complete.</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>