Czy to dalej pecet? Ewolucja platformy PC (część 2)
Ewolucja platformy PC w stronę nowoczesnych i prostych w obsłudze urządzeń oddaliła ją od wielu początkowych założeń. Wiele anachronizmów i ograniczeń pecetów nie wynikało z ograniczonego postępu technicznego lat 80., a ze świadomych decyzji technicznych.
W poprzedniej części za przykład służyło Plug and Play oraz automatyczna/przewidywalna alokacja zasobów. Kulminacyjnym etapem reformy pecetów na tym polu było wprowadzenie magistrali USB. Wraz z nią jednak wzrosła nieuchronnie złożoność, a kilka cennych cech poprzedników przepadło.
USB vs COM
Gdy USB wprowadzało ułatwienia, robiło to nakładając sztywne ograniczenia na wykorzystujący to złącze sprzęt. Tymczasem proste urządzenia na porty COM stosowały dotychczas całkowitą "wolną amerykankę". Były też kosmicznie wolne - najszybsze urządzenia oferowały przesyłanie z prędkością 225kb/s, a gdy ktoś chciał więcej, musiał wkręca ć dedykowaną kartę rozszerzeń. Komunikacja COM była jednak "płaska" - łatwo było ją odczytać jako strumień surowy, co ułatwiało diagnostykę i integrację z oprogramowaniem.
USB, podobnie jak PCI, w ogóle nie było pomysłem zgodnym z ustrojem PC i zmieniało tę platformę w coś nowego. Dla systemu MS-DOS porty USB były ciałem obcym, które albo w ogóle nie działały, albo wymagały szamańskich zabiegów celem aktywacji. Zdecydowanie nie należały do podstawowego zbioru w ramach architektury PC. Z tej perspektywy cała magistrala była po prostu gigantycznym urządzeniem peryferyjnym.
Dalsza część artykułu pod materiałem wideo
Niskopoziomowy dostęp oraz DMA dla urządzeń szeregowych, klasycznie "pecetowe" cechy, wróciły do urządzeń peryferyjnych w pecetach dopiero wraz z magistralą Thunderbolt i urządzeniami z wtyczką USB-C. Oczywiście, złożoność tego rozwiązania jest rzędy wielkości wyższa niż płaskie porty szeregowe, a sam ekosystem urządzeń trzyma "reżim" - urządzenia muszą być certyfikowane, a referencyjną implementacją opiekuje się Intel.
ATA
W kwestii urządzeń pamięci masowej, można się spierać że lata osiemdziesiąte to dopiero początek ery powszechnych dysków twardych i rozpatrywanie nowoczesnych metod zapisu w ich kontekście jest chybione, bo mechanizmy zapisu "muszą się różnić". To jednak nie do końca prawda, a powodem jest obrana w komputerach IBM PC metoda adresowania danych dyskowych. Choć system MS-DOS wewnętrznie traktował dysk twardy jako liniowy, nie robił tego BIOS, czyli sam komputer.
Zamiast tego, standardem w komputerach PC było adresowanie obszarów dyskowych za pomocą absurdalnej notacji talerz-cylinder-głowica-sektor, czyli CHS. Prędko doprowadziło to do bzdurnych wartości, dysków przedstawiających się jako kilkunastotalerzowe żeby tylko zmieścić się w notacji itd. Wkrótce później efektem stało się przekręcanie licznika i uszkadzanie danych. W końcu wymusiło to przejście na liniową notację logiczną (LBA) - ale to z kolei wywołało problemy z kompatybilnością dysków z BIOS-ami i utrudniało przenoszenie danych.
Problemy z notacją LBA i konieczność dokonywania wewnętrznych translacji, mimo znaczącego ukrycia problemu przez nowe standardy ATA, towarzyszyły pecetom niemal aż do końca istnienia magistrali równoległej IDE. Dopiero przejście na Serial ATA i wejście w użycie kontrolerów AHCI zlikwidowało ten kłopot. Zatem o ile można mówić, że świat oryginalnych dysków pecetowych i mechanizmów MFM nie może być zestawiany ze światem nowych pecetów, to można to zrobić z podejściem do nośników. IBM PC stosował notację mocno zrośniętą ze sprzętem. Była ona przestarzała już w momencie wprowadzenia do komputerów XT, a towarzyszyła pecetom nawet mimo przejścia z MFM na IDE.
Standard SATA, eliminując IDE, wprowadził kolejne "niepecetowe" dodatki do architektury PC. Z ortodoksyjnej perspektywy był dodatkiem, czymś obok głównego systemu i jego magistrali. Powrót do wyższej integracji standardowej pamięci masowej z ustrojem PC nastąpił wraz z popularyzacją interfejsu NVMe, który zresztą korzysta z wielu cech równoległego przetwarzania (żadna z nich nie jest jednak zapożyczeniem z metodyki równoległej IDE).
Nowe porządki
Klasycznie pecetowe podejście do pamięci masowej odcisnęło piętno także na samym formacie zapisanych danych. Obszar MBR, definiujący strukturę logiczną partycji i program rozruchowy, ogranicza maksymalny rozmiar dysku do 2,2 terabajta. Aby objąć większe dyski, potrzebne jest zastosowanie innego sposobu zapisu. Jest nim GPT. Dyski sformatowane w ramach GPT nie są rozumiane przez klasyczny BIOS. Z punktu widzenia PC, są niesformatowane!
GPT jest wstępem do znacznie większego tematu i największej dotychczas zmiany w ustroju PC, jaką jest wprowadzenie UEFI (i usunięcie usług BIOS). Ortodoksyjnie rzecz ujmując, komputery z UEFI to żadne pecety, a nowa, zupełnie inna platforma, której punktem wspólnym jest zbliżona architektura procesora. O nich w kolejnej części.
Kamil J. Dudek, współpracownik redakcji dobreprogramy.pl