diff options
Diffstat (limited to '')
| -rw-r--r-- | CONTEXT.md | 14 |
1 files changed, 11 insertions, 3 deletions
| @@ -113,9 +113,16 @@ The action that destroys a window and ends its app. | |||
| 113 | 113 | ||
| 114 | A task that owns exactly one window and receives input events through its | 114 | A task that owns exactly one window and receives input events through its |
| 115 | message queue. A GUI program is an app; there is no separate "process" | 115 | message queue. A GUI program is an app; there is no separate "process" |
| 116 | concept — the app is its task plus its window. The console is app 0 | 116 | concept — the app is its task plus its window. The home terminal is app 0 |
| 117 | (window 0). | 117 | (window 0). |
| 118 | 118 | ||
| 119 | ## Terminal | ||
| 120 | |||
| 121 | A program that presents a command line in a window: a text terminal | ||
| 122 | emulator plus a shell command loop, rendered into the window's pixel | ||
| 123 | buffer. The home terminal is the persistent full-screen chrome-less | ||
| 124 | desktop; additional terminals are ordinary windows (F1). | ||
| 125 | |||
| 119 | ## Focus | 126 | ## Focus |
| 120 | 127 | ||
| 121 | The single window (if any) that receives keyboard and mouse input. Focus | 128 | The single window (if any) that receives keyboard and mouse input. Focus |
| @@ -142,8 +149,9 @@ address-space separation — all tasks share the one identity-mapped | |||
| 142 | space and the kernel's facilities (TempleOS-style, not a process). | 149 | space and the kernel's facilities (TempleOS-style, not a process). |
| 143 | Tasks are preemptively round-robin-scheduled on the 100 Hz PIT tick; | 150 | Tasks are preemptively round-robin-scheduled on the 100 Hz PIT tick; |
| 144 | the shell is task 0 and an idle `hlt` task is the always-ready | 151 | the shell is task 0 and an idle `hlt` task is the always-ready |
| 145 | fallback. A task may sleep, yield, and log to serial/klog; only the | 152 | fallback. A task may sleep, yield, and log to serial/klog; disk access |
| 146 | shell touches the disk, filesystem, and terminal. A panicking or | 153 | is serialized by a shared disk controller (a re-entrant lock), and each |
| 154 | terminal is its own program instance. A panicking or | ||
| 147 | stack-overflowing task dies gracefully (logged, marked done, slot | 155 | stack-overflowing task dies gracefully (logged, marked done, slot |
| 148 | reaped) without taking the kernel down. | 156 | reaped) without taking the kernel down. |
| 149 | 157 | ||
