Wie schon erwähnt, gibt es im BS2000 keine exakte Entsprechung für die aus Unix-Systemen bekannten Shared Objects. Die für Java wesentlichen Eigenschaften des dynamischen Nachladens, des Abschottens von Namensräumen und des dynamischen Ermittelns von Funktionsadressen werden im Rahmen der Java-Portierung nachgebildet. Nicht nachgebildet werden können dagegen die namensgebende Eigenschaft der mehrfachen Verwendung, das implizite Laden von Shared Objects beim Programmstart sowie Feinheiten des Resolvings. Dies wäre nur mit entsprechenden Erweiterungen des Binde-Lade-Systems möglich.
Da das Binde-Lade-System (BLS) des BS2000 keine Module aus dem POSIX-Dateisystem nachladen kann, müssen native Methoden als LLMs erzeugt und in PLAM-Bibliotheken abgelegt werden.
Da es im LLM keine Möglichkeit gibt, eine „Liste notwendiger Objekte“ anzugeben, diese Funktionalität für Java aber notwendig ist und eine Suchmethodik analog der Unix-Systeme im POSIX-Dateisystem sinnvoll erscheint, wird zusätzlich eine Beschreibungsdatei eingeführt. In dieser Datei ist sozusagen ein Shared Object beschrieben. Sie wird im POSIX-Dateisystem abgelegt, genügt den gleichen Namenskonventionen wie Shared Libraries in Unix-Systemen und enthält alle von Java benötigten Informationen, um die native Methoden nachzuladen und aufzurufen.
Diese Informationen sind vor allem die PLAM-Bibliothek, in der der LLM abgelegt ist, der Namen des Moduls (bzw. der Module) und ggf. die Liste der notwendigen Objekte.
Liste notwendiger Objekte
In der Beschreibungsdatei kann eine Liste notwendiger Objekte eingetragen sein. Diese Objekte werden vor dem aktuellen Objekt nachgeladen. Objekte, die bereits vorhanden sind, werden nicht noch einmal nachgeladen. Objekte werden über ihren POSIX-Dateinamen identifiziert.
Diese Objekte werden beim Laden des aktuellen Objekts mit zur Auflösung von Externverweisen herangezogen.
Unterschiedliche Shared Objects können durchaus gleiche Objekte in ihrer Liste notwendiger Objekte enthalten. Der erste Verweis auf ein solches Objekt führt dann zum Nachladen.
Namensräume (Link-Kontexte)
Jedes Objekt wird in einen eigenen Link-Kontext geladen. Objekte sind daher in ihrem Namensraum abgeschottet.
Das BLS des BS2000 gestattet 200 Link-Kontexte. Werden mehr Objekte nachgeladen, wird die Anwendung abgebrochen.
Suchreihenfolge
Die Suche nach Shared Objects (genauer gesagt nach den Beschreibungsdateien) erfolgt, genau wie in Unix-Systemen, gesteuert durch die Umgebungsvariable LD_LIBRARY_PATH.
Auflösung von Extern-Referenzen
Die Kontexte, in die die notwendigen Objekte geladen wurden, werden als Referenz-Kontexte angegeben. Als Referenz-Kontext mit höchster Priorität wird der Default-Kontext verwendet.
Das Durchsuchen des Share-Scopes wird explizit verhindert, weil es derzeit nicht möglich ist, dafür zu sorgen, dass dies erst nach den Referenz-Kontexten geschieht.
Zum Auflösen unbefriedigter Externverweise wird daher zunächst der Default-Kontext durchsucht, anschließend werden die notwendigen Objekte durchsucht. Andere Objekte werden nicht berücksichtigt.
Das Verfahren ist anders als in Unix-Systemen. Insbesondere sind in einem LLM alle inneren Externverweise kurzgeschlossen, so dass keine Funktion in einem LLM überladen werden kann.