72 lines
3.0 KiB
Markdown
72 lines
3.0 KiB
Markdown
# Bash · Console Tools — plan kart
|
||
|
||
Status: L01–L08 gotowe; seria zakończona i odbierana w profilu
|
||
`native-amd64` przez `stemctl`.
|
||
|
||
Seria przygotowuje warsztat przed FPGA, assemblerem i C. Nazwa obejmuje pracę
|
||
w powłoce i terminalu; BusyBox może udostępniać `ash`, więc nie utożsamiamy
|
||
każdego appletu BusyBox z implementacją Bash.
|
||
|
||
```text
|
||
Bash · Console Tools
|
||
├── L01 · BusyBox — the Swiss Army Knife
|
||
├── L02 · Tmux — sessions, windows and panes
|
||
├── L03 · Neovim — navigation and editing
|
||
├── L04 · Git Basics I — status, add and commit
|
||
├── L05 · Git Basics II — log, diff and restore
|
||
├── L06 · Git Branching I — branch, switch and merge
|
||
├── L07 · Git Branching II — rebase and conflicts
|
||
└── L08 · Docker Fundamentals
|
||
```
|
||
|
||
Każda karta zawiera trzy wykonywalne taski. Repozytorium karty dostarcza
|
||
kontrakt `stem-card.yaml`, testy stanu, wygenerowany widok React, dwustronicowy
|
||
PDF A4 oraz akcje `build`, `test`, `run` i `debug`. Debug zapisuje
|
||
`trace.log` w katalogu artefaktów tasku.
|
||
|
||
## Stan odbioru serii — 2026-07-21
|
||
|
||
| Karta | Dowód końcowy |
|
||
| --- | --- |
|
||
| L01 BusyBox | dispatch multicall, operacje plikowe, proces i host |
|
||
| L02 Tmux | sesja, okna i panele, zachowanie stanu po detach/attach |
|
||
| L03 Neovim | nawigacja, search/edit/save, undo/redo |
|
||
| L04 Git Basics I | init, status/add, pierwszy commit i clean |
|
||
| L05 Git Basics II | log, diff staged/worktree, bezpieczne restore |
|
||
| L06 Git Branching I | branch/switch, rozbieżność, merge commit |
|
||
| L07 Git Branching II | rebase, rzeczywisty konflikt UU, liniowa historia |
|
||
| L08 Docker | specyfikacja image, lifecycle, volume i bind mount |
|
||
|
||
Wszystkie 24 taski przechodzą w kontenerze `native-amd64`. Każdy task pracuje
|
||
w izolowanym katalogu tymczasowym i raportuje mierzalny komunikat `PASS`.
|
||
|
||
### Granice środowiska
|
||
|
||
Obraz `native-amd64` nie zawiera BusyBox. L01 używa więc audytowalnego
|
||
fixture C implementującego wyłącznie ćwiczony mechanizm multicall, wykrywa
|
||
prawdziwy BusyBox, gdy jest dostępny, i zawsze raportuje użyty backend. Fixture
|
||
nie jest przedstawiany jako binarka BusyBox.
|
||
|
||
Profil ucznia nie otrzymuje socketu Docker/Podman. L08 używa jawnego modelu
|
||
stanów offline do sprawdzenia semantyki image/container/storage. Jego `PASS`
|
||
nie oznacza uruchomienia prawdziwego silnika. Powtórzenie ćwiczenia z realnym
|
||
CLI należy wykonać na kontrolowanej maszynie operatorskiej, najlepiej z
|
||
rootless Podmanem albo Dockerem, bez montowania socketu do kontenera ucznia.
|
||
|
||
### Sposób uruchamiania
|
||
|
||
```bash
|
||
stemctl series show console-bash
|
||
stemctl list-cards console-bash
|
||
stemctl card use console-bash L01
|
||
stemctl test native-amd64 console-bash L01 1
|
||
stemctl debug native-amd64 console-bash L01 3
|
||
```
|
||
|
||
Numer karty i tasku można podmienić na dowolne L01–L08 i 1–3. Identyfikatory,
|
||
repozytoria i kolejność kart są zapisane w `series/console-bash.json`, a stan
|
||
realizacji w `catalog/console-bash.json`.
|
||
|
||
Pierwotne ustalenia znajdują się również w
|
||
`series/inf/lab-rv32i-c-pointers-arrays/guidelines/console-series.md`.
|