DE10047266A1 - Dynamische Mac-Zuweisung und -Konfiguration - Google Patents

Dynamische Mac-Zuweisung und -Konfiguration

Info

Publication number
DE10047266A1
DE10047266A1 DE10047266A DE10047266A DE10047266A1 DE 10047266 A1 DE10047266 A1 DE 10047266A1 DE 10047266 A DE10047266 A DE 10047266A DE 10047266 A DE10047266 A DE 10047266A DE 10047266 A1 DE10047266 A1 DE 10047266A1
Authority
DE
Germany
Prior art keywords
computer
program
server
workstation
response
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE10047266A
Other languages
English (en)
Other versions
DE10047266B4 (de
Inventor
Kenneth Hubacher
Dennis Sposato
Philip C Theiller
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Snap Inc
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE10047266A1 publication Critical patent/DE10047266A1/de
Application granted granted Critical
Publication of DE10047266B4 publication Critical patent/DE10047266B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4416Network booting; Remote initial program loading [RIPL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/325Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the network layer [OSI layer 3], e.g. X.25

Abstract

Eine Methode und Vorrichtung zur dynamischen MAC-Zuweisung und -Konfiguration basiert auf der Fähigkeit, einen Client-Computer von einem Server-Computer extern zu booten und bietet zusätzlich die Fähigkeit, eine Locally Administered Address (LAA) zuzuweisen, welche die Universally Administered Address (UAA) ersetzt. Ein Programmsatz auf der Workstation ermöglicht ein externes Booten und eine Interaktion mit dem Server. Die Client-Maschine entsendet einen DMAC-Discovery Frame. Der Discovery Frame wird von einem DMAC-Programm abgefangen, das auf dem Server installiert ist und das, während es abläuft, auf die Anforderung wartet. Nachdem das DMAC-Programm die Anforderung abgefangen hat, analysiert es diese und führt eine von zwei Aktionen aus. Falls notwendig, führt der Server ein "Initialisierungs"-Skript aus. Für die bereits initialisierten Workstations sendet der Server an die Client-Workstation aus einer Tabelle oder einem Pool eine LAA. Die Client-Workstation fordert dann ein Betriebssystem mit seiner neuen LAA an. Als Boot-Optionen stehen eine Tabelle oder ein Pool zur Verfügung, entsprechend einer LAA oder einem Bereich von LAAs. Um das Ersetzen der UAA zu erreichen, weist die DMAC der Workstation eine LAA zu. Nachdem die LAA zugewiesen ist, wird der Boot-Vorgang, basierend auf dem an diese Adresse gesandten Paket, fortgesetzt.

Description

GEBIET DER ERFINDUNG
Die Erfindung betrifft die Steuerung einer Medium Access Control(MAC)-Adresse eines Client-Computersystems durch ein Server-Computersystem.
STAND DER TECHNIK
Wenn ein Computer oder ein Computersystem eingeschaltet werden, müssen sie durch Laden eines Betriebssystems für den Betrieb vorbereitet werden. Bei einem Einzelcomputersystem reagiert der Computer auf den Boot-Befehl des Users normalerweise damit, dass er die Dateien des Betriebssystems aus dem Speicher zu laden versucht. Zur Konfiguration der jeweiligen Maschine mit den für eine bestimmte Hardwarekonfiguration notwendigen Hardwareparametern werden außerdem die Dateien mit den Konfigurationsdaten benötigt. Diese Dateien enthalten außerdem Informationen, die zur Initialisierung von Bildschirmen, Druckern und Peripheriegeräten benötigt werden, die der betreffenden Maschine zugeordnet sind. Zu den Dateien würde beispielsweise die Datei CONFIG.SYS des MS-DOS-Betriebssystems der Micorosoft Corporation gehören.
Computer oder Computersysteme können in einem Netzwerk miteinander verbunden sein, das normalerweise aus einer Client-Workstation, einem Server und einem Zentralnetzwerk besteht. In einem System, in dem der Speicherinhalt des Rechners bei Abschalten des Stroms erhalten bleibt, kann das Betriebssystem im Computer selbst gespeichert werden. Bei einem System, in dem der Speicherinhalt beim Abschalten des Stroms verloren geht, kann der Computer die Boot-Informationen nicht aus dem Rechner selbst abrufen. In diesem Fall fordert der Client über das Netzwerk die Betriebssystemdateien bei dem als Boot-Server arbeitenden Server an. Auch wenn die Client- Workstation über einen nicht flüchtigen Speicher verfügt, ist es vorteilhaft, vom Server aus zu booten, da hierdurch in dem Workstation-Computer Speicherplatz eingespart wird. Da Betriebssystem und Anwendungsprogramme immer umfangreicher werden, um neue und kompliziertere Funktionen auszuführen, kann das Booten von einem Server aus ein großer Vorteil sein.
Der Markt bietet für das externe Booten verschiedene Methoden an. Eine Methode wird als Remote Initial Program Load (RIPL) bezeichnet. RIPL ist der Prozess, in dem ein Betriebssystem von einem externen Speicherplatz auf eine Workstation geladen wird. Das RIPL-Protokoll wurde von 3Com, Microsoft und IBM gemeinsam entwickelt. Es wird heute mit IBM OS/2 Warp Server, DEC Pathworks und Windows NT verwendet. Zwei andere weit verbreitete Remote-IPL-Protokolle sind Novel NCP (NetWare Core Protocol) und BOOT-P, ein IEEE-Standard, die mit UNIX und TCP/IP-Netzwerken verwendet werden.
RIPL wird mit einer Kombination aus Hardware und Software erreicht. Das anfordernde Gerät, das als Requester oder Workstation bezeichnet wird, fordert das ladende Gerät auf, ihm ein Startprogramm zu schicken. Das ladende Gerät ist ein anderer Computer mit Festplatte, der als RIPL-Server oder Dateiserver bezeichnet wird. Der RIPL-Server verwendet für das Übersenden des Startprogramms an die Workstation ein Ladeprogramm. Nachdem die Workstation das Startprogramm erhalten hat, kann sie ein Betriebssystem anfordern, das seinerseits Anwendungsprogramme anfordern und anwenden kann. Die Softwareimplementierungen der einzelnen Anbieter sind unterschiedlich. Theoretisch können jedoch alle ähnliche Funktionen ausführen und ähnliche Prozesse durchlaufen. Die Client-Workstation erfordert ein spezielles Read Only Memory (ROM), das auf dem Adapter ihres Local Area Network (LAN) oder ihrer Network Interface Card (NIC) installiert ist. Das spezielle ROM ist allgemein als externes Boot-ROM bekannt. Zwei besondere Beispiele für externe Boot-Chips sind der RIPL- Chip, der den ANSI/IEEE-Standard 802.2 unterstützt, und der Preboot Execution Environment (PXE) Chip, der in der Umgebung Transmission Control Protocol/Internet Protocol (TCP/IP) verwendet wird.
Zwar hat der Prozess viele Vorteile für das Booten eines Computers mit flüchtigem Speicher, z. B. ein Netzwerkcomputer, jedoch benötigt der Computer ein externes Boot-ROM auf dem LAN-Adapter oder der Network Interface Card (NIC). Hierdurch kann keine Interaktion eines Users mit dem externen Boot- Prozess stattfinden.
Die amerikanische Patentanmeldung 09/389,440 beschreibt einen extern gesteuerten Boot-Prozess, mit dem ein Client-Computer von einem Server booten kann, ohne dass ein externes Boot-ROM erforderlich ist.
Die Medium Access Control (MAC) Adresse ist der Schlüsselfaktor, der viele Eigenschaften des Boot-Prozesses bestimmt. Die MAC-Adresse bestimmt, von welchem Server der Client bootet, welches Betriebssystem geladen wird und wie der Client-Computer konfiguriert ist.
In der vom Server verwalteten Client-Umgebung gibt es jedoch momentan keine Möglichkeit für die automatische Zuweisung und Konfiguration der MAC-Adresse eines Client. Bei der MAC- Adresse kann es sich um eine Universally Administered Address oder um eine Locally Administered Address handeln. Die Universally Administered Address (UAA) in einem Nahbereichsnetz ist die Adresse, die in einem Adapter zum Zeitpunkt der Herstellung permanent codiert ist. Alle UAA sind eindeutig. Eine Locally Administered Address (LAA) in einem Nahbereichsnetz ist eine Adapteradresse, die der User zuweisen kann, um die Universally Administered Address zu ersetzen. Es wird daher eine automatische Möglichkeit zur Konfiguration und Verteilung einer Locally Administered Address (LAA) benötigt. Wenn dies möglich ist, kann bei Änderung der Boot- Konfiguration eine Adresse zugewiesen werden, die der gewünschten Konfiguration entspricht. Ein solches System würde eine nahtlose Lösung bei der dynamischen Veränderung der Boot- Umgebung eines Client bieten und die Fähigkeit des Administrators, die Client-Maschinen innerhalb eines Netzwerks extern zu konfigurieren, beträchtlich erweitern.
ZUSAMMENFASSUNG DER ERFINDUNG
Die Erfindung, mit der die oben genannten Ziele erreicht werden können, ist eine Methode und Vorrichtung zur dynamischen MAC-Zuweisung und -konfiguration. Ein solches System basiert auf der Fähigkeit, eine Client-Maschine von einer Server-Maschine extern booten zu können. Es bietet zusätzlich die Möglichkeit, eine Locally Administered Address (LAA) zum Ersetzen der Universally Administered Address (UAA) zuzuweisen.
Der erste Teil des Prozesses ist die Einrichtung der Möglichkeit des externen Bootens. In dem bevorzugten Ausführungsbeispiel erlaubt eine Gruppe von Programmen an der Workstation ein externes Booten und die externe Interaktion mit einem Programm auf dem Server. Befehle eines Basic Input Output System (BIOS) ROM werden ausgeführt, um einen Boot Code Loader (BCL) von einem nicht flüchtigen Schreib-/Lese-Speicher zu laden, beispielsweise einer Diskette oder Festplatte. Der BCL lädt ein externes Steuerprogramm (RCP) und das RCP lädt ein Meldungsprogramm, einen Protokollmanager und/oder Gerätetreiber ohne Laden eines Betriebssystems. Das Meldungsprogramm und/oder die Gerätetreiber kommunizieren mit einem dynamischen MAC-Zuweisungs- und -konfigurationsprogramm (DMAC) auf dem Netzwerk-Server. Zunächst bildet das Programm eine Schnittstelle mit einer NDIS-konformen Network Interface Card (NIC), um einen DMAC Discovery Frame auszusenden. An diesem Punkt sucht die Workstation MAC-spezifische Informationen. Der Discovery Frame wird von einem auf dem Server installierten DMAC-Programm abgefangen, das die Anforderung abhört. Wenn das DMAC-Programm die Anforderung abgefangen hat, analysiert es diese und führt eine von zwei Aktionen aus. Wird der Client zum ersten Mal gebootet, führt der Server zuerst ein "Initialisierungs"-Skript aus. Mit anderen Worten, die DMAC bereitet die anderen Boot-Server vor, indem sie sie darüber informiert, dass künftig die betreffende Workstation das Booten übernehmen wird. Die Workstation wird in eine MAC-Tabelle oder einen Pool plaziert. Die zweite Aktion besteht bei bereits initialisierten Workstations darin, dass der Server, anhand der empfangenen Informationen, von der Tabelle oder dem Pool eine LAA an die Client-Workstation sendet. Die Client-Workstation fordert dann mit ihrer neuen LAA ein Betriebssystem an. Die Boot-Optionen sind eine Tabelle oder ein Pool, die einer LAA oder einem Bereich von LAAs entsprechen. Mit anderen Worten, es wird eine bestimmte Boot- Option oder ein bestimmtes Boot-Paket an ein anforderndes System gesendet, in dem sich die entsprechende LAA befindet. Um das Ersetzen der UAA zu erreichen, weist die DMAC der Workstation eine LAA zu. Nachdem die LAA zugewiesen wurde, wird das Booten anhand des an diese Adresse gesendeten Pakets fortgesetzt.
KURZE BESCHREIBUNG DER ZEICHNUNGEN
Die neuartigen Merkmale, die als kennzeichnend für die Erfindung betrachtet werden, werden in den Ansprüchen im Anhang dargelegt. Die Erfindung selbst sowie eine bevorzugte Gebrauchsart und weitere Ziele und Vorteile der Erfindung, werden jedoch am besten anhand der folgenden ausführlichen Beschreibung eines Ausführungsbeispiels und in Verbindung mit den beiliegenden Zeichnungen verständlich. Es zeigt:
Fig. 1 eine Systemübersicht.
Fig. 1A ein verteiltes Datenverarbeitungssystem.
Fig. 2 ein Blockdiagramm eines Servers.
Fig. 3 ein Blockdiagramm einer Workstation.
Fig. 4 ein Flussbild des Workstation-Prozesses.
Fig. 5 ein Flussbild des Workstation-Prozesses.
Fig. 6 ein Diagramm des Workstation-Speichers.
Fig. 7 ein Flussbild des Workstation-Prozesses.
Fig. 8 ein Flussbild des Server-Prozesses.
AUSFÜHRLICHE BESCHREIBUNG DES BEVORZUGTEN AUSFÜHRUNGSBEISPIELS
Fig. 1 ist eine bildliche Darstellung eines verteilten Datenverarbeitungssystems, in dem die vorliegende Erfindung implementiert werden kann. Sie soll für die vorliegende Erfindung nicht als Einschränkung in Bezug auf die Architektur, sondern als Beispiel dienen. Das verteilte Datenverarbeitungssystem 100 ist ein Computernetz mit einem Netzwerk 102, welches das Medium ist, mit dem zwischen den verschiedenen, in dem verteilten Datenverarbeitungssystem 100 miteinander verbundenen Geräten und Computern Datenübermittlungsabschnitte aufgebaut werden. Das Netzwerk 102 kann permanente Verbindungen umfassen, beispielsweise Drahtkabel oder faseroptische kabel, oder temporäre Verbindungen in Form von Telefonverbindungen. In dem dargestellten Beispiel sind ein Server 104 und eine Speichereinheit 106 mit einem Netzwerk 102 verbunden. Außerdem sind auch die Clients 108, 110 und 112 mit einem Netzwerk 102 verbunden. Die Clients 108, 110 und 112 können beispielsweise Personalrechner oder Netzwerkcomputer sein.
In der vorliegenden Patentanmeldung ist ein Netzwerkcomputer jeder mit einem Netzwerk verbundene Computer, der ein Programm oder eine andere Anwendung von einem anderen, mit dem Netzwerk verbundenen Computer empfängt. In dem dargestellten Beispiel liefert der Server 104 Daten, beispielsweise Boot-Dateien, Betriebssystembilder und Anwendungen, an die Clients 108, 110 und 112. Die Clients 108, 110 und 112 sind Clients des Servers 104. Der Server 104 kann auch als Boot-Server eingesetzt werden, weil auf ihm die Daten und Parameter gespeichert sind, die er für das Booten der einzelnen eindeutigen Clientcomputersysteme 108, 110 und 112 benötigt. Das verteilte Datenverarbeitungssystem 100 kann zusätzliche Server, Clients und andere, nicht dargestellte Geräte umfassen. In dem dargestellten Beispiel ist das verteilte Datenverarbeitungssystem 100 das Internet, wobei das Netzwerk 102 eine weltweite Zusammenfassung von Netzwerken und Gateways darstellt, die zur Kommunikation untereinander die TCP/IP- Protokollreihe anwenden. Das verteilte Datenverarbeitungssystem 100 kann auch als eine Reihe von unterschiedlichen Netzwerktypen implementiert werden, beispielsweise als Intranet, als Nahbereichsnetz (LAN), oder als Fernbereichsnetz (WAN). Bezugnehmend auf Fig. 2; ein Blockdiagramm zeigt ein Datenverarbeitungssystem gemäß der Erfindung, das in Form eines Servers implementiert sein kann, beispielsweise Server 104 in Fig. 1. Das Datenverarbeitungssystem 200 kann ein symmetrisches Multiprozessor (SMP)-System sein, mit einer Vielzahl von Prozessoren 202 und 204, die mit dem Systembus 206 verbunden sind. Alternativ kann auch ein System mit nur einem Prozessor eingesetzt werden. Außerdem ist an den Systembus 206 ein Speicher-Controller/Cache 208 angeschlossen, der eine Schnittstelle zu dem lokalen Speicher 209 bildet. Die E/A-Bus- Brücke 210 ist mit dem Systembus 206 verbunden und bildet eine Schnittstelle zu dem E/A-Bus 212. Der Speicher- Controller/Cache 208 und die E/A-Bus-Brücke 210 können, wie dargestellt, integriert sein Die Peripheral Component Interconnect (PCI) Bus-Brücke 214, die mit dem E/A-Bus 212 verbunden ist, bildet eine Schnittstelle zu dem PCI Local Bus 216. Das Modem 218 kann mit dem PCI-Bus 216 verbunden sein. Typische PCI-Bus-Implementierungen unterstützen vier PCI- Erweiterungs-Slots oder Zusatz-Steckverbindungen. Die Datenübermittlungsabschnitte zu den Netzcomputern 108, 110 und 112 in Fig. 1 können über das Modem 218 und den Netzadapter 220 hergestellt werden, der über Zusatzkarten mit dem PCI Local Bus 216 verbunden ist. Die zusätzlichen PCI-Bus-Brücken 222 und 224 sind Schnittstellen für weitere PCI-Busse 226 und 228, von denen zusätzliche Modems oder Netzwerkadapter unterstützt werden können. An den Server 200 können so mehrere Netzwerkrechner angeschlossen werden. Ein im Speicher abgebildeter Graphikadapter 230 und eine Festplatte 232 können ebenfalls, wie dargestellt, direkt oder indirekt mit dem E/A- Bus 212 verbunden sein. Personen mit durchschnittlichem Fachwissen werden erkennen, dass die in Fig. 2 dargestellte Hardware variieren kann. Beispielsweise können auch andere periphere Geräte, z. B. ein optisches Plattenlaufwerk oder ähnliches, zusätzlich zu der dargestellten Hardware oder an deren Stelle eingesetzt werden. Das dargestellte Beispiel soll für die vorliegende Erfindung keine architektonische Einschränkung darstellen. Das in Fig. 2 gezeigte Datenverarbeitungssystem kann beispielsweise ein IBM RISC/System 6000 sein, ein Produkt der International Business Machines Corporation in Armonk, New York, das auf dem Advanced Interactive Executive (AIX) Betriebssystem läuft.
Bezugnehmend auf Fig. 3; ein Blockdiagramm zeigt ein Datenverarbeitungssystem, in dem das RCP implementiert werden kann. Das Datenverarbeitungssystem 300 ist ein Beispiel entweder für einen eigenständigen Computer, wenn er nicht an das verteilte Datenverarbeitungssystem 100 angeschlossen ist, oder für einen Client-Computer, wenn er an das verteilte Datenverarbeitungssystem 100 angeschlossen ist. Das Datenverarbeitungssystem 300 wendet eine Busarchitektur des Prinzips Peripheral Component Interconnect (PCI) Local Bus an. Obwohl das dargestellte Beispiel einen PCI-Bus einsetzt, sind auch andere Busarchitekturen, beispielsweise Micro Channel und ISA, denkbar. Der Prozessor 302 und der Hauptspeicher 304 sind mit dem PCI Local Bus 306 über die PCI-Brücke 308 verbunden.
Die PCI-Brücke 308 kann auch einen integrierten Speicher- Controller und Cache-Speicher für den Prozessor 302 umfassen. Zusätzliche Anschlüsse an den PCI Local Bus 306 können über eine direkte Zwischenverbindung der Komponenten oder mit Hilfe von Zusatzkarten hergestellt werden. In dem dargestellten Beispiel sind der LAN-Adapter 310, der SCSI-Host-Busadapter 312 und die Erweiterungsbus-Schnittstelle 314 mit dem PCI Local Bus 306 über einen Direktanschluss der Komponenten verbunden. Im Gegensatz dazu sind der Audioadapter 316, der Graphikadapter 318 und der Audio/Videoadapter (A/V) 319 über in Erweiterungs-Slots eingesteckte Zusatzkarten mit dem PCI Local Bus verbunden. Die Erweiterungsbus-Schnittstelle 314 bietet Anschlussmöglichkeiten für einen Tastatur- und Mausadapter 320, ein Modem 322 und einen Zusatzspeicher 324. An den SCSI-Hostbusadapter 312 können in dem dargestellten Beispiel ein Festplattenlaufwerk 326, ein Bandlaufwerk 328 und ein CD-ROM-Laufwerk 330 angeschlossen werden. Typische PCI Local Bus Implementierungen unterstützen drei oder vier PCI- Erweiterungs-Slots oder Zusatzsteckplätze. Ein Betriebssystem läuft auf dem Prozessor 302 und dient zur Koordination und Steuerung der verschiedenen Komponenten des Datenverarbeitungssystems 300 der Fig. 3. Das Betriebssystem kann ein im Handel erhältliches Betriebssystem sein, beispielsweise OS/2 von International Business Machines Corporation. "OS/2" ist ein Markenname der International Business Machines Corporation. Ein objektorientiertes Programmiersystem, beispielsweise Java, kann zusammen mit dem Betriebssystem laufen. Es gibt Aufrufe von Java-Programmen oder -Anwendungen, die in dem Datenverarbeitungssystem 300 laufen, an das Betriebssystem weiter. "Java" ist ein Markenname von Sun Microsystems, Inc. Befehle für das Betriebssystem, das objektorientierte Betriebssystem sowie Anwendungen oder Programme, können auf Speichergeräten untergebracht sein, beispielsweise auf der Festplatte 326. Sie können von dem Prozessor 302 zur Ausführung in den Hauptspeicher 304 geladen werden. Personen mit durchschnittlichem Fachwissen werden erkennen, dass die Hardware in Fig. 3 je nach Implementierung variieren kann. Andere interne Hardware- oder Peripheriegeräte, beispielsweise der Flash-ROM (oder ein gleichwertiger nicht flüchtiger Speicher) oder optische Plattenlaufwerke und ähnliche Geräte können zusätzlich oder an Stelle der in Fig. 3 gezeigten Hardware eingesetzt werden. Die Prozesse der vorliegenden Erfindung können auch auf ein Datenverarbeitungssystem mit mehreren Prozessoren angewendet werden. Wenn beispielsweise das Datenverarbeitungssystem 300 optional als Netzwerkcomputer konfiguriert wird, muss es nicht unbedingt den SCSI- Hostbusadapter 312, das Festplattenlaufwerk 326, das Bandlaufwerk 328 und das CD-ROM-Laufwerk 330 umfassen, wie durch das Kästchen mit der gestrichelten Linie in Fig. 3 angedeutet wird, das wahlweise einsetzbare Elemente bezeichnet. In diesem Fall muss der Computer, der eigentlich als Client-Computer bezeichnet werden müßte, über eine Netzwerk-Kommunikationsschnittstelle verfügen, beispielsweise einen LAN-Adapter 310, ein Modem 322, oder ein ähnliches Gerät. Das Datenverarbeitungssystem 300 kann aber auch ein eigenständiges System sein, dessen Konfiguration ein Booten ohne Netzwerk-Kommunikationsstelle ermöglicht, also unabhängig davon, ob das Datenverarbeitungssystem 300 eine Netzwerkschnittstelle hat, oder nicht. In einem weiteren Beispiel kann das Datenverarbeitungssystem 300 auch ein Personal Digital Assistant (PDA) sein, der mit ROM und/oder Flash-ROM konfiguriert wurde, um über einen nicht flüchtigen Speicher für die Betriebssystemdateien und/oder die vom User erzeugten Daten zu verfügen. Bezogen auf die vorliegende Erfindung stellt das in Fig. 3 dargestellte Beispiel sowie die weiter oben beschriebenen Beispiele keine architektonische Beschränkung dar. Es wird ausdrücklich darauf hingewiesen, dass die vorliegende Erfindung zwar in Zusammenhang mit einem voll funktionsfähigen Datenverarbeitungssystem beschrieben wurde, dass aber, wie Personen mit durchschnittlichem Fachwissen erkennen werden, die Prozesse der vorliegenden Erfindung auch in Form eines computerlesbaren Befehlsmediums und in vielen anderen Formen verkauft werden können, und dass die vorliegende Erfindung dann gleichermaßen anwendbar ist, unabhängig vom jeweiligen signaltragenden Medientyp, der für den Verkauf verwendet wurde. Als Beispiele für computerlesbare Medien sind beschreibbare Medien, beispielsweise Disketten, Festplattenlaufwerke, RAMs und CD-ROMs zu nennen, aber auch Übertragungsmedien wie digitale und analoge Datenübermittlungsabschnitte.
Bezugnehmend auf Fig. 4; ein Flussbild zeigt die in der DMAC eingesetzten Schritte. Wenn ein PC gebootet wird, initialisiert der BIOS-ROM-Chip das System, indem er den POST (Power-on Self-Test) Code ausführt, die BIOS-Vektortabellen im unteren Speicherbereich einrichtet und eine Boot-Quelle auswählt (Schritt 402). Bei neueren Systemen ist dies ein wählbarer Parameter in der BIOS-Setup-Prozedur des Hardware- Systems. Wenn das System ein Diskettenlaufwerk als Boot-Gerät auswählen darf, liest der BIOS-ROM-Befehl den ersten Sektor der Diskette an einer bestimmten Stelle in den Speicher ein (Schritt 404). Dieser Sektor heißt Master Boot Record (MBR). Das BIOS übergibt die Steuerung dann an den MBR (Schritt 406).
Nachdem die POST-Verarbeitung abgeschlossen ist, wird im ersten Schritt der MBR, Zyl 0, Kopf 0, Sektor 1 der Diskette in das Client-System geladen. Das MBR-Modul ist nicht größer als 512 Bytes und enthält die Partitions-Boot-Tabelle für die Diskette. Es enthält außerdem einen Identitätsstempel und ein Mikrodateisystem, das ein RDT Input Output Module (RDTIO) laden kann (Schritt 408). Das Mikrodateisystem kann einen Sektor einer in dem Root-Verzeichnis einer Diskette enthaltenen Datei lesen, welche die 12-Bit-FAT-Architektur verwendet. Der Dateiname für RDTIO ist in der MBR hartcodiert und kann vom User nicht geändert werden.
RDTIO.SYS ist eine Ein-Sektor-Datei, die vom MBR in den Speicher eingelesen wird. Das RDTIO und der MBR bilden zusammen den BCL. Durch das RDTIO erhält das Dateisystem die Fähigkeit, zusätzliche Dateien zu lesen.
Die erste Datei, die vom BCL gelesen wird, ist die Initialisierungsdatei. Diese Datei, BCL.INI, enthält den Namen einer selbstladenden Datei mit mehreren Sektoren, die im Root- Verzeichnis der Diskette zu finden ist. Wenn diese Datei erfolgreich in den Speicher eingelesen wird, übernimmt sie die Steuerung und die BCL ist nicht mehr länger erforderlich. Die Syntax für die Datei BCL.INI ist sehr restriktiv. Es gibt nur zwei Parameter in Großbuchstaben. Diese sind der Name der zu ladenden Datei und die Adresse des gewünschten Speicherorts, z. B. RCP.SYS, 0000:7C00. Hiermit wird der BCL angewiesen, die Datei RCP.SYS an dem Speicherort 000:7C00 in den Realspeicher zu laden. Es gibt keine Fehlerprüfung, die Datei muss sich also im Root-Verzeichnis der Diskette befinden. Wenn das Adressenfeld optional ist, ist 7C00 der Standard-Speicherort. Wenn jedoch die in der Datei enthaltene Adresse benutzt wird, erlaubt diese Adresse dem BCL, Bilder direkt von der Platte oder Diskette in den Speicher zu laden. Der Dateiname muss an der ersten Speicherstelle der Datei beginnen.
BCL.INI enthält den Namen der nächsten zu ladenden Datei (Schritt 410). BCL.INI spezifiziert eine Datei, die ein selbst unterstützendes Programm oder Modul enthält, da sie an einem vorbestimmten Bereich die Steuerung übernimmt und BCL die Ausführung beendet, womit das neu geladene Modul auf sich selbst angewiesen ist. Im Falle der RCB ist der Name dieser Datei RCP.SYS-RDT, oder "RDT-Steuerprogramm", das aus RCP.SYS und RCP.INI besteht. Das RDT-Steuerprogramm wird vom BCL geladen. Nach dem Laden besteht in Bezug auf Dienste keine weitere Abhängigkeit vom BCL. Die RCP enthält ihr eigenes Mini-Dateisystem, dessen Logik ausreicht, um mehrsektorige Dateien aus dem Root-Verzeichnis einer Diskette zu lesen, die nach der 12-Bit-FAT-Architektur formatiert ist.
RDTIO lädt RCP.SYS (Schritt 412) und gibt die Steuerung an RCP weiter (Schritt 414). Aufgabe von RCP ist das Laden weiterer Dateien, beispielsweise Gerätetreiber, die Bereitstellung einer DOS-Funktionsemulation zur Unterstützung dieser Treiber und das Laden anderer Komponenten von RCB, insbesondere den RIPL Message Formatter (RIPLMF).RCP erhält seine Befehle von einer .INI-Datei mit dem Namen RCP.INI (Schritt 416) im Root- Verzeichnis der Diskette. Diese Befehle liegen in Form von Dateinamen vor. RCP.INI wird analysiert und bei Verwendung am Bedienungsplatz angezeigt. Zweck der INI-Datei ist es, RCP darüber zu informieren, welche Treiber geladen werden müssen, um die jeweilige NIC in dem System, in dem diese läuft, zu unterstützen. Die RCP übernimmt außerdem die Bereitstellung einer DOS-Funktionsemulation für die Gerätetreiber, wenn diese sich in ihren Initialisierungsroutinen befinden. Mit RCP können sich die Gerätetreiber wie in einer realen DOS-Umgebung verhalten. Außerdem können die verschiedenen Treiber für einzelne NICs geladen werden, ohne dass in der RCP Quellcodeänderungen erzwungen werden. Die Syntax sieht folgendermaßen aus:
msgf=[file name], wobei "file name" der Name eines jeden "Message Formatters" ist, der für diesen Boot verwendet werden soll, d. h.: "msgf=riplmf.sys".
load=[file name], wobei "file name" der Name eines jeden Moduls ist, das geladen werden muss, damit RCB arbeitet. Die DOS-Gerätetreiber für die NIC in der Maschine müssen mindestens wie folgt gekennzeichnet werden: "load=device.sys".
"ip=[ip address], wobei "ip address" die Punkt-Dezimal-IP- Adresse ist, d. h.: ip=123.456.789.012."
mac=[mac address], wobei "mac address" die sedezimale 12er MAC-Adresse in einem kontinuierlichen String ist, d. h.: "mac=001122334455".
Jeder Eintrag muss durch eines oder alle der folgenden Zeichen abgetrennt werden:
20 h = Leer
Oah = Return
Odh = Zeilenvorschub
Die Datei kann mit nahezu jedem Editor erzeugt werden.
Die RIPLMF wird zuerst geladen (Schritt 418), gefolgt von den Gerätetreibern. Der DOS-Protokollmanager (PROTMAN.DOS) wird gewöhnlich anschließend geladen (Schritt 420), gefolgt vom NIC-Treiber, der auch als MAC-Treiber bezeichnet wird (Schritt 422). Die RCP ruft nacheinander jeden Treiber auf (Schritt 424), damit dieser seine Initialisierungsroutinen durchführen, Dateien öffnen, Meldungen anzeigen kann etc. PROTMAN.DOS fordert während dieser Zeit das Einlesen einer Datei mit dem Namen PROTOCOL.INI an (Schritt 426). Diese Datei wird vom MAC- Treiber von PROTMAN während eines intermodulären Informationsaustauschs beim Initialisieren der MAC angefordert. Die MAC bewirkt das Senden und Empfangen von Meldungen im LAN.
PROTMAN.DOS ist der Gerätetreiber für den DOS- Protokollmanager. Entsprechend der NDIS-Spezifikation "liest der Protokollmanager die Datei PROTOCOL.INI zum INIT-Zeitpunkt und analysiert sie, um das an die Protokollmodule weitergegebene Konfigurationsspeicherbild zu erzeugen." Die RCB verwendet es genau für diesen Zweck. Der MAC-Treiber gibt Eingangs-/Ausgangssteuerungen (IOCTLs) an PROTMAN aus, um diese Information zu bekommen, sowie Informationen über die Protokolltreiber, die an ihn gebunden sein möchten. RIPLMF präsentiert sich gegenüber PROTMAN.DOS, als ob es sich um einen Protokolltreiber handeln würde, der an die MAC gebunden sein möchte. Dies geschieht, indem in der Datei PROTOCOL.INI Einträge vorgenommen werden, durch die RIPLMF wie ein Protokolltreiber aussieht, und durch IOCTL-Aufrufe von RIPLMF an PROTMAN.DOS. RCB emuliert den größten Teil der übrigen zusätzlichen BindAndStart und InitiateBind-Logik, die, in einer DOS-Umgebung, aus zusätzlichen Unterstützungsprogrammen kommt. Diese Programme sind in dem RCB-System nicht notwendig.
Bei der von RCB verwendeten Datei PROTOCOL.INI kann es sich, abgesehen von einigen kleineren Änderungen, um dieselbe Datei handeln, die in dem im Server assemblierten Bild BOOT.SYS enthalten ist. Die MF muss wie folgt an sie angefügt werden:
Die Anweisung "Bindings=" muss auf den MAC-Treiber zeigen, in diesem Fall ELPC3. Das obige Beispiel wurde aus der PROTOCOL.INI entnommen, die mit der 3Com 3C589 PCMCIA Ethernetkarte verwendet wird. Die gesamte Datei sieht wie folgt aus:
Die von RCB verwendeten Gerätetreiber werden auch als Treiber nach dem ANSI/IEEE-Standard 802.2 bezeichnet. RCB erfordert die spezifischen Treiber für die DOS-Umgebung. Die Datei EL90X.DOS dient zur Unterstützung der #Com3C509 PCI Ethernetkarte. Der ELPC3.DOS-Treiber unterstützt die 3Com#C589 PCMCIA Ethernetkarte.
Wenn die gesamte Initialisierung abgeschlossen ist, übernimmt RIPLMF die Steuerung (Schritt 428) und die Dienste von RCP werden nicht länger benötigt. RIPLMF ist ein hybrides Anwendungsprogramm und der Gerätetreiber für das NDIS- Protokoll. Es folgt in seinen Aktionen der NDIS-Spezifikation sowohl mit der Datei PROTMAN als auch mit dem MAC-Treiber. Die Beziehung von RIPLMF zu diesen beiden anderen Programmen ist die eines Protokolltreibers. RIPLMF "formatiert" jedoch auch Meldungen und präsentiert diese dem MAC zur Weitersendung. Da die übrigen Treiber glauben sollen, dass sie in einer NDIS- Umgebung arbeiten, führt RIPLMF in zwei Bereichen, "BindAndStart" und "InitiateBind", eine Emulation durch. Nach NDIS muss ein Protokolltreiber an einen MAC-Treiber gebunden sein. RIPLMF bindet also in der Weise an die MAC, dass diese nicht zwischen RIPLMF oder einem DOS NDIS Protokolltreiber unterscheiden kann.
An diesem Punkt sendet der Client über RIPLMF einen DMAC- Discovery Frame aus. Der Discovery Frame wird abgesandt und der Client wartet auf den Ablauf einer festgesetzten Zeit. Wenn auf den Frame ein Server antwortet, sendet der Server eine LAA zurück. Bei Eintreffen der LAA wird die ursprüngliche MAC-Adresse ersetzt und der Client erscheint gegenüber jedem Server als die soeben zugewiesene LAA.
Nachdem die LAA zugewiesen wurde, fordert RIPLMF die MAC auf, mit dem Server zu kommunizieren, um die Boot-Dateien zu erhalten. RIPLMF fordert die MAC auf, "Find" und "GetFile" zu senden. Auf die "Find"-Meldung antwortet der Server mit "Found". Wenn der RIPLMF weiß, dass der Server gefunden wurde, sendet er die Meldung "getfile" aus. Der Server antwortet, indem er ein Boot-Paket an den Client sendet, das der vom Administrator bezeichneten LAA entspricht.
Wenn alle Segmente von Programmen, die vom Administrator zugewiesen wurden, eingetroffen sind, setzt der RIPLMF alle Vektoren zurück, die von RCP und anderen Treibern benutzt worden sein könnten und übergibt das System an die Programme, die an Boot.sys übergeben wurden, entsprechend der vom Server gesendeten LAA. An diesem Punkt sind keine Komponenten von RCP erforderlich, noch können sie im System gefunden werden. Der Dialog "find/found" basiert auf der von der DMAC empfangenen LAA. Der Administrator hat die Entscheidungen darüber getroffen, welche Auswahl an welche Workstation gesendet werden soll.
Wenn diese Datei heruntergeladen wird (Schritt 430), führt der RIPLMF einige Housekeeping-Routinen aus und übergibt die Steuerung an Boot.sys (Schritt 432). Boot.sys komplettiert dann den Boot-Prozess, zum Laden eines Betriebssystems vom Netz-Server (Schritt 434), basierend auf der in der Tabelle vom Administrator zugewiesenen LAA. Die Netzschnittstelle zwischen dem Client und der DMAC kann IP-basiert sein. Das bedeutet, dass auf der Maschine, auf der die DMAC läuft, auch TCP/IP laufen muss. Die DMAC erhält die UDP-Datagramm- Anforderung vom Client und sendet die Information in einem UDP-Paket zurück. Eine Implementierung wäre in JAVA geschrieben. Die DMAC könnte auf jeder Plattform mit JVM und TCP/IP-Fähigkeit laufen. Folgende Sprachen sind für die Programme geeignet: Assembler, C, C++, Cobol, Pascal, Java, SmallTalk, Perl, Rexx, LISP, APL, BASIC, PLI, PLII. Folgende Protokolle sind geeignet: NETBIO; TCP/IP; 802.2; SNA, SNB, IPX und APPLETALK.
Alle in dem Workstation-Computer ablaufenden Vorgänge basieren auf der MAC-Adresse, bei der es sich um einen im Chip eingebetteten Hardwarenamen handelt. Ein anderer Name für die MAC-Adresse ist die UAA. Wenn also die UAA ersetzt und eine neue Nummer zugewiesen werden kann, kann das an die Adresse gesendete Datenpaket extern und automatisch gesteuert werden. Ein Server im LAN, der die MAC-Adresse des Client-Rechners erkennt, antwortet in einer vorher festgesetzten Weise. Die DMAC erlaubt die Zuweisung von vorgewählten LAAs, die verschiedene Boots für verschiedene Verwendungen bereitstellen können.
Die RPL/PXE-Emulation der ersten Programme bietet außerdem die Option, mehrere Betriebssysteme extern zu booten. Mit der RPL/PXE-Emulation und ihrer Fähigkeit, für die MAC-Adresse ein Pseudonym zu erstellen, kann beispielsweise die DMAC unterschiedliche Betriebssysteme vom selben Server, unterschiedliche Betriebssysteme von unterschiedlichen Servern, unterschiedliche Versionen desselben Betriebssystems von demselben Server und unterschiedliche Versionen desselben Betriebssystems von unterschiedlichen Servern anbieten. Zudem kann die DMAC von einem Primärserver, einem Backup-Server oder einem anderen Server angeboten werden. Außerdem kann die DMAC verschiedene Funktionen einer Workstation präsentieren.
Um diese Optionen zu implementieren, würde der Administrator die betreffenden LAAs in einer Tabelle definieren, welche die LAAs spezifischen Betriebssystemen oder Betriebssystempaketen, Treibern und Anwendungen zuweist. Wenn von der Workstation eine Anforderung eingeht, kann die LAA, die dem vorgewählten, vom Administrator zugewiesenen Paket entspricht, gesendet und der Workstation zugewiesen werden. Die DMAC würde dann den Vorgang fortsetzen, indem sie das betreffende Betriebssystem oder Paket an die jetzt zugewiesene LAA sendet. Beispiel: Um eine Workstation zu befähigen, Anwendungen automatisch zu booten und/oder Anwendungen zu booten und zu empfangen, würde der Administrator eine LAA definieren, die dem Betriebssystem oder Paket entspricht, von dem der Administrator wünscht, das es automatisch an diese Workstation gesendet wird. Bei Erhalt der UAA für diese Workstation würde die DMAC die UAA durch die LAA des gewünschten Pakets ersetzen. Anschließend würde das Paket an die LAA gesendet. Nur der Server, in dem diese spezielle LAA-Adresse definiert ist, wird antworten.
Bezugnehmend auf Fig. 5; ein Flussbild zeigt den Steuerungsfluss, den Datenfluss und die Positionen der Daten und Befehle, die in der dynamischen MAC-Zuweisung und - Konfiguration verwendet werden. Im Vergleich mit Fig. 4 bietet diese Figur eine etwas andere Perspektive. Sie zeigt die Art und Weise, in der Dateien geladen werden, und dann die Reihenfolge, in der die Codesegmente innerhalb der Dateien die Steuerung übernehmen. Der Steuerungsfluss 500 zeigt die Art und Weise, in der ein Programm, ein Gerätetreiber oder ein Befehlssatz die Steuerung von einer Komponente an eine andere übergibt. Eine generalisierte Schrittsequenz führt einen Teil der Boot-Sequenz des Client aus und jeder Schritt komplettiert einen Abschnitt der Sequenz, bevor die Steuerung an den nächsten Abschnitt abgegeben wird. Jede dieser Komponenten umfasst Befehle, die ausgeführt werden, um eine Gruppe von Funktionen auszuführen. BIOS ROM 510 initialisiert den Client, lädt BCL 512 und gibt die Steuerung an BCL 512 weiter. Wie zu erkennen ist, kann BCL 512 eine Vielzahl von Komponenten umfassen, die nicht notwendigerweise hintereinander ausgeführt werden, bevor die Steuerung weitergegeben wird. Nachdem BCL 512 RCP 514 geladen hat, gibt BCL 512 die Steuerung an RCP 514 weiter, das die Komponenten 516 lädt, die Programme und/oder Gerätetreiber enthalten können. RCP 514 kann die Steuerung der Komponenten 516 übernehmen oder die Steuerung an die Komponenten 516 weitergeben, die nicht notwendigerweise hintereinander ausgeführt werden. Wenn das Betriebssystem 518 vom Server abgerufen wurde, wird die Steuerung des Client- Computers an das Betriebssystem 518 übergeben, das dann den Boot-Prozess für den Client abschließt. Der Datenfluss 520 zeigt die Daten oder den Befehlssatz, der von den Softwarekomponenten geladen wird, die als Steuerungsfluss 510 gezeigt werden. Obwohl die Komponenten in dem Datenfluss 520 mit Namen versehen wurden, können diese Dateinamen nur für repräsentative Zwecke verwendet werden. Auch sind andere Konfigurationen der Komponenten in dem Datenfluss 520 denkbar, und das in Fig. 5 dargestellte Beispiel soll im Hinblick auf die vorliegende Erfindung keine Einschränkung der Konfiguration bedeuten. Die Positionen 530 geben Auskunft über die Ursprungsposition der Komponenten in dem Datenfluss 520.
Bezugnehmend auf Fig. 6; ein Blockdiagramm zeigt eine Speicherabbildung eines Realmodus-Speichers in einer 80 × 86- Maschine, wie sie in der vorliegenden Erfindung verwendet wird. Bei praktisch allen PCs, die heute eingesetzt werden, ist eine Realmodusadressierung von Position Null (0000:0000) bis 640k (AOOO:0000) möglich. Das Diagramm zeigt, dass sich die BCL, die aus der MBR und der RDTIO bestehen, im unteren Speicher lokalisieren und RCP.SYS an der Speicherstelle 0000:7COO laden. Hierbei handelt es sich tatsächlich um eine vorher definierte Stelle, wo der Code vom BIOS beim Booten von einer Diskette geladen wird. Die RCP lädt dann alle benötigten Module in die höchstmöglichen Adressen. Dies geschieht deswegen, damit die Boot-Blöcke für das vom Server zu sendende Betriebssystem in den unteren Speicher geladen werden können, und zwar an die vom Betriebssystem geforderte Stelle. Wenn alle Treiber geladen und initialisiert sind, gibt RCP die Steuerung an RIPLMF im oberen Speicher ab und wird nicht länger benötigt. RIPLMF lädt Boot.Sys für das Betriebssystem, das der zugewiesenen LAA für alle RCB-Codes im unteren Speicher entspricht. Dies ist möglich, weil alle DOS- Emulationen, die von RCP durchgeführt wurden, nicht mehr benötigt werden. RIPLMF dient sowohl als Anwendungsprogramm wie auch als Gerätetreiber nach dem NDIS-Protokoll. Damit ist gewährleistet, dass die DOS-Emulation nicht notwendig ist.
Fig. 7 zeigt den Vorgang an der Workstation. Der erste Schritt ist der Power-On-Self-Test (POST) des Geräts (710). Das Gerät wird eingeschaltet und durchläuft seinen normalen Selbsttest nach dem Einschalten, bevor die Steuerung an den Boot-Manager weitergegeben wird. Anschließend versucht der DMAC-Prozess, mit dem steuernden Server für die LAA zu kommunizieren. Wenn Kontakt zu dem steuernden Server hergestellt wird, führt das zum Empfang der LAA (730). Wenn kein Kontakt zu dem Server hergestellt werden kann, wird der Prozess an Schritt 760 fortgesetzt, um einen auf der alten UAA basierenden Boot- Server zu finden. Wenn eine neue LAA zugewiesen wird, ersetzt diese LAA die alte UAA (MAC-Adresse) (740). Der Client fragt nach dem Boot-Server mit der neuen LAA (760). Der Boot-Vorgang wird dann mit der neuen LAA fortgesetzt (770).
Fig. 8 beschreibt den Vorgang am Server. Zuerst empfängt DMAC die MAC-Adresse, auch UAA genannt, von der Workstation (810). Die DMAC stellt fest, ob es sich um das erste Booten dieser UAA handelt (820). Wenn dies der Fall ist, durchläuft die DMAC eine Initialisierungsroutine (825). Zweck dieses Initialisierungs-Skripts wäre es, alle Server in dem Netzwerk darüber zu informieren, dass sich der Workstation-Computer im System befindet und bald booten wird. Zweitens wird, wenn die Workstation bereits vorher gebootet wurde, die DMAC die Frame- und Query-spezifischen Server analysieren, welche die Boot- Anforderung abwickeln können. Anschließend sendet die DMAC eine spezifische LAA an die Workstation. Diese LAA wurde vom Administrator zugewiesen. Der Administrator kann die LAA fest in einer Tabelle oder flexibel in einem Pool zuweisen. Erfolgt die Zuweisung in einem Pool, erhalten eintreffende UAAs in einem bestimmten Bereich eine LAA in einem vom Administrator ausgewählten Bereich zugewiesen. Wenn es sich nicht um den erstmaligen Boot handelt, wird die DMAC versuchen, die UAA mit der LAA oder den Bereichen der LAA zu vergleichen, die sich in dem Server befinden (830). Die UAA-Adresse für die Workstation muss einer LAA oder einem Bereich von LAAs entsprechen, der vom Administrator ausgewählt wurde. Wenn keine Übereinstimmung gefunden wird, wird die Anforderung ignoriert (835). Wenn eine Übereinstimmung gefunden wird, wird die LAA zur Workstation übertragen und der Client-Prozess wird entsprechend Fig. 7 fortgesetzt (840).
Angesichts dieser ausführlichen Beschreibung dürften die Vorteile der vorliegenden Erfindung klar geworden sein. Die Beschreibung der vorliegenden Erfindung erfolgte im Hinblick auf eine anschauliche Darstellung der Erfindung, ist jedoch weder erschöpfend noch beschränkt sie sich auf die Erfindung in der dargestellten Form. Einem Fachmann mit den üblichen Kenntnissen dürfte klar sein, dass viele Änderungen daran vorgenommen werden können. Das Ausführungsbeispiel wurde ausgewählt und beschrieben, um das Prinzip der Erfindung sowie ihre praktische Anwendung darzustellen und damit für Personen mit dem üblichen Fachwissen die Erfindung verständlich wird, so dass verschiedene Ausgestaltungen mit unterschiedlichen Änderungen daran vorgenommen werden können, die für den jeweils vorgesehenen Zweck geeignet sind.

Claims (6)

1. Eine Methode zum Booten einer oder mehrerer Workstation- Computer von einem oder mehreren Server-Computern, folgende Schritte umfassend:
Senden einer ersten Anforderung einer Locally Administered Address von der Workstation an einen Server;
Empfangen der Locally Administered Address von dem Server an der Workstation;
Senden einer zweiten Anforderung mindestens eines Programms an den Server;
Empfangen mindestens eines, an die Locally Administered Address gerichteten Programms vom Server, in Antwort auf die genannte zweite Anforderung;
Booten der genannten Workstation aus dem genannten Programm.
2. Eine programmierbare Vorrichtung, die dem User der Workstation bereits ausgewählte Möglichkeiten zum Booten einer Workstation präsentiert, umfassend
programmierbare Hardware, umfassend
mindestens einen Server-Computer; und
eine Vielzahl von Workstation-Computern;
eine Vielzahl von Netz-Interface-Karten, die mit der genannten programmierbaren Hardware verbunden sind;
ein Netzwerk, das den genannten Server-Computer und die genannten Workstation-Computer miteinander verbindet;
ein erstes Programm, das auf den genannten Workstation- Computern installiert ist;
ein zweites Programm, das auf dem genannten Server- Computer installiert ist, mit dem eine oder mehrere Locally Administered Adresses in Antwort auf eine oder mehrere Anforderungen von einem oder mehreren Workstation-Computern zugewiesen werden;
eine Vielzahl von Betriebssystemen, die auf den genannten Server-Computern installiert sind;
bei der mindestens einer der genannten Workstation- Computer von dem genannten ersten Programm angewiesen wird, eine erste Anforderung an den genannten Server- Computer zu senden;
wobei in Antwort auf die genannte erste Anforderung der genannte Server-Computer eine Locally Administered Address an den genannten Workstation-Computer sendet;
wobei in Antwort auf den Empfang der genannten Locally Administered Address der genannte Workstation-Computer von dem genannten ersten Programm angewiesen wird, eine zweite Anforderung zu senden;
wobei in Antwort auf die genannte zweite Anforderung der genannte Server-Computer ein Betriebssystem, das der genannten Locally Administered Address entspricht, an die genannte Workstation sendet.
3. Ein computerlesbarer Speicher, der einen ersten Computer veranlasst, einer Vielzahl von zweiten Computern ein Menü zu präsentieren, folgendes umfassend:
ein erstes computerlesbares Speichermedium;
ein in dem genannten Speichermedium gespeichertes Computerprogramm;
das Speichermedium, das von dem genannten Computerprogramm so konfiguriert wurde, veranlasst den ersten Computer, in Antwort auf eine Anforderung von mindestens einem zweiten Computer, eine Locally Administered Address an den genannten zweiten Computer zu senden;
und das, in Antwort auf eine Anforderung von dem genannten zweiten Computer, den ersten Computer veranlasst, an den genannten zweiten Computer ein Programm zu übersenden, das an die genannte Locally Administered Address adressiert ist.
4. Ein computerimplementierter Prozess zum Booten eines Workstation-Computers von einem Server-Computer, umfassend:
Verwenden eines ersten Computers, der die folgende Reihe von Schritten ausführt:
Einschalten des ersten Computers;
Übernahme der Steuerung des ersten Computers mit Hilfe eines ersten Programms;
Ausführen des ersten Programms, ohne Betriebssystem, um mit einem Netzserver zu kommunizieren;
Übertragung einer ersten Anforderung an einen zweiten Computer;
Empfangen einer Locally Administered Address von einem zweiten Computer;
in Antwort auf den Empfang der genannten Locally Administered Address, Anfordern eines Boot- Programms;
Empfangen eines Boot-Programms entsprechend der Locally Administered Address;
Booten des ersten Computers;
Verwenden eines zweiten Computers, der die folgende Reihe von Schritten ausführt:
in Antwort auf die erste Anforderung von dem ersten Computer, Senden einer Locally Administered Address an den ersten Computer; und
in Antwort auf die genannte zweite Anforderung von dem ersten Computer, Senden eines Boot-Programms, entsprechend der Locally Administered Address, an den ersten Computer.
5. Eine Methode zur Verwaltung eines Server-Computers, wobei das Booten des Client-Computers mit einer Universally Administered Address durch Zuweisen einer Locally Administered Address an den Client-Computer stattfindet, wobei die Methode die folgenden computerimplementierten Schritte umfasst:
Ausführen von Befehlen aus dem ersten Speicher eines Client-Computers, aus dem zweiten Speicher eines Client- Computers einen Boot Code Loader zu laden, wobei der erste Speicher eines Client-Computers ein BIOS ROM und der zweite Speicher eines Client-Computers ein nicht flüchtiger Schreib-/Lesespeicher ist;
Ausführen des Boot Code Loaders, um ein Steuerprogramm aus dem zweiten Speicher des Client-Computers zu laden;
Ausführen des Steuerprogramms, um einen Satz von Programmen aus dem zweiten Speicher des Client-Computers zu laden, ohne dass ein Betriebssystem geladen wird;
Ausführen des Programmsatzes, um eine erste Meldung an den Netz-Server zu senden;
in Antwort auf die genannte erste Meldung, Abrufen einer Locally Administered Address von dem Netz-Server;
Ausführen des Programmsatzes, um eine zweite Meldung an den Netz-Server zu senden;
in Antwort auf die genannte zweite Meldung, Empfangen mindestens eines Programms von dem Netz-Server; und
Ausführen des Programms auf dem Workstation-Computer;
wodurch der Workstation-Computer von dem Programm gebootet wird.
6. Ein Computerprogrammprodukt auf einem computerlesbaren Medium, zum Booten eines Client-Computers ohne Betriebssystem durch Ersetzen der Universally Administered Address des Client-Computers durch eine Locally Administered Address, wobei das Computerprogramm folgendes umfasst:
erste Befehle von einem ersten Speicher, um einen Satz von Programmen aus einem zweiten Speicher zu laden, wobei der erste Speicher ein BIOS ROM und der zweite Speicher ein nicht flüchtiger Schreib-/Lesespeicher ist;
zweite Befehle, um eine erste Anforderung einer Locally Administered Address an einen Netz-Server zu senden;
in Antwort auf den Empfang der genannten Locally Administered Address, dritte Befehle, um eine zweite Anforderung eines zweiten Programmsatzes, der an die genannte Locally Administered Address adressiert ist, zu übermitteln; und
in Antwort auf den Empfang des genannten zweiten Programmsatzes, vierte Befehle zum Einleiten der Ausführung des zweiten Programmsatzes;
wobei der genannte zweite Programmsatz ein Betriebssystem umfasst.
DE10047266A 1999-09-30 2000-09-23 Verfahren und Vorrichtung zum Booten einer Workstation von einem Server Expired - Fee Related DE10047266B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/409,592 1999-09-30
US09/409,592 US6487601B1 (en) 1999-09-30 1999-09-30 Dynamic mac allocation and configuration

Publications (2)

Publication Number Publication Date
DE10047266A1 true DE10047266A1 (de) 2001-04-05
DE10047266B4 DE10047266B4 (de) 2007-09-06

Family

ID=23621166

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10047266A Expired - Fee Related DE10047266B4 (de) 1999-09-30 2000-09-23 Verfahren und Vorrichtung zum Booten einer Workstation von einem Server

Country Status (2)

Country Link
US (1) US6487601B1 (de)
DE (1) DE10047266B4 (de)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10467998B2 (en) 2015-09-29 2019-11-05 Amper Music, Inc. Automated music composition and generation system for spotting digital media objects and event markers using emotion-type, style-type, timing-type and accent-type musical experience descriptors that characterize the digital music to be automatically composed and generated by the system
US10854180B2 (en) 2015-09-29 2020-12-01 Amper Music, Inc. Method of and system for controlling the qualities of musical energy embodied in and expressed by digital music to be automatically composed and generated by an automated music composition and generation engine
US10964299B1 (en) 2019-10-15 2021-03-30 Shutterstock, Inc. Method of and system for automatically generating digital performances of music compositions using notes selected from virtual musical instruments based on the music-theoretic states of the music compositions
US11024275B2 (en) 2019-10-15 2021-06-01 Shutterstock, Inc. Method of digitally performing a music composition using virtual musical instruments having performance logic executing within a virtual musical instrument (VMI) library management system
US11037538B2 (en) 2019-10-15 2021-06-15 Shutterstock, Inc. Method of and system for automated musical arrangement and musical instrument performance style transformation supported within an automated music performance system

Families Citing this family (163)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1085396A1 (de) * 1999-09-17 2001-03-21 Hewlett-Packard Company Betrieb von gesicherten Zustand in einer Computerplattform
US7089300B1 (en) * 1999-10-18 2006-08-08 Apple Computer, Inc. Method and apparatus for administering the operating system of a net-booted environment
US6751658B1 (en) 1999-10-18 2004-06-15 Apple Computer, Inc. Providing a reliable operating system for clients of a net-booted environment
US6711688B1 (en) * 1999-11-30 2004-03-23 International Business Machines Corporation Pre-execution logon (PEL)
US6701357B1 (en) * 2000-04-19 2004-03-02 Toshiba America Information Systems, Inc. Server appliance
US7949564B1 (en) 2000-05-31 2011-05-24 Western Digital Technologies, Inc. System and method of receiving advertisement content from advertisers and distributing the advertising content to a network of personal computers
US7150036B1 (en) 2000-07-18 2006-12-12 Western Digital Ventures, Inc. Method of and personal computer for displaying content received from a content delivery server using a disk drive which includes a network address for the content delivery server and a server-contacting program
US6973495B1 (en) 2000-07-18 2005-12-06 Western Digital Ventures, Inc. Disk drive and method of manufacturing same including a network address and server-contacting program
US6983316B1 (en) * 2000-07-18 2006-01-03 Western Digital Ventures, Inc. Method of and content delivery server for delivering content to a personal computer having a disk drive which includes a network address for the content delivery server and a server-contacting program
US7111054B2 (en) * 2000-08-28 2006-09-19 2Wire, Inc. Customer premises equipment autoconfiguration
US6799262B1 (en) * 2000-09-28 2004-09-28 International Business Machines Corporation Apparatus and method for creating instruction groups for explicity parallel architectures
US6912647B1 (en) 2000-09-28 2005-06-28 International Business Machines Corportion Apparatus and method for creating instruction bundles in an explicitly parallel architecture
US6779106B1 (en) 2000-09-28 2004-08-17 International Business Machines Corporation Apparatus and method for an enhanced integer divide in an IA64 architecture
US6886094B1 (en) 2000-09-28 2005-04-26 International Business Machines Corporation Apparatus and method for detecting and handling exceptions
US6883165B1 (en) 2000-09-28 2005-04-19 International Business Machines Corporation Apparatus and method for avoiding deadlocks in a multithreaded environment
GB2376763B (en) 2001-06-19 2004-12-15 Hewlett Packard Co Demonstrating integrity of a compartment of a compartmented operating system
GB0102518D0 (en) * 2001-01-31 2001-03-21 Hewlett Packard Co Trusted operating system
GB2372592B (en) 2001-02-23 2005-03-30 Hewlett Packard Co Information system
GB2372595A (en) 2001-02-23 2002-08-28 Hewlett Packard Co Method of and apparatus for ascertaining the status of a data processing environment.
GB2376762A (en) * 2001-06-19 2002-12-24 Hewlett Packard Co Renting a computing environment on a trusted computing platform
GB2376764B (en) * 2001-06-19 2004-12-29 Hewlett Packard Co Multiple trusted computing environments
GB0114898D0 (en) * 2001-06-19 2001-08-08 Hewlett Packard Co Interaction with electronic services and markets
FI20011881A (fi) * 2001-09-25 2003-03-26 Nokia Corp Menetelmä tukiaseman hajautetun prosessoriarkkitehtuurin käynnistämiseksi ja tukiasema
GB2382419B (en) 2001-11-22 2005-12-14 Hewlett Packard Co Apparatus and method for creating a trusted environment
US7085921B2 (en) * 2001-12-31 2006-08-01 Hewlett-Packard Development Company, L.P. Embedded OS PXE server
CN1180575C (zh) * 2002-03-28 2004-12-15 华为技术有限公司 一种局域网交换设备的集中管理方法
US7730155B1 (en) 2002-10-01 2010-06-01 Apple Inc. Method and apparatus for dynamically locating resources
US7457300B2 (en) 2003-01-21 2008-11-25 Telefonaktiebolaget L M Ericsson (Publ) Ethernet address management system
US20050138346A1 (en) * 2003-08-28 2005-06-23 Cauthron David M. iSCSI boot drive system and method for a scalable internet engine
US7774774B1 (en) 2003-10-22 2010-08-10 Apple Inc. Software setup system
JP4574366B2 (ja) * 2004-03-30 2010-11-04 要二 竹内 Ip電話端末として機能させるプログラムが記録されたcd−rom、管理サーバ、運用サーバ、及びip電話端末登録方法
JP4732508B2 (ja) 2005-03-22 2011-07-27 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. トラステッドデータのための方法、デバイス、およびデータ構造体
US7376823B2 (en) * 2005-04-28 2008-05-20 International Business Machines Corporation Method and system for automatic detection, inventory, and operating system deployment on network boot capable computers
US7447806B2 (en) * 2005-09-22 2008-11-04 International Business Machines Corporation Method and apparatus for centralization configuration of data processing systems
US8190868B2 (en) 2006-08-07 2012-05-29 Webroot Inc. Malware management through kernel detection
US7769992B2 (en) * 2006-08-18 2010-08-03 Webroot Software, Inc. File manipulation during early boot time
CN100407685C (zh) * 2006-08-18 2008-07-30 华为技术有限公司 通信设备获取mac地址的方法以及通信系统
US8554868B2 (en) 2007-01-05 2013-10-08 Yahoo! Inc. Simultaneous sharing communication interface
US20090157858A1 (en) * 2007-12-15 2009-06-18 International Business Machines Corporation Managing Virtual Addresses Of Blade Servers In A Data Center
US7930370B2 (en) * 2007-12-31 2011-04-19 Intel Corporation Method and system for remote configuration of managed nodes
US7987247B2 (en) * 2008-04-28 2011-07-26 Kmc Controls, Inc. BACnet protocol MS/TP automatic MAC addressing
EP2134036A1 (de) * 2008-06-12 2009-12-16 THOMSON Licensing System und Verfahren zur Zuweisung von Adressen in einem Netzwerk mit einem Schalter
US8090616B2 (en) * 2008-09-08 2012-01-03 Proctor Jr James Arthur Visual identification information used as confirmation in a wireless communication
US11489857B2 (en) 2009-04-21 2022-11-01 Webroot Inc. System and method for developing a risk profile for an internet resource
US8443110B2 (en) 2011-02-28 2013-05-14 Honeywell International Inc. Approach for discovering devices on a common bus without direct communication
EP3288275B1 (de) 2011-07-12 2021-12-01 Snap Inc. Systeme und vorrichtungen zur bereitstellung von funktionen zur editierung audiovisueller inhalt
US20130086371A1 (en) * 2011-09-30 2013-04-04 Pradeep Bisht Method for device-less option-rom bios load and execution
US11734712B2 (en) 2012-02-24 2023-08-22 Foursquare Labs, Inc. Attributing in-store visits to media consumption based on data collected from user devices
US8972357B2 (en) 2012-02-24 2015-03-03 Placed, Inc. System and method for data collection to validate location data
WO2013166588A1 (en) 2012-05-08 2013-11-14 Bitstrips Inc. System and method for adaptable avatars
US9542172B2 (en) 2013-02-05 2017-01-10 Apple Inc. Automatic updating of applications
US9361127B2 (en) * 2013-07-19 2016-06-07 Dell Products L.P. Switching between network interface cards during different stages of operation
US9628950B1 (en) 2014-01-12 2017-04-18 Investment Asset Holdings Llc Location-based messaging
US9396354B1 (en) 2014-05-28 2016-07-19 Snapchat, Inc. Apparatus and method for automated privacy protection in distributed images
EP2953085A1 (de) 2014-06-05 2015-12-09 Mobli Technologies 2010 Ltd. Web-dokument verbesserung
US9113301B1 (en) 2014-06-13 2015-08-18 Snapchat, Inc. Geo-location based event gallery
US9225897B1 (en) 2014-07-07 2015-12-29 Snapchat, Inc. Apparatus and method for supplying content aware photo filters
US10423983B2 (en) 2014-09-16 2019-09-24 Snap Inc. Determining targeting information based on a predictive targeting model
US10824654B2 (en) 2014-09-18 2020-11-03 Snap Inc. Geolocation-based pictographs
US11216869B2 (en) 2014-09-23 2022-01-04 Snap Inc. User interface to augment an image using geolocation
US9015285B1 (en) 2014-11-12 2015-04-21 Snapchat, Inc. User interface for accessing media at a geographic location
US10311916B2 (en) 2014-12-19 2019-06-04 Snap Inc. Gallery of videos set to an audio time line
US9385983B1 (en) 2014-12-19 2016-07-05 Snapchat, Inc. Gallery of messages from individuals with a shared interest
US9754355B2 (en) 2015-01-09 2017-09-05 Snap Inc. Object recognition based photo filters
US11388226B1 (en) 2015-01-13 2022-07-12 Snap Inc. Guided personal identity based actions
US10133705B1 (en) 2015-01-19 2018-11-20 Snap Inc. Multichannel system
US9521515B2 (en) 2015-01-26 2016-12-13 Mobli Technologies 2010 Ltd. Content request by location
US10223397B1 (en) 2015-03-13 2019-03-05 Snap Inc. Social graph based co-location of network users
KR20230054766A (ko) 2015-03-18 2023-04-25 스냅 인코포레이티드 지오-펜스 인가 프로비저닝
US9692967B1 (en) 2015-03-23 2017-06-27 Snap Inc. Systems and methods for reducing boot time and power consumption in camera systems
US9881094B2 (en) 2015-05-05 2018-01-30 Snap Inc. Systems and methods for automated local story generation and curation
US10135949B1 (en) 2015-05-05 2018-11-20 Snap Inc. Systems and methods for story and sub-story navigation
US10993069B2 (en) 2015-07-16 2021-04-27 Snap Inc. Dynamically adaptive media content delivery
US10817898B2 (en) 2015-08-13 2020-10-27 Placed, Llc Determining exposures to content presented by physical objects
US9652896B1 (en) 2015-10-30 2017-05-16 Snap Inc. Image based tracking in augmented reality systems
US10474321B2 (en) 2015-11-30 2019-11-12 Snap Inc. Network resource location linking and visual content sharing
US9984499B1 (en) 2015-11-30 2018-05-29 Snap Inc. Image and point cloud based tracking and in augmented reality systems
US10354425B2 (en) 2015-12-18 2019-07-16 Snap Inc. Method and system for providing context relevant media augmentation
US11023514B2 (en) 2016-02-26 2021-06-01 Snap Inc. Methods and systems for generation, curation, and presentation of media collections
US10285001B2 (en) 2016-02-26 2019-05-07 Snap Inc. Generation, curation, and presentation of media collections
US10679389B2 (en) 2016-02-26 2020-06-09 Snap Inc. Methods and systems for generation, curation, and presentation of media collections
US10339365B2 (en) 2016-03-31 2019-07-02 Snap Inc. Automated avatar generation
US9681265B1 (en) 2016-06-28 2017-06-13 Snap Inc. System to track engagement of media items
US10430838B1 (en) 2016-06-28 2019-10-01 Snap Inc. Methods and systems for generation, curation, and presentation of media collections with automated advertising
US10387514B1 (en) 2016-06-30 2019-08-20 Snap Inc. Automated content curation and communication
US10855632B2 (en) 2016-07-19 2020-12-01 Snap Inc. Displaying customized electronic messaging graphics
US10410367B2 (en) 2016-08-30 2019-09-10 C3D Augmented Reality Solutions Ltd. Systems and methods for simulatenous localization and mapping
US10432559B2 (en) 2016-10-24 2019-10-01 Snap Inc. Generating and displaying customized avatars in electronic messages
KR102257909B1 (ko) 2016-11-07 2021-05-28 스냅 인코포레이티드 이미지 변경자들의 선택적 식별 및 순서화
US10203855B2 (en) 2016-12-09 2019-02-12 Snap Inc. Customized user-controlled media overlays
US11616745B2 (en) 2017-01-09 2023-03-28 Snap Inc. Contextual generation and selection of customized media content
US10454857B1 (en) 2017-01-23 2019-10-22 Snap Inc. Customized digital avatar accessories
US10915911B2 (en) 2017-02-03 2021-02-09 Snap Inc. System to determine a price-schedule to distribute media content
US10319149B1 (en) 2017-02-17 2019-06-11 Snap Inc. Augmented reality anamorphosis system
US11250075B1 (en) 2017-02-17 2022-02-15 Snap Inc. Searching social media content
US10074381B1 (en) 2017-02-20 2018-09-11 Snap Inc. Augmented reality speech balloon system
US10565795B2 (en) 2017-03-06 2020-02-18 Snap Inc. Virtual vision system
US10523625B1 (en) 2017-03-09 2019-12-31 Snap Inc. Restricted group content collection
US10581782B2 (en) 2017-03-27 2020-03-03 Snap Inc. Generating a stitched data stream
US10582277B2 (en) 2017-03-27 2020-03-03 Snap Inc. Generating a stitched data stream
US11170393B1 (en) 2017-04-11 2021-11-09 Snap Inc. System to calculate an engagement score of location based media content
US10387730B1 (en) 2017-04-20 2019-08-20 Snap Inc. Augmented reality typography personalization system
US10212541B1 (en) 2017-04-27 2019-02-19 Snap Inc. Selective location-based identity communication
US11893647B2 (en) 2017-04-27 2024-02-06 Snap Inc. Location-based virtual avatars
KR20230048445A (ko) 2017-04-27 2023-04-11 스냅 인코포레이티드 소셜 미디어 플랫폼상의 사용자 위치의 지역적 레벨 표현
US10467147B1 (en) 2017-04-28 2019-11-05 Snap Inc. Precaching unlockable data elements
US10803120B1 (en) 2017-05-31 2020-10-13 Snap Inc. Geolocation based playlists
US11475254B1 (en) 2017-09-08 2022-10-18 Snap Inc. Multimodal entity identification
US10740974B1 (en) 2017-09-15 2020-08-11 Snap Inc. Augmented reality system
US10499191B1 (en) 2017-10-09 2019-12-03 Snap Inc. Context sensitive presentation of content
US10573043B2 (en) 2017-10-30 2020-02-25 Snap Inc. Mobile-based cartographic control of display content
US11265273B1 (en) 2017-12-01 2022-03-01 Snap, Inc. Dynamic media overlay with smart widget
US11017173B1 (en) 2017-12-22 2021-05-25 Snap Inc. Named entity recognition visual context and caption data
US10678818B2 (en) 2018-01-03 2020-06-09 Snap Inc. Tag distribution visualization system
US11507614B1 (en) 2018-02-13 2022-11-22 Snap Inc. Icon based tagging
US10885136B1 (en) 2018-02-28 2021-01-05 Snap Inc. Audience filtering system
US10979752B1 (en) 2018-02-28 2021-04-13 Snap Inc. Generating media content items based on location information
US10327096B1 (en) 2018-03-06 2019-06-18 Snap Inc. Geo-fence selection system
KR102494540B1 (ko) 2018-03-14 2023-02-06 스냅 인코포레이티드 위치 정보에 기초한 수집가능한 항목들의 생성
US11163941B1 (en) 2018-03-30 2021-11-02 Snap Inc. Annotating a collection of media content items
US10219111B1 (en) 2018-04-18 2019-02-26 Snap Inc. Visitation tracking system
US10896197B1 (en) 2018-05-22 2021-01-19 Snap Inc. Event detection system
US10679393B2 (en) 2018-07-24 2020-06-09 Snap Inc. Conditional modification of augmented reality object
US10997760B2 (en) 2018-08-31 2021-05-04 Snap Inc. Augmented reality anthropomorphization system
US10698583B2 (en) 2018-09-28 2020-06-30 Snap Inc. Collaborative achievement interface
US10778623B1 (en) 2018-10-31 2020-09-15 Snap Inc. Messaging and gaming applications communication platform
US10939236B1 (en) 2018-11-30 2021-03-02 Snap Inc. Position service to determine relative position to map features
US11199957B1 (en) 2018-11-30 2021-12-14 Snap Inc. Generating customized avatars based on location information
US11032670B1 (en) 2019-01-14 2021-06-08 Snap Inc. Destination sharing in location sharing system
US10939246B1 (en) 2019-01-16 2021-03-02 Snap Inc. Location-based context information sharing in a messaging system
US11294936B1 (en) 2019-01-30 2022-04-05 Snap Inc. Adaptive spatial density based clustering
US10936066B1 (en) 2019-02-13 2021-03-02 Snap Inc. Sleep detection in a location sharing system
US10838599B2 (en) 2019-02-25 2020-11-17 Snap Inc. Custom media overlay system
US10964082B2 (en) 2019-02-26 2021-03-30 Snap Inc. Avatar based on weather
US10852918B1 (en) 2019-03-08 2020-12-01 Snap Inc. Contextual information in chat
US11868414B1 (en) 2019-03-14 2024-01-09 Snap Inc. Graph-based prediction for contact suggestion in a location sharing system
US11852554B1 (en) 2019-03-21 2023-12-26 Snap Inc. Barometer calibration in a location sharing system
US11249614B2 (en) 2019-03-28 2022-02-15 Snap Inc. Generating personalized map interface with enhanced icons
US10810782B1 (en) 2019-04-01 2020-10-20 Snap Inc. Semantic texture mapping system
US10582453B1 (en) 2019-05-30 2020-03-03 Snap Inc. Wearable device location systems architecture
US10560898B1 (en) 2019-05-30 2020-02-11 Snap Inc. Wearable device location systems
US10893385B1 (en) 2019-06-07 2021-01-12 Snap Inc. Detection of a physical collision between two client devices in a location sharing system
US11307747B2 (en) 2019-07-11 2022-04-19 Snap Inc. Edge gesture interface with smart interactions
US11821742B2 (en) 2019-09-26 2023-11-21 Snap Inc. Travel based notifications
US11218838B2 (en) 2019-10-31 2022-01-04 Snap Inc. Focused map-based context information surfacing
US11128715B1 (en) 2019-12-30 2021-09-21 Snap Inc. Physical friend proximity in chat
US11429618B2 (en) 2019-12-30 2022-08-30 Snap Inc. Surfacing augmented reality objects
US11169658B2 (en) 2019-12-31 2021-11-09 Snap Inc. Combined map icon with action indicator
US11343323B2 (en) 2019-12-31 2022-05-24 Snap Inc. Augmented reality objects registry
US11228551B1 (en) 2020-02-12 2022-01-18 Snap Inc. Multiple gateway message exchange
US11516167B2 (en) 2020-03-05 2022-11-29 Snap Inc. Storing data based on device location
US11619501B2 (en) 2020-03-11 2023-04-04 Snap Inc. Avatar based on trip
US11430091B2 (en) 2020-03-27 2022-08-30 Snap Inc. Location mapping for large scale augmented-reality
US10956743B1 (en) 2020-03-27 2021-03-23 Snap Inc. Shared augmented reality system
US11503432B2 (en) 2020-06-15 2022-11-15 Snap Inc. Scalable real-time location sharing framework
US11290851B2 (en) 2020-06-15 2022-03-29 Snap Inc. Location sharing using offline and online objects
US11483267B2 (en) 2020-06-15 2022-10-25 Snap Inc. Location sharing using different rate-limited links
US11314776B2 (en) 2020-06-15 2022-04-26 Snap Inc. Location sharing using friend list versions
US11308327B2 (en) 2020-06-29 2022-04-19 Snap Inc. Providing travel-based augmented reality content with a captured image
US11349797B2 (en) 2020-08-31 2022-05-31 Snap Inc. Co-location connection service
US11606756B2 (en) 2021-03-29 2023-03-14 Snap Inc. Scheduling requests for location data
US11645324B2 (en) 2021-03-31 2023-05-09 Snap Inc. Location-based timeline media content system
US11829834B2 (en) 2021-10-29 2023-11-28 Snap Inc. Extended QR code

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2682786B1 (fr) * 1991-10-17 1993-12-10 Bull Sa Telechargement d'un systeme d'exploitation par un reseau.
US5436905A (en) 1994-05-16 1995-07-25 Industrial Technology Research Institute Group randomly addressed polling MAC protocol for wireless data
US5675800A (en) * 1994-11-30 1997-10-07 Digital Equipment Corporation Method and apparatus for remotely booting a computer system
US5729542A (en) 1995-06-28 1998-03-17 Motorola, Inc. Method and apparatus for communication system access
GB2328046B (en) * 1997-08-08 2002-06-05 Ibm Data processing network
US5974547A (en) * 1998-03-20 1999-10-26 3Com Corporation Technique for reliable network booting of an operating system to a client computer
US6356965B1 (en) * 1998-09-08 2002-03-12 Compaq Computer Corporation Hotkey for network service boot
US6292890B1 (en) * 1998-09-29 2001-09-18 Compaq Computer Corporation Computer system with dynamically configurable boot order

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11037540B2 (en) 2015-09-29 2021-06-15 Shutterstock, Inc. Automated music composition and generation systems, engines and methods employing parameter mapping configurations to enable automated music composition and generation
US10854180B2 (en) 2015-09-29 2020-12-01 Amper Music, Inc. Method of and system for controlling the qualities of musical energy embodied in and expressed by digital music to be automatically composed and generated by an automated music composition and generation engine
US10467998B2 (en) 2015-09-29 2019-11-05 Amper Music, Inc. Automated music composition and generation system for spotting digital media objects and event markers using emotion-type, style-type, timing-type and accent-type musical experience descriptors that characterize the digital music to be automatically composed and generated by the system
US11037539B2 (en) 2015-09-29 2021-06-15 Shutterstock, Inc. Autonomous music composition and performance system employing real-time analysis of a musical performance to automatically compose and perform music to accompany the musical performance
US11011144B2 (en) 2015-09-29 2021-05-18 Shutterstock, Inc. Automated music composition and generation system supporting automated generation of musical kernels for use in replicating future music compositions and production environments
US11017750B2 (en) 2015-09-29 2021-05-25 Shutterstock, Inc. Method of automatically confirming the uniqueness of digital pieces of music produced by an automated music composition and generation system while satisfying the creative intentions of system users
US11657787B2 (en) 2015-09-29 2023-05-23 Shutterstock, Inc. Method of and system for automatically generating music compositions and productions using lyrical input and music experience descriptors
US11030984B2 (en) 2015-09-29 2021-06-08 Shutterstock, Inc. Method of scoring digital media objects using musical experience descriptors to indicate what, where and when musical events should appear in pieces of digital music automatically composed and generated by an automated music composition and generation system
US11776518B2 (en) 2015-09-29 2023-10-03 Shutterstock, Inc. Automated music composition and generation system employing virtual musical instrument libraries for producing notes contained in the digital pieces of automatically composed music
US10672371B2 (en) 2015-09-29 2020-06-02 Amper Music, Inc. Method of and system for spotting digital media objects and event markers using musical experience descriptors to characterize digital music to be automatically composed and generated by an automated music composition and generation engine
US11651757B2 (en) 2015-09-29 2023-05-16 Shutterstock, Inc. Automated music composition and generation system driven by lyrical input
US11037541B2 (en) 2015-09-29 2021-06-15 Shutterstock, Inc. Method of composing a piece of digital music using musical experience descriptors to indicate what, when and how musical events should appear in the piece of digital music automatically composed and generated by an automated music composition and generation system
US11430419B2 (en) 2015-09-29 2022-08-30 Shutterstock, Inc. Automatically managing the musical tastes and preferences of a population of users requesting digital pieces of music automatically composed and generated by an automated music composition and generation system
US11430418B2 (en) 2015-09-29 2022-08-30 Shutterstock, Inc. Automatically managing the musical tastes and preferences of system users based on user feedback and autonomous analysis of music automatically composed and generated by an automated music composition and generation system
US11468871B2 (en) 2015-09-29 2022-10-11 Shutterstock, Inc. Automated music composition and generation system employing an instrument selector for automatically selecting virtual instruments from a library of virtual instruments to perform the notes of the composed piece of digital music
US10964299B1 (en) 2019-10-15 2021-03-30 Shutterstock, Inc. Method of and system for automatically generating digital performances of music compositions using notes selected from virtual musical instruments based on the music-theoretic states of the music compositions
US11024275B2 (en) 2019-10-15 2021-06-01 Shutterstock, Inc. Method of digitally performing a music composition using virtual musical instruments having performance logic executing within a virtual musical instrument (VMI) library management system
US11037538B2 (en) 2019-10-15 2021-06-15 Shutterstock, Inc. Method of and system for automated musical arrangement and musical instrument performance style transformation supported within an automated music performance system

Also Published As

Publication number Publication date
US6487601B1 (en) 2002-11-26
DE10047266B4 (de) 2007-09-06

Similar Documents

Publication Publication Date Title
DE10047266B4 (de) Verfahren und Vorrichtung zum Booten einer Workstation von einem Server
DE19655235B4 (de) Verfahren zum Aktualisieren eines Terminal-Betriebssystems eines Terminals und zum Anzeigen von Fensterinformation eines Fensteranwendungsprogramms
DE69430276T2 (de) Socketstruktur für gleichzeitigen Mehrfach-Protokollzugriff
DE69833914T2 (de) Architektur eines Multiprozessorrechners mit mehreren Betriebssysteminstanzen und softwaregesteuerter Betriebsmittelzuteilung
DE112016006080B4 (de) Verwaltung von virtuellen desktopinstanzenpools
DE60212626T2 (de) Endknotenunterteilung mittels lokaler identifikatoren
DE10085374B4 (de) Systemmanagementspeicher für die Systemmanagement-Interrupt-Behandler wird in die Speichersteuereinrichtung integriert, unabhängig vom BIOS und Betriebssystem
DE60313108T2 (de) Verfahren und System zur Steuerung auf PXE basierender Bootentscheidungen von einem Netzwerkstrategieverzeichnis
DE60213606T2 (de) Anwendungsprogrammserver mit einem laufwerkaufteilungsschema zur anpassung der wachstumsgrösse des anwendungsprogramms
EP1899807B1 (de) Verfahren und system zur verteilung von konfigurationen auf clientrechner
DE69735348T2 (de) Skalierbare und erweiterbare Systemverwaltungsarchitektur mit datenlosen Endpunkten
DE102004038649B4 (de) Dauerspeichervorrichtung für Sicherungsprozess-Prüfpunktzustände
DE112021006003T5 (de) Intelligente datenebenenbeschleunigung durch auslagern zu verteilten smart- network-interfaces
DE102007061249B4 (de) Verbesserung der Ferninstallationsleistungsfähigkeit von Managementcontrollern in monolithischen und modularen Systemen
DE112012005209T5 (de) Brückenfunktion zwischen Virtual Machine Monitor und Bare-Metal-Bootvorgang
DE102004027672A1 (de) Speicherplattenarraysystem
DE112008001168T5 (de) System und Verfahren zum gemeinschaftlichen Verwenden eines Druckers
DE60025788T2 (de) Flexibles Mehrzweck-Ein/Ausgabesystem
DE19882975B4 (de) Zugreifen auf eine Nachrichtenaustauscheinheit von einem sekundären Bus aus
DE112021003094T5 (de) System und verfahren zum planen von gemeinsam nutzbaren pcie-endpunktvorrichtungen
DE112017005453T5 (de) Konfiguration verteilter Datenverarbeitungssysteme
DE60122671T2 (de) Anforderungsbedingte dynamische Schnittstellengenerierung
DE60316969T2 (de) One-shot-rdma mit einem 2-bit-zustand
DE60002839T2 (de) Verfahren und vorrichtung zur datenverarbeitung durch einen proxy
DE102007046001A1 (de) System und Verfahren zum dynamischen Laden von Protokolladaptern

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)
R082 Change of representative

Representative=s name: DUSCHER, REINHARD, DIPL.-PHYS. DR.RER.NAT., DE

R081 Change of applicant/patentee

Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, A, US

Free format text: FORMER OWNER: IBM CORP., ARMONK, N.Y., US

Effective date: 20150211

Owner name: SNAPCHAT, INC., VENICE, US

Free format text: FORMER OWNER: IBM CORP., ARMONK, N.Y., US

Effective date: 20150211

R082 Change of representative

Representative=s name: DUSCHER, REINHARD, DIPL.-PHYS. DR.RER.NAT., DE

Effective date: 20150211

Representative=s name: MUELLER-BORE & PARTNER PATENTANWAELTE PARTG MB, DE

Effective date: 20150211

R081 Change of applicant/patentee

Owner name: SNAPCHAT, INC., VENICE, US

Free format text: FORMER OWNER: INTERNATIONAL BUSINESS MACHINES CORPORATION, ARMONK, N.Y., US

R082 Change of representative

Representative=s name: MUELLER-BORE & PARTNER PATENTANWAELTE PARTG MB, DE

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee