### Teilaufgabe 1: DATEIMANAGER-FUNKTIONSAUDIT (nur lesen). Repo /root/osum-merge9 (Betriebssystem Osum/OrientOS, Sprache Firn, Dateien *.fi). Lies VOLLSTÄNDIG kernel/user/explorer.fi (1920 Zeilen), kernel/user/korb.fi, kernel/user/zip.fi, kernel/user/cp.fi, kernel/user/mv.fi, die Drag/Clipboard-Teile von kernel/user/wlib.fi (suche drag_put, drag_take, clip, CT_PATH) und die Syscall-Liste in kernel/sys.fi (suche SYS_RENAME, SYS_LINK, rename, utime, stat, chmod). Erstelle eine Tabelle: Funktion | vorhanden? (ja/teilweise/nein) | Beleg (Datei:Zeile) | Einschränkung. Funktionen prüfen: Kopieren (Strg+C/V, Datei UND Ordner rekursiv), Ausschneiden/Verschieben, Umbenennen (F2? echtes rename oder kopieren+löschen?), Löschen in Papierkorb + endgültig, Wiederherstellen aus Papierkorb, Neuer Ordner, Neue Datei, Eigenschaften-Dialog (Größe, Typ, Datum, Rechte), Mehrfachauswahl (Strg/Shift-Klick, Rahmenauswahl), Alles auswählen, Drag-and-Drop innerhalb/zwischen Fenstern, Zippen/Entpacken (welche Formate), Öffnen mit Programm/Standardprogramm nach Endung, Miniaturansichten/Symbolansicht vs Liste, Sortieren, Suche/Filter im Ordner, Lesezeichen/Seitenleiste (Zuhause, Datenträger, USB-Stick), Pfadleiste/Breadcrumb, Zurück/Vorwärts/Hinauf, Tastaturnavigation, Fortschrittsdialog bei langen Kopien, Konflikt-Dialog (überschreiben/umbenennen), Rückgängig, Zeitstempel (Dateisystem hat keine? prüfe kernel/fs.fi Inode-Layout, OFS v3), Rechte/Eigentümer, versteckte Dateien, Verknüpfungen, Netzlaufwerke, Datenträger einbinden/auswerfen. Am Ende: die 10 größten Lücken nach Nutzerwichtigkeit, je 1 Satz Aufwand (S/M/L) und welche Kernel-Lücke dahintersteckt (z.B. kein rename-Syscall, keine Zeitstempel im Inode).
# DATEIMANAGER-FUNKTIONSAUDIT — Osum/OrientOS, Stand merge9

## ⚠️ Vorab: Beweislage

**Ich konnte die Quelldateien in /root/osum-merge9 NICHT lesen.** Alle Lesewerkzeuge, die ich habe (`remote_read`, `remote_shell`, `ssh`), scheiterten: „Kein Gerät verbunden“ bzw. „Sub-Agent: keine verändernden Aktionen“. Ein lokales Read/Grep-Werkzeug ist in dieser Sitzung nicht freigeschaltet.

Was ich stattdessen getan habe: das JARVIS-Gedächtnis systematisch nach allen Befunden zu explorer.fi, korb.fi, zip.fi, wlib-Zwischenablage/DnD, SYS_RENAME, OFS v3 durchsucht (≈25 Einträge, 26.08.–09.09.2026). Das ergibt ein belastbares Bild, aber **„Beleg“ ist unten ein Gedächtniseintrag mit Datum, keine Datei:Zeile** — außer wo Zeilennummern in den Einträgen genannt sind. JARVIS muss die Tabelle mit `grep` gegen merge9 bestätigen; die Kandidaten-Suchbegriffe stehen in Spalte „Beleg“.

**Wichtigste Vorsicht:** Der detaillierte Explorer-Befund stammt vom 29.08. (mergeline 656fc98). Seither kamen ALLTAG (Papierkorb korb.fi, zip.fi), SYSTEMBUS (Zwischenablage) und TÜRSCHLOSS (Explorer-Startfixes) dazu — was davon in explorer.fi *verdrahtet* ist, ist im Gedächtnis nicht dokumentiert. Dass die Aufgabe `drag_put/drag_take/CT_PATH` in wlib.fi und cp.fi/mv.fi nennt, deutet darauf hin, dass **seit dem 29.08. Kopieren/DnD nachgebaut wurde** — dazu habe ich keinen Eintrag.

## Kernel-Fundament (aus OFS3/FSROBUST/MULTIUSER/SCHLEUSE-2-Einträgen, sicher)

| Kernel-Fähigkeit | Stand | Quelle |
|---|---|---|
| **rename-Syscall** | **JA**, SYS_RENAME=82, „echte Verrichtung“ seit OFS3 (Inodenummer bleibt); Rechteprüfung seit MULTIUSER; **überschreibt NICHT** (-EEXIST bei Ziel vorhanden, K14-Entscheidung); braucht VFS (`vfs.ready`, sonst -ENOSYS) | OFS3 27.08., MULTIUSER 28.08., FEEDBACK 29.08., SCHLEUSE-2 08.09. |
| **link / symlink / readlink** | JA: SYS_LINK=86, SYS_SYMLINK=88, SYS_READLINK=89; T_LINK im OFS v3; harte Verweise „ungeprüft“ (SPEICHER-Runde) | SCHLEUSE-2, OFS3 |
| **Zeitstempel** | **JA seit OFS v3**: Inode 128→256 Oktett mit **drei Zeitstempeln**, überleben Neustart; `noatime`-Kernwort; SYS_UTIMENSAT=280. ABER: `fs.format` baut per Vorgabe weiter Fassung 2 (ohne Zeit); das USB-Abbild ist OFS v3 („Wurzel 20 MiB OFS v3“) | OFS3, MERGE-3, SCHLEUSE-2 |
| **stat** | JA (Inodenummer = Blockadresse, OFS4 hat stat bewusst unangetastet gelassen) | OFS4 |
| **mode/uid/gid, chmod/chown** | JA seit K13/MULTIUSER (perm.fi, /etc/passwd, /etc/group, perm.walk auf jedem Pfadglied) | MULTIUSER |
| **Namenlänge** | OFS v3 Dirent 264 Oktett, Name **255** (OFS2: 23); Explorer-Puffer war am 29.08. **31 Oktett** | OFS3, Explorer-Befund |
| **Datei-Größe/Platte** | max. Datei 136 MB, Platte bis 128 GiB (LBA28-Grenze), Journal (ofsj.fi), fsck | FSROBUST |
| **Kein pread/pwrite, kein ftruncate** | Fehlt | SCHLEUSE-2 |
| **max. write 4096** (sys.fi MAX_IO) | Kopieren großer Dateien muss blockweise laufen | FSROBUST |
| **Verzeichnis-Durchlauf** | dir_find/inode_alloc **linear** → quadratisch bei vielen Dateien (500 Dateien = 341 s anlegen) | FSROBUST |
| **Zwischenablage/DnD im Kern** | SYSTEMBUS: SYS_OSUM_BUS=1960, 22 Ops, Verlauf 20, Segmente (geteilter Speicher, 1 MB in 2,7 ms), Typmodell „Zwischenablage+DnD+shared memory“; wlibc.clip_put_typ/clip_hist_take über Bus mit Fallback wig.clip_set/clip_get. OFFER/FILL „gebaut, unbenutzt“; „DnD, explorer“ am 05.09. als OFFEN gelistet | SYSTEMBUS 05.09., MERGE-7 |
| **Dateityp→Programm** | Syscalls 1900-03 FTYPE, `sys.fi ftype.prog_of`; Kern erkennt ELF vs `#!` (K16-Entscheidung) | ALLTAG-Probe-Merge, RENAME-Runde |
| **Papierkorb-Syscalls** | keine; korb.fi ist reine Ring-3-Bibliothek (kein u_start) | ALLTAG-Probe-Merge |

## Funktionstabelle

Kürzel: **[E29]** = Explorer-Befund 29.08. (18 QEMU-Läufe, gemessen); **[?]** = seither möglicherweise geändert, unbedingt gegen merge9 prüfen.

| Funktion | vorhanden? | Beleg | Einschränkung |
|---|---|---|---|
| Kopieren Strg+C/V (Datei) | **nein [E29] → ? heute** | E29: „KANN NICHT: Kopieren … kein Strg+C/V“. Prüfen: `grep -n "CT_PATH\|clip_put\|KEY_.*C" explorer.fi`, cp.fi | Wenn heute vorhanden: Kern hat kein pread/sendfile, Kopie = read/write in 4-KiB-Stücken; Zeitstempel/Rechte müssen explizit mit utimensat/chmod nachgezogen werden |
| Kopieren Ordner rekursiv | **nein [E29] → ?** | cp.fi prüfen auf Rekursion (`opendir`/`getdents64`=217) | MAXENT 96 Einträge/Verzeichnis im Explorer-Puffer; Rekursion braucht Stapel/Heap — Ring-3 ohne malloc (ulib) |
| Ausschneiden/Verschieben | **nein [E29] → ?** | mv.fi prüfen: nutzt es SYS_RENAME 82 (gleicher Datenträger) oder copy+unlink? | rename überschreibt nicht (-EEXIST) → Konfliktfall muss Programm lösen; über Datenträger hinweg (FAT-Stick) zwingend copy+unlink |
| Umbenennen | **teilweise** | E29: Kontextmenü „Umbenennen“, Dialog 340×108. **FEHLER:** `umbenennen()` = open+read+create+unlink → bei Ordner E_ISDIR, Ordner bleibt, leere Mülldatei entsteht, keine Meldung. Kein F2. | **Kern-Lücke ist KEINE** — SYS_RENAME 82 existiert seit OFS3; Explorer nutzt ihn (Stand 29.08.) nicht. Prüfen: `grep -n rename explorer.fi` |
| Löschen → Papierkorb | **teilweise/?** | E29: nur Rückfrage 340×84 + unlink, kein Entf. ALLTAG (05.–08.09.) baute korb.fi + /bin/papierkorb; ALLTAG ist laut MERGE-8-Eintrag in merge8 drin („nach ALLTAG/PRAESENZ-Neuaufteilung“). Ob explorer.fi korb.fi einbindet: `grep -n korb explorer.fi` | korb.fi muss Herkunftspfad ablegen; kein rename-über-Datenträger → Papierkorb auf FAT-Stick = Kopie |
| Endgültig löschen | ja | E29 Kontextmenü Löschen (unlink) | Ordner rekursiv? unklar; stumm bei Fehler |
| Wiederherstellen | **?** | korb.fi/papierkorb lesen | s.o. |
| Neuer Ordner | ja | E29 Kontextmenü „Neuer Ordner“ | Keine Namensabfrage-Details bekannt |
| Neue Datei | **nein [E29]** | Nicht im Kontextmenü genannt | S |
| Eigenschaften-Dialog | **nein [E29]** | „KANN NICHT: Eigenschaften-Dialog“ | Kern liefert alles: stat + 3 Zeitstempel (OFS v3) + mode/uid/gid |
| Mehrfachauswahl (Strg/Shift, Rahmen) | **nein [E29]** | „KANN NICHT: Mehrfachauswahl“ | wlib K_LIST Einfachauswahl; Rahmenauswahl braucht Maus-Drag im Widget |
| Alles auswählen | nein | folgt aus obigem | — |
| Drag-and-Drop innerhalb/zwischen Fenstern | **nein [E29] → ?** | E29 „kein DnD“; SYSTEMBUS 05.09.: „OFFEN: … explorer, Terminal, DnD“. Prüfen `grep -n drag_put\|drag_take wlib.fi explorer.fi` | Bus-Typmodell existiert; Fensterserver-seitiges Drop-Ziel (welches Fenster unter Maus beim Loslassen) muss wm.fi liefern |
| Zippen/Entpacken | **teilweise/?** | ALLTAG lieferte /bin/zip (zip.fi). Format: nicht dokumentiert; Osum hat echtes DEFLATE (FEEDBACK-Runde: PNG 76:1) → ZIP/Deflate wahrscheinlich; kein tar/gz/7z bekannt | Ob Explorer-Kontextmenü zip aufruft: `grep -n zip explorer.fi` |
| Öffnen mit / Standardprogramm nach Endung | **teilweise** | E29: Programme per Doppelklick starten; FTYPE-Syscalls 1900-03; .osp-Bündel mit INFO; TÜRSCHLOSS: explorer.fi:1116 und :1224 auf SYS_EXEC umgestellt (Start ging vorher pid=-22) | Kein „Öffnen mit…“-Auswahldialog bekannt; Zuordnungstabelle Endung→Programm im Kern (ftype.prog_of), nicht nutzer-editierbar |
| Miniatur-/Symbolansicht | **nein [E29]** | „nur Tabelle“, Menü „Ansicht“ existiert | Bildbetrachter (viewer) ist da → Thumbnails technisch möglich, PNG/JPEG-Decoder vorhanden |
| Sortieren | ja | E29: Spaltenklick Name/Größe/Zeit/Rechte, oktettweise | Nicht sprachbewusst (kein Umlaut-Kollation); Zeit-Sortierung war leer weil OFS2 keine Zeit → mit v3 prüfen; „Sortier-Klick“ im werkzeug-Test rot (merge6-Erbe) |
| Suche/Filter im Ordner | **nein [E29]** | „kein Suchfeld“; separate App „Suchen“ (.osp) existiert, K15-Namensindex nidx.fi im Kern (Everything-Ansatz, 4200 Namen) | Index ist da — Filterfeld im Explorer wäre S |
| Lesezeichen/Seitenleiste | **teilweise** | E29: Baum links; Tresor-Runde: 3 Ansichtsmodi (Verzeichnis/Sicherungen/in Sicherung) | Keine Favoriten, keine Datenträgerliste, kein USB-Stick-Eintrag bekannt |
| Pfadleiste/Breadcrumb | teilweise | E29: „Pfadleiste als Textfeld“ | Kein klickbarer Breadcrumb |
| Zurück/Vorwärts/Hinauf | ja | E29 | Historie **8 Schritte**, danach wortlos vergessen |
| Tastaturnavigation | **nein [E29]** | „JEGLICHE Tastenkürzel fehlen“ (kein F2/Entf/Strg+C/V) | KB_LAYOUT wurde erst in TÜRSCHLOSS auf DE gesetzt |
| Fortschrittsdialog | **teilweise** | Tresor: Backup-Dialog mit Dateien/Oktette-Hook (Funktionszeiger aus bstore.fi); **nicht abbrechbar**, Fenster nimmt während des Laufs keine Eingaben an | Für cp fehlt es (falls cp überhaupt da) |
| Konflikt-Dialog (überschreiben/umbenennen) | **nein** | nirgends erwähnt; rename liefert -EEXIST → Programm muss fragen | — |
| Rückgängig | **nein [E29]** | „kein Rückgängig“ | — |
| Zeitstempel (Anzeige) | **teilweise** | E29: Zeit-Spalte leer (OFS2); OFS v3 hat 3 Stempel im 256-Oktett-Inode; Tresor zeigt Snapshot-Datum aus CMOS | Prüfen ob explorer.fi stat-Zeit liest: `grep -n mtime\|I_MTIME\|zeit explorer.fi`; fs.fi:236 laut MERGE-9-Eintrag veralteter Kommentar |
| Rechte/Eigentümer | teilweise | E29: Rechte-Spalte in Tabelle; chmod/chown als CLI (K13) | Kein Ändern in der GUI |
| Versteckte Dateien | **nein [E29]** | „versteckte Dateien ausblenden“ kann er nicht | Konvention (Punkt-Dateien?) nicht festgelegt |
| Verknüpfungen | **nein** (GUI) | Kern: T_LINK, SYS_SYMLINK 88 seit OFS3 | Explorer-Anzeige/Anlegen unbekannt |
| Netzlaufwerke | **teilweise (kaputt)** | E29: Kontextmenü „Netzzugriff“ → **Fehler:** `menue_wahl` hat `if welches == 4` ZWEIMAL (~Z.1483 TRESOR, ~Z.1501 NETVIEW), NETVIEW-Block toter Code; Netzzugriff ruft Tresor auf | Kein SMB/NFS-Client bekannt; VPN (tunnel) und sshd existieren |
| Datenträger einbinden/auswerfen | **nein** (GUI) | FAT32-Stick wird vom Kern beschrieben (kernel/fat.fi); Roadmap „Automount/Hotplug“ Block C offen; Test `stick` 20/22 rot auf allen Zweigen | Kein Auswerfen, kein Hotplug-Ereignis an die Oberfläche |
| Fehlermeldungen | **nein [E29]** | „Fehlschläge komplett stumm — kein Hinweisfenster, keine Statuszeile“ | Querschnittsproblem |
| Verzeichnisgröße | ja (Kern) | SPEICHER-Runde: Größe im nidx-Journal aufsummiert, /bin/speicher | im Explorer nicht angezeigt |

## Die 10 größten Lücken nach Nutzerwichtigkeit

| # | Lücke | Aufwand | Kernel-Lücke dahinter |
|---|---|---|---|
| 1 | **Kopieren/Ausschneiden/Einfügen (Strg+C/X/V), Datei+Ordner rekursiv** — ohne das ist es ein Betrachter, kein Manager (falls cp.fi/mv.fi nicht schon eingebunden) | **L** | Keine echte: rename 82 + read/write reichen. Hindernisse: kein malloc in ulib (feste Puffer für Rekursion), MAX_IO 4096, kein pread/sendfile |
| 2 | **Umbenennen von Ordnern zerstört Daten** (open+read+create+unlink statt rename; leere Mülldatei bleibt) | **S** | Keine — SYS_RENAME 82 existiert; Explorer ruft ihn nur nicht. Einziger Haken: rename verweigert -EEXIST → Konfliktdialog nötig |
| 3 | **Stille Fehler** (kein Hinweisfenster, keine Statuszeile) | **S–M** | Keine; wlib-Dialogwidget existiert (Rückfrage 340×84) |
| 4 | **Tastenkürzel** (F2, Entf, Strg+A/C/V, Backspace=Hinauf, Enter=Öffnen) | **S** | Keine; KB_LAYOUT DE seit TÜRSCHLOSS gesetzt |
| 5 | **Mehrfachauswahl + Alles auswählen** (Strg/Shift-Klick, Rahmen) | **M** | Keine; wlib K_LIST muss Mehrfachauswahl lernen (Justins Regel: ins Framework, nicht daneben malen) |
| 6 | **Papierkorb Ende-zu-Ende** (Entf → korb.fi, Wiederherstellen, Leeren) und Konflikt-Dialog | **M** | rename geht nicht über Datenträgergrenzen → auf FAT-Stick Kopie; -EEXIST bei Namensgleichheit im Korb muss korb.fi lösen |
| 7 | **Zeitstempel-Spalte + Eigenschaften-Dialog** (Größe/Typ/3 Zeiten/Rechte/Eigentümer) | **S** | Keine mehr seit OFS v3 (256-Oktett-Inode mit 3 Stempeln; utimensat 280; stat) — vorher „OFS2 hat keinen Zeitstempel“; fs.format-Vorgabe ist noch v2 → in Tests fehlt Zeit |
| 8 | **Drag-and-Drop** innerhalb/zwischen Fenstern (Verschieben in Baum, auf Stick) | **L** | SYSTEMBUS-Typmodell liegt vor (OFFER/FILL „gebaut, unbenutzt“); fehlt: Fensterserver muss Drop-Ziel unter Maus melden + Cursor-Rückmeldung — ist Roadmap-Punkt „Zwischenablage+DnD ZUSAMMEN“ |
| 9 | **Grenzen ohne Meldung**: 96 Einträge (MAXENT, still abgeschnitten), 31-Oktett-Namen (v3 kann 255), 8 Schritte Historie | **S–M** | Keine im Kern (OFS v3 erlaubt 516.483 Einträge/255 Zeichen); Problem: feste Puffer in Ring 3 ohne Allokator; bei großen Ordnern wird zusätzlich dir_find linear (Kern) spürbar |
| 10 | **Datenträger/USB-Stick in Seitenleiste + Auswerfen + Netzzugriff-Menüpunkt reparieren** (`welches == 4` doppelt) | **S** (Menüfix) / **L** (Automount) | Kein Hotplug-Ereignis vom Kern an die Oberfläche (Roadmap Block C „Automount“ offen); stick-Test 20/22 rot; kein SMB/NFS-Client |

Ergänzend, aber weniger dringend: Symbol-/Miniaturansicht (M, Decoder vorhanden), Suchfeld über nidx-Index (S), versteckte Dateien (S, Konvention fehlt), Rückgängig (M, Journalstruktur nötig), Fortschrittsdialog mit Abbrechen (M — Tresor-Dialog nimmt keine Eingaben während des Laufs).

## Was JARVIS zur Bestätigung greppen sollte (je 1 Befehl)

```
cd /root/osum-merge9
grep -n "SYS_RENAME\|SYS_LINK\|SYS_UTIMENSAT\|do_rename" kernel/sys.fi
grep -n "rename\|SYS_RENAME\|unlink\|create" kernel/user/explorer.fi | head       # Lücke 2
grep -n "welches == 4" kernel/user/explorer.fi                                     # Lücke 10 (Doppelbranch)
grep -n "MAXENT\|\[u8; 32\]\|hist" kernel/user/explorer.fi | head                  # Lücke 9
grep -n "korb\.\|zip\.\|clip_\|drag_\|CT_PATH\|KEY_F2\|KEY_DEL" kernel/user/explorer.fi   # Lücken 1,4,6,8
grep -n "drag_put\|drag_take\|CT_PATH\|clip_put_typ" kernel/user/wlib.fi
grep -n "I_MTIME\|I_CTIME\|I_ATIME\|INODE_SIZE\|256" kernel/fs.fi | head           # Zeitstempel
grep -n "rekurs\|getdents\|opendir" kernel/user/cp.fi kernel/user/mv.fi
```

Zusammenfassung: **Der Kern ist dem Explorer voraus.** rename, link, symlink, 3 Zeitstempel, Rechte, Zwischenablage-Bus und Dateityp-Zuordnung existieren; die dokumentierten Explorer-Lücken (Stand 29.08.) sind fast alle Ring-3-Arbeit ohne Kernel-Blocker. Echte Kernel-Lücken bleiben nur: kein Hotplug/Automount-Ereignis, kein DnD-Drop-Ziel im Fensterserver, kein Heap in ulib (feste Puffer → 96/31-Grenzen), lineare Verzeichnissuche.

---

