Mein System läuft auf einer Festplatte, und das Booten des Betriebssystems dauert mehr als eine Minute. Wenn ich jetzt den Task-Manager starte und zu „Autostart“ gehe, wird angezeigt, dass die BIOS-Zeit 10 Sekunden beträgt. Das stimmt aber nicht, es sei denn, die Bootzeit des Betriebssystems und die BIOS-Zeit sind unterschiedlich. Schreibt Windows die Zeit vom Drücken des Einschaltknopfs bis zu der Zeit, an der das System einsatzbereit ist, irgendwo auf? Um dies zu testen, musste ich mir ein Video auf YouTube ansehen, in dem ein System auf einer Festplatte und ein System auf einer SSD gleichzeitig gestartet wurden. Anschließend wurde eine Stoppuhr gestartet. Die Festplatte brauchte mehr als 1 Minute und 30 Sekunden, um das Betriebssystem zu booten, die SSD jedoch 29 Sekunden.
Antwort1
es heißt, die BIOS-Zeit beträgt 10 Sekunden, aber das ist einfach nicht richtig, es sei denn, die Betriebssystem-Startzeit und die BIOS-Zeit sind unterschiedlich
Sie sind völlig unterschiedlich. Das BIOS verlässt das System, wenn das Betriebssystem mit dem Booten beginnt, sodass Ihre gemessene "Wanduhr"-Zeit dieSummeder BIOS-Zeit und der Betriebssystemzeit.
Höchstwahrscheinlich verwendet Windows die CPUTaktzykluszählervia RDTSC
zum Ermitteln der BIOS-Zeit (zumindest wird diese von systemd unter Linux verwendet):
- Beim Einschalten wird TSC immer auf Null zurückgesetzt (also T1 ) .
- Sobald der Bootmanager des Betriebssystems startet, zeichnet er den aktuellen TSC-Wert (T 2 ) auf.
T 2 −T 1 ist nun die Anzahl der CPU-Zyklen, die für die Initialisierung des BIOS benötigt wurden. - Später misst das Betriebssystem die Anzahl der CPU-Zyklen pro Sekunde (bei der Standardfrequenz der CPU), um die Zykluszahl in Sekunden umzurechnen und zeigt diese als „BIOS-Zeit“ an.
(Der Bootmanager „systemd-boot“ unter Linux zeichnet auch den TSC-Wert unmittelbar vor der Übergabe der Kontrolle an das Betriebssystem auf, um die Zeit zu messen, die mit der Anzeige des Bootmenüs verbracht wird – obwohl Windows dies wahrscheinlich nicht tut.)
Einige neuere UEFI-basierte Systeme verfügen über eine dedizierte ACPI- FPDT
Tabelle, in der die Firmware selbst die „BIOS-Zeit“ speichert, die das Betriebssystem abrufen muss. Dies wird jedoch noch nicht allgemein unterstützt.