-
HINTERGRUND
-
Hochfahren ist der Prozess, der ein Nutzer-Betriebssystem (OS, operating system) wie beispielsweise eine Version von MICROSOFT WINDOWS OS lädt und bereitstellt, wenn der Nutzer ein Computersystem einschaltet. Die Boot-Sequenz ist das anfängliche Set von Arbeitsprozessen, die als Antwort auf das Einschalten des Stroms ausgeführt werden, welches das Nutzer-OS für die Nutzung vorbereitet, einschließlich eines Ladens des Nutzer-OS aus einem beständigen Speicher. In diesem Boot-Prozess wird ein Boot-Programm ausgeführt, um auf das Speichergerät bzw. die Speichergeräte zuzugreifen, von welchem bzw. von welchen das OS und zugehörige Daten geladen werden, und ein Teil des Boot-Prozesses beinhaltet ein Ausführen von Prüfungen, um zu ermitteln, welche Hardwaregeräte des Computersystems verfügbar sind.
-
Die Komplexität des Boot-Prozesses führt zu einer signifikanten Zeitdauer, die für ein Hochfahren derart, dass ein Nutzer das Nutzer-OS bedienen kann, benötigt wird. Ein übermäßig langer Boot-Prozess kann unerwünscht sein. Mehrere Computersysteme, die eine schnellere Boot-Erfahrung bereitstellen, sind verfügbar, aber diese sind üblicherweise nur geeignet, ein eingeschränktes OS zu starten, das für einfache Aufgaben, wie beispielsweise einen Internetzugang bereitzustellen, tauglich ist. Verschiedene Ansätze wurden unternommen, um den Boot-Prozess für ein vollständiges Nutzer-OS zu beschleunigen, einschließlich beispielsweise einem Vor-Abrufen und Cachen bestimmter Dateien.
-
KURZE ZUSAMMENFASSUNG
-
Zusammenfassend stellt ein Aspekt ein Verfahren bereit, aufweisend: Initiieren eines Boot-Prozesses eines Nutzer-Betriebssystems eines Computersystems; Identifizieren eines unkritischen Hardwaregeräte-Sets für ein Starten gemäß dem Nutzer-Betriebssystem; Ausschließen des unkritischen Hardwaregeräts; und Vervollständigen des Boot-Prozesses, um das Nutzer-Betriebssystem bereitzustellen, ohne ein ausgeschlossenes unkritisches Hardwaregerät zu starten.
-
Ein weiterer Aspekt stellt ein System bereit, aufweisend: einen oder mehrere Prozessoren; und einen Speicher in operativer Verbindung mit dem einen oder den mehreren Prozessoren; wobei der eine oder die mehreren Prozessoren in Antwort auf die Ausführung von dem einen oder den mehreren Prozessoren zugänglichen Computerprogramminstruktionen ausgebildet sind zum: Initiieren eines Boot-Prozesses eines Nutzer-Betriebssystems des Systems; Identifizieren eines unkritischen Hardwaregeräte-Sets für ein Starten gemäß dem Nutzer-Betriebssystem; Ausschließen des unkritischen Hardwaregeräts; und Vervollständigen des Boot-Prozesses, um das Nutzer-Betriebssystem bereitzustellen, ohne ein ausgeschlossenes unkritisches Hardwaregerät zu starten.
-
Ein weiterer Aspekt stellt ein Computerprogrammprodukt bereit, aufweisend: ein computerlesbares Speichermedium mit darauf ausgebildetem computerlesbaren Programmcode, wobei der computerlesbare Programmcode aufweist: computerlesbaren Programmcode ausgebildet zum Initiieren eines Boot-Prozesses eines Nutzer-Betriebssystems des Systems; computerlesbaren Programmcode ausgebildet zum Identifizieren eines unkritischen Hardwaregeräte-Sets für ein Starten gemäß dem Nutzer-Betriebssystem; computerlesbaren Programmcode ausgebildet zum Ausschließen des unkritischen Hardwaregeräts; und computerlesbaren Programmcode ausgebildet zum Vervollständigen des Boot-Prozesses, um das Nutzer-Betriebssystem bereitzustellen, ohne ein ausgeschlossenes unkritisches Hardwaregerät zu starten.
-
Das Vorangehende ist eine Zusammenfassung und kann daher Vereinfachungen, Verallgemeinerungen und Weglassungen von Details beinhalten; somit werden Fachleute in dem Gebiet erkennen, dass die Zusammenfassung lediglich veranschaulichend ist und nicht dazu gedacht ist, in irgend einer Weise beschränkend zu sein.
-
Für ein besseres Verständnis der Ausführungsformen zusammen mit anderen und weiteren Merkmalen und Vorteilen davon wird auf die folgende Beschreibung in Verbindung mit den beigefügten Figuren Bezug genommen. Der Anwendungsbereich der Erfindung wird in den angehängten Ansprüchen dargestellt.
-
KURZE BESCHREIBUNG DER MEHREREN ANSICHTEN DER FIGUREN
-
1 zeigt eine beispielhafte Schaltung eines Computersystems.
-
2 zeigt ein Beispiel eines Auswählens von Elementen für ein Deaktivieren/Ausschließen von dem Boot-Prozess.
-
3 zeigt ein Beispiel eines vereinfachten Boot-Prozesses.
-
4 zeigt ein Beispiel eines dynamischen Ermittelns von Elementen für ein Deaktivieren/Ausschließen von dem Boot-Prozess.
-
5 zeigt ein Beispiel eines dynamischen Ermittelns von Elementen für ein Deaktivieren/Ausschließen von dem Boot-Prozess.
-
DETAILLIERTE BESCHREIBUNG
-
Es wird ohne weiteres verstanden, dass die Komponenten der Ausführungsformen, wie sie im Allgemeinen hierin beschrieben und in den Figuren gezeigt werden, in einer weiten Vielfalt unterschiedlicher Konfigurationen zusätzlich zu den beschriebenen beispielhaften Ausführungsformen angeordnet und ausgebildet sein können. Daher ist die folgende detailliertere Beschreibung der beispielhaften Ausführungsformen, wie sie in den Figuren dargestellt sind, nicht dazu bestimmt, den Anwendungsbereich der Ausführungsformen, wie er beansprucht wird, zu beschränken, sondern ist lediglich repräsentativ für beispielhafte Ausführungsformen.
-
Bezugnahme innerhalb dieser Beschreibung auf „eine Ausführungsform” (one embodiment) oder „eine Ausführungsform” (an embodiment) (oder ähnliches) bedeutet, dass ein spezielles Merkmal, eine spezielle Struktur oder eine spezielle Charakteristik, die in Verbindung mit der Ausführungsform beschrieben ist, in zumindest einer Ausführungsform beinhaltet ist. Daher muss das Auftreten der Begriffe „in einer Ausführungsform” (in one embodiment) oder „in einer Ausführungsform” (in an embodiment) oder ähnlichem an mehreren Stellen innerhalb dieser Beschreibung sich nicht sämtlich auf die gleiche Ausführungsform beziehen.
-
Weiterhin können die beschriebenen Merkmale, Strukturen und Charakteristiken in jeder geeigneten Art in einer oder mehreren Ausführungsformen kombiniert werden. In der folgenden Beschreibung werden zahlreiche spezifische Details bereitgestellt, um ein gründliches Verständnis der Ausführungsformen bereitzustellen. Ein Fachmann in dem relevanten Gebiet wird jedoch erkennen, dass Ausführungsformen ohne eines oder mehrerer der spezifischen Details oder mit anderen Verfahren, Komponenten, Materialien usw. ausgeführt werden können. An anderen Stellen werden bekannte Strukturen, Materialien oder Arbeitsabläufe nicht gezeigt oder detailliert beschrieben, um Durchblick hemmende Aspekte der Erfindung zu vermeiden.
-
Unter Verwendung eines einzelnen WINDOWS OS, das auf einem Computersystem installiert ist, als ein nicht-beschränkendes Beispiel, beinhaltet ein typischer Boot-Prozess, welcher mit einem Einschalten des Stroms für das Computersystem beginnt und endet, wenn der Nutzer sich an einem Anmelde-Dialogfenster anmelden kann, folgendes. Wenn das Computersystems eingeschaltet wird (Strom einschalten), kontrolliert das BIOS das Computersystem, um zunächst mehrere Boot-Arbeitsschritte auszuführen. Ein Set dieser Arbeitsschritte beinhaltet die Power On Self Test (POST) Auswertung, welche eine Menge an verfügbarem Speicher ermittelt und die in dem Computersystem verfügbaren Hardwaregeräte (wie beispielsweise eine Tastatur) prüft.
-
In einer legacy BIOS/MBR (master boot record) Konfiguration (berücksichtigend, dass andere Konfigurationen ebenfalls verwendet werden können, beispielsweise eine Unified Extensible Firmware Interface (UEFI)/GUID Partition Table (GPT) Konfiguration etc.), lädt, wenn das BIOS seine Überprüfung abgeschlossen hat, es das MBR-Programm in den Speicher. Wenn der MBR geladen ist, kontrolliert es den Boot-Prozess. Das MBR führt Code in dem ersten Sektor der Disk (MBR) aus, findet die aktive Partition und übergibt die Kontrolle an das Boot-Record der aktiven Partition (PBR, partition's boot record). Der PBR-Code initiiert das Nutzer-OS in einer Weise, die durch das Nutzer-OS festgelegt ist und lokalisiert spezifische Boot-Dateien zum Ausführen und Initialisieren des verbleibenden Nutzer-OS.
-
Ein Boot-Ladeprogramm ermittelt Komponenten (wie beispielsweise Computer-ID, Video, Tastatur, Kommunikationsports, parallele Ports, Maus/Zeigegerät(e)) und lädt typischerweise systemnahe Gerätetreiber (beispielsweise einen Festplatten-Gerätetreiber) in den Speicher. Andere Gerätetreiber werden dann während der Kernel-Initialisierung durch die systemnahen, bereits geladenen Gerätetreiber geladen und initialisiert und der Sitzungsmanager startet danach die Subsysteme und Dienste höherer Ordnung für das Nutzer-OS. Im Fall eines WINDOWS OS startet dann ein Subsystem, welches das Anmelde-Dialogfenster hervorbringt, womit der Boot-Prozess beendet wird.
-
Daher werden während dem Boot-Prozess typischerweise eine Vielzahl von Arbeitsabläufen ausgeführt, um das Nutzer-OS für eine Benutzung vorzubereiten. Dies neigt dazu, einen Engpass zu schaffen, indem die Systemressourcen (Prozessor(en), Speicher und/oder I/O) während des Boot-Prozesses belegt sind, so dass Arbeitsabläufe darauf warten müssen, vervollständigt zu werden. Einige Softwareelemente können in einen Cache vor-abgerufen werden, um einen schnelleren Zugriff auf die Softwareelemente für ein schnelleres Hochfahren bereitzustellen. Vor-Abrufen in einen Cache stellt eine gewisse Verbesserung dar, da es die Zeit reduziert, die benötigt wird, Softwareelemente abzurufen, indem vor-abgerufenen Softwareelemente leichter verfügbar sind, wenn sie gebraucht werden. Jedoch besitzt diese Technik lediglich begrenzten Einfluss, da sie sich nicht mit der Tatsache befasst, dass die Systemressourcen typischerweise während des Hochfahrens durch die große Menge an Komponenten, die gehandhabt werden müssen, wobei lediglich einige davon kritisch sind, überladen werden, was eine primäre Ursache verlängerter Boot-Zeit ist. Ein anderer Ansatz zielt auf ein Reduzieren der I/O Last durch ein Priorisieren bestimmter während des Hochfahrens zu ladender Softwareelemente. Dies neigt dazu, die Boot-Zeit in gewisser Weise zu reduzieren, befasst sich jedoch nicht vollständig mit der Engpass-Problematik, die angetroffenen wird, da typischerweise eine großen Zahl an Prozessen weiterhin die Systemressourcen besetzen. Dieser Ansatz ist zudem dahingehend limitiert, dass er lediglich Komponenten mit hohen I/O Kosten berücksichtigt. Daher ist eine weitere Verringerung der Boot-Zeit wünschenswert.
-
Eine Ausführungsform erleichtert ein schnelleres Hochfahren (verringerte Bootdauer) durch proaktivies Deaktivieren bestimmter, unkritischer Hardwaregerät(e) und bestimmter, unkritischer Softwareelement(e), so dass diese während des Boot-Prozesses nicht gehandhabt werden müssen. Daher tragen diese deaktivierten Hardwaregerät(e) und/oder Softwareelement(e) nicht zu dem Engpass der Systemressourcen zum Zeitpunkt des Hochfahrens bei. Eine Ausführungsform leistet, dass diese unkritischen Hardwaregerät(e) und/oder unkritischen Softwareelement(e) (welche Softwareelement(e) sein können, die unkritischen Hardwaregerät(en) zugeordnet sind, wie beispielsweise direkt zugeordnete Softwareelement(e) wie ein oder mehrere Gerätetreiber oder indirekt zugeordnete Softwareelement(e) wie Sicherheitsservices wie eine Firewall, die indirekt dem Laden eines Netzwerkgerätes zugeordnet ist, oder andere Softwareelement(e) beinhalten kann, die nicht zu unkritischen Hardwaregerät(en) zugeordnet sind, wie OS Komponenten und/oder proprietäre Software, beispielsweise Tastatur-Rauschunterdrückung, Bildschirmanzeige-Graphikmanagementsoftware für Lautstärke/Helligkeit etc.) danach aktiviert und verfügbar gemacht werden können, nachdem das Hochfahren beendet wurde. Zudem können die verzögerten Elemente (nach Vervollständigen des Hochfahrens) schneller gestartet werden, da die Ressourcen verfügbarer sind.
-
Damit ermöglicht eine Ausführungsform das Verringern der gesamten Boot-Zeit durch ein Verringern der Zahl an Gerät(en) und/oder Element(en), die in dem Boot-Prozess gehandhabt werden. Dies ermöglicht dem Computersystem, die Last eines Ladens und Initialisierens bestimmter Systemkomponenten auf einen späteren Zeitpunkt zu verschieben, wenn die Ressourcen nicht derartig belastet sind. Das Ergebnis ist, einem Nutzer ein hochgefahrenes System schneller bereitzustellen, als bisher realisiert wurde, während die Natur des Nutzer-OS nicht wesentlich beeinträchtigt wird, so dass dem Nutzer eine „vollständige” Nutzer-OS-Erfahrung geboten wird, wie von dem typischen Nutzer erwartet.
-
Die gezeigten beispielhaften Ausführungsformen werden am besten unter Bezugnahme auf die Figuren verstanden. Die folgende Beschreibung ist lediglich als beispielhaft gedacht und zeigt lediglich bestimmte beispielhafte Ausführungsformen.
-
Während zahlreiche andere Beschaltungen, Schaltungen oder Komponenten verwendet werden können, zeigt 1 ein Blockdiagramm eines Beispiels von Computersystem-Beschaltungen, -Schaltungen oder -Komponenten. Das in 1 gezeigte Beispiel kann Computersystemen wie der THINKPAD Serie von Personalcomputern entsprechen, die von Lenovo (US) Inc. of Morrisville, NC verkauft werden. Jedoch können, wie aus der Beschreibung hierin erkenntlich wird, Ausführungsformen andere Merkmale oder lediglich einige der Merkmale des in 1 gezeigten Beispiels beinhalten.
-
Das Beispiel von 1 beinhaltet ein so genanntes Chipset 110 (eine Gruppe von integrierten Schaltkreisen oder Chips, welche zusammenarbeiten, Chipsets) mit einer Architektur, die abhängig von dem Hersteller (beispielsweise INTEL, AMD, ARM, etc.) variieren kann. Die Architektur des Chipsets 110 beinhaltet eine Kern- und Speicher-Steuergruppe 120 und einen IO Controller-Hub 150, der Informationen (beispielsweise Daten, Signale, Befehle etc.) über ein Direct Management Interface (DMI) 142 oder einen Link-Controller 144 austauscht. In 1 ist das DMI 142 ein Chip-zu-Chip-Interface (auf welches manchmal Bezug genommen wird, ein Link zwischen einer „Northbridge” und einer „Southbridge” zu sein). Die Kern- und Speicher-Steuergruppe 120 beinhaltet einen oder mehrere Prozessoren 122 (beispielsweise Einzel- oder Mehrkern) und einen Speicher-Controller-Hub 126, die Informationen über einen Front Side Bus (FSB) 124 austauschen; es wird angemerkt, dass Komponenten der Gruppe 120 in einen Chip integriert sein können, der die konventionelle Architektur vom Typ „Northbridge” ersetzt.
-
In 1 koppelt der Speicher-Controller-Hub 126 mit Speicher 140 (beispielsweise, um eine Unterstützung für eine Art von RAM bereitzustellen, auf welchen als „Systemspeicher” oder „Speicher” Bezug genommen werden kann). Der Speicher-Controller-Hub 126 beinhaltet weiterhin ein LVDS Interface 132 für ein Anzeigegerät 192 (beispielsweise ein CRT, ein Flachbildschirm, ein Projektor etc.). Ein Block 138 beinhaltet einige Technologien, die mittels des LVDS Interface 132 unterstützt werden können (beispielsweise serielles digitales Video, HDMI/DVI, Anzeigeport). Der Speicher-Controller-Hub 126 beinhaltet zudem ein PCI-Express Interface (PCI-E) 134, das diskrete Graphiken 136 unterstützen kann.
-
In 1 beinhaltet der IO-Hub-Controller 150 ein SATA Interface 151 (beispielsweise für HDDs, SDDs, 180 etc.), ein PCI-E Interface 152 (beispielsweise für drahtlose Verbindungen 182), ein USB Interface 153 (beispielsweise für Eingabegeräte 184 wie beispielsweise Digitalisierer, Tastatur, Mäuse, Kameras, Telefone, Speicher, andere verbundene Geräte etc.), ein Netzwerk Interface 154 (beispielsweise LAN), ein GPIO Interface 155, ein LPC Interface 170 (für ASICs 171, ein TPM 172, ein super I/O 173, einen Firmware-Hub 174, BIOS Unterstützung 175 sowie mehrere Arten von Speicher 176 wie ROM 177, Flash 178 und NVRAM 179), ein Power-Management Interface 161, ein Taktgenerator Interface 162, ein Audio Interface 163 (beispielsweise für Lautsprecher 194), ein TCO Interface 164, ein Systemmanagement Bus Interface 165 und SPI Flash 166, welches BIOS 168 und Boot-Code 190 beinhalten kann. Der I/O-Hub-Controller 150 kann Gigabit Ethernet-Unterstützung beinhalten.
-
Das System kann nach Einschalten des Stroms konfiguriert sein, Boot-Code 190 für das BIOS 168, wie innerhalb des SPI Flash 166 gespeichert ist, auszuführen und verarbeitet danach Daten unter der Steuerung eines oder mehrerer Benutzer-Betriebssysteme (OSs) und Anwendungssoftware (beispielsweise gespeichert in Systemspeicher 140). Ein Nutzer-OS kann in jeglicher einer Mehrzahl von Orten gespeichert sein und beispielsweise gemäß Instruktionen des BIOS 168 aufgerufen werden. Wie hierin beschrieben wird, kann ein Gerät weniger oder mehr Merkmale als in dem System von 1 gezeigt beinhalten.
-
Mit Bezugnahme auf 2 deaktiviert eine Ausführungsform selektiv Hardwaregerät(e) und/oder Softwareelement(e), die aus Sichtweise eines Hochfahrens unkritisch sind. Dies ermöglicht ein Reduzieren der Boot-Zeit und ein Bereitstellen eines hochgefahrenen Nutzer-OS in einer geringeren Zeitspanne, verglichen mit konventionellen Implementierungen. Beispielsweise beginnt das System das Nutzer-OS in Antwort auf ein Einschalten des Stroms eines Computersystems hochzufahren 210. Eine Ausführungsform stellt einen Service bereit, der Hardwaregerät(e) und/oder Softwareelement(e) zum Deaktivieren auswählt, um schnelleres Hochfahren 220 bereitzustellen. Dieser Service kann zu verschiedenen Zeiten ablaufen, beispielsweise während des Boot-Prozesses selbst, als ein Hintergrundservice während das Computersystem läuft (unter Kontrolle des Nutzer-OS), kurz vor einem Herunterfahren/Ausschalten des Systems, etc. Sobald die Hardwaregerät(e) und/oder Softwareelement(e) ausgewählt wurden, deaktiviert 230 der Service diese, so dass sie von dem Boot-Prozess ausgeschlossen sind, wie beispielsweise durch Auswählen dieser und Einstellen dieser, vor einem Herunterfahren des Computersystems 240 zu deaktivieren.
-
Mit Bezugnahme auf 3 stellt eine Ausführungsform eine verringerte Boot-Zeit bereit, indem der Service bestimmte Hardwaregerät(e) zum Deaktivieren auswählt und einstellt und/oder bestimmte Softwareelement(e) auswählt und einstellt, von dem Boot-Prozess ausgeschlossen zu werden. Beispielsweise beginnt das Computersystem den Boot-Prozess in Antwort auf ein Einschalten des Stroms eines Computersystems wie normal 310. Während des Hochfahrens ermittelt das Computersystem verfügbare Hardwaregeräte und zugehörige Softwareelemente (beispielsweise Gerätetreiber), welche zu laden und initialisieren sind/zählt diese auf. Jedoch deaktiviert eine Ausführungsform bestimmte. Hardwaregerät(e) und/oder Softwareelement(e), so dass diese von dem Boot-Prozess 330 ausgeschlossen sind, statt alle Hardwaregerät(e) und/oder Softwareelement(e) zu laden und zu initialisieren, welche durch das Nutzer-OS voreingestellt sind, automatisch geladen und gestartet zu werden. Beispielsweise ist Audio nicht erforderlich, um ein System hochzufahren. Eine Ausführungsform kann daher Audiogerät(e) zusammen mit assoziierten OS-Softwarekomponenten bei einem Herunterfahren deaktivieren. Wenn das System hochgefahren wird, werden die betroffenen Audiokomponenten nicht gestartet, womit die Zahl an Aufgaben zum Komplettieren des Hochfahrens verringert wird. Diese können gestartet werden, sobald das System das Nutzer-OS hochgefahren hat. Daher wird der Boot-Prozess aus der Sicht der Ressourcenverwendung vereinfacht, da diese Hardwaregerät(e) und/oder Softwareelement(e) daran gehindert werden, während des Hochfahrens des Nutzer-OS zu starten und daher nicht geladen, initialisiert etc. werden müssen, womit Systemressourcen freigesetzt werden, um sich auf kritischere Boot-Komponenten zu fokussieren. Damit kann der Boot-Vorgang fortgesetzt werden 340, während weniger Komponenten gehandhabt werden und dieser damit schneller vervollständigt werden 350.
-
In der Implementierung des Ausschließens von Hardwaregerät(en) und/oder Softwareelement(en) kann es hilfreich sein, Abhängigkeiten zwischen den Hardwaregerät(en) und/oder Softwareelement(en) zu identifizieren, sowie jegliche Sequenzierung der Deaktivierungs- und/oder Aktivierungs-Abläufe zu berücksichtigen, in der Art und Weise, dass eine Ladedauer optimiert wird, während gewährleistet wird, dass die Nach-Boot-Funktionalität identisch oder ähnlich einem Computersystem ist, in welchem ein Ausschließen nicht implementiert wurde (ein System, das ein normales Nutzer-OS besitzt). Daher kann das Auswählen, welche Hardwaregerät(e) und/oder Softwareelement(e) deaktiviert/von dem Boot-Prozess ausgeschlossen werden, basierend auf einer Mehrzahl von Faktoren variieren.
-
In einem Beispiel stellt eine Ausführungsform einen Service bereit, der unkritische Boot-Komponenten für ein Deaktivieren/Ausschließen automatisch auswählt. Unkritische Komponenten werden definiert als diejenigen Komponenten, die für eine erfolgreiche Vervollständigung des Boot-Prozesses einer vollständigen Nutzer-OS-Erfahrung nicht erforderlich sind; wohingegen kritische Komponenten notwendig sind für ein vollständiges Hochfahren einer vollständigen Nutzer-OS-Erfahrung. Kritische Komponenten würden daher beispielsweise Geräte und/oder Software beinhalten, die für das Hochfahren des Nutzer-OS erforderlich sind, wie beispielsweise ein Festplattengerät und zugehörige Treiber. Kritische Komponenten können weiter verfeinert werden, Merkmale zu beinhalten, die, obwohl nicht notwendigerweise für ein Laden des Nutzer-OS erforderlich, für einen einwandfreien Betrieb des Computersystems benötigt werden, wie beispielsweise ein Aktivieren von Video für visuelle Anzeigefähigkeiten und/oder ein Aktivieren eines biometrischen Geräts für biometrischen Input/Anmeldung während des Boot-Prozesses. Damit werden die kritischen Komponenten benötigt, aus der Sicht des Nutzers ein vollständiges Nutzer-OS bereitzustellen.
-
Unkritische Komponenten beinhalten diejenigen Komponenten, die ermöglichen unkritische Merkmale des Computersystems bei abgeschlossenem Hochfahren zu aktivieren. Einige nicht einschränkende Beispiele beinhalten Audiogeräte und zugehörige Treiber, externe Geräte (Geräte, die mit dem USB verbunden sind, wie eine eingebaute Kamera) und zugehörige Treiber, Netzwerkgeräte (wie Ethernet/WiFi-Komponenten) und zugehörige Treiber, biometrische Geräte und zugehörige Treiber, Firewalls und andere Sicherheitssoftware, proprietäre Software etc. Die Kategorisierung von Hardwaregerät(en) und/oder Softwareelement(en) als kritisch oder unkritisch in dem hierin verwendeten Kontext kann vorbestimmt sein, kann variieren und/oder kann dynamisch ermittelt werden.
-
Unter Bezugnahme auf 4 ist beispielhaft eine Ausführungsform fähig dynamisch zu ermitteln, ob ein Hardwaregerät und/oder Softwareelement kritisch oder unkritisch in einem gegebenen Kontext ist. Wenn das System den Boot-Prozess 410 beginnt, kann der Servicesteuermanager oder eine Komponente des Nutzer-OS Geräte und/oder Softwareelement(e) ermitteln 420, welche für einen automatischen Start durch das Nutzer-OS eingestellt sind, wie es üblich ist. In Antwort auf dieses Aufzählen von Gerät(en)/Element(en) kann eine Ausführungsform auf einen Nicht-Verzögerungsfaktor hin überprüfen 340, beispielsweise ein Sicherheits-Token, das mit einem Nutzer-Account des Systems assoziiert ist (wie beispielsweise ein Passwort oder ein biometrischer Geräteschutz). Ein Nicht-Verzögerungsfaktor kann zudem ein Ermitteln beinhalten, dass ein Einschließen (eines Handhabens) eines spezifischen Gerätes/Softwareelements in dem Boot-Prozess die Boot-Zeit nicht verzögern würde (das heißt, es gibt genügend verfügbare Ressourcen zum Handhaben des Gerätes/Softwareelements während des Hochfahrens). Falls ein Nicht-Verzögerungsfaktor identifiziert wird 430, beispielsweise ein Gerät, das zu einem Sicherheits-Token gehört, kann dieses Gerät in diesem Fall als kritisch angesehen werden, obwohl es typischerweise unkritisch ist, und eingeschaltet werden 450.
-
Beispielsweise, falls ein Nutzer ein Sicherheits-Token für das Computersystem eingerichtet hat, das einen biometrischen Input durch einen Fingerabdruckleser erfordert, ermittelt eine Ausführungsform dies und aktiviert den Fingerabdruckleser und zugehörige Softwareelemente, so dass diese während des Boot-Prozesses geladen und initialisiert werden können, auch wenn der Service diese normalerweise als unkritisch kategorisieren kann. In Antwort auf ein derartiges Überprüfen 440 kann der Boot-Prozess fortgeführt werden, ohne andere unkritische Hardwaregerät(e) und/oder Softwareelemente zu handhaben, wie hierin beschrieben, und der Boot-Prozess kann vervollständigt werden 470. Damit sind die dynamisch identifizierten kritischen Geräte/Softwareelemente (Fingerabdruckleser, ein Softwareelement/Gerät, das das Hochfahren nicht verzögert, etc.) bei Vervollständigung des Boot-Prozesses verfügbar gemacht, auch wenn der Service das Geräte/Element typischerweise (standardmäßig) einstellen kann zu deaktivieren, da es unkritisch ist.
-
Unter Bezugnahme auf 5 kann das Ermitteln der Hardwaregerät(e) und/oder Softwareelement(e) als unkritisch/kritisch aufgeführt zu werden unter Verwendung von Intelligenz oder mittels Nutzerauswahl bestimmt werden. Beispielsweise kann, während das Computersystem läuft 510, der Service Informationen bezüglich durch einen speziellen Nutzer ungenutzte oder selten genutzte Hardwaregerät(e) oder Softwareelement(e) sammeln, so dass diese Hardwaregerät(e)/Softwareelement(e) ermittelt werden können 520. Sobald ermittelt, kann der Service diese einstellen, deaktiviert/von dem Boot-Prozess ausgeschlossen zu sein 530, so dass bei einem Herunterfahren 540 diese als unkritisch ausgewählt werden und damit nicht gestartet/geladen/initialisiert werden, wenn das System wieder hochgefahren wird. Dies wird die Boot-Zeit durch das Vermeiden eines unnötigen Handhabens derartiger selten genutzter/ungenutzter Komponenten während des Boot-Prozesses verringern.
-
Es wird verstanden, dass Ausführungsformen in einem oder mehreren Computergeräten implementiert werden können, welche entsprechend konfiguriert sind, Programminstruktionen auszuführen, die mit der Funktionalität der Ausführungsformen wie hierin beschrieben konsistent sind. In dieser Hinsicht beschreibt 1 ein nicht einschränkendes Beispiel eines derartigen Computergeräts. Ausführungsformen können unter Verwendung einer Vielzahl von Computersystemen wie beispielsweise Tischcomputern, Arbeitsstationen, Servern, Schiefertafeln, Tablets und ähnlichem implementiert werden.
-
Wie von einem Fachmann erkannt wird, können zahlreiche Aspekte als ein System, Verfahren oder Computerprogrammprodukt ausgebildet sein. Entsprechend können Aspekte die Form einer vollständigen Hardware-Ausführungsform oder einer Ausführungsform, die Software- und/oder Hardware-Aspekte beinhalten, annehmen, auf welche sämtlich generell hierin als ein „Netzwerk” (circuit), „Modul” oder „System” Bezug genommen wird. Weiterhin können Aspekte die Form eines Computerprogrammprodukts annehmen, das in einem computerlesbaren Medium oder mehreren computerlesbaren Medien ausgebildet ist, das bzw. die computerlesbaren Programmcode darin ausgebildet haben.
-
Jede Kombination von einem nicht-Signal computerlesbaren Medium oder mehreren nicht-Signal computerlesbaren Medien kann verwendet werden. Ein nicht-Signal computerlesbares Medium kann ein computerlesbares Speicher-Medium sein. Ein computerlesbares Speicher-Medium kann zum Beispiel ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleiter-System, -Apparat oder -Vorrichtung oder jede geeignete Kombination der vorgenannten sein. Spezifischere Beispiele eines computerlesbaren Speicher-Mediums würden folgendes beinhalten: eine tragbare Computer-Diskette, eine Festplatte, ein Random Access Memory (RAM), ein Read-only Memory (ROM), ein Erasable Programmable Read-only Memory (EPROM oder Flash Speicher), eine Glasfaser, ein Portable Compact Disc Read-only Memory (CD-ROM), eine optische Speichervorrichtung, eine magnetische Speichervorrichtung oder jede geeignete Kombination der vorgenannten.
-
Programmcode, der auf einem computerlesbaren Medium ausgebildet ist, kann unter Verwendung jedes geeigneten Mediums übermittelt werden, einschließlich, aber nicht beschränkt auf, drahtlos, drahtgebunden, Glasfaserkabel, RF usw. oder jede geeignet Kombination der vorgenannten.
-
Computerprogrammcode zum Ausführen von Arbeitsabläufen kann in jeder Kombination einer oder mehrerer Programmiersprachen geschrieben sein. Der Programm-Code kann vollständig auf einem einzigen Gerät, teilweise auf einem einzigen Gerät, als ein unabhängiges Software-Paket, teilweise auf einem einzigen Gerät und teilweise auf einem anderen Gerät oder vollständig auf dem anderen Gerät ausgeführt werden. In einigen Fällen können die Geräte durch jede Art von Netzwerk verbunden sein, einschließlich eines Local Area Network (LAN) oder eines Wide Area Network (WAN), oder die Verbindung kann durch andere Geräte ausgeführt werden (beispielsweise über das Internet unter Verwendung eines Internet Service Providers) oder durch eine festverdrahtete Verbindung, wie beispielsweise über eine USB-Verbindung.
-
Computerlesbare Programm-Instruktionen können einem Prozessor eines Mehrzweck-Computers, eines Spezialzweck-Computers oder einer anderen programmierbaren Datenverarbeitungs-Vorrichtung bereitgestellt werden, um eine Maschine zu bilden, derart, dass die Instruktionen, die mittels des Prozessors des Computers oder der andern programmierbaren Datenverarbeitungs-Vorrichtung ausgeführt werden, die spezifizierten Funktionen/Handlungen implementieren.
-
Die computerlesbaren Programm-Instruktionen können auch in einem computerlesbaren Medium gespeichert sein, welches einen Computer oder eine andere programmierbare Datenverarbeitungs-Vorrichtung oder andere Vorrichtung(en) anleiten kann, in einer speziellen Art zu arbeiten, derart, dass die Instruktionen, die in dem computerlesbaren Medium gespeichert sind, einen Fertigungsgegenstand bilden, einschließlich Instruktionen, welche die spezifizierte Funktion/Handlung implementieren.
-
Die computerlesbaren Programm-Instruktionen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungs-Vorrichtung oder andere Vorrichtungen geladen werden, um eine Serie von Arbeitsschritten, die auf dem Computer, der anderen programmierbaren Vorrichtung oder der anderen Vorrichtung(en) ausgeführt werden, auszulösen, um einen computer-implementierten Prozess zu bilden, derart, dass die Instruktionen, die auf dem Computer oder der anderen programmierbaren Vorrichtung ausgeführt werden, Verfahren zum Implementieren der spezifizierten Funktionen/Handlungen bereitstellen.
-
Diese Offenbarung wurde zum Zweck der Veranschaulichung und Beschreibung gezeigt, ist jedoch nicht dazu beabsichtigt, erschöpfend oder beschränkend zu sein. Zahlreiche Modifikationen und Variationen werden Fachleuten in dem Gebiet ersichtlich sein. Die beispielhaften Ausführungsformen wurden ausgewählt und beschrieben, um Prinzipien und praktische Anwendungen zu erklären und anderen Fachleuten in dem Gebiet zu ermöglichen, die Offenbarung für zahlreiche Ausführungsformen mit zahlreichen Modifikationen, welche für die spezielle vorgesehene Verwendung geeignet sind, zu verstehen.
-
Dabei wird verstanden, dass, obwohl veranschaulichende beispielhafte Ausführungsformen hierin mit Bezug auf die beigefügten Figuren beschrieben wurden, diese Beschreibung nicht beschränkend ist und dass zahlreiche andere Änderungen und Modifikationen davon geprägt sind, wie von einem Fachmann in dem Gebiet verstanden wird, ohne den Anwendungsbereich oder Geist der Offenbarung zu verlassen.