Zum Inhalt
iSCSI4NAS

iSCSI4NAS / ARCHITEKTUR

Ein einzigartiges Architekturkonzept.

Die Oberfläche geht.Die Verbindung bleibt.

Picosegmentierung ermöglicht eine völlig neue Anwendungsarchitektur.

iSCSI4NAS trennt DEXT, Core und GUI (Grafische Oberfläche) durch klare Zuständigkeiten und kontrollierte Übergänge. Deine Verbindungen laufen weiter, während du die Oberfläche beendest, aktualisierst oder neu startest.

Was passiert, wenn die Oberfläche geht?

Interaktive Architekturdarstellung
Die GUI steuert den Core. Der Datenpfad verbindet macOS, DEXT, Core und NAS.XPC: Steuerung / StatusBlock-I/OShared RingiSCSI / TCPmacOSSpeicherzugriffDEXTmacOS-TreiberCOREiSCSI-VerbindungNASBlockspeicherGUIBedienung und StatusOberfläche beendetOberfläche aktualisierenDatenpfad aktivDie GUI steuert den Core. Der Datenpfad verbindet macOS, DEXT, Core und NAS.XPCBlock-I/OShared RingiSCSI / TCPmacOSSpeicherzugriffDEXTmacOS-TreiberCOREiSCSI-VerbindungNASBlockspeicherGUIBedienungBeendetAktualisierungDatenpfad aktiv
Alles verbunden.

DEXT und Core transportieren die Daten. Die GUI zeigt den Zustand und nimmt deine Befehle entgegen.

DEXT / CORE / GUI

Drei Bausteine. Klare Aufgaben.

Der Treiber stellt das Laufwerk bereit. Der Core hält die Verbindung. Die GUI gibt dir die Kontrolle. Jeder Baustein hat seine eigene Verantwortung.

DEXT

Der Weg zu macOS

Der DEXT ist eine DriverKit-Systemerweiterung im User Space. Er nimmt SCSI-Aufträge von macOS entgegen und stellt die LUNs deines NAS als Geräte bereit.

CORE

Die laufende Verbindung

Der native Core verwaltet iSCSI-Sitzungen, Anmeldung, Zielprofile und Wiederverbindung. Er besitzt die Verbindung zum NAS und tauscht Blockdaten mit dem DEXT aus.

GUI

Deine Bedienoberfläche

Die GUI zeigt Targets, Laufwerke und Status. Sie sendet Befehle an den Core und erhält seinen aktuellen Zustand. Die Blockdaten deiner Laufwerke laufen nicht durch die GUI.

Architektur mit getrennten Bausteinen DEXT, Core und GUI. Die GUI ist nur mit dem Core verbunden.
DEXT, Core und GUI haben getrennte Aufgaben. Die GUI greift über den Core auf Steuerung und Status zu.

GUI abgestürzt? iSCSI läuft weiter.

Die GUI läuft als eigener Prozess. Stürzt sie durch einen Fehler ab, arbeiten Core und DEXT weiter. Deine bestehenden iSCSI-Verbindungen bleiben erhalten. Nach dem erneuten Öffnen verbindet sich die Oberfläche mit dem laufenden Core und zeigt den aktuellen Zustand.

DER DATENPFAD

Deine Daten nehmen den direkten Weg.

macOS, DEXT, Core und NAS bilden den Datenpfad. DEXT und Core tauschen Aufträge und Daten über einen Shared Ring aus. Die GUI ist über XPC für Steuerung und Status angebunden. Ein geschlossenes Fenster liegt damit nicht zwischen deinem Mac und deinen Daten.

Blockdaten fließen zwischen macOS, DriverKit-DEXT, Shared Ring, Core und NAS. Die GUI nutzt einen getrennten XPC-Pfad.
Der Datenpfad bleibt unabhängig von der Oberfläche. Blockdaten fließen zwischen macOS, DEXT, Core und NAS.

COMMAND + Q / COMMAND + OPTION + Q

Du entscheidest, was beendet wird.

Die Trennung der Architektur hat einen ganz praktischen Vorteil. Zwei Tastenkürzel geben dir zwei klar unterschiedliche Möglichkeiten.

⌘Q

Oberfläche beenden

Command + Q beendet die GUI. Deine bestehenden iSCSI-Verbindungen laufen weiter. Wenn du iSCSI4NAS wieder öffnest, verbindet sich die Oberfläche mit dem laufenden Core und zeigt den aktuellen Zustand.

⌥⌘Q

Alle Verbindungen beenden

Command + Option + Q beendet alle Verbindungen geordnet und schließt iSCSI4NAS vollständig.

Vier Zustände: Normalbetrieb, Oberfläche beendet, Oberfläche aktualisiert und alle Verbindungen geordnet beendet.
Oberfläche schließen, Oberfläche aktualisieren und alle Verbindungen beenden sind unterschiedliche Vorgänge.

UNABHÄNGIG AKTUALISIEREN

Neue Oberfläche. Laufende Verbindung.

Du kannst die GUI austauschen und aktualisieren, während Core und DEXT weiterarbeiten. Die neue Oberfläche verbindet sich wieder mit dem bestehenden Core. Deine laufenden iSCSI-Sitzungen bleiben dort erhalten.

Ein unveränderter DEXT bleibt installiert. Eine erforderliche Treiberinstallation wird von der App als eigener Vorgang behandelt. So führt eine Änderung an der Oberfläche nicht automatisch zu einem Treiberwechsel.

PICOSEGMENTATION

Klare Codezonen. Kryptografisch abgesicherte Gates.

Picosegmentierung verbindet klar abgegrenzte Codezonen mit kryptografisch abgesicherten Gates. Jede Zone hat eine feste Aufgabe. Die kontrollierten Übergänge legen fest, welche Aktionen unter welchen Bedingungen ausgeführt werden dürfen.

01 / PRÜFEN

Ein Gate prüft den Auftrag.

Ein Gate ist eine Prüfstelle im Code. Es prüft die konkrete Aktion, ihr Ziel und den aktuellen Zustand. Eine Anfrage allein ist noch keine Berechtigung.

02 / SIGNIEREN

Die Freigabe trägt eine Signatur.

Nach erfolgreicher Prüfung erhält der geschützte Vorgang eine kryptografisch signierte Freigabe. Vor der Ausführung wird geprüft, ob sie gültig ist und zum Auftrag passt. Eine Freigabe für ein Ziel lässt sich so nicht einfach für ein anderes verwenden.

03 / ERNEUERN

Jeder Start erneuert die Absicherung.

Die signierten Freigaben sind an den jeweiligen Programmlauf gebunden. Beim Start entsteht neues Schlüsselmaterial. Freigaben aus einem früheren Lauf gelten damit nicht weiter.

Entscheidend ist der geprüfte Codezustand.

Die kryptografische Absicherung bezieht einen Fingerabdruck des ausführbaren Gate-Codes ein. Sie bindet Freigaben an den erwarteten Code und den aktuellen Programmlauf. Abweichungen werden beim Start sowie an den Prüfstellen vor geschützten Aktionen erkannt. Eine unpassende Freigabe wird abgewiesen.

Codezonen mit Gates für Prüfung, gebundene Berechtigung und Ausführung einer konkreten Wirkung.
Klare Zuständigkeiten und kontrollierte Übergänge verbinden Sicherheit mit neuen Gestaltungsmöglichkeiten.

Diese klaren Zuständigkeiten schaffen zugleich neue Gestaltungsfreiheit. Bei iSCSI4NAS dient die GUI der Bedienung und zeigt den Zustand an. Core und DEXT tragen den laufenden Betrieb. Gemeinsam mit den getrennten Prozessen ermöglicht diese Struktur, die Oberfläche zu schließen, zu aktualisieren oder nach einem Absturz neu zu starten, während die iSCSI-Verbindungen bestehen bleiben.

Mehr über Picosegmentierung

ENTWICKLUNG / QUALITÄT

Knapp drei Jahre Entwicklung.

Von den ersten Versuchen bis zur eigenen Architektur. Die Zahlen umfassen die heutige Basis und die darüber hinaus geleistete Entwicklungsarbeit.

ca.3

Jahre Entwicklung

Grundlagen, Design und Architektur

ca.3.700

Testfälle

Testdefinitionen für Produkt und Vorentwicklung

Entwicklungsumfang im Detail
GESAMT

ca. 316.500

Eigene Codezeilen insgesamt
Produktiver Code und Entwicklungscode

AKTUELLE BASIS

ca. 107.500

Produktiver Code. Die heutige Basis umfasst DEXT, Core und GUI.

WEITERE ENTWICKLUNGSARBEIT

ca. 209.000

Bereits vorentwickelte Bausteine und zusätzliche Implementierungen aus den Entwicklungszweigen, einschließlich eigener Entwicklungsumgebung.

Aufschlüsselung der aktuellen Basis

DEXT ca. 13.000Core und native App ca. 72.000Flutter-GUI ca. 22.500

Gerundete Angaben. Gezählt sind die aktuelle Basis und zusätzliche Implementierungen aus der Entwicklungsarbeit. Identische Dateien und mehrfach abgelegte Stände werden zusammengeführt. Dokumentation, separate Testverzeichnisse, Leerzeilen, Kommentare, Fremdbibliotheken und generierte Dateien zählen nicht zum Codeumfang.

Die Arbeit beginnt vor der ersten fertigen Funktion.

Am Anfang standen Grundlagen und Versuche: Compiler und Swift kennenlernen, GUI-Prototypen bauen und das Verhalten der Oberfläche erproben. Dazu kamen Kernel-Debugging und Disassemblierung, um die Abläufe von macOS nachzuvollziehen. Aus dieser Arbeit entwickelten sich Design, Architektur und die klare Trennung von DEXT, Core und GUI.

Die knapp drei Jahre umfassen Lernen, Experimentieren, Verwerfen und gezieltes Weiterentwickeln. Dazu kommen die Vorentwicklung für die nächsten Ausbaustufen und umfangreiche Architektur- und Quellcodedokumentation.

Wie tief wird geprüft?

01 / PROTOKOLL

Bis aufs Byte

Login und CHAP, Prüfsummen, fragmentierte Datenpakete und Wiederanlauf nach Übertragungsfehlern werden automatisiert geprüft.

02 / FEHLERFÄLLE

Unter kontrollierten Bedingungen

Simulierte Abstürze, verspätete Antworten und parallele Kopiervorgänge prüfen die Behandlung laufender Schreibzugriffe. Eigene Host-Prüfprogramme untersuchen zusätzlich die DEXT-Logik.

03 / OBERFLÄCHE

Bis zur sichtbaren Reaktion

Tests prüfen LUN-Auswahl, Gerätestatus und Einstellungen. Ein Beispiel: Eine fehlgeschlagene Anmeldung bei einer separaten Abfrage darf den Status einer bestehenden Verbindung nicht überschreiben.

Die praktische Entwicklung am Mac ergänzt diese Prüfungen. Dazu gehört etwa der Austausch der GUI, während Core und DEXT mit den bestehenden iSCSI-Verbindungen weiterarbeiten.

UNSER PRODUKT

Warum ist iSCSI4NAS nicht Open Source?

iSCSI4NAS ist kommerzielle Software. Der Quellcode ist nicht öffentlich.

In dem Produkt stecken knapp drei Jahre Grundlagenarbeit, Design, Architektur und Entwicklung. Diese Arbeit führen wir als eigenständiges kommerzielles Produkt weiter. Die wirtschaftliche Nutzung unserer Implementierung bleibt dabei in unserer Hand.

Ein zuverlässiger iSCSI-Initiator braucht dauerhafte Pflege, umfangreiche Tests und Anpassungen an neue macOS-Versionen. Das kommerzielle Modell ist die Grundlage für diese Arbeit und den Support. Zuverlässigkeit und Datenintegrität stehen dabei im Mittelpunkt.

Wie iSCSI4NAS aufgebaut ist und wie wir seine Qualität prüfen, machen wir nachvollziehbar.

Deine Laufwerke brauchen kein offenes Fenster.

Verwalte deine Verbindungen, wenn du es brauchst. Lass iSCSI4NAS weiterarbeiten, wenn du die Oberfläche nicht brauchst.