Proces uruchamiania systemu Windows NT - Windows NT booting process

Proces uruchamiania systemu Windows NT to proces, w którym inicjowane są systemy operacyjne Windows NT 4.0 , Windows 2000 , Windows XP i Windows Server 2003 . W systemie Windows Vista i nowszych proces ten znacznie się zmienił; zobacz Proces uruchamiania systemu Windows Vista, aby uzyskać informacje o tym, co się zmieniło.

Instalator

Instalator Windows NT działa bardzo podobnie do zwykłej instalacji Windows NT, z tą różnicą, że uruchamia się z dysku CD-ROM . Aby ta metoda uruchamiania działała, BIOS musi być zgodny ze specyfikacją El Torito . System plików ISO 9660 na instalacyjnym dysku CD nie jest w pełni zgodny ze standardem. Chociaż jest to „Poziom 1”, do nazw plików nie jest dołączona wersja pliku. Obraz rozruchowy jest typu „bez emulacji”, ma długość 1 sektora (2048 bajtów) i jest ładowany w segmencie 0x7c0. Można go wyodrębnić z obrazu ISO za pomocą programu do wyodrębniania plików, takiego jak 7-Zip lub WinZip . Obraz ISO nie jest również hybrydyzowany jak obrazy ISO z większości dystrybucji Linuksa i dlatego nie zawiera żadnego głównego rekordu rozruchowego (MBR), co uniemożliwia jego uruchomienie poprzez skopiowanie obrazu na urządzenie blokowe, takie jak pendrive.

Instalator można również uruchomić z wiersza poleceń systemu MS-DOS, dzięki czemu można zaktualizować poprzednie wersje systemu Microsoft Windows, które są już zainstalowane. Aby uruchomić instalator z systemu operacyjnego opartego na MS-DOS, takiego jak Windows 98 lub Windows ME, użytkownik musi uruchomić system "w trybie DOS", a następnie uruchomić I386/WINNT.EXE na płycie CD-ROM.

Do uruchomienia instalatora można użyć dyskietki zawierającej system MS-DOS. W sprzedaży dostępne były również wersje instalatora na dyskietkach. Od Windows Vista instalator uruchamia się z BOOT.WIM, który zawiera bootowalną wersję Windows PE . Windows PE 2.0 jest oparty na jądrze systemu Windows Vista, nowsze wersje systemu Windows PE są oparte na nowszych wersjach systemu Windows.

Faza rozruchu dysku CD-ROM

Podczas zwykłej instalacji z dysku CD-ROM system BIOS wykonuje test POST, a następnie wyszukuje deskryptor rozruchowy na dysku CD-ROM. Deskryptor rozruchowy wskazuje plik katalogu rozruchowego w systemie plików ISO 9660 . BIOS wyszukuje obraz rozruchowy zgodny z obecną architekturą, ładuje go do pamięci, a następnie uruchamia. Obraz rozruchowy jest analogiczny do sektora rozruchowego na dysku twardym. Obraz rozruchowy ładuje SETUPLDR.BIN, który jest analogiczny do NTLDR. Jeśli to się nie powiedzie z jakiegokolwiek powodu, zostanie wyświetlony komunikat informujący, że NTLDR nie został znaleziony, co samo w sobie może być mylące; ponadto NTLDR na płycie CD nigdy nie jest używany podczas fazy ładowania instalatora. Proces zakłada również, że wersje plików są niedostępne.

Przed uruchomieniem programu ładującego, obraz rozruchowy sprawdza, czy istnieje już instalacja (system) systemu Windows, a jeśli tak, uruchamia się BOOTFIX.BIN. Jeśli nie zostanie znaleziona żadna instalacja lub jeśli dysk nie ma MBR, uruchamia bezpośrednio program ładujący, eliminując w ten sposób potrzebę BOOTFIX.BIN. Jeśli BOOTFIX.BINjest uruchomiony, wyświetla ciąg „Naciśnij dowolny klawisz, aby uruchomić komputer z dysku CD”. i czeka na dane wejściowe użytkownika. Jeśli nie zostanie wykryty przez kilka sekund, uruchamia następne urządzenie i tak dalej. To zachowanie jest niezbędne do uruchomienia drugiego etapu instalatora, który rozpoczyna się z dysku twardego.

Faza rozruchu

Oba SETUPLDR.BINi NTLDRskładają się z dwóch połączonych plików binarnych. Można je również znaleźć na instalacyjnej płycie CD jako skompresowane pliki CAB . Pierwszy plik to STPBOOT.BIN, który jest płaskim plikiem binarnym, który po prostu ładuje drugi plik. Drugi plik to zwykły plik EXE w formacie Portable Executable . W SETUPLDR.BINdrugim pliku jest SETUPLDR.EXEaw NTLDRdrugim pliku jest OSLOADER.EXE. Zarówno SETUPLDR.EXEi OSLOADER.EXEposiadają wbudowane sterowniki systemu plików dla dostępu podstawowego na FAT, NTFS i ISO 9660. W odróżnieniu od regularnych * .SYS sterowniki, program ładujący używa przerwań BIOS , aby uzyskać dostęp do dysku rozruchowego. Zawiera również wbudowany parser INI i dekompresor CAB.

Po uruchomieniu instalatora wyświetla ciąg „Instalator sprawdza konfigurację sprzętową komputera...”. NTDETECT.COMjest wywoływana, a informacje o systemie są przechowywane w pamięci. Następnie wyświetla niebieski ekran w trybie tekstowym VGA z tytułem „Windows Setup” lub „Windows *nazwa wersji tutaj* Setup”, z białą linią u dołu, która służy jako pasek stanu. NTDETECT.COMnastępnie szuka go TXTSETUP.SIFi analizuje. Ten plik działa jako baza danych klucz-wartość, podobnie jak rejestr lub plik *.INI lub *.INF. Klucze mogą zawierać listę plików powiązanych z ich lokalizacją instalacji lub wiersz skryptu. Dlatego baza danych przechowuje dane i kod. Podczas parsowania puste wiersze są ignorowane, a sekcje o tej samej nazwie są łączone.

Plik BIOSINFO.INFjest również ładowany w celu rozwiązania problemów sprzętowych.

Składnia pary klucz-wartość w tej SourceDisksFilessekcji jest następująca:

filename_on_source = disk_id,subdir,upgrade_code,new_install_code,spare,spare,new_filename

Instalator pyta, czy należy załadować dodatkowe sterowniki i ładuje sterowniki trybu tekstowego.

Jeśli tak, można je załadować tylko z dyskietki. Istnieje ukryta funkcja, która wyświetla ekran monitujący użytkownika o wybranie typu komputera po naciśnięciu klawisza F5 podczas pierwszej wiadomości.

Sterowniki trybu tekstowego różnią się od sterowników PnP, ponieważ są ładowane niezależnie od tego, czy sprzęt jest obecny, czy nie. Faza wczytywania instalatora wyświetla na ekranie kilka komunikatów o bieżącym wczytywanym pliku. Komunikat to „Instalator ładuje pliki ([opis pliku])...”. Pliki wczytane w tej fazie to te, które znajdują się w sekcjach kończących się na .Load. W tych sekcjach klucz podaje nazwę sterownika, a wartość daje plik. Nazwa sterownika jest następnie wyszukiwana w tej samej sekcji bez .Loadsufiksu, aby znaleźć przyjazną dla użytkownika nazwę sterownika. Jądro potrzebuje również gałęzi rejestru zamontowanej w celu załadowania rejestru, więc SETUPREG.HIVjest również ładowane. Wszystkie nazwy plików ładowanych przez program ładujący są zakodowane na stałe, z wyjątkiem sterowników.

W przypadku urządzeń PnP, po zidentyfikowaniu przez kierowcę magistrali, HardwareIdsDatabasepodawany jest adres sprawdzany w sekcji i odpowiednia nazwa kierowcy. Ale te nie są używane na tym etapie.

Faza jądra

Po załadowaniu wszystkich plików rozruchowych przez program ładujący zostanie wyświetlony komunikat „Instalator uruchamia system Windows” i uruchomione zostanie jądro. Tak jak normalna instalacja, uruchamia sterowniki i ładuje jedyną usługę, którą jest setupdd.sys. Działa w trybie jądra i uruchamia GUI nadal w trybie tekstowym. Od teraz wszystkie sterowniki są oparte na NT, a przerwania BIOS nie są już używane.

Użytkownik jest proszony o wybranie układu systemu plików. Wybrana partycja jest w razie potrzeby sformatowana, a pliki z pliku TXTSETUP.SIF są kopiowane do systemu. Następnie tworzy gałęzie rejestru i automatycznie restartuje system, aby system NT mógł się uruchomić i sam się załadować. Sekcja HiveInfs wskazuje pliki używane do wypełniania uli wartościami domyślnymi. W nowej instalacji ta sekcja nosi nazwę HiveInfs.Fresh. Pliki te nie są plikami reg, ale są również plikami ini, które mogą być zrozumiane przez interpreter ini dołączony do instalatora. Program formatujący dysk jest statycznie powiązany z setupdd.sys.

Remastering

Istnieje wiele darmowych narzędzi dostępnych w Internecie, które dostosowują TXTSETUP.SIF do tworzenia nienadzorowanych instalacji lub integrowania sterowników i poprawek. Ten proces jest czasami określany mianem slipstreamingu .

Poniższe polecenie pokazuje, jak można utworzyć zremasterowaną płytę CD z minimalnym zestawem opcji w systemie Linux. Zakłada, że ​​bieżący katalog jest punktem montowania CD. Obraz zostanie utworzony w katalogu domowym.

mkisofs -b Bootable_NoEmulation.img -no-emul-boot -N . > ~/ntsetup.iso

Plik winnt.sifmoże być użyty do wykonania instalacji nienadzorowanej, ale nie jest wymagany. Na płycie CD znajduje się plik modelu o nazwie UNATTEND.TXT. Instalator próbuje wykryć winnt.sif w I386katalogu lub w katalogu głównym dyskietki.

Faza rozruchu

Proces uruchamiania systemu Windows NT rozpoczyna się, gdy komputer znajdzie program ładujący systemu Windows , część systemu operacyjnego Windows odpowiedzialną za znalezienie i uruchomienie systemu Microsoft Windows. Jednak przed Windows Vista programem rozruchowym był NTLDR . Firma Microsoft wydała również systemy operacyjne dla procesorów Intel Itanium , które wykorzystują architekturę IA-64 . Programem ładującym tych wydań systemu Windows jest IA64ldr.efi (później nazywany po prostu IA64ldr). Jest to program Extensible Firmware Interface (EFI).

Wybór systemu operacyjnego

Zaawansowane menu opcji bootloadera NTLDR

Program ładujący po uruchomieniu wyszukuje systemy operacyjne Windows. Windows Boot Manager robi to, odczytując dane konfiguracji rozruchu (BCD), złożoną, niezależną od oprogramowania układowego bazę danych dla danych konfiguracyjnych podczas rozruchu. Jego poprzednik, NTLDR, robi to, czytając prostsze boot.ini. Jeśli brakuje pliku boot.ini, program ładujący spróbuje zlokalizować informacje ze standardowego katalogu instalacyjnego. W przypadku komputerów z systemem Windows NT i 2000 będzie próbować załadować system z programu C:\WINNT. Na komputerach z systemem Windows XP i 2003 uruchomi się z C:\WINDOWS.

Obie bazy danych mogą zawierać listę zainstalowanych systemów operacyjnych firmy Microsoft, które mogą być ładowane z lokalnego dysku twardego lub komputera zdalnego w sieci lokalnej . NTLDR obsługuje systemy operacyjne zainstalowane na dyskach, których system plików to NTFS lub FAT , CDFS (ISO 9660) lub UDFS . Windows Boot Manager obsługuje również systemy operacyjne zainstalowane w pliku VHD , przechowywane na dysku NTFS.

W systemie Windows 2000 lub nowszych wersjach systemu Windows, w których obsługiwana jest hibernacja , program ładujący systemu Windows rozpoczyna wyszukiwanie systemów operacyjnych, wyszukując hiberfil.sys . NTLDR zagląda do folderu głównego domyślnego woluminu określonego w boot.ini. Menedżer rozruchu systemu Windows wyszukuje lokalizację pliku hiberfil.sys w BCD. Jeśli ten plik zostanie znaleziony i znajduje się w nim aktywny zestaw pamięci, program ładujący ładuje zawartość pliku (który jest skompresowaną wersją zrzutu pamięci fizycznej komputera) do pamięci i przywraca komputer do stanu, w którym był było przed hibernacją.

Następnie program ładujący szuka listy zainstalowanych wpisów systemu operacyjnego. Jeśli zainstalowano więcej niż jeden system operacyjny , program ładujący wyświetla menu startowe i pozwala użytkownikowi wybrać system operacyjny. Jeśli wybrany jest system operacyjny inny niż NT, taki jak Windows 98 (określony przez ścieżkę w stylu MS-DOS , np. C:\), program ładujący ładuje powiązany plik „sektora rozruchowego” wymieniony w boot.ini lub BCD (domyślnie jest to bootsect.dos, jeśli nie określono nazwy pliku) i przekazuje do niego kontrolę wykonania. W przeciwnym razie proces rozruchu będzie kontynuowany.

Ładowanie jądra Windows NT

System operacyjny uruchamia się po załadowaniu do pamięci pewnych podstawowych sterowników oznaczonych jako „Rozruch”. Wśród nich znajduje się odpowiedni sterownik systemu plików dla typu partycji (NTFS, FAT lub FAT32), na którym znajduje się instalacja systemu Windows. W tym momencie procesu uruchamiania program ładujący czyści ekran i wyświetla tekstowy pasek postępu (który często nie jest widoczny ze względu na szybkość inicjalizacji); System Windows 2000 wyświetla również poniżej tekst „Uruchamianie systemu Windows...”. Jeśli użytkownik naciśnie klawisz F8 w tej fazie, zostanie wyświetlone zaawansowane menu rozruchu, zawierające różne specjalne tryby rozruchu, w tym tryb awaryjny , ostatnią znaną dobrą konfigurację z włączonym debugowaniem oraz (w przypadku wersji serwerowych) tryb przywracania usług katalogowych . Po wybraniu trybu rozruchu (lub jeśli F8 nigdy nie został naciśnięty) rozruch jest kontynuowany.

Następujące pliki są ładowane sekwencyjnie.

  1. ntoskrnl.exe (jądro)
  2. hal.dll (rodzaj warstwy abstrakcji sprzętu)
  3. kdcom.dll (DLL rozszerzenia sprzętowego debugera jądra)
  4. bootvid.dll (dla logo Windows i bocznego paska przewijania)
  5. config\system (jedna z gałęzi rejestru)

Następnie plik NTDETECT.COM i jądro systemu Windows NT ( Ntoskrnl.exe ) oraz warstwa abstrakcji sprzętu ( hal.dll ) są ładowane do pamięci. Jeśli w Rejestrze Windows zdefiniowano wiele konfiguracji sprzętowych , użytkownik jest w tym momencie proszony o wybranie jednej.

Gdy jądro znajduje się w pamięci, sterowniki urządzeń podczas rozruchu są ładowane (ale nie są jeszcze zainicjowane). Wymagane informacje (wraz z informacjami o całym wykrytym sprzęcie i usługach systemu Windows) są przechowywane w HKEY_LOCAL_MACHINE\Systemczęści rejestru w zestawie kluczy rejestru nazywanych zbiorczo zestawem kontrolnym . Wiele zestawów kontrolnych (zazwyczaj dwa) jest przechowywanych na wypadek, gdyby ustawienia zawarte w aktualnie używanym uniemożliwiały uruchomienie systemu. HKEY_LOCAL_MACHINE\SystemZawiera zestawy kontrolne oznaczone ControlSet001, ControlSet002itp, jak również CurrentControlSet. Podczas normalnej pracy system Windows używa CurrentControlSetdo odczytywania i zapisywania informacji. CurrentControlSetjest odniesieniem do jednego z zestawów kontrolnych przechowywanych w rejestrze. System Windows wybiera używany „prawdziwy” zestaw kontrolny na podstawie wartości ustawionych w HKLM\SYSTEM\Selectkluczu rejestru:

  • Default będzie wyborem programu ładującego, jeśli nic innego tego nie zastąpi
  • Jeśli wartość Failedklucza jest zgodna Default, program ładujący wyświetla komunikat o błędzie wskazujący, że ostatni rozruch nie powiódł się, i daje użytkownikowi możliwość spróbowania rozruchu mimo to lub skorzystania z opcji „Ostatnia znana dobra konfiguracja”.
  • Jeśli użytkownik wybierze (lub wybrał) Ostatnią znaną dobrą konfigurację, LastKnownGoodzamiast Default.

Po wybraniu zestawu kontrolnego Currentklucz zostaje odpowiednio ustawiony. FailedKlucz jest również ustawiony na taki sam jak Currentdo końca procesu ładowania. LastKnownGoodjest również ustawiony na, Currentjeśli proces rozruchu zakończy się pomyślnie.

Jakie usługi są uruchamiane i kolejność uruchamiania poszczególnych grup określają następujące klucze:

  • HKLM\SYSTEM\CurrentControlSet\Services
  • HKLM\SYSTEM\CurrentControlSet\Control\ServiceGroupOrder

Na potrzeby rozruchu sterownik może być jednym z następujących:

  1. Sterownik "Boot", który jest ładowany przez program ładujący przed uruchomieniem jądra. Sterowniki „boot” to prawie wyłącznie sterowniki dla kontrolerów dysków twardych i systemów plików ( ATA , SCSI , menedżer filtrów systemu plików itp.); innymi słowy, są absolutnym minimum, którego jądro będzie potrzebowało, aby rozpocząć ładowanie innych sterowników i reszty systemu operacyjnego.
  2. Sterownik "systemowy", który jest ładowany i uruchamiany przez jądro po sterownikach startowych. Sterowniki „systemowe” obejmują szerszy zakres podstawowych funkcji, w tym sterownik ekranu, obsługę dysków CD-ROM i stos TCP/IP.
  3. "Automatyczny" sterownik, który jest ładowany znacznie później, gdy GUI już zostało uruchomione.

Gdy to się skończy, kontrola jest przekazywana z programu ładującego do jądra.

Faza jądra

Inicjalizacja podsystemu jądra i podsystemów Windows Executive odbywa się w dwóch fazach.

Podczas pierwszej fazy tworzone są podstawowe struktury pamięci wewnętrznej i inicjowany jest kontroler przerwań każdego procesora . Menedżer pamięci jest inicjowany, tworząc obszary dla pamięci podręcznej systemu plików, stronicowanych i niestronicowanych puli pamięci. Menedżer Przedmiot początkowe token do przydzielania pierwszego procesu w systemie, i w menedżerze procesu. W tym momencie tworzony jest proces bezczynności systemu oraz proces systemowy.

Druga faza obejmuje inicjowanie sterowników urządzeń, które zostały zidentyfikowane przez NTLDR jako sterowniki systemowe.

Podczas procesu ładowania sterowników urządzeń na dole wyświetlacza w systemach Windows 2000 widoczny jest „pasek postępu”; w Windows XP i Windows Server 2003 został on zastąpiony animowanym paskiem, który nie przedstawia rzeczywistego postępu. Przed Windows XP ta część procesu rozruchu trwała znacznie dłużej; dzieje się tak, ponieważ sterowniki będą inicjowane pojedynczo. W systemach Windows XP i Server 2003 wszystkie sterowniki są inicjowane asynchronicznie.

Menedżer sesji

Po załadowaniu wszystkich sterowników rozruchowych i systemowych jądro (wątek systemowy) uruchamia podsystem menedżera sesji ( smss.exe).

Przed otwarciem jakichkolwiek plików Autochk jest uruchamiany przez smss.exe . Autochk montuje wszystkie dyski i sprawdza je pojedynczo, aby sprawdzić, czy zostały one całkowicie odmontowane. Jeśli autochk wykryje, że jeden lub więcej woluminów jest zabrudzonych, automatycznie uruchomi program chkdsk i wyświetli użytkownikowi krótkie okno na przerwanie procesu naprawy przez naciśnięcie klawisza w ciągu 10 sekund (wprowadzono w dodatku Service Pack 4 dla systemu Windows NT 4.0; wcześniejsze wersje nie pozwalały użytkownika, aby przerwać program chkdsk). Ponieważ Windows 2000, XP i 2003 nie wyświetlają w tym momencie ekranu tekstowego (w przeciwieństwie do NT 3.1 do 4.0, który wyświetlał niebieski ekran tekstowy), użytkownik zobaczy inny obraz tła z mini-ekranem tekstowym na środku ekranu i pokaż tam postęp chkdsk.

Podczas uruchamiania podsystem menedżera sesji:

  • Tworzy zmienne środowiskowe ( HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment)
  • Uruchamia stronę trybu jądra podsystemu Win32 (win32k.sys). Dzięki temu system Windows może przełączyć się w tryb graficzny, ponieważ jest teraz wystarczająca infrastruktura.
  • Uruchamia stronę trybu użytkownika podsystemu Win32, podsystem serwera wykonawczego klienta/serwera ( csrss.exe). Dzięki temu Win32 jest dostępny dla aplikacji trybu użytkownika.
  • Tworzy pliki stronicowania pamięci wirtualnej ( HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management)
  • Wykonuje wszelkie operacje zmiany nazwy ( HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations), które są umieszczone w kolejce. Pozwala to na zastąpienie wcześniej używanych plików (np. sterowników) w ramach ponownego uruchamiania.
  • Wykonuje wszystkie programy wymienione w HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\BootExecutetakich jak automatyczne sprawdzanie i konwertowanie.
  • Uruchamia Menedżera logowania Windows ( winlogon.exe). Winlogon jest odpowiedzialny za obsługę interaktywnego logowania do systemu Windows (lokalnego lub zdalnego). Biblioteka Graphical Identification and Authentication (GINA) jest ładowana w procesie Winlogon i zapewnia obsługę logowania jako użytkownik domeny lokalnej lub Windows .

Menedżer sesji przechowuje swoją konfigurację w HKLM\SYSTEM\CurrentControlSet\Control\Session Manager. Dokładne działanie większości tych elementów jest oparte na konfiguracji ustawionej w rejestrze.

Uwierzytelnianie

Okno dialogowe GINA w systemie Windows XP .

Winlogon uruchamia usługę podsystemu urzędu zabezpieczeń lokalnych (LSASS) i Menedżera sterowania usługami (SCM), które z kolei uruchamiają wszystkie usługi systemu Windows ustawione na Auto-Start . Odpowiada również za reagowanie na bezpieczną sekwencję uwagi (SAS), ładowanie profilu użytkownika podczas logowania i opcjonalnie blokowanie komputera, gdy działa wygaszacz ekranu .

Proces logowania przebiega następująco:

  • Podsystem Menedżera sesji uruchamia Winlogon.
  • Winlogon uruchamia Menedżera sterowania usługami ( services.exe).
    • Uruchamia usługi automatycznego uruchamiania .
    • Aktualizuje zestawy kontrolne; zestaw kontrolny LastKnownGood jest aktualizowany w celu odzwierciedlenia bieżącego zestawu kontrolnego.
  • (Windows XP) Winlogon uruchamia UIHost ( logonui.exe), pełnoekranowy graficzny interfejs użytkownika.
  • Winlogon ładuje GinaDll ( msgina.dll)
    • (Opcjonalnie) GINA wyświetla monit logowania, a użytkownik naciska bezpieczną sekwencję uwagi (SAS) ( Control-Alt-Delete ). Winlogon sprawdza, czy system jest skonfigurowany do automatycznego logowania na określone konto (AutoAdminLogon).
    • Okno logowania jest wyświetlane przez GINA
    • Użytkownik wprowadza poświadczenia (nazwę użytkownika, hasło i domenę)
    • GINA przekazuje dane uwierzytelniające z powrotem do Winlogon
  • Winlogon przekazuje poświadczenia do LSASS
  • LSASS próbuje użyć danych z pamięci podręcznej w bazie danych LSA (gałąź SYSTEMU)
  • Jeśli go nie ma, LSASS określa, który protokół konta ma być używany, korzystając z pakietów bezpieczeństwa wymienionych w kluczu HKLM/SYSTEM/CurrentControlSet/Control/Lsa:
    • msv1_0.dllimplementuje protokoły NT LAN Manager . Ten pakiet jest używany w systemach autonomicznych i systemach członkowskich domeny w celu zapewnienia zgodności wstecznej.
    • Kerberos.dllumożliwia zdalne logowanie przy użyciu usługi Active Directory .
  • LSASS wymusza lokalną politykę bezpieczeństwa (sprawdzanie uprawnień użytkowników, tworzenie ścieżek audytu, wydawanie tokenów bezpieczeństwa itp.).
  • Kontrola jest przekazywana z powrotem do Winlogon, aby przygotować się do przekazania kontroli użytkownikowi.
    • Utwórz stacje Windows ( WinSta0)
    • Utwórz pulpity ( Winlogon, Defaulti ScreenSaver)
    • Następnie uruchamia program określony w wartości Userinit, która domyślnie ma wartość userinit.exe. Ta wartość obsługuje wiele plików wykonywalnych.

Jeśli użytkownik próbuje zalogować się do lokalnego hosta, HKLM/SAMklucz będzie używany jako baza danych. Jeśli użytkownik próbuje zalogować się do innego hosta, do przenoszenia danych używana jest usługa NetLogon .

msv1_0.dll<->netlogon<->remote netlogon<->remote msv1_0.dll<->remote SAM

W systemie Windows XP GINA jest wyświetlana tylko wtedy, gdy użytkownik naciśnie bezpieczną sekwencję uwagi.

Winlogon obsługuje wtyczki, które są ładowane i powiadamiane o określonych zdarzeniach, a LSASS obsługuje również wtyczki (pakiety bezpieczeństwa). Niektóre rootkity zawierają wtyczki Winlogon, ponieważ są one ładowane przed zalogowaniem się użytkownika. Niektóre klucze pozwalają na dostarczenie wielu wartości oddzielonych przecinkami, które umożliwiają wykonanie złośliwego programu w tym samym czasie, co prawidłowy plik systemowy. Algorytmy haszujące używane do przechowywania poświadczeń w bazie danych SAM są słabe i można je szybko wymusić na sprzęcie konsumenckim.

Obowiązki Winlogon i proces logowania uległy znacznej zmianie w porównaniu z powyższym w systemie Windows Vista.

Powłoka

Userinit to pierwszy program, który działa z poświadczeniami użytkownika. Jest odpowiedzialny za uruchomienie wszystkich innych programów tworzących środowisko powłoki użytkownika.

Program powłoki (zazwyczaj Explorer.exe) jest uruchamiany z wpisu rejestru Shell=wskazywanego przez ten sam wpis rejestru w klucz HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping\system.ini\Boot; jego domyślną wartością jest SYS:Microsoft\Windows NT\CurrentVersion\Winlogon, co daje w wyniku HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon.

  • Userinit ładuje profil użytkownika. Istnieje kilka typów profili użytkowników, które mogą być lokalne lub zdalne. Ten proces może być bardzo powolny, jeśli profil użytkownika jest typu „roaming”.
  • Stosowane są ustawienia zasad grupy użytkownika i komputera .
    • Uruchom skrypty użytkownika
    • Uruchom skrypty maszynowe
    • Biegać proquota.exe
  • Uruchamia programy startowe przed uruchomieniem powłoki.
  • Uruchamia powłokę skonfigurowaną w rejestrze, domyślną wartością jest explorer.exe.
  • Userinit kończy działanie, a program powłoki kontynuuje działanie bez procesu nadrzędnego.

Userinit uruchamia programy startowe z następujących lokalizacji:

  • HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
  • HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
  • HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
  • HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows\Load
  • HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows\Run
  • HKCU\Software\Microsoft\Windows\CurrentVersion\Run
  • HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce
  • %ALLUSERSPROFILE%\Start Menu\Programs\Startup\ (ta ścieżka jest zlokalizowana w nieanglojęzycznych wersjach systemu Windows przed Vista)
  • %USERPROFILE%\Start Menu\Programs\Startup\ (ta ścieżka jest zlokalizowana w nieanglojęzycznych wersjach systemu Windows przed Vista)

Zdalne uruchamianie i instalacja

Aby pomyślnie uruchomić komputer, klient musi obsługiwać uruchamianie w środowisku PXE, a na serwerze musi być zainstalowany składnik Windows Deployment Services (WDS) . Nie jest instalowany domyślnie. WDS jest następcą usług instalacji zdalnej (RIS).

Program PXE znajduje się w BIOS-ie lub na chipie ROM na karcie sieciowej.

Uruchamianie PXE nie jest technologią specyficzną dla systemu Windows i może być również używane do uruchamiania systemu Linux. W rzeczywistości system Linux może działać jako serwer obsługujący DHCP lub TFTP.

PXE można użyć do uruchomienia Instalatora systemu Windows w celu zainstalowania systemu na komputerze klienckim lub uruchomienia systemu operacyjnego z pamięci RAM. Ten ostatni, zwany rozruchem zdalnym, został wprowadzony przez system Windows XP Embedded SP1 i jest dostępny tylko dla tej wersji systemu Windows.

Ogólny proces dla obu metod wygląda następująco:

  • PXE bagażnika
  • Program NBP pobiera wymagane pliki przez protokół BINL

Boot Information Negotiation Layer (BINL) to usługa systemu Windows 2000 działająca na serwerze, która komunikuje się z klientem po załadowaniu NBP przez PXE.

Zobacz też

Bibliografia

Dalsza lektura

  1. Russinowicz, Marek ; Salomona, Davida A. (2005). „Uruchamianie i wyłączanie”. Wewnętrzne elementy systemu Microsoft Windows (wyd. 4). Microsoft Press. s.  251–273 . Numer ISBN 0-7356-1917-4.
  2. Minasi, Mark; Enck, John (czerwiec 1998). „Rozwiązywanie problemów z awariami rozruchu NT”. Podręcznik administratora przetrwania: Zarządzanie systemem i zabezpieczenia . Biblioteka informatyczna systemu Windows. Numer ISBN 1-882419-88-X. Pobrano 15 lutego 2006 .
  3. „Opis interakcji PXE między klientem PXE, DHCP i serwerem RIS (wersja 2.4)” . Pomoc techniczna firmy Microsoft . Korporacja Microsoft. 28 lutego 2007 . Źródło 24 października 2011 .
  4. „Definicja kluczy RunOnce w rejestrze (wersja 2.3)” . Pomoc techniczna firmy Microsoft . Korporacja Microsoft. 19 stycznia 2007 . Źródło 24 października 2011 .
  5. „Dostępne opcje przełącznika dla plików Boot.ini systemu Windows XP i Windows Server 2003 (wersja 6.3)” . Pomoc techniczna firmy Microsoft . Korporacja Microsoft. 28 listopada 2007 . Źródło 24 października 2011 .

Zewnętrzne linki