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.
iSCSI4NAS / ARCHITEKTUR
Ein einzigartiges Architekturkonzept.
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.
DEXT und Core transportieren die Daten. Die GUI zeigt den Zustand und nimmt deine Befehle entgegen.
DEXT / CORE / GUI
Der Treiber stellt das Laufwerk bereit. Der Core hält die Verbindung. Die GUI gibt dir die Kontrolle. Jeder Baustein hat seine eigene Verantwortung.
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.
Der native Core verwaltet iSCSI-Sitzungen, Anmeldung, Zielprofile und Wiederverbindung. Er besitzt die Verbindung zum NAS und tauscht Blockdaten mit dem DEXT aus.
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.
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
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.
COMMAND + Q / COMMAND + OPTION + Q
Die Trennung der Architektur hat einen ganz praktischen Vorteil. Zwei Tastenkürzel geben dir zwei klar unterschiedliche Möglichkeiten.
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.
Command + Option + Q beendet alle Verbindungen geordnet und schließt iSCSI4NAS vollständig.
UNABHÄNGIG AKTUALISIEREN
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
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.
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.
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.
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.
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.
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 PicosegmentierungENTWICKLUNG / QUALITÄT
Von den ersten Versuchen bis zur eigenen Architektur. Die Zahlen umfassen die heutige Basis und die darüber hinaus geleistete Entwicklungsarbeit.
Grundlagen, Design und Architektur
Testdefinitionen für Produkt und Vorentwicklung
Eigene Codezeilen insgesamt
Produktiver Code und Entwicklungscode
Produktiver Code. Die heutige Basis umfasst DEXT, Core und GUI.
Bereits vorentwickelte Bausteine und zusätzliche Implementierungen aus den Entwicklungszweigen, einschließlich eigener Entwicklungsumgebung.
Aufschlüsselung der aktuellen Basis
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.
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.
Login und CHAP, Prüfsummen, fragmentierte Datenpakete und Wiederanlauf nach Übertragungsfehlern werden automatisiert geprüft.
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.
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
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.
Verwalte deine Verbindungen, wenn du es brauchst. Lass iSCSI4NAS weiterarbeiten, wenn du die Oberfläche nicht brauchst.