An apparatus for and method of providing user exits, including dynamic
installation of associated software, within the kernel portion of an
operating system. An initializer replaces existing system call pointers,
in the system services table located in the kernel portion of an operating
system, with new pointers to user supplied code. System calls that are
hooked, when issued by a user application, are intercepted by a kernel
level intercepter which generates a query to a database interface. The
database interface sends database requests based on the received query to
a database engine. A database manager allows a user to add, delete, edit,
etc. records in a database included in the database engine. A method of
dynamically inserting user supplied code into the kernel space of an
operating system is also disclosed. A communications channel is opened and
its associated buffer location is found. A bootstrap loader module is then
written into the communications channel buffer. The installed bootstrap
loader code calls a kernel level memory allocation system call which
allocates a memory buffer in kernel memory. User supplied code, for
establishing user exits, is written into the kernel memory buffer.
Pointers in the system services table are modified to point to the newly
allocated kernel memory buffer.
Ein Apparat für und eine Methode des Zur Verfügung stellens der Benutzerausgänge, einschließlich dynamische Installation der verbundenen Software, innerhalb des Kernteils eines Betriebssystems. Ein Einleitungsprogramm ersetzt vorhandene System Anrufzeiger, in der Systemdiensttabelle, die im Kernteil eines Betriebssystems, mit neuen Zeigern auf Benutzer gelieferten Code gelegen ist. System Anrufe, die angespannt werden, wenn sie durch eine Benutzeranwendung herausgegeben werden, werden durch ein Kernniveau intercepter abgefangen, das eine Frage zu einer Datenbankschnittstelle erzeugt. Die Datenbankschnittstelle schickt die Datenbankanträge, die auf der empfangenen Frage zu einer Datenbankmaschine basieren. Ein Datenbankverwalter erlaubt einem Benutzer hinzuzufügen, zu löschen, redigieren, etc. Aufzeichnungen in einer Datenbank, die in der Datenbankmaschine eingeschlossen ist. Eine Methode von Benutzer gelieferten Code in den Kernraum eines Betriebssystems dynamisch einsetzen wird auch freigegeben. Ein Kommunikationskanal ist geöffnet und seine verbundene Pufferposition wird gefunden. Ein Urleseprogrammmodul wird dann in den Kommunikationskanalpuffer geschrieben. Der angebrachte Urleseprogrammcode benennt einen Kernniveau-Speicherallozierung-System Anruf, der einen Gedächtnispuffer im Kerngedächtnis zuteilt. Benutzer gelieferter Code, für das Herstellen der Benutzerausgänge, wird in den Kerngedächtnispuffer geschrieben. Zeiger in der Systemdiensttabelle werden geändert, um auf den eben zugeteilten Kerngedächtnispuffer zu zeigen.