Windows NT

Szeroko opisywany w specjalistycznej prasie nowy system operacyjny Microsoft Windows NT jest właściwie w Polsce nieznany. Wprawdzie jeszcze nie pojawił się na rynku, ale już wzbudza dyskusje fachowców ze względu na swe zapowiadane ogromne możliwości.

Szeroko opisywany w specjalistycznej prasie nowy system operacyjny Microsoft Windows NT jest właściwie w Polsce nieznany. Wprawdzie jeszcze nie pojawił się na rynku, ale już wzbudza dyskusje fachowców ze względu na swe zapowiadane ogromne możliwości.

Niektórzy specjaliści uważają nawet, że ma on szanse zastąpić mało przyjazny użytkownikowi UNIX, gdyż przy porównywalnych parametrach zapewnia łatwe przejście od środowiska Windows 3.x do zupełnie nowego systemu operacyjnego. Uważa się, że to łatwe przejście jest równie ważne dla użytkownika systemu, jak i piszących oprogramowanie.

Mieliśmy okazję obserwować w działaniu wersję alfa tego systemu na komputerze z procesorem typu RISC MIPS R4000. Wersja była tak dalece okrojona, że na jej podstawie nic właściwie nie dało się powiedzieć. Aby trochę jednak przybliżyć ten system polskiemu Czytelnikowi przygotowałem kompilację informacji prasowych i firmowych na temat systemu.

Windows NT (NT - New Technology) nie jest kontynuacją systemów Windows 3.x, ale raczej samodzielnym systemem operacyjnym, przeznaczonym dla innej grupy użytkowników. System Windows NT ma być instalowany głównie na potężnych stacjach roboczych, serwerach sieciowych i innych komputerach do zastosowań profesjonalnych. Jednakże system Windows 3.x będzie rozwijany w sposób ewolucyjny i obecni jego użytkownicy nie zostaną zapomniani po pojawieniu się NT. Windows 3.x w pełni wykorzystuje możliwości procesorów Intel z rodziny 386SX/386/486 i tylko na tych procesorach może pracować. Windows NT przeznaczony jest dla różnych procesorów. Już obecnie wiadomo, że jest wdrażany na procesory Intel 386/486, MIPS 4000 i ALPHA firmy DEC. Wiele innych producentów procesorów rozważa zakup licencji systemu Windows NT.

Cechy Windows NT

Głównym architektem systemu Windows NT jest David N. Cutler, twórca systemów operacyjnych VAX/VMS, RSX-11M w firmie DEC. Pracę nad systemem rozpoczęto już w 1988 r., a na początku tego roku stało się możliwe dokładne określenie jego parametrów, interfejsu graficznego i zdefiniowanie wszystkich funkcji systemowych. Pozwala to na pisanie aplikacji do tego systemu. Firma Microsoft przygotowała kilka wersji Software Development Kit dla różnych poziomów zgodności aplikacji z systemami Windows 3.x i NT.

Podstawowe właściwości systemu Windows NT są następujące:

Przenośność oprogramowania. Celem jest możliwość przystosowania systemu do szybko zmieniającego się sprzętu. Widać to choćby z faktu, że już obecnie wstępne wersje systemu działają na różnych procesorach.

Systemy wieloprocesorowe. Na rynku istnieje co najmniej kilka systemów wieloprocesorowych, ale nie ma żadnego systemu operacyjnego, przystosowanego do wykorzystania ich mocy obliczeniowej.

Skalowalność. Celem jest uzyskanie takiego oprogramowania, które równie dobrze będzie działać na systemie jednoprocesorowym, jak i na wieloprocesorowym.

Przetwarzanie rozproszone. Chodzi tu o możliwość wykorzystania mocy obliczeniowych wielu komputerów osobistych, rozrzuconych po różnych działach przedsiębiorstw przez wbudowanie w system właściwości sieciowych i rozdzielania zadań na wiele komputerów.

Zgodność z wymaganiami POSIX. Rząd USA wymaga, aby wszystkie nowe komputery instalowane w jego agendach spełniały wymaganie POSIX (Portable Operating System standard based on UNIX - przenośny system operacyjny oparty na UNIX-ie). Ma to uprościć przenoszenie aplikacji na różne platformy sprzętowe. W celu realizacji tego wymogu system będzie wyposażony w rozszerzenie POSIX.

Bezpieczeństwo. Rząd USA wymaga też, aby komputery i oprogramowanie spełniały określone poziomy ochrony zasobów komputera (dostęp do mocy obliczeniowej, pamięci itd.). Przewiduje się, że Windows NT będzie realizować jeden z wyższych poziomów ochrony (C2), pozwalający na określenie, kto może sięgać do danych na komputerze, rejestrowanie, kto i kiedy do jakich danych sięgał.

Właściwości funkcjonalne systemu Windows NT

System, który posiada wyżej wymienione cechy użytkowe, powinien być:

1. Rozszerzalny. Ma więc rozwijać się wraz ze sprzętem, pojawianiem się nowych urządzeń wejścia/wyjścia. Musi mieć możliwość ich obsługi w sposób nie powodujący naruszenia podstawowych funkcji systemu. Osiąga się to przez zdefiniowanie nienaruszalnego, uprzywilejowanego (tzn. pracującego w uprzywilejowanym rodzaju pracy procesora) jądra systemu (kernel) i nieuprzywilejowanych podsystemów obsługowych - serwerów urządzeń. Wraz z pojawieniem się nowych wymagań wystarczy dopisać nowy podsystem obsługi. W celu realizacji tych funkcji system Windows NT ma następujące właściwości zapewniające mu rozszerzalność:

a) Modułowość. Jądro systemu składa się z niezależnych modułów, komunikujących się ze sobą za pośrednictwem dobrze zdefiniowanego zestawu funkcji. Możliwe jest więc dowolne rozszerzanie systemu, bez modyfikacji zachowania innych części jądra.

b) Obiektowa struktura zasobów systemowych, co pozwala na jednorodną ich obsługę. Dodanie nowych zasobów nie wymaga zmiany istniejącego kodu.

c) Ładowalne sterowniki urządzeń. Sterowniki urządzeń są ładowane do pamięci operacyjnej na żądanie systemu. Możliwa jest więc obsługa nowych systemów plików przez napisanie sterownika i włączenie go do systemu.

d) Zdalne wywołania procedur. Procedury obsługi są dostępne w całej sieci niezależnie od miejsca ich składowania.

2. Przenośny. Wymaganie łatwości przenoszenia systemu pomiędzy różnymi platformami sprzętowymi sprowadza się do właściwego wyboru narzędzi. Obecnie, właściwie tylko kompilatory C/C++ są dostępne na każdym z komputerów. Tak więc większość kodu powinna być napisana w C/C++, a ta jego część, która bezpośrednio współpracuje ze sprzętem musi być możliwie mała. Na dodatek kod, komunikujący się ze sprzętem powinien mieć także strukturę modułową z abstrakcyjnymi, obiektowymi typami danych. Moduły systemu operują na tych obiektach, bez potrzeby zagłębiana się w szczegóły dotyczące sprzętu. Ta ostatnia cecha nosi często nazwę izolacji sprzętu. W Windows NT realizująca ją ta warstwa systemu nosi nazwę Hardware Abstraction Layer HAL.

Dodajmy, że system Windows NT został napisany dla systemów 32-bitowych z płaską przestrzenią adresową (będącą przeciwieństwem struktury segmentowej).

3. Niezawodny. System operacyjny musi być "krzepki" (robust), co oznacza, że jego działania powinny dać się przewidzieć nawet w przypadku awarii sprzętu. Po drugie, system ma skutecznie bronić siebie i użytkownika przed przypadkowymi lub zamierzonymi wrogimi działaniami innych użytkowników.

Właściwości te zapewnia modularność systemu, przy której różne moduły współpracują ze sobą przez dobrze określony interfejs programowy. W systemie Windows NT zastosowano nowy system plików NTFS (NT File System), umożliwiający odtwarzanie stanu systemu w przypadku awarii sprzętu.

4. Zgodny z istniejącym oprogramowaniem. Chcąc zapewnić programom DOS i Windows 3.x możliwość działałnia na procesorach innych niż Intelowskie, przewidziano emulatory procesora 386. Na procesorach Intela zdefiniowano zestaw funkcji Win32 API (32-bit Application Programming Interfejs), który zapewnia binarną zgodność programów DOS, Windows 3.x i OS/2. W celu korzystania z istniejących zasobów sprzętowych, system Windows NT może obsługiwać system plików DOS-u, HPFS (High-Performance File System) OS/2, system plików CD-ROM (CDFS) i nowy system plików NTFS.

Architektura systemu Windows NT

Architektura Windows NT jest w pełni 32-bitowa (32-bitowe jądro systemu, sterowniki urządzeń, zestaw funkcji API). Może on być wykonywany tylko na procesorach Intel 386 lub wyższych a także na MIPS R4000 i ALPHA firmy DEC. Przestrzeń adresowa jest ciągła, bez podziału na 64 kB segmenty (kodu i danych), charakterystycznego dla procesorów 16-bitowych. Program obsługuje pamięć wirtualną, tj. korzysta z dysku dla składowania tych części kodu, które nie mieszczą się w pamięci operacyjnej.

Windows NT jest systemem wielowątkowym, wielozadaniowym i ma asynchroniczny system obsługi wejścia/wyjścia.

Wątek (thread) jako część kodu niezależna od pozostałej części aplikacji, może być wykonywany jednocześnie z innymi wątkami. Prosty przykład pracy wielowątkowej, to drukowanie w tle przez jeden wątek, a pisanie za pomocą drugiego wątku procesora tekstowego. Oczywiście pełnię możliwości systemu wielowątkowego da się wykorzystać tylko w komputerach z wieloma procesorami.

Wielozadaniowość systemu Windows NT jest typu wywłaszczeniowego (preemptive multitasking). Więcej na ten temat znajdzie Czytelnik w artykule zamieszczonym w CW Nr 43/92 (Komputer i Ty - Wielozadaniowość w Windows). Polega ona na tym, że aplikacja musi cyklicznie oddawać systemowi sterowanie procesora po upływie zadanego czasu. System uruchamia następną aplikację itd. Żadna, nawet źle napisana aplikacja, nie będzie w stanie zmonopolizować zasobów systemu.

Asynchroniczny model obsługi wejść/wyjść polega na tym, że dla każdej aplikacji system tworzy jej własną kolejkę obsługi przerwań z urządzeń wejścia/wyjścia. Nie może więc wystąpić taka sytuacja, że jedna aplikacja nie dopuści użytkownika do komunikowania się z systemem blokując obsługę np. klawiatury. Użytkownik może w każdej chwili przełączyć się do innej aplikacji. (W Windows 3.x dla wszystkich aplikacji tworzona jest jedna wspólna kolejka obsługi przerwań wejścia/wyjścia.)

Narzędzia do tworzenia aplikacji

W celu ułatwienia przejścia z systemu Windows 3.x do Windows NT firma Microsoft udostępniła programistom zestaw narzędzi i specyfikacji. W systemach Windows dostępne są obecnie trzy rodzaje specyfikacji interfejsu aplikacyjnego API: Win16, Win32s i Win32.

Interfejs aplikacyjny Win16 API dotyczy środowiska Windows 3.x i określa zasady korzystania z funkcji systemowych oraz podaje specyfikacje wywołania funkcji systemowych. Dane tego systemu dostępne są w postaci SDK do Windows 3.1 oraz w nowych wersjach kompilatorów C/C++ firmy Microsoft i Borland.

Interfejs aplikacyjny Win32 API dotyczy systemu operacyjnego Windows NT i w porównaniu z Win16 jest rozszerzony o możliwość adresowania pamięci do 4 GB, bez podziału na segmenty. Interfejs zapewnia dostęp do wszystkich możliwości systemu Windows NT: wielozadaniowość, wielowątkowość, itd. Interfejs ten ma także wbudowany duży zestaw prymitywów graficznych (rysowanie krzywych Bezier, transformacje graficzne i in.). Ponieważ zestaw podstawowych funkcji tego systemu odpowiada dokładnie zestawowi funkcji Win16 API, to aplikacje dla Windows 3.x mogą być, bez żadnych zmian, skompilowane do systemu Windows NT.

Interfejs aplikacyjny Win32s API jest podzbiorem Win32 i służy do kompilowania aplikacji działających zarówno w Windows 3.1 jak i Windows NT. Używane są tylko te 32-bitowe funkcje ze zbioru Win32 API, które mają swoje odpowiedniki w Win16 API.

Dokumentacja

Firma Microsoft rozprowadza na CD ROM wstępną wersję Win32 API, łącznie z dokumentacją w postaci plików PostScriptowych. W formie drukowanej dostępna jest książka "WIN32 Application Programming Interface. Programmer's Reference" (w dwóch tomach), wydana przez Microsoft Press. Cena: 45 USD za jeden tom.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200