Windows 95 a DOS

Wiele ukazujących się w prasie opisów Windows 95 powtarza opinie, że system ten nie jest w żaden sposób powiązany czy zależny od systemu DOS. Nie jest to prawdą.

Wiele ukazujących się w prasie opisów Windows 95 powtarza opinie, że system ten nie jest w żaden sposób powiązany czy zależny od systemu DOS. Nie jest to prawdą.

Mit ten obala Andrew Schulman w swojej książce pod tytułem Unauthorized Windows 95. Ta wydana przez oficynę IDG (International Data Group) książka adresowana jest głównie do osób zajmujących się zawodowo programowaniem, ale może też zainteresować zwykłych użytkowników tego systemu. Podane poniżej przykłady zależności między Windows 95 a DOS pochodzą z tej właśnie książki.

Okazuje się, że korzenie Windows 95 sięgają dość głęboko w głąb systemu DOS, a nieznajomość tego faktu prowadzić może do wielu kłopotów. Wiele zamieszania wywołuje np. panujące powszechnie przekonanie, że Windows 95 nie potrzebuje pliku systemowego COMMAND.COM. Jeśli w systemie nie ma pliku AUTOEXEC.BAT (obecność tego pliku nie jest bezwzględnie konieczna do uruchomienia systemu Windows 95), to plik COMMAND.COM rzeczywiście nie jest ładowany. Jedynym bowiem zadaniem tego pliku w tej fazie startowania komputera jest obsługa poleceń umieszczonych w pliku AUTOEXEC.BAT. Tak więc usunięcie z systemu pliku AUTOEXEC.BAT zwiększa dostępny użytkownikowi obszar pamięci RAM w komputerze o ok. 8 KB (taka jest bowiem długość pliku COMMAND.COM).

Pamiętajmy jednak o tym, że plik COMMAND.COM nie jest integralną częścią systemu DOS. Plik ten jest warstwą zewnętrzną, a konkretnie mówiąc interpretatorem poleceń umieszczonym na wierzchu systemu DOS. W miejsce to można wstawić dowolny inny plik (który pełnić będzie funkcję procesora zleceń systemu operacyjnego), nie zmieniając samego systemu DOS.

Jak wiadomo w skład systemu DOS wchodzą dwa pliki ukryte: IO.SYS i MSDOS.SYS. Po włączeniu komputera pliki te zawsze są ładowane do pamięci, po czym system operacyjny wyszukuje plik COMMAND.COM (lub każdy inny plik umieszczony w poleceniu SHELL=nazwa_pliku - jest to polecenie umieszczane w pliku systemowym AUTOEXEC.BAT) i przywołuje go do pracy.

W systemie Windows 95 funkcje obu tych plików (IO.SYS i MSDOS.SYS) przejmuje na siebie jeden plik o nazwie IO.SYS. Składa się on z poleceń (wykonywanych w trybie rzeczywistym), które wykorzystywane są przez system Windows 95 do obsługi przerwania 21. I tak np. po każdorazowym uruchomieniu programu Win32, Windows 95 wywołuje funkcję 55 przerwania 21. Po odebraniu tej funkcji DOS uruchamia pakiet Program Segment Prefix (praca w trybie rzeczywistym), który śledzi proces obsługi programów przez system.

Co ważne, Windows 95 nie może w ogóle rozpocząć pracy, dopóki nie odszuka pliku systemowego IFSHLP.SYS (Installable File System Helper). Jest to pracujący w trybie rzeczywistym sterownik systemu DOS. Warunkiem więc uruchomienia systemu Windows 95 i wchodzących w jego skład sterowników wirtualnych (VxD), jest obecność standardowego sterownika systemu DOS. Przykład ten udowadnia, że Windows 95 jest jednak nakładką na system DOS, której nie można uruchomić bez pewnych elementów tego systemu. Powinni o tym pamiętać programiści, pisząc czy modyfikując aplikacje systemu Windows 95.

Po wywołaniu systemu Windows 95, plik MSDOS.SYS istnieje nadal, ale uwaga - nie jest to plik wykonywalny. Jest to teraz plik tekstowy, który pełni podobne zadanie, jak plik CONFIG.SYS w systemie DOS. Plik ten odczytywany jest przy każdym uruchomieniu Windows 95 i używany do początkowego konfigurowania tego systemu. Należy w tym miejscu przypomnieć, że jest to plik ukryty, nie udokumentowany w opisie technicznym systemu. Aby poddać go edycji, należy najpierw zmienić jego atrybuty (to jest usunąć atrybuty "hidden only" i "read only").

W jednej z linijek pliku może być zawarte spotkać możemy polecenie LOGO=0, które uniemożliwia wyświetlanie znaku reklamowego firmy Microsoft, co ma miejsce przy każdym uruchamianiu systemu Windows 95. Logo to ten jest teraz integralną częścią pliku IO.SYS, a nie jak dawniej WIN.COM.


TOP 200